diff --git a/.gn b/.gn index 1220b32..e8b249b 100644 --- a/.gn +++ b/.gn
@@ -286,6 +286,8 @@ #"//jingle/*", + "//libassistant/communication/*", + "//media/*", "//mojo/*",
diff --git a/DEPS b/DEPS index 1e297ab..0616034 100644 --- a/DEPS +++ b/DEPS
@@ -129,7 +129,7 @@ # 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': '036503b07ea683d278e8aab09dc19d04b4aa6762', + 'skia_revision': 'b3fd67ac36cf24d4be813067ff8b28f708dee21b', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -141,7 +141,7 @@ # 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': '310294adacdde08b26b7e387dfb6a6f19a97cbfc', + 'angle_revision': '6cb0cff573768d72d06aef02926d0d92ffb02635', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -149,7 +149,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '010a4da72d171ad386d1475e4f2e9e1620ed765c', + 'pdfium_revision': 'd5bcd378e5892bf6b0bac1e3b3a0982156e179a3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -168,7 +168,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling googletest # and whatever else without interference from each other. - 'googletest_revision': 'a18ac392d883ca88d1849b90071cea5608fd9293', + 'googletest_revision': 'b617b277186e03b1065ac6d43912b1c4147c2982', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling lighttpd # and whatever else without interference from each other. @@ -392,7 +392,7 @@ 'packages': [ { 'package': 'chromium/chrome/test/data/autofill/captured_sites', - 'version': 'zh9Tqke-MCYlzcrTXhogU3H1dgx2YAZs9GG_PeemPsQC', + 'version': '0E972Ept3ISfjsEXCfM6TEiCGv-Hsi9Zu-EvPF9UYY8C', } ], 'condition': 'checkout_chromium_autofill_test_dependencies', @@ -805,7 +805,7 @@ # Build tools for Chrome OS. Note: This depends on third_party/pyelftools. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '5677ecd6cbab923ebb6d733193a2ec270d4dbd2d', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'eac9bbc95090ba5ec7ef2dfce84ffb5b59416af5', 'condition': 'checkout_linux', }, @@ -830,7 +830,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '8d3ba46327207c40e66b4ec818cec077f0ac08cf', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '3c830222aedad072e0ee6c9feb55214cc24b36f1', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -1172,7 +1172,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '21a33afeef568f72668acf77668a32307a363d6e', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'cb851311e16f9d3238f301c5fc0cced12e7d3e23', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78', @@ -1343,7 +1343,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '688fbfe33779392aa210d67d4aa12cb012f112c2', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '6c072efe9f0ea1d4a286d71e85013f5c43ab919f', + Var('webrtc_git') + '/src.git' + '@' + '4f5975c99024fe253a342da06532b0ddf7de687a', 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d', @@ -1384,7 +1384,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@3bd0f72522dfe72200b978be62947bdeb5903fdf', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@bed354efaacc62d7f5a7eaaf895fc67b3b1ee1d0', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/browser/aw_web_contents_delegate.cc b/android_webview/browser/aw_web_contents_delegate.cc index 594cbe0..67de4ea 100644 --- a/android_webview/browser/aw_web_contents_delegate.cc +++ b/android_webview/browser/aw_web_contents_delegate.cc
@@ -4,6 +4,8 @@ #include "android_webview/browser/aw_web_contents_delegate.h" +#include <utility> + #include "android_webview/browser/aw_contents.h" #include "android_webview/browser/aw_contents_io_thread_client.h" #include "android_webview/browser/aw_javascript_dialog_manager.h" @@ -111,11 +113,11 @@ void AwWebContentsDelegate::CanDownload( const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { // Android webview intercepts download in its resource dispatcher host // delegate, so should not reach here. NOTREACHED(); - callback.Run(false); + std::move(callback).Run(false); } void AwWebContentsDelegate::RunFileChooser(
diff --git a/android_webview/browser/aw_web_contents_delegate.h b/android_webview/browser/aw_web_contents_delegate.h index 25462538..3bd367d 100644 --- a/android_webview/browser/aw_web_contents_delegate.h +++ b/android_webview/browser/aw_web_contents_delegate.h
@@ -37,7 +37,7 @@ bool final_update) override; void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) override; + base::OnceCallback<void(bool)> callback) override; void RunFileChooser(content::RenderFrameHost* render_frame_host, std::unique_ptr<content::FileSelectListener> listener, const blink::mojom::FileChooserParams& params) override;
diff --git a/ash/system/accessibility/tray_accessibility.cc b/ash/system/accessibility/tray_accessibility.cc index e2e8c4f..8c5d7f0 100644 --- a/ash/system/accessibility/tray_accessibility.cc +++ b/ash/system/accessibility/tray_accessibility.cc
@@ -21,7 +21,9 @@ #include "ash/system/tray/tray_popup_utils.h" #include "ash/system/tray/tray_utils.h" #include "ash/system/tray/tri_view.h" +#include "base/command_line.h" #include "base/metrics/user_metrics.h" +#include "ui/accessibility/accessibility_switches.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/image/image.h" #include "ui/views/controls/separator.h" @@ -102,9 +104,11 @@ TrayPopupUtils::UpdateCheckMarkVisibility(virtual_keyboard_view_, virtual_keyboard_enabled_); - switch_access_enabled_ = controller->switch_access_enabled(); - TrayPopupUtils::UpdateCheckMarkVisibility(switch_access_view_, - switch_access_enabled_); + if (switch_access_view_) { + switch_access_enabled_ = controller->switch_access_enabled(); + TrayPopupUtils::UpdateCheckMarkVisibility(switch_access_view_, + switch_access_enabled_); + } large_cursor_enabled_ = controller->large_cursor_enabled(); TrayPopupUtils::UpdateCheckMarkVisibility(large_cursor_view_, @@ -198,12 +202,15 @@ IDS_ASH_STATUS_TRAY_ACCESSIBILITY_VIRTUAL_KEYBOARD), virtual_keyboard_enabled_); - switch_access_enabled_ = controller->switch_access_enabled(); - switch_access_view_ = AddScrollListCheckableItem( - kSwitchAccessIcon, - l10n_util::GetStringUTF16( - IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SWITCH_ACCESS), - switch_access_enabled_); + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableExperimentalAccessibilitySwitchAccess)) { + switch_access_enabled_ = controller->switch_access_enabled(); + switch_access_view_ = AddScrollListCheckableItem( + kSwitchAccessIcon, + l10n_util::GetStringUTF16( + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SWITCH_ACCESS), + switch_access_enabled_); + } scroll_content()->AddChildView(CreateListSubHeaderSeparator());
diff --git a/ash/wm/overview/overview_animation_type.h b/ash/wm/overview/overview_animation_type.h index 232fb9c..618d9c6 100644 --- a/ash/wm/overview/overview_animation_type.h +++ b/ash/wm/overview/overview_animation_type.h
@@ -39,8 +39,9 @@ // Used to fade in the drop target when dragging an application to enter // overview mode. OVERVIEW_ANIMATION_DROP_TARGET_FADE_IN, - // Used to fade in the shield which covers the work area in and out. - OVERVIEW_ANIMATION_SHIELD_FADE, + // Used to fade in the label which tells users they are in overview mode with + // no window in and out. + OVERVIEW_ANIMATION_NO_RECENTS_FADE, // Used to animate the selection window which is activated by using tab or the // arrow keys. OVERVIEW_ANIMATION_SELECTION_WINDOW_SHADOW,
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc index e2a4ebf..f953816 100644 --- a/ash/wm/overview/overview_grid.cc +++ b/ash/wm/overview/overview_grid.cc
@@ -21,7 +21,6 @@ #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_constants.h" #include "ash/shell.h" -#include "ash/strings/grit/ash_strings.h" #include "ash/wm/desks/desks_bar_view.h" #include "ash/wm/overview/cleanup_animation_observer.h" #include "ash/wm/overview/drop_target_view.h" @@ -45,15 +44,12 @@ #include "base/strings/utf_string_conversions.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/aura/client/aura_constants.h" -#include "ui/base/l10n/l10n_util.h" #include "ui/compositor/layer_animation_observer.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/compositor_extra/shadow.h" #include "ui/gfx/geometry/safe_integer_conversions.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/views/background.h" -#include "ui/views/controls/label.h" -#include "ui/views/layout/box_layout.h" #include "ui/views/view.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/coordinate_conversion.h" @@ -78,16 +74,6 @@ // Additional vertical inset reserved for windows in overview mode. constexpr float kOverviewVerticalInset = 0.1f; -// Values for the no items indicator which appears when opening overview mode -// with no opened windows. -constexpr int kNoItemsIndicatorHeightDp = 32; -constexpr int kNoItemsIndicatorHorizontalPaddingDp = 16; -constexpr int kNoItemsIndicatorRoundingDp = 16; -constexpr int kNoItemsIndicatorVerticalPaddingDp = 8; -constexpr SkColor kNoItemsIndicatorBackgroundColor = SK_ColorBLACK; -constexpr SkColor kNoItemsIndicatorTextColor = SK_ColorWHITE; -constexpr float kNoItemsIndicatorBackgroundOpacity = 0.8f; - // Histogram names for overview enter/exit smoothness in clamshell, // tablet mode and splitview. constexpr char kOverviewEnterClamshellHistogram[] = @@ -270,70 +256,6 @@ } // namespace -// ShieldView contains the background for overview mode. It also contains text -// which is shown if there are no windows to be displayed. -// This view also takes care of disabling overview mode on: -// - Gesture tap. -// - Mouse release. -class OverviewGrid::ShieldView : public views::View { - public: - ShieldView() { - label_ = new views::Label( - l10n_util::GetStringUTF16(IDS_ASH_OVERVIEW_NO_RECENT_ITEMS), - views::style::CONTEXT_LABEL); - label_->SetHorizontalAlignment(gfx::ALIGN_CENTER); - label_->SetEnabledColor(kNoItemsIndicatorTextColor); - label_->SetBackgroundColor(kNoItemsIndicatorBackgroundColor); - - // |label_container_| is the parent of |label_| which allows the text to - // have padding and rounded edges. - label_container_ = new RoundedRectView(kNoItemsIndicatorRoundingDp, - kNoItemsIndicatorBackgroundColor); - label_container_->SetLayoutManager(std::make_unique<views::BoxLayout>( - views::BoxLayout::kVertical, - gfx::Insets(kNoItemsIndicatorVerticalPaddingDp, - kNoItemsIndicatorHorizontalPaddingDp))); - label_container_->AddChildView(label_); - label_container_->SetPaintToLayer(); - label_container_->layer()->SetFillsBoundsOpaquely(false); - label_container_->layer()->SetOpacity(kNoItemsIndicatorBackgroundOpacity); - label_container_->SetVisible(false); - - AddChildView(label_container_); - } - - ~ShieldView() override = default; - - void SetLabelVisibility(bool visible) { - label_container_->SetVisible(visible); - } - - gfx::Rect GetLabelBounds() const { - return label_container_->GetBoundsInScreen(); - } - - // ShieldView takes up the whole workspace since it changes opacity of the - // whole wallpaper. The bounds of the grid may be smaller in some cases of - // splitview. The label should be centered in the bounds of the grid. - void SetGridBounds(const gfx::Rect& bounds) { - const int label_width = label_->GetPreferredSize().width() + - 2 * kNoItemsIndicatorHorizontalPaddingDp; - gfx::Rect label_container_bounds = bounds; - label_container_bounds.ClampToCenteredSize( - gfx::Size(label_width, kNoItemsIndicatorHeightDp)); - label_container_->SetBoundsRect(label_container_bounds); - } - - bool IsLabelVisible() const { return label_container_->visible(); } - - private: - // Owned by views heirarchy. - RoundedRectView* label_container_ = nullptr; - views::Label* label_ = nullptr; - - DISALLOW_COPY_AND_ASSIGN(ShieldView); -}; - // The class to observe the overview window that the dragged tabs will merge // into. After the dragged tabs merge into the overview window, and if the // overview window represents a minimized window, we need to update the @@ -513,7 +435,6 @@ aura::Window* widget_window = shield_widget_->GetNativeWindow(); const gfx::Rect bounds = widget_window->parent()->bounds(); widget_window->SetBounds(bounds); - ShowNoRecentsWindowMessage(window_list_.empty()); } if (window_list_.empty()) @@ -711,8 +632,6 @@ const gfx::Rect& bounds, OverviewItem* ignored_item) { bounds_ = bounds; - if (shield_view_) - shield_view_->SetGridBounds(bounds_); if (desks_widget_) { desks_widget_->SetBounds( GetDesksWidgetBounds(root_window_, bounds_.width())); @@ -730,15 +649,6 @@ selection_widget_->Hide(); } -void OverviewGrid::ShowNoRecentsWindowMessage(bool visible) { - // Only show the warning on the grid associated with primary root. - if (root_window_ != Shell::GetPrimaryRootWindow()) - return; - - if (shield_view_) - shield_view_->SetLabelVisibility(visible); -} - void OverviewGrid::UpdateCannotSnapWarningVisibility() { for (auto& overview_mode_item : window_list_) overview_mode_item->UpdateCannotSnapWarningVisibility(); @@ -1046,10 +956,8 @@ if (canceled) return; - if (!shield_widget_) { + if (!shield_widget_) InitShieldWidget(/*animate=*/true); - ShowNoRecentsWindowMessage(window_list_.empty()); - } MaybeInitDesksWidget(); @@ -1073,17 +981,6 @@ return true; } -bool OverviewGrid::IsNoItemsIndicatorLabelVisibleForTesting() { - return shield_view_ && shield_view_->IsLabelVisible(); -} - -gfx::Rect OverviewGrid::GetNoItemsIndicatorLabelBoundsForTesting() const { - if (!shield_view_) - return gfx::Rect(); - - return shield_view_->GetLabelBounds(); -} - void OverviewGrid::CalculateWindowListAnimationStates( OverviewItem* selected_item, OverviewSession::OverviewTransition transition) { @@ -1383,17 +1280,12 @@ widget_window->SetBounds(bounds); widget_window->SetName("OverviewModeShield"); - // Create |shield_view_| and animate its background and label if needed. - shield_view_ = new ShieldView(); - shield_widget_->SetContentsView(shield_view_); - shield_view_->SetGridBounds(bounds_); - // TODO(sammiequon): The shield widget is not anymore in most cases. Remove // the shield widget and put the cannot snap widget and desks bar into their // own widgets. if (animate) { shield_widget_->SetOpacity(initial_opacity); - ScopedOverviewAnimationSettings settings(OVERVIEW_ANIMATION_SHIELD_FADE, + ScopedOverviewAnimationSettings settings(OVERVIEW_ANIMATION_NO_RECENTS_FADE, shield_widget_->GetNativeWindow()); shield_widget_->SetOpacity(1.f); } else {
diff --git a/ash/wm/overview/overview_grid.h b/ash/wm/overview/overview_grid.h index 9e5cd824..3c7eaabd 100644 --- a/ash/wm/overview/overview_grid.h +++ b/ash/wm/overview/overview_grid.h
@@ -111,8 +111,6 @@ // it is dragged. void SetSelectionWidgetVisibility(bool visible); - void ShowNoRecentsWindowMessage(bool visible); - void UpdateCannotSnapWarningVisibility(); // Called when any OverviewItem on any OverviewGrid has started/ended being @@ -165,10 +163,6 @@ // one of the grids windows covers the the entire workspace, true otherwise. bool ShouldAnimateWallpaper() const; - bool IsNoItemsIndicatorLabelVisibleForTesting(); - - gfx::Rect GetNoItemsIndicatorLabelBoundsForTesting() const; - // Calculates |should_animate_when_entering_| and // |should_animate_when_exiting_| of the overview items based on where // the first MRU window covering the available workspace is found. @@ -246,18 +240,17 @@ views::Widget* shield_widget() { return shield_widget_.get(); } + void set_suspend_reposition(bool value) { suspend_reposition_ = value; } + views::Widget* drop_target_widget_for_testing() { return drop_target_widget_.get(); } - void set_suspend_reposition(bool value) { suspend_reposition_ = value; } - const DesksBarView* GetDesksBarViewForTesting() const { return desks_bar_view_; } private: - class ShieldView; class TargetWindowObserver; friend class OverviewSessionTest; @@ -346,12 +339,11 @@ ScopedObserver<aura::Window, OverviewGrid> window_observer_; ScopedObserver<wm::WindowState, OverviewGrid> window_state_observer_; - // Widget that darkens the screen background. + // Unused legacy widget. + // TODO(sammiequon): Remove this, kept temporarily as there are some + // dependencies on it still. std::unique_ptr<views::Widget> shield_widget_; - // A pointer to |shield_widget_|'s content view. - ShieldView* shield_view_ = nullptr; - // Widget that contains the DeskBarView contents when the Virtual Desks // feature is enabled. std::unique_ptr<views::Widget> desks_widget_;
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc index 37fecf7..d015bd5 100644 --- a/ash/wm/overview/overview_session.cc +++ b/ash/wm/overview/overview_session.cc
@@ -15,6 +15,7 @@ #include "ash/shelf/shelf.h" #include "ash/shelf/shelf_constants.h" #include "ash/shell.h" +#include "ash/strings/grit/ash_strings.h" #include "ash/wm/mru_window_tracker.h" #include "ash/wm/overview/overview_controller.h" #include "ash/wm/overview/overview_delegate.h" @@ -22,6 +23,8 @@ #include "ash/wm/overview/overview_item.h" #include "ash/wm/overview/overview_utils.h" #include "ash/wm/overview/overview_window_drag_controller.h" +#include "ash/wm/overview/scoped_overview_animation_settings.h" +#include "ash/wm/splitview/split_view_controller.h" #include "ash/wm/splitview/split_view_drag_indicators.h" #include "ash/wm/splitview/split_view_utils.h" #include "ash/wm/switchable_windows.h" @@ -32,10 +35,14 @@ #include "base/metrics/user_metrics.h" #include "base/threading/thread_task_runner_handle.h" #include "ui/accessibility/ax_enums.mojom.h" +#include "ui/base/hit_test.h" +#include "ui/base/l10n/l10n_util.h" #include "ui/compositor/layer.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/display/screen.h" #include "ui/events/event.h" +#include "ui/views/controls/label.h" +#include "ui/views/layout/box_layout.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/coordinate_conversion.h" #include "ui/wm/core/window_util.h" @@ -44,6 +51,16 @@ namespace { +// Values for the no items indicator which appears when opening overview mode +// with no opened windows. +constexpr int kNoItemsIndicatorHeightDp = 32; +constexpr int kNoItemsIndicatorHorizontalPaddingDp = 16; +constexpr int kNoItemsIndicatorRoundingDp = 16; +constexpr int kNoItemsIndicatorVerticalPaddingDp = 8; +constexpr SkColor kNoItemsIndicatorBackgroundColor = + SkColorSetA(SK_ColorBLACK, 204); +constexpr SkColor kNoItemsIndicatorTextColor = SK_ColorWHITE; + // Triggers a shelf visibility update on all root window controllers. void UpdateShelfVisibility() { for (aura::Window* root : Shell::GetAllRootWindows()) @@ -130,8 +147,64 @@ return bounds; } +bool IsWindowDragInProgress() { + auto windows = Shell::Get()->mru_window_tracker()->BuildMruWindowList(); + for (auto* window : windows) { + wm::WindowState* window_state = wm::GetWindowState(window); + if (window_state && window_state->is_dragged() && + (window_state->drag_details()->window_component == HTCLIENT || + window_state->drag_details()->window_component == HTCAPTION)) { + return true; + } + } + return false; +} + } // namespace +// A label with rounded corners that is displayed when we enter overview with no +// windows. +class OverviewSession::NoWindowsView : public views::View { + public: + NoWindowsView() { + SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::kVertical, + gfx::Insets(kNoItemsIndicatorVerticalPaddingDp, + kNoItemsIndicatorHorizontalPaddingDp))); + SetPaintToLayer(ui::LAYER_SOLID_COLOR); + layer()->SetColor(kNoItemsIndicatorBackgroundColor); + layer()->SetFillsBoundsOpaquely(false); + + const std::array<uint32_t, 4> kRadii = { + kNoItemsIndicatorRoundingDp, kNoItemsIndicatorRoundingDp, + kNoItemsIndicatorRoundingDp, kNoItemsIndicatorRoundingDp}; + layer()->SetRoundedCornerRadius(kRadii); + layer()->SetIsFastRoundedCorner(true); + + label_ = new views::Label( + l10n_util::GetStringUTF16(IDS_ASH_OVERVIEW_NO_RECENT_ITEMS), + views::style::CONTEXT_LABEL); + label_->SetHorizontalAlignment(gfx::ALIGN_CENTER); + label_->SetEnabledColor(kNoItemsIndicatorTextColor); + label_->SetBackgroundColor(kNoItemsIndicatorBackgroundColor); + label_->SetPaintToLayer(); + label_->layer()->SetFillsBoundsOpaquely(false); + AddChildView(label_); + } + ~NoWindowsView() override = default; + + // views::View: + gfx::Size GetPreferredSize() { + int width = label_->GetPreferredSize().width() + + 2 * kNoItemsIndicatorHorizontalPaddingDp; + return gfx::Size(width, kNoItemsIndicatorHeightDp); + } + + private: + views::Label* label_ = nullptr; // Owned by views hierarchy. + DISALLOW_COPY_AND_ASSIGN(NoWindowsView); +}; + OverviewSession::OverviewSession(OverviewDelegate* delegate) : delegate_(delegate), restore_focus_window_(wm::GetFocusedWindow()), @@ -224,6 +297,8 @@ } } + MaybeCreateAndPositionNoWindowsWidget(); + // Create the widget that will receive focus while in overview mode for // accessiblity purposes. overview_focus_widget_ = std::make_unique<views::Widget>(); @@ -304,6 +379,13 @@ grid_list_.clear(); UpdateShelfVisibility(); + + if (no_windows_widget_) { + // Fade out the no windows widget. This animation continues past the + // lifetime of |this|. + FadeOutWidgetAndMaybeSlideOnExit(std::move(no_windows_widget_), + OVERVIEW_ANIMATION_RESTORE_WINDOW); + } } void OverviewSession::CancelSelection() { @@ -657,6 +739,14 @@ grid->set_suspend_reposition(false); } +bool OverviewSession::IsEmpty() const { + for (const auto& grid : grid_list_) { + if (!grid->empty()) + return false; + } + return true; +} + void OverviewSession::OnDisplayRemoved(const display::Display& display) { // TODO(flackr): Keep window selection active on remaining displays. CancelSelection(); @@ -815,14 +905,6 @@ PositionWindows(/*animate=*/false); } -bool OverviewSession::IsEmpty() const { - for (const auto& grid : grid_list_) { - if (!grid->empty()) - return false; - } - return true; -} - void OverviewSession::ResetFocusRestoreWindow(bool focus) { if (!restore_focus_window_) return; @@ -882,8 +964,55 @@ /*divider_changed=*/false)); } PositionWindows(/*animate=*/false); + MaybeCreateAndPositionNoWindowsWidget(); if (split_view_drag_indicators_) split_view_drag_indicators_->OnDisplayBoundsChanged(); } +void OverviewSession::MaybeCreateAndPositionNoWindowsWidget() { + // Hide the widget if there is an item in overview or there are none but there + // is a window drag in progress. It is possible for a window drag to be in + // progress when we notify that split view has started so check for that case. + if (!IsEmpty() || + (IsWindowDragInProgress() && + !Shell::Get()->split_view_controller()->IsSplitViewModeActive())) { + no_windows_widget_.reset(); + return; + } + + if (!no_windows_widget_) { + // Create and fade in the widget. + no_windows_widget_ = CreateBackgroundWidget( + Shell::GetPrimaryRootWindow(), ui::LAYER_NOT_DRAWN, SK_ColorTRANSPARENT, + 0, 0, SK_ColorTRANSPARENT, 0.f, nullptr, true, false); + aura::Window* widget_window = no_windows_widget_->GetNativeWindow(); + widget_window->SetName("OverviewNoWindowsLabel"); + no_windows_widget_->SetContentsView(new NoWindowsView()); + ScopedOverviewAnimationSettings settings(OVERVIEW_ANIMATION_NO_RECENTS_FADE, + widget_window); + no_windows_widget_->SetOpacity(1.f); + } + + // The widget is centered in the work area, unless we are in split view with + // one window snapped. + aura::Window* window = no_windows_widget_->GetNativeWindow(); + gfx::Rect bounds = + display::Screen::GetScreen()->GetPrimaryDisplay().work_area(); + auto* split_view_controller = Shell::Get()->split_view_controller(); + if (split_view_controller->state() == SplitViewController::LEFT_SNAPPED) { + bounds = split_view_controller->GetSnappedWindowBoundsInScreen( + window, SplitViewController::RIGHT); + } else if (split_view_controller->state() == + SplitViewController::RIGHT_SNAPPED) { + bounds = split_view_controller->GetSnappedWindowBoundsInScreen( + window, SplitViewController::LEFT); + } + + NoWindowsView* content_view = + static_cast<NoWindowsView*>(no_windows_widget_->GetContentsView()); + DCHECK(content_view); + bounds.ClampToCenteredSize(content_view->GetPreferredSize()); + window->SetBounds(bounds); +} + } // namespace ash
diff --git a/ash/wm/overview/overview_session.h b/ash/wm/overview/overview_session.h index 0690d8d6..c299fa4 100644 --- a/ash/wm/overview/overview_session.h +++ b/ash/wm/overview/overview_session.h
@@ -225,6 +225,9 @@ void SuspendReposition(); void ResumeReposition(); + // Returns true if all its window grids don't have any window item. + bool IsEmpty() const; + OverviewDelegate* delegate() { return delegate_; } SplitViewDragIndicators* split_view_drag_indicators() { @@ -249,6 +252,10 @@ size_t num_items_for_testing() const { return num_items_; } + views::Widget* no_windows_widget_for_testing() { + return no_windows_widget_.get(); + } + // display::DisplayObserver: void OnDisplayRemoved(const display::Display& display) override; void OnDisplayMetricsChanged(const display::Display& display, @@ -266,10 +273,8 @@ SplitViewController::State state) override; void OnSplitViewDividerPositionChanged() override; - // Returns true if all its window grids don't have any window item. - bool IsEmpty() const; - private: + class NoWindowsView; friend class OverviewSessionTest; // |focus|, restores focus to the stored window. @@ -286,6 +291,8 @@ // Called when the display area for the overview window grids changed. void OnDisplayBoundsChanged(); + void MaybeCreateAndPositionNoWindowsWidget(); + // Tracks observed windows. base::flat_set<aura::Window*> observed_windows_; @@ -308,6 +315,9 @@ // mechanism to trigger accessibility events without a focused window. std::unique_ptr<views::Widget> overview_focus_widget_; + // A widget that is shown if we entered overview without any windows opened. + std::unique_ptr<views::Widget> no_windows_widget_; + // True when performing operations that may cause window activations. This is // used to prevent handling the resulting expected activation. This is // initially true until this is initialized.
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc index 15fffcc..3c1967e 100644 --- a/ash/wm/overview/overview_session_unittest.cc +++ b/ash/wm/overview/overview_session_unittest.cc
@@ -1636,51 +1636,30 @@ // Verify that the overview no windows indicator appears when entering overview // mode with no windows. -TEST_F(OverviewSessionTest, OverviewNoWindowsIndicator) { +TEST_F(OverviewSessionTest, NoWindowsIndicator) { // Verify that by entering overview mode without windows, the no items // indicator appears. ToggleOverview(); ASSERT_TRUE(overview_session()); - EXPECT_EQ(0u, GetWindowItemsForRoot(0).size()); - EXPECT_TRUE(overview_session() - ->grid_list_for_testing()[0] - ->IsNoItemsIndicatorLabelVisibleForTesting()); + ASSERT_EQ(0u, GetWindowItemsForRoot(0).size()); + EXPECT_TRUE(overview_session()->no_windows_widget_for_testing()); } // Verify that the overview no windows indicator position is as expected. -TEST_F(OverviewSessionTest, OverviewNoWindowsIndicatorPosition) { +TEST_F(OverviewSessionTest, NoWindowsIndicatorPosition) { UpdateDisplay("400x300"); - // Midpoint of height minus shelf. - const int expected_y = (300 - ShelfConstants::shelf_size()) / 2; - - // Helper to check points. Uses EXPECT_NEAR on each coordinate to account for - // rounding. - auto check_point = [](const gfx::Point& expected, const gfx::Point& actual) { - EXPECT_NEAR(expected.x(), actual.x(), 1); - EXPECT_NEAR(expected.y(), actual.y(), 1); - }; ToggleOverview(); ASSERT_TRUE(overview_session()); + views::Widget* no_windows_widget = + overview_session()->no_windows_widget_for_testing(); + ASSERT_TRUE(no_windows_widget); // Verify that originally the label is in the center of the workspace. - OverviewGrid* grid = overview_session()->grid_list_for_testing()[0].get(); - check_point(gfx::Point(200, expected_y), - grid->GetNoItemsIndicatorLabelBoundsForTesting().CenterPoint()); - - // Verify that when grid bounds are on the left, the label is centered on the - // left side of the workspace. - grid->SetBoundsAndUpdatePositions( - gfx::Rect(0, 0, 200, 300 - ShelfConstants::shelf_size())); - check_point(gfx::Point(100, expected_y), - grid->GetNoItemsIndicatorLabelBoundsForTesting().CenterPoint()); - - // Verify that when grid bounds are on the right, the label is centered on the - // right side of the workspace. - grid->SetBoundsAndUpdatePositions( - gfx::Rect(200, 0, 200, 300 - ShelfConstants::shelf_size())); - check_point(gfx::Point(300, expected_y), - grid->GetNoItemsIndicatorLabelBoundsForTesting().CenterPoint()); + // Midpoint of height minus shelf. + int expected_y = (300 - ShelfConstants::shelf_size()) / 2; + EXPECT_EQ(gfx::Point(200, expected_y), + no_windows_widget->GetWindowBoundsInScreen().CenterPoint()); // Verify that after rotating the display, the label is centered in the // workspace 300x(400-shelf). @@ -1689,33 +1668,63 @@ display_manager()->SetDisplayRotation( display.id(), display::Display::ROTATE_90, display::Display::RotationSource::ACTIVE); - check_point(gfx::Point(150, (400 - ShelfConstants::shelf_size()) / 2), - grid->GetNoItemsIndicatorLabelBoundsForTesting().CenterPoint()); + expected_y = (400 - ShelfConstants::shelf_size()) / 2; + EXPECT_EQ(gfx::Point(150, (400 - ShelfConstants::shelf_size()) / 2), + no_windows_widget->GetWindowBoundsInScreen().CenterPoint()); +} + +TEST_F(OverviewSessionTest, NoWindowsIndicatorPositionSplitview) { + UpdateDisplay("400x300"); + std::unique_ptr<aura::Window> window(CreateTestWindow()); + + ToggleOverview(); + ASSERT_TRUE(overview_session()); + views::Widget* no_windows_widget = + overview_session()->no_windows_widget_for_testing(); + EXPECT_FALSE(no_windows_widget); + + // Tests that when snapping a window to the left in splitview, the no windows + // indicator shows up in the middle of the right side of the screen. + auto* split_view_controller = Shell::Get()->split_view_controller(); + split_view_controller->SnapWindow(window.get(), SplitViewController::LEFT); + no_windows_widget = overview_session()->no_windows_widget_for_testing(); + ASSERT_TRUE(no_windows_widget); + + // There is a 8dp divider in splitview, the indicator should take that into + // account. + const int bounds_left = 200 + 4; + int expected_x = bounds_left + (400 - (bounds_left)) / 2; + const int expected_y = (300 - ShelfConstants::shelf_size()) / 2; + EXPECT_EQ(gfx::Point(expected_x, expected_y), + no_windows_widget->GetWindowBoundsInScreen().CenterPoint()); + + // Tests that when snapping a window to the right in splitview, the no windows + // indicator shows up in the middle of the left side of the screen. + split_view_controller->SnapWindow(window.get(), SplitViewController::RIGHT); + expected_x = /*bounds_right=*/(200 - 4) / 2; + EXPECT_EQ(gfx::Point(expected_x, expected_y), + no_windows_widget->GetWindowBoundsInScreen().CenterPoint()); } // Verify that when opening overview mode with multiple displays, the no items -// indicator on the primary grid if there are no windows. Also verify that -// we do not exit overview mode until all the grids are empty. -TEST_F(OverviewSessionTest, OverviewNoWindowsIndicatorMultiDisplay) { - // Helper function to help reduce lines of code. Returns the list of grids - // in overview mode. - auto grids = [this]() -> const std::vector<std::unique_ptr<OverviewGrid>>& { - EXPECT_TRUE(overview_session()); - return overview_session()->grid_list_for_testing(); - }; - +// indicator on the primary grid if there are no windows. +TEST_F(OverviewSessionTest, NoWindowsIndicatorPositionMultiDisplay) { UpdateDisplay("400x400,400x400,400x400"); - // Enter overview mode. Verify that the no windows indicator is visible on the - // primary display but not on the other two. + // Enter overview mode. Verify that the no windows indicator is located on the + // primary display. ToggleOverview(); - base::RunLoop().RunUntilIdle(); ASSERT_TRUE(overview_session()); - ASSERT_EQ(3u, grids().size()); - EXPECT_TRUE(grids()[0]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[1]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[2]->IsNoItemsIndicatorLabelVisibleForTesting()); - ToggleOverview(); + views::Widget* no_windows_widget = + overview_session()->no_windows_widget_for_testing(); + const int expected_y = (400 - ShelfConstants::shelf_size()) / 2; + EXPECT_EQ(gfx::Point(200, expected_y), + no_windows_widget->GetWindowBoundsInScreen().CenterPoint()); +} + +// Tests that we do not exit overview mode until all the grids are empty. +TEST_F(OverviewSessionTest, ExitOverviewWhenAllGridsEmpty) { + UpdateDisplay("400x400,400x400,400x400"); // Create two windows with widgets (widgets are needed to close the windows // later in the test), one each on the first two monitors. @@ -1731,15 +1740,10 @@ // Enter overview mode. Verify that the no windows indicator is not visible on // any display. ToggleOverview(); - base::RunLoop().RunUntilIdle(); + auto& grids = overview_session()->grid_list_for_testing(); ASSERT_TRUE(overview_session()); - ASSERT_EQ(3u, grids().size()); - EXPECT_FALSE(grids()[0]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[1]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[2]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[0]->empty()); - EXPECT_FALSE(grids()[1]->empty()); - EXPECT_TRUE(grids()[2]->empty()); + ASSERT_EQ(3u, grids.size()); + EXPECT_FALSE(overview_session()->no_windows_widget_for_testing()); OverviewItem* item1 = GetWindowItemForWindow(0, window1); OverviewItem* item2 = GetWindowItemForWindow(1, window2); @@ -1750,13 +1754,11 @@ item2->CloseWindow(); base::RunLoop().RunUntilIdle(); ASSERT_TRUE(overview_session()); - ASSERT_EQ(3u, grids().size()); - EXPECT_FALSE(grids()[0]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[1]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[2]->IsNoItemsIndicatorLabelVisibleForTesting()); - EXPECT_FALSE(grids()[0]->empty()); - EXPECT_TRUE(grids()[1]->empty()); - EXPECT_TRUE(grids()[2]->empty()); + ASSERT_EQ(3u, grids.size()); + EXPECT_FALSE(grids[0]->empty()); + EXPECT_TRUE(grids[1]->empty()); + EXPECT_TRUE(grids[2]->empty()); + EXPECT_FALSE(overview_session()->no_windows_widget_for_testing()); // Close |item1|. Verify that since no windows are open, we exit overview // mode.
diff --git a/ash/wm/overview/scoped_overview_animation_settings.cc b/ash/wm/overview/scoped_overview_animation_settings.cc index 203b97e..1b7417f 100644 --- a/ash/wm/overview/scoped_overview_animation_settings.cc +++ b/ash/wm/overview/scoped_overview_animation_settings.cc
@@ -75,7 +75,7 @@ return kHomeLauncherTransition; case OVERVIEW_ANIMATION_DROP_TARGET_FADE_IN: return kDropTargetFadeIn; - case OVERVIEW_ANIMATION_SHIELD_FADE: + case OVERVIEW_ANIMATION_NO_RECENTS_FADE: case OVERVIEW_ANIMATION_SELECTION_WINDOW_SHADOW: case OVERVIEW_ANIMATION_SELECTION_WINDOW: return kOverviewSelectorTransition; @@ -146,7 +146,7 @@ case OVERVIEW_ANIMATION_NONE: case OVERVIEW_ANIMATION_LAYOUT_OVERVIEW_ITEMS_IN_OVERVIEW: case OVERVIEW_ANIMATION_DROP_TARGET_FADE_IN: - case OVERVIEW_ANIMATION_SHIELD_FADE: + case OVERVIEW_ANIMATION_NO_RECENTS_FADE: case OVERVIEW_ANIMATION_SELECTION_WINDOW_SHADOW: case OVERVIEW_ANIMATION_SELECTION_WINDOW: case OVERVIEW_ANIMATION_OVERVIEW_TITLE_FADE_IN: @@ -237,7 +237,7 @@ animation_settings_->SetPreemptionStrategy( ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET); break; - case OVERVIEW_ANIMATION_SHIELD_FADE: + case OVERVIEW_ANIMATION_NO_RECENTS_FADE: case OVERVIEW_ANIMATION_SELECTION_WINDOW_SHADOW: animation_settings_->SetTweenType(gfx::Tween::EASE_IN_OUT); animation_settings_->SetPreemptionStrategy(
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h index dce0b7c..5b6ecdcd 100644 --- a/ash/wm/splitview/split_view_controller.h +++ b/ash/wm/splitview/split_view_controller.h
@@ -112,6 +112,8 @@ // are adjusted to its minimum size if the desired bounds are smaller than // its minumum bounds. Note: the snapped window bounds can't be pushed // outside of the workspace area. + // TODO(xdai): Investigate if we need to pass in |window| as splitview windows + // should always be parented to the primary root window. gfx::Rect GetSnappedWindowBoundsInParent(aura::Window* window, SnapPosition snap_position); gfx::Rect GetSnappedWindowBoundsInScreen(aura::Window* window,
diff --git a/base/containers/span.h b/base/containers/span.h index dec35136..c22d51f 100644 --- a/base/containers/span.h +++ b/base/containers/span.h
@@ -10,17 +10,19 @@ #include <algorithm> #include <array> #include <iterator> +#include <limits> #include <type_traits> #include <utility> #include "base/containers/checked_iterators.h" #include "base/logging.h" +#include "base/macros.h" #include "base/stl_util.h" namespace base { // [views.constants] -constexpr size_t dynamic_extent = static_cast<size_t>(-1); +constexpr size_t dynamic_extent = std::numeric_limits<size_t>::max(); template <typename T, size_t Extent = dynamic_extent> class span; @@ -106,6 +108,7 @@ public: constexpr explicit ExtentStorage(size_t size) noexcept {} constexpr size_t size() const noexcept { return Extent; } + constexpr void swap(ExtentStorage& other) noexcept {} }; // Specialization of ExtentStorage for dynamic extents, which do require @@ -114,6 +117,12 @@ struct ExtentStorage<dynamic_extent> { constexpr explicit ExtentStorage(size_t size) noexcept : size_(size) {} constexpr size_t size() const noexcept { return size_; } + constexpr void swap(ExtentStorage& other) noexcept { + // Note: Can't use std::swap here, as it's not constexpr prior to C++20. + size_t size = size_; + size_ = other.size_; + other.size_ = size; + } private: size_t size_; @@ -176,32 +185,25 @@ // std::vector<const int*> => base::span<const int*> // const std::vector<const int*> => base::span<const int* const> // -// Differences from the working group proposal -// ------------------------------------------- +// Differences from the C++20 draft +// -------------------------------- // -// https://wg21.link/P0122 is the latest working group proposal, Chromium -// currently implements R7. Differences between the proposal and the -// implementation are documented in subsections below. +// http://eel.is/c++draft/views contains the latest C++20 draft of std::span. +// Chromium tries to follow the draft as close as possible. Differences between +// the draft and the implementation are documented in subsections below. // // Differences from [span.objectrep]: // - as_bytes() and as_writable_bytes() return spans of uint8_t instead of -// std::byte -// -// Differences in constants and types: -// - index_type is aliased to size_t +// std::byte (std::byte is a C++17 feature) // // Differences from [span.cons]: // - Constructing a static span (i.e. Extent != dynamic_extent) from a dynamic -// sized container (e.g. std::vector) requires an explicit conversion. -// -// Differences from [span.sub]: -// - using size_t instead of ptrdiff_t for indexing +// sized container (e.g. std::vector) requires an explicit conversion (in the +// C++20 draft this is simply UB) // // Differences from [span.obs]: -// - using size_t instead of ptrdiff_t to represent size() -// -// Differences from [span.elem]: -// - using size_t instead of ptrdiff_t for indexing +// - empty() is marked with WARN_UNUSED_RESULT instead of [[nodiscard]] +// ([[nodiscard]] is a C++17 feature) // // Furthermore, all constructors and methods are marked noexcept due to the lack // of exceptions in Chromium. @@ -375,7 +377,9 @@ // [span.obs], span observers constexpr size_t size() const noexcept { return ExtentStorage::size(); } constexpr size_t size_bytes() const noexcept { return size() * sizeof(T); } - constexpr bool empty() const noexcept { return size() == 0; } + constexpr bool empty() const noexcept WARN_UNUSED_RESULT { + return size() == 0; + } // [span.elem], span element access constexpr T& operator[](size_t idx) const noexcept { @@ -384,10 +388,18 @@ return *(data() + idx); } - constexpr T& operator()(size_t idx) const noexcept { - // Note: CHECK_LT is not constexpr, hence regular CHECK must be used. - CHECK(idx < size()); - return *(data() + idx); + constexpr T& front() const noexcept { + static_assert(Extent == dynamic_extent || Extent > 0, + "Extent must not be 0"); + CHECK(Extent != dynamic_extent || !empty()); + return *data(); + } + + constexpr T& back() const noexcept { + static_assert(Extent == dynamic_extent || Extent > 0, + "Extent must not be 0"); + CHECK(Extent != dynamic_extent || !empty()); + return *(data() + size() - 1); } constexpr T* data() const noexcept { return data_; } @@ -415,6 +427,15 @@ return const_reverse_iterator(cbegin()); } + constexpr void swap(span& other) noexcept { + // Note: Can't use std::swap here, as it's not constexpr prior to C++20. + T* data = data_; + data_ = other.data_; + other.data_ = data; + + ExtentStorage::swap(other); + } + private: T* data_; }; @@ -439,6 +460,11 @@ return {reinterpret_cast<uint8_t*>(s.data()), s.size_bytes()}; } +template <typename T, size_t X> +constexpr void swap(span<T, X>& lhs, span<T, X>& rhs) noexcept { + lhs.swap(rhs); +} + // Type-deducing helpers for constructing a span. template <typename T> constexpr span<T> make_span(T* data, size_t size) noexcept { @@ -504,4 +530,51 @@ } // namespace base +// Note: std::tuple_size, std::tuple_element and std::get are specialized for +// static spans, so that they can be used in C++17's structured bindings. While +// we don't support C++17 yet, there is no harm in providing these +// specializations already. +namespace std { + +// [span.tuple], tuple interface +#if defined(__clang__) +// Due to https://llvm.org/PR39871 and https://llvm.org/PR41331 and their +// respective fixes different versions of libc++ declare std::tuple_size and +// std::tuple_element either as classes or structs. In order to be able to +// specialize std::tuple_size and std::tuple_element for custom base types we +// thus need to disable -Wmismatched-tags in order to support all build +// configurations. Note that this is blessed by the standard in +// https://timsong-cpp.github.io/cppwp/n4140/dcl.type.elab#3. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wmismatched-tags" +#endif +template <typename T, size_t X> +struct tuple_size<base::span<T, X>> : public integral_constant<size_t, X> {}; + +template <typename T> +struct tuple_size<base::span<T, base::dynamic_extent>>; // not defined + +template <size_t I, typename T, size_t X> +struct tuple_element<I, base::span<T, X>> { + static_assert( + base::dynamic_extent != X, + "std::tuple_element<> not supported for base::span<T, dynamic_extent>"); + static_assert(I < X, + "Index out of bounds in std::tuple_element<> (base::span)"); + using type = T; +}; +#if defined(__clang__) +#pragma clang diagnostic pop // -Wmismatched-tags +#endif + +template <size_t I, typename T, size_t X> +constexpr T& get(base::span<T, X> s) noexcept { + static_assert(base::dynamic_extent != X, + "std::get<> not supported for base::span<T, dynamic_extent>"); + static_assert(I < X, "Index out of bounds in std::get<> (base::span)"); + return s[I]; +} + +} // namespace std + #endif // BASE_CONTAINERS_SPAN_H_
diff --git a/base/containers/span_unittest.cc b/base/containers/span_unittest.cc index 1af0d3b3..0705a97 100644 --- a/base/containers/span_unittest.cc +++ b/base/containers/span_unittest.cc
@@ -876,17 +876,68 @@ static constexpr int kArray[] = {1, 6, 1, 8, 0}; constexpr span<const int> span(kArray); - static_assert(kArray[0] == span[0], "span[0] does not equal kArray[0]"); - static_assert(kArray[1] == span[1], "span[1] does not equal kArray[1]"); - static_assert(kArray[2] == span[2], "span[2] does not equal kArray[2]"); - static_assert(kArray[3] == span[3], "span[3] does not equal kArray[3]"); - static_assert(kArray[4] == span[4], "span[4] does not equal kArray[4]"); + static_assert(&kArray[0] == &span[0], + "span[0] does not refer to the same element as kArray[0]"); + static_assert(&kArray[1] == &span[1], + "span[1] does not refer to the same element as kArray[1]"); + static_assert(&kArray[2] == &span[2], + "span[2] does not refer to the same element as kArray[2]"); + static_assert(&kArray[3] == &span[3], + "span[3] does not refer to the same element as kArray[3]"); + static_assert(&kArray[4] == &span[4], + "span[4] does not refer to the same element as kArray[4]"); +} - static_assert(kArray[0] == span(0), "span(0) does not equal kArray[0]"); - static_assert(kArray[1] == span(1), "span(1) does not equal kArray[1]"); - static_assert(kArray[2] == span(2), "span(2) does not equal kArray[2]"); - static_assert(kArray[3] == span(3), "span(3) does not equal kArray[3]"); - static_assert(kArray[4] == span(4), "span(4) does not equal kArray[4]"); +TEST(SpanTest, Front) { + static constexpr int kArray[] = {1, 6, 1, 8, 0}; + constexpr span<const int> span(kArray); + static_assert(&kArray[0] == &span.front(), + "span.front() does not refer to the same element as kArray[0]"); +} + +TEST(SpanTest, Back) { + static constexpr int kArray[] = {1, 6, 1, 8, 0}; + constexpr span<const int> span(kArray); + static_assert(&kArray[4] == &span.back(), + "span.back() does not refer to the same element as kArray[4]"); +} + +TEST(SpanTest, Swap) { + { + static int kArray1[] = {1, 1}; + static int kArray2[] = {1, 2}; + span<const int, 2> static_span1(kArray1); + span<const int, 2> static_span2(kArray2); + + EXPECT_EQ(kArray1, static_span1.data()); + EXPECT_EQ(kArray2, static_span2.data()); + + swap(static_span1, static_span2); + + EXPECT_EQ(kArray2, static_span1.data()); + EXPECT_EQ(kArray1, static_span2.data()); + } + + { + static int kArray1[] = {1}; + static int kArray2[] = {1, 2}; + span<const int> dynamic_span1(kArray1); + span<const int> dynamic_span2(kArray2); + + EXPECT_EQ(kArray1, dynamic_span1.data()); + EXPECT_EQ(1u, dynamic_span1.size()); + + EXPECT_EQ(kArray2, dynamic_span2.data()); + EXPECT_EQ(2u, dynamic_span2.size()); + + swap(dynamic_span1, dynamic_span2); + + EXPECT_EQ(kArray2, dynamic_span1.data()); + EXPECT_EQ(2u, dynamic_span1.size()); + + EXPECT_EQ(kArray1, dynamic_span2.data()); + EXPECT_EQ(1u, dynamic_span2.size()); + } } TEST(SpanTest, Iterator) { @@ -1053,6 +1104,46 @@ "make_span(span) should have the same extent as span"); } +TEST(SpanTest, StdTupleSize) { + static_assert(std::tuple_size<span<int, 0>>::value == 0, ""); + static_assert(std::tuple_size<span<int, 1>>::value == 1, ""); + static_assert(std::tuple_size<span<int, 2>>::value == 2, ""); +} + +TEST(SpanTest, StdTupleElement) { + static_assert(std::is_same<int, std::tuple_element_t<0, span<int, 1>>>::value, + ""); + static_assert( + std::is_same<const int, + std::tuple_element_t<0, span<const int, 2>>>::value, + ""); + static_assert( + std::is_same<const int*, + std::tuple_element_t<1, span<const int*, 2>>>::value, + ""); +} + +TEST(SpanTest, StdGet) { + static constexpr int kArray[] = {1, 6, 1, 8, 0}; + constexpr span<const int, 5> span(kArray); + + static_assert( + &kArray[0] == &std::get<0>(span), + "std::get<0>(span) does not refer to the same element as kArray[0]"); + static_assert( + &kArray[1] == &std::get<1>(span), + "std::get<1>(span) does not refer to the same element as kArray[1]"); + static_assert( + &kArray[2] == &std::get<2>(span), + "std::get<2>(span) does not refer to the same element as kArray[2]"); + static_assert( + &kArray[3] == &std::get<3>(span), + "std::get<3>(span) does not refer to the same element as kArray[3]"); + static_assert( + &kArray[4] == &std::get<4>(span), + "std::get<4>(span) does not refer to the same element as kArray[4]"); +} + TEST(SpanTest, EnsureConstexprGoodness) { static constexpr int kArray[] = {5, 4, 3, 2, 1}; constexpr span<const int> constexpr_span(kArray); @@ -1083,13 +1174,15 @@ ASSERT_DEATH_IF_SUPPORTED(kEmptySpan[0], ""); - ASSERT_DEATH_IF_SUPPORTED(kEmptySpan(0), ""); - ASSERT_DEATH_IF_SUPPORTED(kEmptySpan.first(1), ""); ASSERT_DEATH_IF_SUPPORTED(kEmptySpan.last(1), ""); ASSERT_DEATH_IF_SUPPORTED(kEmptySpan.subspan(1), ""); + + constexpr span<int> kEmptyDynamicSpan; + ASSERT_DEATH_IF_SUPPORTED(kEmptyDynamicSpan.front(), ""); + ASSERT_DEATH_IF_SUPPORTED(kEmptyDynamicSpan.back(), ""); } TEST(SpanTest, IteratorIsRangeMoveSafe) {
diff --git a/base/containers/span_unittest.nc b/base/containers/span_unittest.nc index a37ad5d..9859495 100644 --- a/base/containers/span_unittest.nc +++ b/base/containers/span_unittest.nc
@@ -162,6 +162,40 @@ auto subspan = span.subspan<0, 4>(); } +#elif defined(NCTEST_DISCARD_RETURN_OF_EMPTY_DISALLOWED) // [r"ignoring return value of function"] + +// Discarding the return value of empty() is not allowed. +void WontCompile() { + span<int> s; + s.empty(); +} + +#elif defined(NCTEST_FRONT_ON_EMPTY_STATIC_SPAN_DISALLOWED) // [r"Extent must not be 0"] + +// Front called on an empty span with static extent is not allowed. +void WontCompile() { + span<int, 0> s; + s.front(); +} + +#elif defined(NCTEST_BACK_ON_EMPTY_STATIC_SPAN_DISALLOWED) // [r"Extent must not be 0"] + +// Back called on an empty span with static extent is not allowed. +void WontCompile() { + span<int, 0> s; + s.back(); +} + +#elif defined(NCTEST_SWAP_WITH_DIFFERENT_EXTENTS_DISALLOWED) // [r"no matching function for call to 'swap'"] + +// Calling swap on spans with different extents is not allowed. +void WontCompile() { + std::array<int, 3> array = {1, 2, 3}; + span<int, 3> static_span(array); + span<int> dynamic_span(array); + std::swap(static_span, dynamic_span); +} + #elif defined(NCTEST_AS_WRITABLE_BYTES_WITH_CONST_CONTAINER_DISALLOWED) // [r"fatal error: no matching function for call to 'as_writable_bytes'"] // as_writable_bytes should not be possible for a const container. @@ -178,6 +212,43 @@ auto span = make_span(set); } +#elif defined(NCTEST_TUPLE_SIZE_WITH_DYNAMIC_SPAN_DISALLOWED) // [r"implicit instantiation of undefined template"] + +// Invoking std::tuple_size on a dynamically sized span is not allowed. +size_t WontCompile() { + return std::tuple_size<span<int>>::value; +} + +#elif defined(NCTEST_TUPLE_ELEMENT_WITH_DYNAMIC_SPAN_DISALLOWED) // [r"std::tuple_element<> not supported for base::span<T, dynamic_extent>"] + +// Invoking std::tuple_element on a dynamically elementd span is not allowed. +void WontCompile() { + std::tuple_element<0, span<int>>::type value; +} + +#elif defined(NCTEST_TUPLE_ELEMENT_WITH_INDEX_OUT_OF_BOUNDS_DISALLOWED) // [r"Index out of bounds in std::tuple_element<> \(base::span\)"] + +// Invoking std::tuple_element with an out of bound index is not allowed. +void WontCompile() { + std::tuple_element<0, span<int, 0>>::type value; +} + +#elif defined(NCTEST_GET_WITH_DYNAMIC_SPAN_DISALLOWED) // [r"std::get<> not supported for base::span<T, dynamic_extent>"] + +// Invoking std::get on a dynamically elementd span is not allowed. +int WontCompile() { + span<int> s; + return std::get<0>(s); +} + +#elif defined(NCTEST_GET_WITH_INDEX_OUT_OF_BOUNDS_DISALLOWED) // [r"Index out of bounds in std::get<> \(base::span\)"] + +// Invoking std::get with an out of bound index is not allowed. +int WontCompile() { + span<int, 0> s; + return std::get<0>(s); +} + #endif } // namespace base
diff --git a/base/strings/string_number_conversions.h b/base/strings/string_number_conversions.h index 057b60ab..e6fb1828 100644 --- a/base/strings/string_number_conversions.h +++ b/base/strings/string_number_conversions.h
@@ -56,29 +56,6 @@ BASE_EXPORT std::string NumberToString(double value); BASE_EXPORT string16 NumberToString16(double value); -// Type-specific naming for backwards compatibility. -// -// TODO(brettw) these should be removed and callers converted to the overloaded -// "NumberToString" variant. -inline std::string IntToString(int value) { - return NumberToString(value); -} -inline string16 IntToString16(int value) { - return NumberToString16(value); -} -inline std::string UintToString(unsigned value) { - return NumberToString(value); -} -inline string16 UintToString16(unsigned value) { - return NumberToString16(value); -} -inline std::string Int64ToString(int64_t value) { - return NumberToString(value); -} -inline string16 Int64ToString16(int64_t value) { - return NumberToString16(value); -} - // String -> number conversions ------------------------------------------------ // Perform a best-effort conversion of the input string to a numeric type,
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h index c83afdf..48dad766 100644 --- a/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h
@@ -168,6 +168,9 @@ namespace functions { class ExecScriptScopedAllowBaseSyncPrimitives; } +namespace history_report { +class HistoryReportJniBridge; +} namespace gpu { class GpuChannelHost; } @@ -390,6 +393,7 @@ friend class content::ServiceWorkerContextClient; friend class content::SessionStorageDatabase; friend class functions::ExecScriptScopedAllowBaseSyncPrimitives; + friend class history_report::HistoryReportJniBridge; friend class internal::TaskTracker; friend class leveldb::LevelDBMojoProxy; friend class leveldb_env::DBTracker;
diff --git a/base/trace_event/trace_config.cc b/base/trace_event/trace_config.cc index e5bc3a58..826fff2e9 100644 --- a/base/trace_event/trace_config.cc +++ b/base/trace_event/trace_config.cc
@@ -335,8 +335,6 @@ } DCHECK_EQ(trace_buffer_size_in_events_, config.trace_buffer_size_in_events_) << "Cannot change trace buffer size"; - DCHECK_EQ(trace_buffer_size_in_kb_, config.trace_buffer_size_in_kb_) - << "Cannot change trace buffer size"; category_filter_.Merge(config.category_filter_); memory_dump_config_.Merge(config.memory_dump_config_);
diff --git a/base/util/OWNERS b/base/util/OWNERS new file mode 100644 index 0000000..9e117aef --- /dev/null +++ b/base/util/OWNERS
@@ -0,0 +1 @@ +ajwong@chromium.org
diff --git a/base/util/README.md b/base/util/README.md new file mode 100644 index 0000000..dc224b10 --- /dev/null +++ b/base/util/README.md
@@ -0,0 +1,118 @@ +# What is this +Contains a written down set of principles and other information on //base/util. +Please add to it! + +## About //base/util: + +This directory is meant to house common utilities that can be shared across the +whole Chromium codebase. //base is similar, but due to the way //base grew over +time, it has not been well organized to allow for fine-grained ownership. Also, +there is a mixture of commonly useful utility code and extremely subtle code +with performance and security implications. The combination of the two lead to +a small number of //base OWNERS enforcing a very high quality bar over a +diverse bag of code. The goal of //base/util is to avoid both these issues. +Over time, functionality in //base proper will sorted into //base/util and +one of two things will occur: + + 1. //base becomes empty and subdirs in //base/util get moved up to //base + 2. A distinct "core" //base module is distilled out. + +We will iterate on this purpose as we add more functionality into this +directory. + +## Structure of //base/util: + + * No files other than README.md, and OWNERS are allowed in the top-level + directory. + * Subdirectories should be named for a class of functionality; it should + be relatively easy to browse the directory and find a utility. + * There is no top-level BUILD.gn. Subdirectories will have their own and + are allowed to reference other subdirectories. + +## Responsibilities of //base/util/OWNERS + + * Creating new categories. + * Helping dedupe and organize code being added. + * Ensuring the directory is somewhat browseable. + +It is specifically NOT the OWNERS job to gatekeep what is a "good pattern" +for Chromium code. Obviously they can still object, but the objection +should be considered similar to any other Chromium dev objection. + +There will be cases when a utility is deemed to be more negative than +positive after it has been landed. The //base/util/OWNERS may aide in +coordinating and tracking removal, but responsibility for actually +deleting the code and its uses falls to the *category* OWNERS. + +## Guidelines for adding code to //base/util/{category} + + * You will be added to an OWNERS file under //base/util/category and be + responsible for maintaining your addition. + * A //base/util/OWNER must approve of the location of your code. + * Code must be needed in at least 2 places in Chrome and have no "higher + layered" directory (eg "//ui/base, //media/base, etc.), that could + facilitate sharing. + * Code must have unittests, and coverage should be > 95%. + * Code must have clear usage documentation for all the APIs. + * Public APIs must be in `::util` namespace. All implementation details + should be in `::util::internal`. Macros, which are not namespaceable, + are permitted but should be used sparingly and cause a small pang of guilt. + * Implementation and expected usage must be understandable by another OWNER + in your subdirectory; if creating a new subdirectory you must find a + co-OWNER. + * New subdirectories should have their own BUILD.gn files. + + +## Why not just put new utilities in //base/FooDir? + +At some point, //base/util directories could get moved back into //base. +Until then, //base/util will + + 1. make a distinct separation between "common useful utility code" from the + "extremely subtle code with performance and security implications" that //base + also houses. + 2. remove //base/OWNERS as a bottleneck. + +The boundary is still a work-in-progress, but should clear itself up with time +after some of the more obviously "utility-esque" classes are moved. + + +## How does this differ from //components +First, //base/util is a layer lower than //components so some code just cannot fit +in components. + +Second, //components contains things are closer to full features or subsystems +(eg autofill, heap profiler, cloud devices, visited link tracker) that are not +really intended for large scale reuse. + +There is some overlap and at some point it will become a judgment call, but +in general, //components are a better fit if the code in question is a feature, +module, or subsystem. //base/util is better if it is a more narrow construct +such as a data structure, coding primitive, etc. + + +## Why not the "Rule-of-3?" + +The [Rule-of-3](https://en.wikipedia.org/wiki/Rule_of_three_%28computer_programming%29) +is a simple guidance on when it makes sense to extract common functionality out +versus duplicating it. It has commonly been used in //base as a way of measuring +"how general" is this functionality. + +Unfortunately, there are reasons for wanting to share code beyond just +cleanliness. For example, if you need to guarantee exact behavior across +two modules, duplication is not proper even if there will ever only be 2 +users. + +Furthermore, there is a chicken-and-egg problem that prevents incremental +adoption of a utility. For example, someone introduces ThingerDoer in +//foo/bar. Later, ThingerDoer is wanted in //foo/qux, but this still fails +the rule-of-3 test, MyDoer is created. When //foo/waldo wants it, it's +completely a game of chance whether or not the CL author manages to find +both classes, wants to spend the time to determine if they've diverged, +and then tries to abstract it. + +As such, the rule-of-3 runs contrary to the goal of sharing that +//base/util is designed to facilitate. + +## Tips + * if doing a mass-move of code, look at `//tools/git/mass-rename.py`
diff --git a/build/android/gyp/write_build_config.py b/build/android/gyp/write_build_config.py index ec273c63c..72bcec92 100755 --- a/build/android/gyp/write_build_config.py +++ b/build/android/gyp/write_build_config.py
@@ -939,6 +939,11 @@ help='Dump the Markdown .build_config format documentation ' 'then exit immediately.') + parser.add_option( + '--base-module-build-config', + help='Path to the base module\'s build config ' + 'if this is a feature module.') + options, args = parser.parse_args(argv) if args: @@ -1049,6 +1054,11 @@ all_resources_deps = deps.All('android_resources') all_classpath_library_deps = classpath_deps.All('java_library') + base_module_build_config = None + if options.base_module_build_config: + with open(options.base_module_build_config, 'r') as f: + base_module_build_config = json.load(f) + # Initialize some common config. # Any value that needs to be queryable by dependents must go within deps_info. config = { @@ -1233,16 +1243,36 @@ 'android_resources', 'android_apk', 'junit_binary', 'resource_rewriter', 'dist_aar', 'android_app_bundle_module'): config['resources'] = {} - config['resources']['dependency_zips'] = [ - c['resources_zip'] for c in all_resources_deps] + + dependency_zips = [ + c['resources_zip'] for c in all_resources_deps if c['resources_zip'] + ] extra_package_names = [] extra_r_text_files = [] + if options.type != 'android_resources': extra_package_names = [ c['package_name'] for c in all_resources_deps if 'package_name' in c] extra_r_text_files = [ c['r_text'] for c in all_resources_deps if 'r_text' in c] + # For feature modules, remove any resources that already exist in the base + # module. + if base_module_build_config: + dependency_zips = [ + c for c in dependency_zips + if c not in base_module_build_config['resources']['dependency_zips'] + ] + extra_package_names = [ + c for c in extra_package_names if c not in + base_module_build_config['resources']['extra_package_names'] + ] + extra_r_text_files = [ + c for c in extra_r_text_files if c not in + base_module_build_config['resources']['extra_r_text_files'] + ] + + config['resources']['dependency_zips'] = dependency_zips config['resources']['extra_package_names'] = extra_package_names config['resources']['extra_r_text_files'] = extra_r_text_files
diff --git a/build/android/pylib/gtest/filter/content_browsertests_disabled b/build/android/pylib/gtest/filter/content_browsertests_disabled index bc7992d..974f131 100644 --- a/build/android/pylib/gtest/filter/content_browsertests_disabled +++ b/build/android/pylib/gtest/filter/content_browsertests_disabled
@@ -15,14 +15,14 @@ CrossPlatformAccessibilityBrowserTest.SelectedEditableTextAccessibility # http://crbug.com/297230 -DumpAccessibilityTreeTest.AccessibilityAriaLevel -DumpAccessibilityTreeTest.AccessibilityAriaProgressbar -DumpAccessibilityTreeTest.AccessibilityListMarkers -DumpAccessibilityTreeTest.AccessibilityUl -DumpAccessibilityTreeTest.AccessibilityCanvas -DumpAccessibilityTreeTest.AccessibilityDialog -DumpAccessibilityTreeTest.AccessibilityModalDialogClosed -DumpAccessibilityTreeTest.AccessibilityModalDialogInIframeOpened +DumpAccessibilityTreeTest.AccessibilityAriaLevel/* +DumpAccessibilityTreeTest.AccessibilityAriaProgressbar/* +DumpAccessibilityTreeTest.AccessibilityListMarkers/* +DumpAccessibilityTreeTest.AccessibilityUl/* +DumpAccessibilityTreeTest.AccessibilityCanvas/* +DumpAccessibilityTreeTest.AccessibilityDialog/* +DumpAccessibilityTreeTest.AccessibilityModalDialogClosed/* +DumpAccessibilityTreeTest.AccessibilityModalDialogInIframeOpened/* RenderAccessibilityImplTest.DetachAccessibilityObject # http://crbug.com/187500
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni index 4a93841..d8701eb 100644 --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni
@@ -143,6 +143,9 @@ if (defined(invoker.android_manifest_dep)) { deps += [ invoker.android_manifest_dep ] } + if (defined(invoker.base_module_build_config_target)) { + deps += [ invoker.base_module_build_config_target ] + } script = "//build/android/gyp/write_build_config.py" depfile = "$target_gen_dir/$target_name.d" @@ -477,6 +480,12 @@ invoker.main_class, ] } + if (defined(invoker.base_module_build_config)) { + _rebased_base_module_build_config = + rebase_path(invoker.base_module_build_config, root_build_dir) + args += + [ "--base-module-build-config=$_rebased_base_module_build_config" ] + } if (current_toolchain != default_toolchain) { # This has to be a built-time error rather than a GN assert because many # packages have a mix of java and non-java targets. For example, the @@ -3346,8 +3355,10 @@ if (type == "android_app_bundle_module") { forward_variables_from(invoker, [ - "proto_resources_path", + "base_module_build_config", + "base_module_build_config_target", "module_rtxt_path", + "proto_resources_path", ]) } build_config = _build_config
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index 0334c9e..dc13739 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni
@@ -2587,6 +2587,8 @@ "android_manifest", "android_manifest_dep", "apk_under_test", + "base_module_build_config", + "base_module_build_config_target", "chromium_code", "classpath_deps", "emma_never_instrument", @@ -3294,10 +3296,15 @@ _base_module_target_gen_dir = get_label_info(_base_module_target, "target_gen_dir") _base_module_target_name = get_label_info(_base_module_target, "name") + base_module_arsc_resource = "$_base_module_target_gen_dir/$_base_module_target_name.arsc.ap_" base_module_arsc_resource_target = "${_base_module_target}__compile_arsc_resources" + base_module_build_config = "$_base_module_target_gen_dir/" + + "$_base_module_target_name.build_config" + base_module_build_config_target = + "${_base_module_target}$build_config_target_suffix" } } }
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 135afd4..8eb4bd9 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8917360298180921408 \ No newline at end of file +8917340288433684704 \ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index eb04e63a..f6581a13 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -8917359526395057648 \ No newline at end of file +8917337664716354304 \ No newline at end of file
diff --git a/build/fuchsia/symbolizer.py b/build/fuchsia/symbolizer.py index e239945..83ba73e1 100644 --- a/build/fuchsia/symbolizer.py +++ b/build/fuchsia/symbolizer.py
@@ -32,7 +32,10 @@ stdin=input_fd, close_fds=True) - for line in symbolizer_proc.stdout: + while True: + line = symbolizer_proc.stdout.readline() + if not line: + break yield line symbolizer_proc.wait()
diff --git a/build/sanitizers/tsan_suppressions.cc b/build/sanitizers/tsan_suppressions.cc index f845013e..6d59a29 100644 --- a/build/sanitizers/tsan_suppressions.cc +++ b/build/sanitizers/tsan_suppressions.cc
@@ -204,9 +204,6 @@ // http://crbug.com/797998 "race:content::SandboxIPCHandler::HandleLocaltime\n" - // https://crbug.com/946481 - "race:content::DumpAccessibilityTestBase::RunTestForPlatform\n" - // End of suppressions. ; // Please keep this semicolon.
diff --git a/build/util/android_chrome_version.py b/build/util/android_chrome_version.py index 75b22da..f9d91fc1b 100644 --- a/build/util/android_chrome_version.py +++ b/build/util/android_chrome_version.py
@@ -67,6 +67,7 @@ ARCH_CHOICES = ARCH_VERSION_CODE_DIFF.keys() """ "Next" builds get +5 last version code digit. + We choose 5 because it won't conflict with values in ANDROID_CHROME_APK_VERSION_CODE_DIFFS @@ -78,6 +79,29 @@ """ NEXT_BUILD_VERSION_CODE_DIFF = 100005 +"""For 64-bit architectures, some packages have multiple targets with version +codes that differ by the second-to-last digit (the architecture digit). This is +for various combinations of 32-bit vs 64-bit chrome and webview. The +default/traditional configuration is 32-bit chrome with 64-bit webview, but we +are adding: ++ 64-bit chrome with 32-bit webview ++ 64-bit combined Chrome and Webview (only one library) ++ (maybe someday 32-bit chrome with 32-bit webview) + +The naming scheme followed here is <chrome>_<webview>, +e.g. 64_32 is 64-bit chrome with 32-bit webview. +""" +ARCH64_APK_VARIANTS = { + '64_32': { + 'PACKAGES': frozenset(['MONOCHROME']), + 'MODIFIER': 10 + }, + '64': { + 'PACKAGES': frozenset(['MONOCHROME']), + 'MODIFIER': 20 + } +} + def GenerateVersionCodes(version_values, arch, is_next_build): """Get dict of version codes for chrome-for-android-related targets @@ -114,6 +138,16 @@ version_codes = {} for apk, diff in ANDROID_CHROME_APK_VERSION_CODE_DIFFS.iteritems(): - version_codes[apk + '_VERSION_CODE'] = str(new_version_code + diff) + version_code_name = apk + '_VERSION_CODE' + version_code_val = new_version_code + diff + version_codes[version_code_name] = str(version_code_val) + + if arch == 'arm64' or arch == 'x64': + for variant, config in ARCH64_APK_VARIANTS.iteritems(): + if apk in config['PACKAGES']: + variant_name = apk + '_' + variant + '_VERSION_CODE' + variant_val = version_code_val + config['MODIFIER'] + version_codes[variant_name] = str(variant_val) + return version_codes
diff --git a/build/util/android_chrome_version_test.py b/build/util/android_chrome_version_test.py index 0377c45..69091af1 100644 --- a/build/util/android_chrome_version_test.py +++ b/build/util/android_chrome_version_test.py
@@ -144,6 +144,20 @@ self.assertEqual(arch_chrome_version_code, '372000030') + def testGenerateVersionCodesAndroidArchArm64Variants(self): + """Assert it handles 64-bit-specific additional version codes correctly. + + Some additional version codes are generated for 64-bit architectures. + See docstring on android_chrome_version.ARCH64_APK_VARIANTS for more info. + """ + output = GenerateVersionCodes( + self.EXAMPLE_VERSION_VALUES, arch='arm64', is_next_build=False) + arch_monochrome_64_32_version_code = output['MONOCHROME_64_32_VERSION_CODE'] + arch_monochrome_64_version_code = output['MONOCHROME_64_VERSION_CODE'] + + self.assertEqual(arch_monochrome_64_32_version_code, '372000042') + self.assertEqual(arch_monochrome_64_version_code, '372000052') + def testGenerateVersionCodesAndroidArchX64(self): """Assert it handles different architectures correctly. @@ -158,6 +172,20 @@ self.assertEqual(arch_chrome_version_code, '372000060') + def testGenerateVersionCodesAndroidArchX64Variants(self): + """Assert it handles 64-bit-specific additional version codes correctly. + + Some additional version codes are generated for 64-bit architectures. + See docstring on android_chrome_version.ARCH64_APK_VARIANTS for more info. + """ + output = GenerateVersionCodes( + self.EXAMPLE_VERSION_VALUES, arch='x64', is_next_build=False) + arch_monochrome_64_32_version_code = output['MONOCHROME_64_32_VERSION_CODE'] + arch_monochrome_64_version_code = output['MONOCHROME_64_VERSION_CODE'] + + self.assertEqual(arch_monochrome_64_32_version_code, '372000072') + self.assertEqual(arch_monochrome_64_version_code, '372000082') + def testGenerateVersionCodesAndroidArchOrderArm(self): """Assert it handles different architectures correctly.
diff --git a/build/util/version.gni b/build/util/version.gni index 70cc6b8..2d958c6 100644 --- a/build/util/version.gni +++ b/build/util/version.gni
@@ -46,6 +46,12 @@ "notouch_chrome_version_code = \"@NOTOUCH_CHROME_VERSION_CODE@\" " + "webview_version_code = \"@WEBVIEW_VERSION_CODE@\" " + if (target_cpu == "arm64" || target_cpu == "x64") { + _version_dictionary_template += + "monochrome_64_32_version_code = \"@MONOCHROME_64_32_VERSION_CODE@\" " + + "monochrome_64_version_code = \"@MONOCHROME_64_VERSION_CODE@\" " + } + _script_arguments += [ "-a", target_cpu, @@ -94,18 +100,28 @@ "trichrome_version_code", "notouch_chrome_version_code", "webview_version_code", + "monochrome_64_32_version_code", + "monochrome_64_version_code", ]) chrome_version_name = chrome_version_full - write_file("$root_out_dir/chrome_versions.txt", - [ - "VersionName=$chrome_version_name", - "Chrome=$chrome_version_code", - "ChromeModern=$chrome_modern_version_code", - "Monochrome=$monochrome_version_code", - "TrichromeChrome=$trichrome_version_code", - "NoTouchChrome=$notouch_chrome_version_code", - "Webview=$webview_version_code", - ]) + lines_to_write = [ + "VersionName=$chrome_version_name", + "Chrome=$chrome_version_code", + "ChromeModern=$chrome_modern_version_code", + "Monochrome=$monochrome_version_code", + "TrichromeChrome=$trichrome_version_code", + "NoTouchChrome=$notouch_chrome_version_code", + "Webview=$webview_version_code", + ] + + if (target_cpu == "arm64" || target_cpu == "x64") { + lines_to_write += [ + "Monochrome_64_32=$monochrome_64_32_version_code", + "Monochrome_64=$monochrome_64_version_code", + ] + } + + write_file("$root_out_dir/chrome_versions.txt", lines_to_write) }
diff --git a/build/util/version_test.py b/build/util/version_test.py index 02a7a1ab..ea15c488 100644 --- a/build/util/version_test.py +++ b/build/util/version_test.py
@@ -110,6 +110,40 @@ self.assertRegexpMatches(contents, r'\btrichrome_version_code = "\d+"\s') self.assertRegexpMatches(contents, r'\bwebview_version_code = "\d+"\s') + def testBuildOutputAndroidArchVariantsArm64(self): + """Assert 64-bit-specific version codes""" + new_template = ( + self._EXAMPLE_ANDROID_TEMPLATE + + "monochrome_64_32_version_code = \"@MONOCHROME_64_32_VERSION_CODE@\" " + "monochrome_64_version_code = \"@MONOCHROME_64_VERSION_CODE@\" ") + args_with_template = _ReplaceArgs(self._EXAMPLE_ANDROID_ARGS, + ['-t', new_template]) + new_args = _ReplaceArgs(args_with_template, ['-a', 'arm64']) + output = self._RunBuildOutput(get_new_args=lambda args: new_args) + contents = output['contents'] + + self.assertRegexpMatches(contents, + r'\bmonochrome_64_32_version_code = "\d+"\s') + self.assertRegexpMatches(contents, + r'\bmonochrome_64_version_code = "\d+"\s') + + def testBuildOutputAndroidArchVariantsX64(self): + """Assert 64-bit-specific version codes""" + new_template = ( + self._EXAMPLE_ANDROID_TEMPLATE + + "monochrome_64_32_version_code = \"@MONOCHROME_64_32_VERSION_CODE@\" " + "monochrome_64_version_code = \"@MONOCHROME_64_VERSION_CODE@\" ") + args_with_template = _ReplaceArgs(self._EXAMPLE_ANDROID_ARGS, + ['-t', new_template]) + new_args = _ReplaceArgs(args_with_template, ['-a', 'x64']) + output = self._RunBuildOutput(get_new_args=lambda args: new_args) + contents = output['contents'] + + self.assertRegexpMatches(contents, + r'\bmonochrome_64_32_version_code = "\d+"\s') + self.assertRegexpMatches(contents, + r'\bmonochrome_64_version_code = "\d+"\s') + def testBuildOutputAndroidChromeArchInput(self): """Assert it raises an exception when using an invalid architecture input""" new_args = _ReplaceArgs(self._EXAMPLE_ANDROID_ARGS, ['-a', 'foobar'])
diff --git a/chrome/VERSION b/chrome/VERSION index e0f316c9..02da247 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=75 MINOR=0 -BUILD=3754 +BUILD=3755 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index b968a96..04b692b 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -1732,6 +1732,8 @@ "resource_ids_provider_dep", "target_type", "use_trichrome_library", + "version_code", + "version_name", ]) android_manifest = _android_manifest android_manifest_dep = ":${target_name}__android_manifest" @@ -1761,12 +1763,12 @@ add_unwind_tables_in_apk = _add_unwind_tables_in_chrome_32bit_apk && _needs_arm32_lib && (!defined(use_trichrome_library) || !use_trichrome_library) - - version_name = chrome_version_name } } monochrome_public_apk_or_module_tmpl("monochrome_public_apk") { + version_code = monochrome_version_code + version_name = chrome_version_name apk_name = "MonochromePublic" target_type = "android_apk" @@ -1799,6 +1801,8 @@ } monochrome_public_apk_or_module_tmpl("trichrome_chrome_apk") { + version_code = trichrome_version_code + version_name = chrome_version_name apk_name = "TrichromeChrome" target_type = "android_apk" use_trichrome_library = true @@ -2071,6 +2075,19 @@ _min_sdk_version = 24 } + if (_is_trichrome) { + _version_code = trichrome_version_code + } else if (defined(invoker.is_64_bit_browser) && invoker.is_64_bit_browser) { + if (invoker.build_apk_secondary_abi && invoker.include_32_bit_webview) { + _version_code = monochrome_64_32_version_code + } else { + _version_code = monochrome_64_version_code + } + } else { + _version_code = monochrome_version_code + } + _version_name = chrome_version_name + monochrome_public_apk_or_module_tmpl(_base_module_target_name) { forward_variables_from(invoker, [ @@ -2081,6 +2098,8 @@ module_name = _bundle_name + "Base" target_type = "android_app_bundle_module" is_base_module = true + version_code = _version_code + version_name = _version_name } if (modularize_ar) { @@ -2098,12 +2117,8 @@ module_name = "Ar" + _bundle_name base_module_target = ":$_base_module_target_name" native_switches = _native_switches - if (_is_trichrome) { - version_code = trichrome_version_code - } else { - version_code = monochrome_version_code - } - version_name = chrome_version_name + version_code = _version_code + version_name = _version_name } } @@ -2112,13 +2127,9 @@ manifest_package = manifest_package module_name = "Vr" + _bundle_name base_module_target = ":$_base_module_target_name" - if (_is_trichrome) { - version_code = trichrome_version_code - } else { - version_code = monochrome_version_code - } - version_name = chrome_version_name uncompress_shared_libraries = true + version_code = _version_code + version_name = _version_name } } @@ -2126,13 +2137,9 @@ manifest_package = manifest_package module_name = "TabUiMonochromePublic" base_module_target = ":$_base_module_target_name" - if (_is_trichrome) { - version_code = trichrome_version_code - } else { - version_code = monochrome_version_code - } - version_name = chrome_version_name uncompress_shared_libraries = true + version_code = _version_code + version_name = _version_name } android_app_bundle(target_name) {
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni index d7eb73b..a244711c 100644 --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -291,6 +291,7 @@ _enable_multidex = is_java_debug || multidex_in_release } chrome_public_common_apk_or_module_tmpl(target_name) { + forward_variables_from(invoker, [ "version_code" ]) is_trichrome = defined(invoker.use_trichrome_library) && invoker.use_trichrome_library is_monochrome = !is_trichrome
diff --git a/chrome/android/features/ar/ar_module_tmpl.gni b/chrome/android/features/ar/ar_module_tmpl.gni index 7c6715b..c347dbf 100644 --- a/chrome/android/features/ar/ar_module_tmpl.gni +++ b/chrome/android/features/ar/ar_module_tmpl.gni
@@ -11,6 +11,8 @@ assert(modularize_ar) template("ar_module_tmpl") { + assert(defined(invoker.version_code)) + assert(defined(invoker.version_name)) assert(defined(invoker.manifest_package)) assert(defined(invoker.module_name)) assert(defined(invoker.base_module_target))
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/SilenceLintErrors.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/SilenceLintErrors.java index 80a927e..3e30519 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/SilenceLintErrors.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/SilenceLintErrors.java
@@ -11,25 +11,25 @@ */ /* package */ class SilenceLintErrors { // TODO(yusufo): Add these resources to the DFM - private int[] mRes = - new int[] {R.dimen.tab_grid_favicon_size, R.string.tab_management_module_title, - R.string.iph_tab_groups_quickly_compare_pages_text, - R.string.iph_tab_groups_tap_to_see_another_tab_text, - R.string.iph_tab_groups_your_tabs_together_text, - R.string.bottom_tab_grid_description, R.string.bottom_tab_grid_opened_half, - R.string.bottom_tab_grid_opened_full, R.string.bottom_tab_grid_closed, - R.dimen.tab_list_selected_inset, R.layout.tab_strip_item, - R.drawable.selected_tab_background, R.drawable.tab_grid_card_background, - R.layout.tab_grid_card_item, R.layout.tab_list_recycler_view_layout, - R.layout.bottom_tab_grid_toolbar, R.string.bottom_tab_grid_new_tab, - R.string.bottom_tab_grid_new_tab, R.plurals.bottom_tab_grid_title_placeholder, - R.string.iph_tab_groups_tap_to_see_another_tab_accessibility_text, - R.string.accessibility_bottom_tab_strip_expand_tab_sheet, - R.layout.bottom_tab_strip_toolbar, R.drawable.tabstrip_selected, - R.dimen.tab_list_card_padding, R.dimen.tab_list_mini_card_text_size, - R.dimen.tab_list_mini_card_frame_size, R.dimen.tab_list_mini_card_radius, - R.drawable.tabstrip_favicon_background, R.dimen.swipe_to_dismiss_threshold, - R.dimen.tab_grid_thumbnail_card_default_size}; + private int[] mRes = new int[] {R.dimen.tab_grid_favicon_size, + R.string.tab_management_module_title, + R.string.iph_tab_groups_quickly_compare_pages_text, + R.string.iph_tab_groups_tap_to_see_another_tab_text, + R.string.iph_tab_groups_your_tabs_together_text, R.string.bottom_tab_grid_description, + R.string.bottom_tab_grid_opened_half, R.string.bottom_tab_grid_opened_full, + R.string.bottom_tab_grid_closed, R.dimen.tab_list_selected_inset, + R.layout.tab_strip_item, R.drawable.selected_tab_background, + R.drawable.tab_grid_card_background, R.layout.tab_grid_card_item, + R.layout.tab_list_recycler_view_layout, R.layout.bottom_tab_grid_toolbar, + R.string.bottom_tab_grid_new_tab, R.string.bottom_tab_grid_new_tab, + R.plurals.bottom_tab_grid_title_placeholder, + R.string.iph_tab_groups_tap_to_see_another_tab_accessibility_text, + R.string.accessibility_bottom_tab_strip_expand_tab_sheet, + R.layout.bottom_tab_strip_toolbar, R.drawable.tabstrip_selected, + R.dimen.tab_list_card_padding, R.dimen.tab_list_mini_card_text_size, + R.dimen.tab_list_mini_card_frame_size, R.dimen.tab_list_mini_card_radius, + R.drawable.tabstrip_favicon_background, R.dimen.swipe_to_dismiss_threshold, + R.dimen.tab_grid_thumbnail_card_default_size, R.dimen.tab_list_selected_inset_kitkat}; private SilenceLintErrors() {} }
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java index 9c72df3..0d4499a 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -8,11 +8,11 @@ import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; +import android.os.Build; import android.support.annotation.Nullable; import android.support.v4.content.res.ResourcesCompat; import android.support.v7.widget.RecyclerView.ViewHolder; import android.view.View; -import android.widget.FrameLayout; import org.chromium.base.Callback; import org.chromium.chrome.R; @@ -44,12 +44,23 @@ R.string.accessibility_tabstrip_btn_close_tab, title)); } else if (TabProperties.IS_SELECTED == propertyKey) { Resources res = holder.itemView.getResources(); - Drawable drawable = new InsetDrawable( - ResourcesCompat.getDrawable(res, R.drawable.selected_tab_background, - holder.itemView.getContext().getTheme()), - (int) res.getDimension(R.dimen.tab_list_selected_inset)); - ((FrameLayout) holder.itemView) - .setForeground(item.get(TabProperties.IS_SELECTED) ? drawable : null); + Resources.Theme theme = holder.itemView.getContext().getTheme(); + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) { + Drawable selectedDrawable = new InsetDrawable( + ResourcesCompat.getDrawable(res, R.drawable.selected_tab_background, theme), + (int) res.getDimension(R.dimen.tab_list_selected_inset_kitkat)); + Drawable elevationDrawable = + ResourcesCompat.getDrawable(res, R.drawable.popup_bg, theme); + holder.backgroundView.setVisibility(View.VISIBLE); + holder.backgroundView.setBackground( + item.get(TabProperties.IS_SELECTED) ? selectedDrawable : elevationDrawable); + } else { + Drawable drawable = new InsetDrawable( + ResourcesCompat.getDrawable(res, R.drawable.selected_tab_background, theme), + (int) res.getDimension(R.dimen.tab_list_selected_inset)); + holder.itemView.setForeground( + item.get(TabProperties.IS_SELECTED) ? drawable : null); + } } else if (TabProperties.TAB_SELECTED_LISTENER == propertyKey) { holder.itemView.setOnClickListener(view -> { item.get(TabProperties.TAB_SELECTED_LISTENER).run(holder.getTabId());
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewHolder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewHolder.java index b92ca55e..18a89e2 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewHolder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewHolder.java
@@ -26,6 +26,7 @@ public final ImageView thumbnail; public final ImageView closeButton; public final ButtonCompat createGroupButton; + public final View backgroundView; private int mTabId; private TabGridViewHolder(View itemView) { @@ -37,6 +38,7 @@ DrawableCompat.setTint(this.closeButton.getDrawable(), ApiCompatibilityUtils.getColor(itemView.getResources(), R.color.light_icon_color)); this.createGroupButton = itemView.findViewById(R.id.create_group_button); + this.backgroundView = itemView.findViewById(R.id.background_view); } public static TabGridViewHolder create(ViewGroup parent, int itemViewType) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java index a3d64188..3e4c594 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -315,7 +315,8 @@ super.onChildDraw( c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { - float alpha = 1f - Math.max(0, 0.8f * Math.abs(dX) / swipeToDismissThreshold); + float alpha = + Math.max(0.2f, 1f - 0.8f * Math.abs(dX) / swipeToDismissThreshold); int index = mModel.indexFromId(((TabGridViewHolder) viewHolder).getTabId()); if (index == -1) return;
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java index 9447bdd..30e8700 100644 --- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java +++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewHolderTest.java
@@ -10,6 +10,7 @@ import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.os.Build; import android.support.test.annotation.UiThreadTest; import android.support.test.filters.MediumTest; @@ -22,6 +23,7 @@ import org.junit.runner.RunWith; import org.chromium.base.Callback; +import org.chromium.chrome.R; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ui.DummyUiActivityTestCase; @@ -111,11 +113,24 @@ @MediumTest @UiThreadTest public void testSelected() throws Exception { - mGridModel.set(TabProperties.IS_SELECTED, true); - Assert.assertTrue(((FrameLayout) (mTabGridViewHolder.itemView)).getForeground() != null); - mGridModel.set(TabProperties.IS_SELECTED, false); - Assert.assertFalse(((FrameLayout) (mTabGridViewHolder.itemView)).getForeground() != null); - + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) { + mGridModel.set(TabProperties.IS_SELECTED, true); + Assert.assertTrue( + ((FrameLayout) (mTabGridViewHolder.itemView)).getForeground() != null); + mGridModel.set(TabProperties.IS_SELECTED, false); + Assert.assertFalse( + ((FrameLayout) (mTabGridViewHolder.itemView)).getForeground() != null); + } else { + mGridModel.set(TabProperties.IS_SELECTED, true); + Drawable selectedDrawable = + mTabGridViewHolder.itemView.findViewById(R.id.background_view).getBackground(); + Assert.assertTrue(selectedDrawable != null); + mGridModel.set(TabProperties.IS_SELECTED, false); + Drawable elevationDrawable = + mTabGridViewHolder.itemView.findViewById(R.id.background_view).getBackground(); + Assert.assertTrue(elevationDrawable != null); + Assert.assertNotSame(selectedDrawable, elevationDrawable); + } mStripModel.set(TabProperties.IS_SELECTED, true); Assert.assertTrue(((FrameLayout) (mTabStripViewHolder.itemView)).getForeground() != null); mStripModel.set(TabProperties.IS_SELECTED, false);
diff --git a/chrome/android/features/tab_ui/tab_ui_module_tmpl.gni b/chrome/android/features/tab_ui/tab_ui_module_tmpl.gni index 99b3b57..b85d55f 100644 --- a/chrome/android/features/tab_ui/tab_ui_module_tmpl.gni +++ b/chrome/android/features/tab_ui/tab_ui_module_tmpl.gni
@@ -7,6 +7,9 @@ import("//chrome/android/features/module_names_to_package_ids.gni") template("tab_ui_module_tmpl") { + assert(defined(invoker.version_code)) + assert(defined(invoker.version_name)) + _manifest = "$target_gen_dir/$target_name/AndroidManifest.xml" _manifest_target = "${target_name}__manifest" jinja_template(_manifest_target) {
diff --git a/chrome/android/features/vr/vr_module_tmpl.gni b/chrome/android/features/vr/vr_module_tmpl.gni index 926ca2e0..214f7765 100644 --- a/chrome/android/features/vr/vr_module_tmpl.gni +++ b/chrome/android/features/vr/vr_module_tmpl.gni
@@ -12,6 +12,8 @@ assert(modularize_vr) template("vr_module_tmpl") { + assert(defined(invoker.version_code)) + assert(defined(invoker.version_name)) assert(defined(invoker.manifest_package)) assert(defined(invoker.module_name)) assert(defined(invoker.base_module_target))
diff --git a/chrome/android/java/res/layout/account_picker_new_account_row.xml b/chrome/android/java/res/layout/account_picker_new_account_row.xml index 45dce65..2dd7b3e 100644 --- a/chrome/android/java/res/layout/account_picker_new_account_row.xml +++ b/chrome/android/java/res/layout/account_picker_new_account_row.xml
@@ -6,9 +6,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:drawableStart="@drawable/ic_add_circle_40dp" android:drawablePadding="16dp" android:gravity="center_vertical" android:padding="8dp" android:text="@string/signin_add_account" - android:textAppearance="@style/TextAppearance.BlackBodyDefault"/> + android:textAppearance="@style/TextAppearance.BlackBodyDefault" />
diff --git a/chrome/android/java/res/layout/tab_grid_card_item.xml b/chrome/android/java/res/layout/tab_grid_card_item.xml index d41bb8d2..600470ae 100644 --- a/chrome/android/java/res/layout/tab_grid_card_item.xml +++ b/chrome/android/java/res/layout/tab_grid_card_item.xml
@@ -7,10 +7,18 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> + <View + android:layout_width="match_parent" + android:layout_height="match_parent" + android:id="@+id/background_view" + android:background="@drawable/popup_bg" + android:layout_margin="3dp" + android:visibility="gone"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:elevation="4dp" + android:layout_gravity="center" android:background="@drawable/tab_grid_card_background" android:layout_margin="8dp"> <ImageView @@ -26,13 +34,12 @@ android:layout_height="wrap_content" android:layout_toEndOf="@id/tab_favicon" android:layout_marginEnd="32dp" + android:gravity="center_vertical" android:minHeight="32dp" android:requiresFadingEdge="horizontal" android:fadingEdgeLength="24dp" android:ellipsize="none" android:singleLine="true" - android:paddingBottom="6dp" - android:paddingTop="6dp" android:textAppearance="@style/TextAppearance.BlackTitle2"/> <org.chromium.ui.widget.RoundedCornerImageView android:id="@+id/tab_thumbnail"
diff --git a/chrome/android/java/res/values/colors.xml b/chrome/android/java/res/values/colors.xml index 2ede7cb..ff1174db 100644 --- a/chrome/android/java/res/values/colors.xml +++ b/chrome/android/java/res/values/colors.xml
@@ -95,7 +95,7 @@ <!-- Data Saver Colors --> <color name="data_reduction_compressed_color">#E1E1E1</color> <color name="data_reduction_original_color">@color/pref_accent_color</color> - <color name="data_reduction_chart_background_color">@color/modern_grey_50</color> + <color name="data_reduction_chart_background_color">@color/modern_secondary_color</color> <!-- Compositor Tab Title Colors --> <color name="compositor_tab_title_bar_text">@color/default_text_color</color>
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml index 1bc2dfac..ef3e6ae6 100644 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml
@@ -597,6 +597,7 @@ <!-- Tab List dimensions --> <dimen name="tab_grid_favicon_size">32dp</dimen> <dimen name="tab_list_selected_inset">7dp</dimen> + <dimen name="tab_list_selected_inset_kitkat">2dp</dimen> <dimen name="tab_list_card_padding">8dp</dimen> <dimen name="tab_list_mini_card_radius">4dp</dimen> <dimen name="tab_list_mini_card_frame_size">1dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java index 8fa5ff3..14b4a38 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java
@@ -82,7 +82,7 @@ */ public static Drawable getManagedIconDrawable( @Nullable ManagedPreferenceDelegate delegate, Preference preference) { - if (delegate == null) return null; + if (delegate == null) return preference.getIcon(); if (delegate.isPreferenceControlledByPolicy(preference)) { return PreferenceUtils.getTintedIcon( @@ -92,7 +92,7 @@ preference.getContext(), getManagedByCustodianIconId()); } - return null; + return preference.getIcon(); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java index bca9811b..ba22be8b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java
@@ -26,6 +26,7 @@ import android.preference.PreferenceScreen; import android.support.annotation.Nullable; import android.support.v4.app.FragmentActivity; +import android.support.v7.content.res.AppCompatResources; import android.widget.ListView; import org.chromium.base.ApiCompatibilityUtils; @@ -377,7 +378,8 @@ private ChromeBasePreference createAddAccountPreference() { ChromeBasePreference addAccountPreference = new ChromeBasePreference(getActivity()); addAccountPreference.setLayoutResource(R.layout.account_management_account_row); - addAccountPreference.setIcon(R.drawable.ic_add_circle_40dp); + addAccountPreference.setIcon( + AppCompatResources.getDrawable(getActivity(), R.drawable.ic_add_circle_40dp)); addAccountPreference.setTitle(R.string.account_management_add_account_title); addAccountPreference.setOnPreferenceClickListener(preference -> { if (!isVisible() || !isResumed()) return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java index b55b28af..cfdaf0b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java
@@ -12,6 +12,7 @@ import android.support.v4.app.Fragment; import android.support.v4.util.ObjectsCompat; import android.support.v7.app.AlertDialog; +import android.support.v7.content.res.AppCompatResources; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; @@ -112,8 +113,15 @@ public ViewHolder onCreateViewHolder(ViewGroup viewGroup, @ViewType int viewType) { LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext()); if (viewType == ViewType.NEW_ACCOUNT) { - View view = - inflater.inflate(R.layout.account_picker_new_account_row, viewGroup, false); + TextView view = (TextView) inflater.inflate( + R.layout.account_picker_new_account_row, viewGroup, false); + // Set the vector drawable programmatically because app:drawableStartCompat is only + // available after AndroidX appcompat library. + // TODO(https://crbug.com/948367): Use app:drawableStartCompat. + view.setCompoundDrawablesRelativeWithIntrinsicBounds( + AppCompatResources.getDrawable( + viewGroup.getContext(), R.drawable.ic_add_circle_40dp), + null, null, null); return new ViewHolder(view); } View view = inflater.inflate(R.layout.account_picker_row, viewGroup, false);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java index 266a450..0fc96670 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java
@@ -86,7 +86,7 @@ mSplashScreen = new FrameLayout(context); mSplashScreen.setBackgroundColor(backgroundColor); mParentView.addView(mSplashScreen); - startSplashscreenTraceEvents(); + recordTraceEventsShowedSplash(); if (webappInfo.isForWebApk()) { initializeLayout(webappInfo, backgroundColor, ((WebApkInfo) webappInfo).splashIcon()); @@ -125,6 +125,7 @@ assert mIsSplashVisible; mIsSplashVisible = false; + recordTraceEventsStartedHidingSplash(); mSplashScreen.animate().alpha(0f).withEndAction(new Runnable() { @Override public void run() { @@ -134,7 +135,7 @@ mWebApkNetworkErrorObserver = null; } - finishSplashscreenTraceEvents(); + recordTraceEventsFinishedHidingSplash(); mTab = null; mSplashScreen = null; finishedHidingCallback.run(); @@ -225,14 +226,17 @@ if (mNativeLoaded) mUmaCache.commitMetrics(); } - private void startSplashscreenTraceEvents() { - TraceEvent.startAsync("WebappSplashScreen", hashCode()); + private void recordTraceEventsShowedSplash() { SingleShotOnDrawListener.install(mParentView, () -> { TraceEvent.startAsync("WebappSplashScreen.visible", hashCode()); }); } - private void finishSplashscreenTraceEvents() { - TraceEvent.finishAsync("WebappSplashScreen", hashCode()); + private void recordTraceEventsStartedHidingSplash() { + TraceEvent.startAsync("WebappSplashScreen.hidingAnimation", hashCode()); + } + + private void recordTraceEventsFinishedHidingSplash() { + TraceEvent.finishAsync("WebappSplashScreen.hidingAnimation", hashCode()); SingleShotOnDrawListener.install(mParentView, () -> { TraceEvent.finishAsync("WebappSplashScreen.visible", hashCode()); }); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java index 7bbd04a..cc0d0cde 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java
@@ -56,13 +56,16 @@ // A container to store autofill profile information for data verification. private static class Autofill { public final String id; + public final String clientTagHash; public final String street; public final String city; public final String state; public final String zip; - public Autofill(String id, String street, String city, String state, String zip) { + public Autofill(String id, String clientTagHash, String street, String city, String state, + String zip) { this.id = id; + this.clientTagHash = clientTagHash; this.street = street; this.city = city; this.state = state; @@ -141,7 +144,7 @@ // Delete on server, sync, and verify deleted locally. Autofill autofill = getClientAutofillProfiles().get(0); - mSyncTestRule.getFakeServerHelper().deleteEntity(autofill.id); + mSyncTestRule.getFakeServerHelper().deleteEntity(autofill.id, autofill.clientTagHash); SyncTestUtil.triggerSync(); waitForClientAutofillProfileCount(0); } @@ -173,8 +176,8 @@ private void addServerAutofillProfile(EntitySpecifics specifics) { mSyncTestRule.getFakeServerHelper().injectUniqueClientEntity( - specifics.getAutofillProfile().getAddressHomeLine1() /* nonUniqueName */, - specifics.getAutofillProfile().getAddressHomeLine1() /* clientTag */, specifics); + specifics.getAutofillProfile().getGuid() /* nonUniqueName */, + specifics.getAutofillProfile().getGuid() /* clientTag */, specifics); } private List<Autofill> getClientAutofillProfiles() throws JSONException { @@ -184,11 +187,18 @@ for (Pair<String, JSONObject> entity : entities) { String id = entity.first; JSONObject profile = entity.second; + String clientTagHash = ""; + if (profile.has("metadata")) { + JSONObject metadata = profile.getJSONObject("metadata"); + if (metadata.has("client_tag_hash")) { + clientTagHash = metadata.getString("client_tag_hash"); + } + } String street = profile.getString("address_home_line1"); String city = profile.getString("address_home_city"); String state = profile.getString("address_home_state"); String zip = profile.getString("address_home_zip"); - autofills.add(new Autofill(id, street, city, state, zip)); + autofills.add(new Autofill(id, clientTagHash, street, city, state, zip)); } return autofills; }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java index 918af967..7eb5fad 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java
@@ -351,19 +351,20 @@ * In other words, this method injects a tombstone into the fake Sync server. * * @param id the server ID of the entity to delete - * @param clientDefinedUniqueTag the client defined unique tag of the entity to delete + * @param clientTagHash the client defined unique tag hash of the entity to delete (or an empty + * string if sync does not care about this being a hash) */ public void deleteEntity(final String id) { deleteEntity(id, ""); } - public void deleteEntity(final String id, final String clientDefinedUniqueTag) { + public void deleteEntity(final String id, final String clientTagHash) { checkFakeServerInitialized("useFakeServer must be called before deleting an entity."); TestThreadUtils.runOnUiThreadBlockingNoException(new Callable<Void>() { @Override public Void call() { - nativeDeleteEntity(mNativeFakeServerHelperAndroid, sNativeFakeServer, id, - clientDefinedUniqueTag); + nativeDeleteEntity( + mNativeFakeServerHelperAndroid, sNativeFakeServer, id, clientTagHash); return null; } });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNativeUiTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNativeUiTest.java index 154bec66..a93f031 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNativeUiTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNativeUiTest.java
@@ -35,6 +35,7 @@ import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.util.ChromeTabUtils; import org.chromium.chrome.test.util.RenderTestRule; +import org.chromium.net.test.ServerCertificate; import java.io.IOException; import java.util.concurrent.TimeoutException; @@ -47,6 +48,11 @@ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "enable-webvr"}) @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM_OR_STANDALONE) public class VrBrowserNativeUiTest { + // We need to make sure the port is constant, otherwise the URL changes between test runs, which + // is really bad for image diff tests. There's nothing special about this port other than that + // it shouldn't be in use by anything. + private static final int SERVER_PORT = 39558; + // We explicitly instantiate a rule here instead of using parameterization since this class // only ever runs in ChromeTabbedActivity. @Rule @@ -340,24 +346,6 @@ } /** - * Tests that the page info popup appears when the security token in the URL bar is clicked. - */ - @Test - @LargeTest - @Feature({"Browser", "RenderTest"}) - public void testPageInfoAppearsOnSecurityTokenClick() - throws InterruptedException, TimeoutException, IOException { - NativeUiUtils.clickElementAndWaitForUiQuiescence( - UserFriendlyElementName.PAGE_INFO_BUTTON, new PointF()); - // Workaround for https://crbug.com/893291, where the text doesn't actually show up until a - // bit after the element is drawn. - SystemClock.sleep(1000); - NativeUiUtils.waitForUiQuiescence(); - RenderTestUtils.dumpAndCompare(NativeUiUtils.FRAME_BUFFER_SUFFIX_BROWSER_UI, - "page_info_visible_browser_ui", mRenderTestRule); - } - - /** * Tests that data URLs have the data portion of the URL emphasized like in 2D browsing. */ @Test @@ -595,6 +583,17 @@ "suggestion_clicking_bottom", cropBounds, mRenderTestRule); } + private void resizeContentWindowToMinimum() throws InterruptedException { + NativeUiUtils.selectRepositionBar(); + NativeUiUtils.scrollFling(NativeUiUtils.ScrollDirection.DOWN); + // We need to ensure that the scroll has finished, but we can't use waitForUiQuiescence() + // because the UI is never quiescent while the reposition bar is being used. So, wait a + // suitable number of frames. + NativeUiUtils.waitNumFrames(2 * NativeUiUtils.NUM_STEPS_FLING_SCROLL); + NativeUiUtils.deselectRepositionBar(); + NativeUiUtils.waitForUiQuiescence(); + } + /** * Tests that scrolling while holding the reposition bar causes the content window to be * resized and that the resize doesn't affect the dimensions reported to the webpage. @@ -608,14 +607,7 @@ "test_content_resizing_does_not_affect_webpage"), PAGE_LOAD_TIMEOUT_S); mVrBrowserTestFramework.executeStepAndWait("stepGetInitialDimensions()"); - NativeUiUtils.selectRepositionBar(); - NativeUiUtils.scrollFling(NativeUiUtils.ScrollDirection.DOWN); - // We need to ensure that the scroll has finished, but we can't use waitForUiQuiescence() - // because the UI is never quiescent while the reposition bar is being used. So, wait a - // suitable number of frames. - NativeUiUtils.waitNumFrames(2 * NativeUiUtils.NUM_STEPS_FLING_SCROLL); - NativeUiUtils.deselectRepositionBar(); - NativeUiUtils.waitForUiQuiescence(); + resizeContentWindowToMinimum(); RenderTestUtils.dumpAndCompare( NativeUiUtils.FRAME_BUFFER_SUFFIX_BROWSER_UI, "scroll_resizing", mRenderTestRule); mVrBrowserTestFramework.executeStepAndWait("stepCheckDimensionsAfterResize()"); @@ -794,4 +786,64 @@ NativeUiUtils.performActionAndWaitForVisibilityStatus( UserFriendlyElementName.OMNIBOX_VOICE_INPUT_BUTTON, false /* visible */, () -> {}); } + + /** + * Tests that the security token and page info popup look correct on HTTP sites. + */ + @Test + @MediumTest + @Feature({"Browser", "RenderTest"}) + public void testSecurityTokenOnHttp() throws InterruptedException, IOException { + mVrTestRule.getEmbeddedTestServerRule().setServerPort(SERVER_PORT); + testSecurityTokenImpl("security_token_http"); + } + + /** + * Tests that the security token and page info popup look correct on HTTPS sites. + */ + @Test + @MediumTest + @Feature({"Browser", "RenderTest"}) + public void testSecurityTokenOnHttps() throws InterruptedException, IOException { + mVrTestRule.getEmbeddedTestServerRule().setServerPort(SERVER_PORT); + mVrTestRule.getEmbeddedTestServerRule().setServerUsesHttps(true); + testSecurityTokenImpl("security_token_https"); + } + + /** + * Tests that the security token and page info popup look correct on HTTPS sites when the + * server provides a bad certificate. + */ + @Test + @MediumTest + @Feature({"Browser", "RenderTest"}) + public void testSecurityTokenOnHttpsBadCertificate() throws InterruptedException, IOException { + mVrTestRule.getEmbeddedTestServerRule().setServerPort(SERVER_PORT); + mVrTestRule.getEmbeddedTestServerRule().setServerUsesHttps(true); + mVrTestRule.getEmbeddedTestServerRule().setCertificateType(ServerCertificate.CERT_EXPIRED); + testSecurityTokenImpl("security_token_https_bad_cert"); + } + + private void testSecurityTokenImpl(String identifier) throws InterruptedException, IOException { + NativeUiUtils.enableMockedInput(); + mVrTestRule.loadUrl( + mVrBrowserTestFramework.getEmbeddedServerUrlForHtmlTestFile("2d_permission_page"), + PAGE_LOAD_TIMEOUT_S); + // Wait for any residual animations from loading to go away. + NativeUiUtils.waitForUiQuiescence(); + RenderTestUtils.dumpAndCompare(NativeUiUtils.FRAME_BUFFER_SUFFIX_BROWSER_UI, + identifier + "_url_bar_token", mRenderTestRule); + // Make the content window as small as possible to hide as much of it behind the upcoming + // popup. See https://crbug.com/947117. + // TODO(https://crbug.com/947117): Remove the resizing once the interstitials are no longer + // offset slightly vertically at random. + resizeContentWindowToMinimum(); + NativeUiUtils.clickElementAndWaitForUiQuiescence( + UserFriendlyElementName.PAGE_INFO_BUTTON, new PointF()); + // Workaround for https://crbug.com/893291, where the text doesn't actually show up until a + // bit after the element is drawn. + SystemClock.sleep(2000); + RenderTestUtils.dumpAndCompare(NativeUiUtils.FRAME_BUFFER_SUFFIX_BROWSER_UI, + identifier + "_popup", mRenderTestRule); + } }
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index a6ae13ea..4d895688 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -3689,20 +3689,6 @@ This picture will show up on the Chromebook sign in screen and lock screen. </message> - <!-- Strings for ARC intent picker --> - <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_OPEN_WITH" desc="Message contained in a label used as a header for a list of applications from which the user will pick one."> - Open with - </message> - <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_REMEMBER_SELECTION" desc="Message contained in a checkbox that must be marked in order for the intent picker to not be shown again for a similar URL."> - Remember my choice - </message> - <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_USE_APP" desc="Message contained in a button to continue the navigation in an ARC app selected by the user."> - Use app - </message> - <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_STAY_IN_CHROME" desc="Message contained in a button to continue the navigation within Chrome."> - Stay in Chrome - </message> - <!-- Strings for Oobe fingerprint enrollment screen --> <message name="IDS_OOBE_FINGERPINT_SETUP_SCREEN_TITLE" desc="The title of the dialog that allow users to register their fingerprint."> Set up your fingerprint
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index fb05fcc..14f3310 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -4231,6 +4231,9 @@ <message name="IDS_EXTENSIONS_MENU_TITLE" desc="Title of the Extensions Menu"> Extensions </message> + <message name="IDS_EXTENSIONS_MENU_SETTINGS_TOOLTIP" desc="Tooltip for the 'manage extensions' button inside the Extensions Menu"> + Manage extensions + </message> <!-- Settings API bubble --> <message name="IDS_EXTENSIONS_SETTINGS_API_TITLE_HOME_PAGE_BUBBLE" desc="Title of a bubble warning users that an extension has overridden their home page setting"> @@ -5066,10 +5069,24 @@ <message name="IDS_TOOLTIP_FIND" desc="The tooltip for the find button"> Find </message> - <if expr="chromeos"> + + <!-- Strings for intent picker --> + <if expr="not is_android"> <message name="IDS_TOOLTIP_INTENT_PICKER_ICON" desc="The tooltip for the intent picker bubble icon"> To open this link, choose an app </message> + <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_OPEN_WITH" desc="Message contained in a label used as a header for a list of applications from which the user will pick one."> + Open with + </message> + <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_REMEMBER_SELECTION" desc="Message contained in a checkbox that must be marked in order for the intent picker to not be shown again for a similar URL."> + Remember my choice + </message> + <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_USE_APP" desc="Message contained in a button to continue the navigation in an app selected by the user."> + Use app + </message> + <message name="IDS_INTENT_PICKER_BUBBLE_VIEW_STAY_IN_CHROME" desc="Message contained in a button to continue the navigation within Chrome."> + Stay in Chrome + </message> </if> <!--Accessible name/action strings-->
diff --git a/chrome/app/onboarding_welcome_strings.grdp b/chrome/app/onboarding_welcome_strings.grdp index 9ac5803..55845f3d 100644 --- a/chrome/app/onboarding_welcome_strings.grdp +++ b/chrome/app/onboarding_welcome_strings.grdp
@@ -25,6 +25,9 @@ <message name="IDS_ONBOARDING_WELCOME_BOOKMARK_REPLACED" desc="String read for accessibility to inform the user a bookmark was replaced."> Bookmark replaced </message> + <message name="IDS_ONBOARDING_DEFAULT_BROWSER_CHANGED" desc="text notifying users that their default browser is successfully changed to Chrome"> + Chrome is your default browser + </message> <!-- NUX email provider selection module --> <message name="IDS_ONBOARDING_WELCOME_NUX_EMAIL_TITLE" desc="Text shown to prompt the users to select an email service to add as bookmark.">
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 6f6af95..9cac854b 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2754,6 +2754,20 @@ "apps/app_service/app_service_proxy_factory.h", "apps/app_service/dip_px_util.cc", "apps/app_service/dip_px_util.h", + "apps/intent_helper/apps_navigation_throttle.cc", + "apps/intent_helper/apps_navigation_throttle.h", + "apps/intent_helper/apps_navigation_types.cc", + "apps/intent_helper/apps_navigation_types.h", + "apps/intent_helper/intent_picker_auto_display_pref.cc", + "apps/intent_helper/intent_picker_auto_display_pref.h", + "apps/intent_helper/intent_picker_auto_display_service.cc", + "apps/intent_helper/intent_picker_auto_display_service.h", + "apps/intent_helper/intent_picker_auto_display_service_factory.cc", + "apps/intent_helper/intent_picker_auto_display_service_factory.h", + "apps/intent_helper/intent_picker_controller.cc", + "apps/intent_helper/intent_picker_controller.h", + "apps/intent_helper/page_transition_util.cc", + "apps/intent_helper/page_transition_util.h", "background/background_contents.cc", "background/background_contents.h", "badging/badge_manager.cc", @@ -3326,20 +3340,6 @@ "apps/app_service/icon_key_util.h", "apps/app_service/launch_util.cc", "apps/app_service/launch_util.h", - "apps/intent_helper/apps_navigation_throttle.cc", - "apps/intent_helper/apps_navigation_throttle.h", - "apps/intent_helper/apps_navigation_types.cc", - "apps/intent_helper/apps_navigation_types.h", - "apps/intent_helper/intent_picker_auto_display_pref.cc", - "apps/intent_helper/intent_picker_auto_display_pref.h", - "apps/intent_helper/intent_picker_auto_display_service.cc", - "apps/intent_helper/intent_picker_auto_display_service.h", - "apps/intent_helper/intent_picker_auto_display_service_factory.cc", - "apps/intent_helper/intent_picker_auto_display_service_factory.h", - "apps/intent_helper/intent_picker_controller.cc", - "apps/intent_helper/intent_picker_controller.h", - "apps/intent_helper/page_transition_util.cc", - "apps/intent_helper/page_transition_util.h", "ash_service_registry.cc", "ash_service_registry.h", "component_updater/cros_component_installer_chromeos.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index c74028d..c215353 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -2984,6 +2984,13 @@ FEATURE_VALUE_TYPE(chrome::android::kDownloadHomeV2)}, #endif +#if defined(OS_ANDROID) + {"download-auto-resumption-native", + flag_descriptions::kDownloadAutoResumptionNativeName, + flag_descriptions::kDownloadAutoResumptionNativeDescription, kOsAndroid, + FEATURE_VALUE_TYPE(download::features::kDownloadAutoResumptionNative)}, +#endif + {"enable-new-download-backend", flag_descriptions::kEnableNewDownloadBackendName, flag_descriptions::kEnableNewDownloadBackendDescription, kOsAll,
diff --git a/chrome/browser/android/history_report/history_report_jni_bridge.cc b/chrome/browser/android/history_report/history_report_jni_bridge.cc index 0c847ce..1c41dc1 100644 --- a/chrome/browser/android/history_report/history_report_jni_bridge.cc +++ b/chrome/browser/android/history_report/history_report_jni_bridge.cc
@@ -183,6 +183,11 @@ jboolean HistoryReportJniBridge::AddHistoricVisitsToUsageReportsBuffer( JNIEnv* env, const JavaParamRef<jobject>& obj) { + DCHECK(!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); + // Waiting is okay here because this is called from a background thread + // in Java. + base::ScopedAllowBaseSyncPrimitives allow_sync; + data_provider_->StartVisitMigrationToUsageBuffer( usage_reports_buffer_service_.get()); // TODO(nileshagrawal): Return true when actually done,
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc index c922cbd..29bef58f 100644 --- a/chrome/browser/android/tab_android.cc +++ b/chrome/browser/android/tab_android.cc
@@ -159,8 +159,10 @@ base::string16 TabAndroid::GetTitle() const { JNIEnv* env = base::android::AttachCurrentThread(); - return base::android::ConvertJavaStringToUTF16( - Java_Tab_getTitle(env, weak_java_tab_.get(env))); + ScopedJavaLocalRef<jstring> java_title = + Java_Tab_getTitle(env, weak_java_tab_.get(env)); + return java_title ? base::android::ConvertJavaStringToUTF16(java_title) + : base::string16(); } bool TabAndroid::IsNativePage() const {
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc index 7781ab3b..f979d52 100644 --- a/chrome/browser/apps/guest_view/web_view_browsertest.cc +++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -440,11 +440,11 @@ void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) override { + base::OnceCallback<void(bool)> callback) override { orig_delegate_->CanDownload( url, request_method, - base::Bind(&MockDownloadWebContentsDelegate::DownloadDecided, - base::Unretained(this), callback)); + base::BindOnce(&MockDownloadWebContentsDelegate::DownloadDecided, + base::Unretained(this), std::move(callback))); } void WaitForCanDownload(bool expect_allow) { @@ -461,7 +461,7 @@ message_loop_runner_->Run(); } - void DownloadDecided(const base::Callback<void(bool)>& callback, bool allow) { + void DownloadDecided(base::OnceCallback<void(bool)> callback, bool allow) { EXPECT_FALSE(decision_made_); decision_made_ = true; @@ -469,11 +469,11 @@ EXPECT_EQ(expect_allow_, allow); if (message_loop_runner_.get()) message_loop_runner_->Quit(); - callback.Run(allow); + std::move(callback).Run(allow); return; } last_download_allowed_ = allow; - callback.Run(allow); + std::move(callback).Run(allow); } void Reset() {
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc b/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc index c4ea139..33fbf22 100644 --- a/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc +++ b/chrome/browser/apps/intent_helper/apps_navigation_throttle.cc
@@ -10,13 +10,8 @@ #include "base/bind.h" #include "base/feature_list.h" #include "base/metrics/histogram_macros.h" -#include "base/task/post_task.h" -#include "chrome/browser/apps/intent_helper/apps_navigation_types.h" #include "chrome/browser/apps/intent_helper/intent_picker_auto_display_service.h" #include "chrome/browser/apps/intent_helper/page_transition_util.h" -#include "chrome/browser/chromeos/arc/arc_util.h" -#include "chrome/browser/chromeos/arc/arc_web_contents_data.h" -#include "chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h" #include "chrome/browser/extensions/extension_util.h" #include "chrome/browser/extensions/menu_manager.h" #include "chrome/browser/prerender/prerender_contents.h" @@ -26,10 +21,7 @@ #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/extensions/application_launch.h" #include "chrome/common/chrome_features.h" -#include "components/arc/intent_helper/arc_intent_helper_bridge.h" -#include "components/arc/metrics/arc_metrics_constants.h" #include "content/public/browser/browser_context.h" -#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/site_instance.h" @@ -41,30 +33,6 @@ constexpr char kGoogleCom[] = "google.com"; -// Removes the flag signaling that the current tab was started via -// ChromeShellDelegate if the current throttle corresponds to a navigation -// passing thru different domains or schemes, except if |current_url| has a -// scheme different than http(s). -void MaybeRemoveComingFromArcFlag(content::WebContents* web_contents, - const GURL& previous_url, - const GURL& current_url) { - // Let ArcExternalProtocolDialog handle these cases. - if (!current_url.SchemeIsHTTPOrHTTPS()) - return; - - if (url::Origin::Create(previous_url) - .IsSameOriginWith(url::Origin::Create(current_url))) { - return; - } - - const char* key = - arc::ArcWebContentsData::ArcWebContentsData::kArcTransitionFlag; - arc::ArcWebContentsData* arc_data = - static_cast<arc::ArcWebContentsData*>(web_contents->GetUserData(key)); - if (arc_data) - web_contents->RemoveUserData(key); -} - // Compares the host name of the referrer and target URL to decide whether // the navigation needs to be overridden. bool ShouldOverrideUrlLoading(const GURL& previous_url, @@ -133,33 +101,15 @@ } // namespace -namespace chromeos { +namespace apps { // static std::unique_ptr<content::NavigationThrottle> AppsNavigationThrottle::MaybeCreate(content::NavigationHandle* handle) { content::WebContents* web_contents = handle->GetWebContents(); - const bool arc_enabled = arc::IsArcPlayStoreEnabledForProfile( - Profile::FromBrowserContext(web_contents->GetBrowserContext())); - - // Do not create the throttle if no apps can be installed. - if (!arc_enabled && !IsDesktopPwasEnabled()) + if (!CanCreate(web_contents)) return nullptr; - - // Do not create the throttle in incognito or for a prerender navigation. - if (web_contents->GetBrowserContext()->IsOffTheRecord() || - prerender::PrerenderContents::FromWebContents(web_contents) != nullptr) { - return nullptr; - } - - // Do not create the throttle if there is no browser for the WebContents or we - // are already in an app browser. The former can happen if an initial - // navigation is reparented into a new app browser instance. - Browser* browser = chrome::FindBrowserWithWebContents(web_contents); - if (!browser || browser->is_app()) - return nullptr; - - return std::make_unique<AppsNavigationThrottle>(handle, arc_enabled); + return std::make_unique<AppsNavigationThrottle>(handle); } // static @@ -167,11 +117,12 @@ content::WebContents* web_contents, IntentPickerAutoDisplayService* ui_auto_display_service, const GURL& url) { - arc::ArcIntentPickerAppFetcher::GetArcAppsForPicker( - web_contents, url, - base::BindOnce( - &AppsNavigationThrottle::FindPwaForUrlAndShowIntentPickerForApps, - web_contents, ui_auto_display_service, url)); + std::vector<IntentPickerAppInfo> apps = FindPwaForUrl(web_contents, url, {}); + + ShowIntentPickerBubbleForAppsImpl( + web_contents, std::move(apps), + base::BindOnce(&OnIntentPickerClosed, web_contents, + ui_auto_display_service, url)); } // static @@ -197,24 +148,7 @@ ReparentWebContentsIntoAppBrowser(web_contents, extension); } break; - case apps::mojom::AppType::kArc: - if (arc::ArcIntentPickerAppFetcher::MaybeLaunchOrPersistArcApp( - url, launch_name, should_launch_app, should_persist)) { - CloseOrGoBack(web_contents); - } else { - close_reason = IntentPickerCloseReason::ERROR; - } - break; case apps::mojom::AppType::kUnknown: - // TODO(crbug.com/826982): This workaround can be removed when preferences - // are no longer persisted within the ARC container, it was necessary - // since chrome browser is neither a PWA or ARC app. - if (close_reason == IntentPickerCloseReason::STAY_IN_CHROME && - should_persist) { - arc::ArcIntentPickerAppFetcher::MaybeLaunchOrPersistArcApp( - url, launch_name, /*should_launch_app=*/false, - /*should_persist=*/true); - } // We reach here if the picker was closed without an app being chosen, // e.g. due to the tab being closed. Keep count of this scenario so we can // stop the UI from showing after 2+ dismissals. @@ -223,6 +157,7 @@ ui_auto_display_service->IncrementCounter(url); } break; + case apps::mojom::AppType::kArc: case apps::mojom::AppType::kBuiltIn: case apps::mojom::AppType::kCrostini: case apps::mojom::AppType::kExtension: @@ -243,13 +178,6 @@ UMA_HISTOGRAM_ENUMERATION("ChromeOS.Apps.IntentPickerDestinationPlatform", platform); - - if (app_type == apps::mojom::AppType::kArc && - (close_reason == IntentPickerCloseReason::PREFERRED_APP_FOUND || - close_reason == IntentPickerCloseReason::OPEN_APP)) { - UMA_HISTOGRAM_ENUMERATION("Arc.UserInteraction", - arc::UserInteractionType::APP_STARTED_FROM_LINK); - } } // static @@ -259,16 +187,32 @@ return ShouldOverrideUrlLoading(previous_url, current_url); } +// static +void AppsNavigationThrottle::ShowIntentPickerBubbleForAppsImpl( + content::WebContents* web_contents, + std::vector<IntentPickerAppInfo> apps, + IntentPickerResponse callback) { + if (apps.empty()) + return; + + // It should be safe to bind |web_contents| since closing the current tab will + // close the intent picker and run the callback prior to the WebContents being + // deallocated. + Browser* browser = chrome::FindBrowserWithWebContents(web_contents); + if (!browser) + return; + browser->window()->ShowIntentPickerBubble(std::move(apps), + /*disable_stay_in_chrome=*/false, + std::move(callback)); +} + AppsNavigationThrottle::AppsNavigationThrottle( - content::NavigationHandle* navigation_handle, - bool arc_enabled) + content::NavigationHandle* navigation_handle) : content::NavigationThrottle(navigation_handle), - arc_enabled_(arc_enabled), ui_displayed_(false), ui_auto_display_service_( IntentPickerAutoDisplayService::Get(Profile::FromBrowserContext( - navigation_handle->GetWebContents()->GetBrowserContext()))), - weak_factory_(this) { + navigation_handle->GetWebContents()->GetBrowserContext()))) { // |ui_auto_display_service_| can be null iff the call is coming from // IntentPickerView. Since the pointer to our service is never modified // (in case it is successfully created here) this check covers all the @@ -308,6 +252,28 @@ } // static +bool AppsNavigationThrottle::CanCreate(content::WebContents* web_contents) { + // Do not create the throttle if no apps can be installed. + if (!IsDesktopPwasEnabled()) + return false; + + // Do not create the throttle in incognito or for a prerender navigation. + if (web_contents->GetBrowserContext()->IsOffTheRecord() || + prerender::PrerenderContents::FromWebContents(web_contents) != nullptr) { + return false; + } + + // Do not create the throttle if there is no browser for the WebContents or we + // are already in an app browser. The former can happen if an initial + // navigation is reparented into a new app browser instance. + Browser* browser = chrome::FindBrowserWithWebContents(web_contents); + if (!browser || browser->is_app()) + return false; + + return true; +} + +// static AppsNavigationThrottle::Platform AppsNavigationThrottle::GetDestinationPlatform( const std::string& selected_launch_name, PickerAction picker_action) { @@ -317,74 +283,22 @@ return Platform::ARC; case PickerAction::PWA_APP_PRESSED: return Platform::PWA; - case PickerAction::ERROR: + case PickerAction::PICKER_ERROR: case PickerAction::DIALOG_DEACTIVATED: case PickerAction::CHROME_PRESSED: case PickerAction::CHROME_PREFERRED_PRESSED: return Platform::CHROME; case PickerAction::PREFERRED_ACTIVITY_FOUND: - return arc::ArcIntentHelperBridge::IsIntentHelperPackage( - selected_launch_name) - ? Platform::CHROME - : Platform::ARC; case PickerAction::OBSOLETE_ALWAYS_PRESSED: case PickerAction::OBSOLETE_JUST_ONCE_PRESSED: case PickerAction::INVALID: - NOTREACHED(); + break; } NOTREACHED(); return Platform::ARC; } // static -AppsNavigationThrottle::PickerAction AppsNavigationThrottle::GetPickerAction( - apps::mojom::AppType app_type, - IntentPickerCloseReason close_reason, - bool should_persist) { - switch (close_reason) { - case IntentPickerCloseReason::ERROR: - return PickerAction::ERROR; - case IntentPickerCloseReason::DIALOG_DEACTIVATED: - return PickerAction::DIALOG_DEACTIVATED; - case IntentPickerCloseReason::PREFERRED_APP_FOUND: - return PickerAction::PREFERRED_ACTIVITY_FOUND; - case IntentPickerCloseReason::STAY_IN_CHROME: - return should_persist ? PickerAction::CHROME_PREFERRED_PRESSED - : PickerAction::CHROME_PRESSED; - case IntentPickerCloseReason::OPEN_APP: - switch (app_type) { - case apps::mojom::AppType::kUnknown: - return PickerAction::INVALID; - case apps::mojom::AppType::kArc: - return should_persist ? PickerAction::ARC_APP_PREFERRED_PRESSED - : PickerAction::ARC_APP_PRESSED; - case apps::mojom::AppType::kWeb: - return PickerAction::PWA_APP_PRESSED; - case apps::mojom::AppType::kBuiltIn: - case apps::mojom::AppType::kCrostini: - case apps::mojom::AppType::kExtension: - NOTREACHED(); - } - } - - NOTREACHED(); - return PickerAction::INVALID; -} - -// static -void AppsNavigationThrottle::FindPwaForUrlAndShowIntentPickerForApps( - content::WebContents* web_contents, - IntentPickerAutoDisplayService* ui_auto_display_service, - const GURL& url, - std::vector<IntentPickerAppInfo> apps) { - std::vector<IntentPickerAppInfo> apps_for_picker = - FindPwaForUrl(web_contents, url, std::move(apps)); - - ShowIntentPickerBubbleForApps(web_contents, ui_auto_display_service, url, - std::move(apps_for_picker)); -} - -// static std::vector<IntentPickerAppInfo> AppsNavigationThrottle::FindPwaForUrl( content::WebContents* web_contents, const GURL& url, @@ -412,29 +326,6 @@ } // static -void AppsNavigationThrottle::ShowIntentPickerBubbleForApps( - content::WebContents* web_contents, - IntentPickerAutoDisplayService* ui_auto_display_service, - const GURL& url, - std::vector<IntentPickerAppInfo> apps) { - if (apps.empty()) - return; - - // It should be safe to bind |web_contents| since closing the current tab will - // close the intent picker and run the callback prior to the WebContents being - // deallocated. - Browser* browser = chrome::FindBrowserWithWebContents(web_contents); - if (!browser) - return; - - browser->window()->ShowIntentPickerBubble( - std::move(apps), - /*disable_stay_in_chrome=*/false, - base::BindOnce(&AppsNavigationThrottle::OnIntentPickerClosed, - web_contents, ui_auto_display_service, url)); -} - -// static void AppsNavigationThrottle::CloseOrGoBack(content::WebContents* web_contents) { DCHECK(web_contents); if (web_contents->GetController().CanGoBack()) @@ -443,54 +334,75 @@ web_contents->ClosePage(); } -void AppsNavigationThrottle::CancelNavigation() { - content::WebContents* web_contents = navigation_handle()->GetWebContents(); - if (web_contents && web_contents->GetController().IsInitialNavigation()) { - // Workaround for b/79167225, closing |web_contents| here may be dangerous. - base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI}, - base::BindOnce(&AppsNavigationThrottle::CloseTab, - weak_factory_.GetWeakPtr())); - } else { - CancelDeferredNavigation(content::NavigationThrottle::CANCEL_AND_IGNORE); - } +bool AppsNavigationThrottle::ShouldDeferNavigationForArc( + content::NavigationHandle* handle) { + return false; } -void AppsNavigationThrottle::OnDeferredNavigationProcessed( - AppsNavigationAction action, +void AppsNavigationThrottle::ShowIntentPickerBubbleForApps( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, std::vector<IntentPickerAppInfo> apps) { - if (action == AppsNavigationAction::CANCEL) { - // We found a preferred ARC app to open; cancel the navigation and don't do - // anything else. - CancelNavigation(); - return; + ShowIntentPickerBubbleForAppsImpl( + web_contents, std::move(apps), + base::BindOnce(&OnIntentPickerClosed, web_contents, + ui_auto_display_service, url)); +} + +bool AppsNavigationThrottle::ShouldAutoDisplayUi( + const std::vector<IntentPickerAppInfo>& apps_for_picker, + content::WebContents* web_contents, + const GURL& url) { + if (apps_for_picker.empty()) + return false; + + // Check if all the app candidates are PWAs. + bool only_pwa_apps = + std::all_of(apps_for_picker.begin(), apps_for_picker.end(), + [](const IntentPickerAppInfo& app_info) { + return app_info.type == apps::mojom::AppType::kWeb; + }); + if (only_pwa_apps) + return false; + + DCHECK(ui_auto_display_service_); + return ui_auto_display_service_->ShouldAutoDisplayUi(url); +} + +// static +AppsNavigationThrottle::PickerAction AppsNavigationThrottle::GetPickerAction( + apps::mojom::AppType app_type, + IntentPickerCloseReason close_reason, + bool should_persist) { + switch (close_reason) { + case IntentPickerCloseReason::PICKER_ERROR: + return PickerAction::PICKER_ERROR; + case IntentPickerCloseReason::DIALOG_DEACTIVATED: + return PickerAction::DIALOG_DEACTIVATED; + case IntentPickerCloseReason::PREFERRED_APP_FOUND: + return PickerAction::PREFERRED_ACTIVITY_FOUND; + case IntentPickerCloseReason::STAY_IN_CHROME: + return should_persist ? PickerAction::CHROME_PREFERRED_PRESSED + : PickerAction::CHROME_PRESSED; + case IntentPickerCloseReason::OPEN_APP: + switch (app_type) { + case apps::mojom::AppType::kUnknown: + return PickerAction::INVALID; + case apps::mojom::AppType::kArc: + return should_persist ? PickerAction::ARC_APP_PREFERRED_PRESSED + : PickerAction::ARC_APP_PRESSED; + case apps::mojom::AppType::kWeb: + return PickerAction::PWA_APP_PRESSED; + case apps::mojom::AppType::kBuiltIn: + case apps::mojom::AppType::kCrostini: + case apps::mojom::AppType::kExtension: + NOTREACHED(); + } } - content::NavigationHandle* handle = navigation_handle(); - content::WebContents* web_contents = handle->GetWebContents(); - const GURL& url = handle->GetURL(); - - std::vector<IntentPickerAppInfo> apps_for_picker = - FindPwaForUrl(web_contents, url, std::move(apps)); - - // If we only have PWAs in the app list, do not show the intent picker. - // Instead just show the omnibox icon. This is to reduce annoyance to users - // until "Remember my choice" is available for desktop PWAs. - // TODO(crbug.com/826982): show the intent picker when the app registry is - // available to persist "Remember my choice" for PWAs. - if (ShouldAutoDisplayUi(apps_for_picker, web_contents, url)) { - ShowIntentPickerBubbleForApps(web_contents, ui_auto_display_service_, url, - std::move(apps_for_picker)); - } else { - ui_displayed_ = false; - Browser* browser = chrome::FindBrowserWithWebContents(web_contents); - // If there were any candidates, show the intent picker icon in the omnibox - // so the user can manually pick if they wish. - if (browser && !apps_for_picker.empty()) - browser->window()->SetIntentPickerViewVisibility(/*visible=*/true); - } - - // We are about to resume the navigation, which may destroy this object. - Resume(); + NOTREACHED(); + return PickerAction::INVALID; } content::NavigationThrottle::ThrottleCheckResult @@ -532,11 +444,7 @@ if (!ShouldOverrideUrlLoading(starting_url_, url)) return content::NavigationThrottle::PROCEED; - if (arc_enabled_ && - arc::ArcIntentPickerAppFetcher::WillGetArcAppsForNavigation( - handle, - base::BindOnce(&AppsNavigationThrottle::OnDeferredNavigationProcessed, - weak_factory_.GetWeakPtr()))) { + if (ShouldDeferNavigationForArc(handle)) { // Handling is now deferred to ArcIntentPickerAppFetcher, which // asynchronously queries ARC for apps, and runs // OnDeferredNavigationProcessed() with an action based on whether an @@ -563,31 +471,4 @@ return content::NavigationThrottle::PROCEED; } -void AppsNavigationThrottle::CloseTab() { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - content::WebContents* web_contents = navigation_handle()->GetWebContents(); - if (web_contents) - web_contents->ClosePage(); -} - -bool AppsNavigationThrottle::ShouldAutoDisplayUi( - const std::vector<IntentPickerAppInfo>& apps_for_picker, - content::WebContents* web_contents, - const GURL& url) { - if (apps_for_picker.empty()) - return false; - - // Check if all the app candidates are PWAs. - bool only_pwa_apps = - std::all_of(apps_for_picker.begin(), apps_for_picker.end(), - [](const IntentPickerAppInfo& app_info) { - return app_info.type == apps::mojom::AppType::kWeb; - }); - if (only_pwa_apps) - return false; - - DCHECK(ui_auto_display_service_); - return ui_auto_display_service_->ShouldAutoDisplayUi(url); -} - -} // namespace chromeos +} // namespace apps
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_throttle.h b/chrome/browser/apps/intent_helper/apps_navigation_throttle.h index 64d59b6..e2912991 100644 --- a/chrome/browser/apps/intent_helper/apps_navigation_throttle.h +++ b/chrome/browser/apps/intent_helper/apps_navigation_throttle.h
@@ -13,6 +13,7 @@ #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "chrome/browser/apps/intent_helper/apps_navigation_types.h" #include "chrome/services/app_service/public/mojom/types.mojom.h" #include "content/public/browser/navigation_throttle.h" #include "url/gurl.h" @@ -24,11 +25,7 @@ class IntentPickerAutoDisplayService; -namespace chromeos { - -enum class AppsNavigationAction; -enum class IntentPickerCloseReason; -struct IntentPickerAppInfo; +namespace apps { // Allows navigation to be routed to an installed app on Chrome OS, and provides // a static method for showing an intent picker for the current URL to display @@ -75,8 +72,12 @@ static bool ShouldOverrideUrlLoadingForTesting(const GURL& previous_url, const GURL& current_url); - AppsNavigationThrottle(content::NavigationHandle* navigation_handle, - bool arc_enabled); + static void ShowIntentPickerBubbleForAppsImpl( + content::WebContents* web_contents, + std::vector<IntentPickerAppInfo> apps, + IntentPickerResponse callback); + + explicit AppsNavigationThrottle(content::NavigationHandle* navigation_handle); ~AppsNavigationThrottle() override; // content::NavigationHandle overrides @@ -85,16 +86,17 @@ content::NavigationThrottle::ThrottleCheckResult WillRedirectRequest() override; - private: - FRIEND_TEST_ALL_PREFIXES(AppsNavigationThrottleTest, TestGetPickerAction); - FRIEND_TEST_ALL_PREFIXES(AppsNavigationThrottleTest, - TestGetDestinationPlatform); + // Overridden for Chrome OS to allow asynchronous handling of ARC apps. + virtual void OnDeferredNavigationProcessed( + AppsNavigationAction action, + std::vector<IntentPickerAppInfo> apps) {} + protected: // These enums are used to define the buckets for an enumerated UMA histogram // and need to be synced with histograms.xml. This enum class should also be // treated as append-only. enum class PickerAction : int { - ERROR = 0, + PICKER_ERROR = 0, // DIALOG_DEACTIVATED keeps track of the user dismissing the UI via clicking // the close button or clicking outside of the IntentPickerBubbleView // surface. As with CHROME_PRESSED, the user stays in Chrome, however we @@ -128,6 +130,9 @@ kMaxValue = PWA, }; + // Checks whether we can create the apps_navigation_throttle. + static bool CanCreate(content::WebContents* web_contents); + // Determines the destination of the current navigation. We know that if the // |picker_action| is either ERROR or DIALOG_DEACTIVATED the navigation MUST // stay in Chrome, and when |picker_action| is PWA_APP_PRESSED the navigation @@ -137,18 +142,6 @@ const std::string& selected_launch_name, PickerAction picker_action); - // Converts the provided |app_type|, |close_reason| and |should_persist| - // boolean to a PickerAction value for recording in UMA. - static PickerAction GetPickerAction(apps::mojom::AppType app_type, - IntentPickerCloseReason close_reason, - bool should_persist); - - static void FindPwaForUrlAndShowIntentPickerForApps( - content::WebContents* web_contents, - IntentPickerAutoDisplayService* ui_auto_display_service, - const GURL& url, - std::vector<IntentPickerAppInfo> apps); - // If an installed PWA exists that can handle |url|, prepends it to |apps| and // returns the new list. static std::vector<IntentPickerAppInfo> FindPwaForUrl( @@ -156,27 +149,21 @@ const GURL& url, std::vector<IntentPickerAppInfo> apps); - static void ShowIntentPickerBubbleForApps( + static void CloseOrGoBack(content::WebContents* web_contents); + + // Overridden for Chrome OS to allow arc handling. + virtual void MaybeRemoveComingFromArcFlag(content::WebContents* web_contents, + const GURL& previous_url, + const GURL& current_url) {} + + virtual bool ShouldDeferNavigationForArc(content::NavigationHandle* handle); + + virtual void ShowIntentPickerBubbleForApps( content::WebContents* web_contents, IntentPickerAutoDisplayService* ui_auto_display_service, const GURL& url, std::vector<IntentPickerAppInfo> apps); - static void CloseOrGoBack(content::WebContents* web_contents); - - void CancelNavigation(); - - content::NavigationThrottle::ThrottleCheckResult HandleRequest(); - - // Passed as a callback to allow ARC-specific code to asynchronously inform - // this object of the apps which can handle this URL, and optionally request - // that the navigation be completely cancelled (e.g. if a preferred app has - // been opened). - void OnDeferredNavigationProcessed(AppsNavigationAction action, - std::vector<IntentPickerAppInfo> apps); - - void CloseTab(); - // Whether or not the intent picker UI should be displayed without the user // clicking in the omnibox's icon. bool ShouldAutoDisplayUi( @@ -184,12 +171,6 @@ content::WebContents* web_contents, const GURL& url); - // A reference to the starting GURL. - GURL starting_url_; - - // True if ARC is enabled, false otherwise. - const bool arc_enabled_; - // Keeps track of whether we already shown the UI or preferred app. Since // AppsNavigationThrottle cannot wait for the user (due to the non-blocking // nature of the feature) the best we can do is check if we launched a @@ -201,11 +182,25 @@ // UI. IntentPickerAutoDisplayService* ui_auto_display_service_; - base::WeakPtrFactory<AppsNavigationThrottle> weak_factory_; + private: + FRIEND_TEST_ALL_PREFIXES(AppsNavigationThrottleTest, TestGetPickerAction); + FRIEND_TEST_ALL_PREFIXES(AppsNavigationThrottleTest, + TestGetDestinationPlatform); + + // Converts the provided |app_type|, |close_reason| and |should_persist| + // boolean to a PickerAction value for recording in UMA. + static PickerAction GetPickerAction(apps::mojom::AppType app_type, + IntentPickerCloseReason close_reason, + bool should_persist); + + content::NavigationThrottle::ThrottleCheckResult HandleRequest(); + + // A reference to the starting GURL. + GURL starting_url_; DISALLOW_COPY_AND_ASSIGN(AppsNavigationThrottle); }; -} // namespace chromeos +} // namespace apps #endif // CHROME_BROWSER_APPS_INTENT_HELPER_APPS_NAVIGATION_THROTTLE_H_
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_throttle_unittest.cc b/chrome/browser/apps/intent_helper/apps_navigation_throttle_unittest.cc index 524ceaf..6f1235b 100644 --- a/chrome/browser/apps/intent_helper/apps_navigation_throttle_unittest.cc +++ b/chrome/browser/apps/intent_helper/apps_navigation_throttle_unittest.cc
@@ -4,11 +4,10 @@ #include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" -#include "components/arc/intent_helper/arc_intent_helper_bridge.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" -namespace chromeos { +namespace apps { TEST(AppsNavigationThrottleTest, TestShouldOverrideUrlLoading) { // A navigation within the same domain shouldn't be overridden except if the @@ -85,26 +84,30 @@ } TEST(AppsNavigationThrottleTest, TestGetPickerAction) { - // Expect PickerAction::ERROR if the close_reason is ERROR. - EXPECT_EQ(AppsNavigationThrottle::PickerAction::ERROR, - AppsNavigationThrottle::GetPickerAction( - apps::mojom::AppType::kUnknown, IntentPickerCloseReason::ERROR, - /*should_persist=*/true)); + // Expect PickerAction::PICKER_ERROR if the close_reason is ERROR. + EXPECT_EQ( + AppsNavigationThrottle::PickerAction::PICKER_ERROR, + AppsNavigationThrottle::GetPickerAction( + apps::mojom::AppType::kUnknown, IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/true)); - EXPECT_EQ(AppsNavigationThrottle::PickerAction::ERROR, - AppsNavigationThrottle::GetPickerAction( - apps::mojom::AppType::kArc, IntentPickerCloseReason::ERROR, - /*should_persist=*/true)); + EXPECT_EQ( + AppsNavigationThrottle::PickerAction::PICKER_ERROR, + AppsNavigationThrottle::GetPickerAction( + apps::mojom::AppType::kArc, IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/true)); - EXPECT_EQ(AppsNavigationThrottle::PickerAction::ERROR, - AppsNavigationThrottle::GetPickerAction( - apps::mojom::AppType::kUnknown, IntentPickerCloseReason::ERROR, - /*should_persist=*/false)); + EXPECT_EQ( + AppsNavigationThrottle::PickerAction::PICKER_ERROR, + AppsNavigationThrottle::GetPickerAction( + apps::mojom::AppType::kUnknown, IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/false)); - EXPECT_EQ(AppsNavigationThrottle::PickerAction::ERROR, - AppsNavigationThrottle::GetPickerAction( - apps::mojom::AppType::kArc, IntentPickerCloseReason::ERROR, - /*should_persist=*/false)); + EXPECT_EQ( + AppsNavigationThrottle::PickerAction::PICKER_ERROR, + AppsNavigationThrottle::GetPickerAction( + apps::mojom::AppType::kArc, IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/false)); // Expect PickerAction::DIALOG_DEACTIVATED if the close_reason is // DIALOG_DEACTIVATED. @@ -210,51 +213,36 @@ } TEST(AppsNavigationThrottleTest, TestGetDestinationPlatform) { - const std::string chrome_app = - arc::ArcIntentHelperBridge::kArcIntentHelperPackageName; - const std::string non_chrome_app = "fake_package"; + const std::string app_id = "fake_package"; // When the PickerAction is either ERROR or DIALOG_DEACTIVATED we MUST stay in // Chrome not taking into account the selected_app_package. EXPECT_EQ(AppsNavigationThrottle::Platform::CHROME, AppsNavigationThrottle::GetDestinationPlatform( - chrome_app, AppsNavigationThrottle::PickerAction::ERROR)); + app_id, AppsNavigationThrottle::PickerAction::PICKER_ERROR)); EXPECT_EQ(AppsNavigationThrottle::Platform::CHROME, AppsNavigationThrottle::GetDestinationPlatform( - non_chrome_app, AppsNavigationThrottle::PickerAction::ERROR)); - EXPECT_EQ(AppsNavigationThrottle::Platform::CHROME, - AppsNavigationThrottle::GetDestinationPlatform( - chrome_app, - AppsNavigationThrottle::PickerAction::DIALOG_DEACTIVATED)); - EXPECT_EQ(AppsNavigationThrottle::Platform::CHROME, - AppsNavigationThrottle::GetDestinationPlatform( - non_chrome_app, - AppsNavigationThrottle::PickerAction::DIALOG_DEACTIVATED)); - - // When the PickerAction is PWA_APP_PRESSED, always expect the platform to be - // PWA. - EXPECT_EQ( - AppsNavigationThrottle::Platform::PWA, - AppsNavigationThrottle::GetDestinationPlatform( - chrome_app, AppsNavigationThrottle::PickerAction::PWA_APP_PRESSED)); - - EXPECT_EQ(AppsNavigationThrottle::Platform::PWA, - AppsNavigationThrottle::GetDestinationPlatform( - non_chrome_app, - AppsNavigationThrottle::PickerAction::PWA_APP_PRESSED)); - - // Under any other PickerAction, stay in Chrome only if the package is Chrome. - // Otherwise redirect to ARC. + app_id, AppsNavigationThrottle::PickerAction::PICKER_ERROR)); EXPECT_EQ( AppsNavigationThrottle::Platform::CHROME, AppsNavigationThrottle::GetDestinationPlatform( - chrome_app, - AppsNavigationThrottle::PickerAction::PREFERRED_ACTIVITY_FOUND)); + app_id, AppsNavigationThrottle::PickerAction::DIALOG_DEACTIVATED)); EXPECT_EQ( - AppsNavigationThrottle::Platform::ARC, + AppsNavigationThrottle::Platform::CHROME, AppsNavigationThrottle::GetDestinationPlatform( - non_chrome_app, - AppsNavigationThrottle::PickerAction::PREFERRED_ACTIVITY_FOUND)); + app_id, AppsNavigationThrottle::PickerAction::DIALOG_DEACTIVATED)); + + // When the PickerAction is PWA_APP_PRESSED, always expect the platform to be + // PWA. + EXPECT_EQ(AppsNavigationThrottle::Platform::PWA, + AppsNavigationThrottle::GetDestinationPlatform( + app_id, AppsNavigationThrottle::PickerAction::PWA_APP_PRESSED)); + + EXPECT_EQ(AppsNavigationThrottle::Platform::PWA, + AppsNavigationThrottle::GetDestinationPlatform( + app_id, AppsNavigationThrottle::PickerAction::PWA_APP_PRESSED)); + + // TODO(crbug.com/939205): restore testing ARC picker redirection } -} // namespace chromeos +} // namespace apps
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_types.cc b/chrome/browser/apps/intent_helper/apps_navigation_types.cc index 98ec293..52a1169 100644 --- a/chrome/browser/apps/intent_helper/apps_navigation_types.cc +++ b/chrome/browser/apps/intent_helper/apps_navigation_types.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" -namespace chromeos { +namespace apps { IntentPickerAppInfo::IntentPickerAppInfo(apps::mojom::AppType type, const gfx::Image& icon, @@ -20,4 +20,4 @@ IntentPickerAppInfo& IntentPickerAppInfo::operator=( IntentPickerAppInfo&& other) = default; -} // namespace chromeos +} // namespace apps
diff --git a/chrome/browser/apps/intent_helper/apps_navigation_types.h b/chrome/browser/apps/intent_helper/apps_navigation_types.h index fff9e55e..a6faa72e 100644 --- a/chrome/browser/apps/intent_helper/apps_navigation_types.h +++ b/chrome/browser/apps/intent_helper/apps_navigation_types.h
@@ -13,12 +13,12 @@ #include "chrome/services/app_service/public/mojom/types.mojom.h" #include "ui/gfx/image/image.h" -namespace chromeos { +namespace apps { // Describes the possible ways for the intent picker to be closed. enum class IntentPickerCloseReason { // There was an error in showing the intent picker. - ERROR, + PICKER_ERROR, // The user dismissed the picker without making a choice. DIALOG_DEACTIVATED, @@ -96,7 +96,7 @@ using GetAppsCallback = base::OnceCallback<void(std::vector<IntentPickerAppInfo> apps)>; -} // namespace chromeos +} // namespace apps // Callback to pass the launch name and type of the app selected by the user, // along with the reason why the Bubble was closed and whether the decision @@ -105,7 +105,7 @@ using IntentPickerResponse = base::OnceCallback<void(const std::string& launch_name, apps::mojom::AppType app_type, - chromeos::IntentPickerCloseReason close_reason, + apps::IntentPickerCloseReason close_reason, bool should_persist)>; #endif // CHROME_BROWSER_APPS_INTENT_HELPER_APPS_NAVIGATION_TYPES_H_
diff --git a/chrome/browser/apps/intent_helper/intent_picker_controller.cc b/chrome/browser/apps/intent_helper/intent_picker_controller.cc index 28a8fe5..97aa75b 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_controller.cc +++ b/chrome/browser/apps/intent_helper/intent_picker_controller.cc
@@ -8,7 +8,7 @@ #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" -namespace arc { +namespace apps { IntentPickerController::IntentPickerController(Browser* browser) : browser_(browser) { @@ -34,4 +34,4 @@ browser_->window()->SetIntentPickerViewVisibility(/*visible=*/false); } -} // namespace arc +} // namespace apps
diff --git a/chrome/browser/apps/intent_helper/intent_picker_controller.h b/chrome/browser/apps/intent_helper/intent_picker_controller.h index e66b6fe..865ef514 100644 --- a/chrome/browser/apps/intent_helper/intent_picker_controller.h +++ b/chrome/browser/apps/intent_helper/intent_picker_controller.h
@@ -10,7 +10,7 @@ class Browser; -namespace arc { +namespace apps { // Controls the visibility of IntentPickerView by watching whenever the current // tab is switched. An object of this class is owned by IntentPickerView. @@ -33,6 +33,6 @@ DISALLOW_COPY_AND_ASSIGN(IntentPickerController); }; -} // namespace arc +} // namespace apps #endif // CHROME_BROWSER_APPS_INTENT_HELPER_INTENT_PICKER_CONTROLLER_H_
diff --git a/chrome/browser/apps/intent_helper/page_transition_util.cc b/chrome/browser/apps/intent_helper/page_transition_util.cc index d95ef801..1d2e809 100644 --- a/chrome/browser/apps/intent_helper/page_transition_util.cc +++ b/chrome/browser/apps/intent_helper/page_transition_util.cc
@@ -4,7 +4,7 @@ #include "chrome/browser/apps/intent_helper/page_transition_util.h" -namespace chromeos { +namespace apps { bool ShouldIgnoreNavigation(ui::PageTransition page_transition, bool allow_form_submit, @@ -42,4 +42,4 @@ return ui::PageTransitionFromInt(page_transition & ~mask); } -} // namespace chromeos +} // namespace apps
diff --git a/chrome/browser/apps/intent_helper/page_transition_util.h b/chrome/browser/apps/intent_helper/page_transition_util.h index dac775a..a02fe58a 100644 --- a/chrome/browser/apps/intent_helper/page_transition_util.h +++ b/chrome/browser/apps/intent_helper/page_transition_util.h
@@ -8,7 +8,7 @@ #include "base/macros.h" #include "ui/base/page_transition_types.h" -namespace chromeos { +namespace apps { // Returns true if ARC should ignore the navigation with the |page_transition|. bool ShouldIgnoreNavigation(ui::PageTransition page_transition, @@ -19,6 +19,6 @@ ui::PageTransition MaskOutPageTransition(ui::PageTransition page_transition, ui::PageTransition mask); -} // namespace chromeos +} // namespace apps #endif // CHROME_BROWSER_APPS_INTENT_HELPER_PAGE_TRANSITION_UTIL_H_
diff --git a/chrome/browser/apps/intent_helper/page_transition_util_unittest.cc b/chrome/browser/apps/intent_helper/page_transition_util_unittest.cc index 53ef5dd..67a7768 100644 --- a/chrome/browser/apps/intent_helper/page_transition_util_unittest.cc +++ b/chrome/browser/apps/intent_helper/page_transition_util_unittest.cc
@@ -6,7 +6,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/page_transition_types.h" -namespace chromeos { +namespace apps { // Tests that ShouldIgnoreNavigation returns false only for // PAGE_TRANSITION_LINK. @@ -213,4 +213,4 @@ false, true)); } -} // namespace chromeos +} // namespace apps
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 0d52998d..7ffb6df 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -377,7 +377,6 @@ #include "services/video_capture/public/mojom/constants.mojom.h" #elif defined(OS_CHROMEOS) #include "ash/public/interfaces/constants.mojom.h" -#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" #include "chrome/browser/ash_service_registry.h" #include "chrome/browser/chromeos/arc/fileapi/arc_content_file_system_backend_delegate.h" #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_backend_delegate.h" @@ -457,7 +456,7 @@ #include "chrome/browser/ui/search/new_tab_page_navigation_throttle.h" #include "chrome/common/importer/profile_import.mojom.h" #include "components/services/patch/public/interfaces/constants.mojom.h" -#endif +#endif // !defined(OS_ANDROID) #if defined(OS_WIN) || defined(OS_MACOSX) || \ (defined(OS_LINUX) && !defined(OS_CHROMEOS)) @@ -472,6 +471,16 @@ #include "components/crash/content/browser/crash_handler_host_linux.h" #endif +// TODO(crbug.com/939205): Once the upcoming App Service is available, use a +// single navigation throttle to display the intent picker on all platforms. +#if !defined(OS_ANDROID) +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h" +#else +#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" +#endif +#endif + #if defined(TOOLKIT_VIEWS) #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h" #endif @@ -4217,9 +4226,17 @@ handle->GetURL().SchemeIsHTTPOrHTTPS()) { throttles.push_back(MergeSessionNavigationThrottle::Create(handle)); } + } +#endif +#if !defined(OS_ANDROID) + if (base::FeatureList::IsEnabled(features::kIntentPicker)) { auto url_to_apps_throttle = - chromeos::AppsNavigationThrottle::MaybeCreate(handle); +#if defined(OS_CHROMEOS) + chromeos::ChromeOsAppsNavigationThrottle::MaybeCreate(handle); +#else + apps::AppsNavigationThrottle::MaybeCreate(handle); +#endif if (url_to_apps_throttle) throttles.push_back(std::move(url_to_apps_throttle)); } @@ -4271,7 +4288,7 @@ #endif std::unique_ptr<content::NavigationThrottle> - lookalike_url_navigation_throttle = + lookalike_url_navigation_throttle = lookalikes:: LookalikeUrlNavigationThrottle::MaybeCreateNavigationThrottle(handle); if (lookalike_url_navigation_throttle) throttles.push_back(std::move(lookalike_url_navigation_throttle));
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index e1a3cf9..2922947 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -396,6 +396,8 @@ "apps/apk_web_app_service.h", "apps/apk_web_app_service_factory.cc", "apps/apk_web_app_service_factory.h", + "apps/intent_helper/chromeos_apps_navigation_throttle.cc", + "apps/intent_helper/chromeos_apps_navigation_throttle.h", "arc/accessibility/accessibility_node_info_data_wrapper.cc", "arc/accessibility/accessibility_node_info_data_wrapper.h", "arc/accessibility/accessibility_window_info_data_wrapper.cc", @@ -1286,6 +1288,8 @@ "login/screens/network_screen_view.h", "login/screens/recommend_apps/recommend_apps_fetcher.cc", "login/screens/recommend_apps/recommend_apps_fetcher.h", + "login/screens/recommend_apps/recommend_apps_fetcher_impl.cc", + "login/screens/recommend_apps/recommend_apps_fetcher_impl.h", "login/screens/recommend_apps_screen.cc", "login/screens/recommend_apps_screen.h", "login/screens/recommend_apps_screen_view.h",
diff --git a/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.cc b/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.cc new file mode 100644 index 0000000..6d3089ff --- /dev/null +++ b/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.cc
@@ -0,0 +1,272 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h" + +#include <utility> + +#include "base/bind.h" +#include "base/metrics/histogram_macros.h" +#include "base/task/post_task.h" +#include "chrome/browser/apps/intent_helper/apps_navigation_types.h" +#include "chrome/browser/apps/intent_helper/intent_picker_auto_display_service.h" +#include "chrome/browser/chromeos/arc/arc_util.h" +#include "chrome/browser/chromeos/arc/arc_web_contents_data.h" +#include "chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/browser_window.h" +#include "components/arc/intent_helper/arc_intent_helper_bridge.h" +#include "components/arc/metrics/arc_metrics_constants.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/browser_task_traits.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/navigation_handle.h" +#include "content/public/browser/site_instance.h" +#include "content/public/browser/web_contents.h" +#include "url/origin.h" + +namespace chromeos { + +// static +std::unique_ptr<apps::AppsNavigationThrottle> +ChromeOsAppsNavigationThrottle::MaybeCreate(content::NavigationHandle* handle) { + content::WebContents* web_contents = handle->GetWebContents(); + const bool arc_enabled = arc::IsArcPlayStoreEnabledForProfile( + Profile::FromBrowserContext(web_contents->GetBrowserContext())); + if (!arc_enabled && !apps::AppsNavigationThrottle::CanCreate(web_contents)) + return nullptr; + + return std::make_unique<ChromeOsAppsNavigationThrottle>(handle, arc_enabled); +} + +// static +void ChromeOsAppsNavigationThrottle::ShowIntentPickerBubble( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url) { + arc::ArcIntentPickerAppFetcher::GetArcAppsForPicker( + web_contents, url, + base::BindOnce(&ChromeOsAppsNavigationThrottle:: + FindPwaForUrlAndShowIntentPickerForApps, + web_contents, ui_auto_display_service, url)); +} + +// static +void ChromeOsAppsNavigationThrottle::OnIntentPickerClosed( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + const std::string& launch_name, + apps::mojom::AppType app_type, + apps::IntentPickerCloseReason close_reason, + bool should_persist) { + const bool should_launch_app = + close_reason == apps::IntentPickerCloseReason::OPEN_APP; + switch (app_type) { + case apps::mojom::AppType::kArc: + if (arc::ArcIntentPickerAppFetcher::MaybeLaunchOrPersistArcApp( + url, launch_name, should_launch_app, should_persist)) { + CloseOrGoBack(web_contents); + } else { + close_reason = apps::IntentPickerCloseReason::PICKER_ERROR; + } + return; + case apps::mojom::AppType::kUnknown: + // TODO(crbug.com/826982): This workaround can be removed when preferences + // are no longer persisted within the ARC container, it was necessary + // since chrome browser is neither a PWA or ARC app. + if (close_reason == apps::IntentPickerCloseReason::STAY_IN_CHROME && + should_persist) { + arc::ArcIntentPickerAppFetcher::MaybeLaunchOrPersistArcApp( + url, launch_name, /*should_launch_app=*/false, + /*should_persist=*/true); + } + // Fall through to super class method to increment counter. + break; + case apps::mojom::AppType::kWeb: + case apps::mojom::AppType::kBuiltIn: + case apps::mojom::AppType::kCrostini: + case apps::mojom::AppType::kExtension: + break; + } + apps::AppsNavigationThrottle::OnIntentPickerClosed( + web_contents, ui_auto_display_service, url, launch_name, app_type, + close_reason, should_persist); +} + +// static +void ChromeOsAppsNavigationThrottle::RecordUma( + const std::string& selected_app_package, + apps::mojom::AppType app_type, + apps::IntentPickerCloseReason close_reason, + bool should_persist) { + if (app_type == apps::mojom::AppType::kArc && + (close_reason == apps::IntentPickerCloseReason::PREFERRED_APP_FOUND || + close_reason == apps::IntentPickerCloseReason::OPEN_APP)) { + UMA_HISTOGRAM_ENUMERATION("Arc.UserInteraction", + arc::UserInteractionType::APP_STARTED_FROM_LINK); + } + apps::AppsNavigationThrottle::RecordUma(selected_app_package, app_type, + close_reason, should_persist); +} + +ChromeOsAppsNavigationThrottle::ChromeOsAppsNavigationThrottle( + content::NavigationHandle* navigation_handle, + bool arc_enabled) + : apps::AppsNavigationThrottle(navigation_handle), + arc_enabled_(arc_enabled), + weak_factory_(this) {} + +ChromeOsAppsNavigationThrottle::~ChromeOsAppsNavigationThrottle() = default; + +// static +void ChromeOsAppsNavigationThrottle::FindPwaForUrlAndShowIntentPickerForApps( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + std::vector<apps::IntentPickerAppInfo> apps) { + std::vector<apps::IntentPickerAppInfo> apps_for_picker = + FindPwaForUrl(web_contents, url, std::move(apps)); + apps::AppsNavigationThrottle::ShowIntentPickerBubbleForAppsImpl( + web_contents, std::move(apps_for_picker), + base::BindOnce(&OnIntentPickerClosed, web_contents, + ui_auto_display_service, url)); +} + +// static +apps::AppsNavigationThrottle::Platform +ChromeOsAppsNavigationThrottle::GetDestinationPlatform( + const std::string& selected_launch_name, + PickerAction picker_action) { + switch (picker_action) { + case PickerAction::PREFERRED_ACTIVITY_FOUND: + return arc::ArcIntentHelperBridge::IsIntentHelperPackage( + selected_launch_name) + ? Platform::CHROME + : Platform::ARC; + case PickerAction::ARC_APP_PRESSED: + case PickerAction::ARC_APP_PREFERRED_PRESSED: + case PickerAction::PWA_APP_PRESSED: + case PickerAction::PICKER_ERROR: + case PickerAction::DIALOG_DEACTIVATED: + case PickerAction::CHROME_PRESSED: + case PickerAction::CHROME_PREFERRED_PRESSED: + case PickerAction::OBSOLETE_ALWAYS_PRESSED: + case PickerAction::OBSOLETE_JUST_ONCE_PRESSED: + case PickerAction::INVALID: + break; + } + return apps::AppsNavigationThrottle::GetDestinationPlatform( + selected_launch_name, picker_action); +} + +// Removes the flag signaling that the current tab was started via +// ChromeShellDelegate if the current throttle corresponds to a navigation +// passing thru different domains or schemes, except if |current_url| has a +// scheme different than http(s). +void ChromeOsAppsNavigationThrottle::MaybeRemoveComingFromArcFlag( + content::WebContents* web_contents, + const GURL& previous_url, + const GURL& current_url) { + // Let ArcExternalProtocolDialog handle these cases. + if (!current_url.SchemeIsHTTPOrHTTPS()) + return; + + if (url::Origin::Create(previous_url) + .IsSameOriginWith(url::Origin::Create(current_url))) { + return; + } + + const char* key = + arc::ArcWebContentsData::ArcWebContentsData::kArcTransitionFlag; + arc::ArcWebContentsData* arc_data = + static_cast<arc::ArcWebContentsData*>(web_contents->GetUserData(key)); + if (arc_data) + web_contents->RemoveUserData(key); +} + +void ChromeOsAppsNavigationThrottle::CancelNavigation() { + content::WebContents* web_contents = navigation_handle()->GetWebContents(); + if (web_contents && web_contents->GetController().IsInitialNavigation()) { + // Workaround for b/79167225, closing |web_contents| here may be dangerous. + base::PostTaskWithTraits( + FROM_HERE, {content::BrowserThread::UI}, + base::BindOnce(&ChromeOsAppsNavigationThrottle::CloseTab, + weak_factory_.GetWeakPtr())); + } else { + CancelDeferredNavigation(content::NavigationThrottle::CANCEL_AND_IGNORE); + } +} + +bool ChromeOsAppsNavigationThrottle::ShouldDeferNavigationForArc( + content::NavigationHandle* handle) { + if (arc_enabled_ && + arc::ArcIntentPickerAppFetcher::WillGetArcAppsForNavigation( + handle, + base::BindOnce( + &ChromeOsAppsNavigationThrottle::OnDeferredNavigationProcessed, + weak_factory_.GetWeakPtr()))) { + return true; + } + return false; +} + +void ChromeOsAppsNavigationThrottle::ShowIntentPickerBubbleForApps( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + std::vector<apps::IntentPickerAppInfo> apps) { + apps::AppsNavigationThrottle::ShowIntentPickerBubbleForAppsImpl( + web_contents, std::move(apps), + base::BindOnce(&OnIntentPickerClosed, web_contents, + ui_auto_display_service, url)); +} + +void ChromeOsAppsNavigationThrottle::OnDeferredNavigationProcessed( + apps::AppsNavigationAction action, + std::vector<apps::IntentPickerAppInfo> apps) { + if (action == apps::AppsNavigationAction::CANCEL) { + // We found a preferred ARC app to open; cancel the navigation and don't do + // anything else. + CancelNavigation(); + return; + } + + content::NavigationHandle* handle = navigation_handle(); + content::WebContents* web_contents = handle->GetWebContents(); + const GURL& url = handle->GetURL(); + + std::vector<apps::IntentPickerAppInfo> apps_for_picker = + FindPwaForUrl(web_contents, url, std::move(apps)); + + // If we only have PWAs in the app list, do not show the intent picker. + // Instead just show the omnibox icon. This is to reduce annoyance to users + // until "Remember my choice" is available for desktop PWAs. + // TODO(crbug.com/826982): show the intent picker when the app registry is + // available to persist "Remember my choice" for PWAs. + if (ShouldAutoDisplayUi(apps_for_picker, web_contents, url)) { + ShowIntentPickerBubbleForApps(web_contents, ui_auto_display_service_, url, + std::move(apps_for_picker)); + } else { + ui_displayed_ = false; + Browser* browser = chrome::FindBrowserWithWebContents(web_contents); + // If there were any candidates, show the intent picker icon in the omnibox + // so the user can manually pick if they wish. + if (browser && !apps_for_picker.empty()) + browser->window()->SetIntentPickerViewVisibility(/*visible=*/true); + } + + // We are about to resume the navigation, which may destroy this object. + Resume(); +} + +void ChromeOsAppsNavigationThrottle::CloseTab() { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + content::WebContents* web_contents = navigation_handle()->GetWebContents(); + if (web_contents) + web_contents->ClosePage(); +} +} // namespace chromeos
diff --git a/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h b/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h new file mode 100644 index 0000000..c2c4762 --- /dev/null +++ b/chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h
@@ -0,0 +1,119 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_CHROMEOS_APPS_NAVIGATION_THROTTLE_H_ +#define CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_CHROMEOS_APPS_NAVIGATION_THROTTLE_H_ + +#include <memory> +#include <string> +#include <vector> + +#include "base/macros.h" +#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" +#include "chrome/services/app_service/public/mojom/types.mojom.h" +#include "content/public/browser/navigation_throttle.h" +#include "url/gurl.h" + +namespace content { +class NavigationHandle; +class WebContents; +} // namespace content + +class IntentPickerAutoDisplayService; + +namespace chromeos { + +// Allows navigation to be routed to an installed app on Chrome OS, and provides +// a static method for showing an intent picker for the current URL to display +// any handling apps. +class ChromeOsAppsNavigationThrottle : public apps::AppsNavigationThrottle { + public: + // Possibly creates a navigation throttle that checks if any installed apps + // can handle the URL being navigated to. The user is prompted if they wish to + // open the app or remain in the browser. + static std::unique_ptr<apps::AppsNavigationThrottle> MaybeCreate( + content::NavigationHandle* handle); + + // Queries for installed apps which can handle |url|, and displays the intent + // picker bubble for |web_contents|. + static void ShowIntentPickerBubble( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url); + + // Called when the intent picker is closed for |url|, in |web_contents|, with + // |launch_name| as the (possibly empty) action to be triggered based on + // |app_type|. |close_reason| gives the reason for the picker being closed, + // and |should_persist| is true if the user indicated they wish to remember + // the choice made. |ui_auto_display_service| keeps track of whether or not + // the user dismissed the ui without engaging with it. + static void OnIntentPickerClosed( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + const std::string& launch_name, + apps::mojom::AppType app_type, + apps::IntentPickerCloseReason close_reason, + bool should_persist); + + static void RecordUma(const std::string& selected_app_package, + apps::mojom::AppType app_type, + apps::IntentPickerCloseReason close_reason, + bool should_persist); + + ChromeOsAppsNavigationThrottle(content::NavigationHandle* navigation_handle, + bool arc_enabled); + ~ChromeOsAppsNavigationThrottle() override; + + private: + static void FindPwaForUrlAndShowIntentPickerForApps( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + std::vector<apps::IntentPickerAppInfo> apps); + + // Determines the destination of the current navigation. We know that if the + // |picker_action| is either ERROR or DIALOG_DEACTIVATED the navigation MUST + // stay in Chrome, and when |picker_action| is PWA_APP_PRESSED the navigation + // goes to a PWA. Otherwise we can assume the navigation goes to ARC with the + // exception of the |selected_launch_name| being Chrome. + static Platform GetDestinationPlatform( + const std::string& selected_launch_name, + PickerAction picker_action); + + void MaybeRemoveComingFromArcFlag(content::WebContents* web_contents, + const GURL& previous_url, + const GURL& current_url) override; + + void CancelNavigation(); + + bool ShouldDeferNavigationForArc(content::NavigationHandle* handle) override; + + void ShowIntentPickerBubbleForApps( + content::WebContents* web_contents, + IntentPickerAutoDisplayService* ui_auto_display_service, + const GURL& url, + std::vector<apps::IntentPickerAppInfo> apps) override; + + // Passed as a callback to allow ARC-specific code to asynchronously inform + // this object of the apps which can handle this URL, and optionally request + // that the navigation be completely cancelled (e.g. if a preferred app has + // been opened). + void OnDeferredNavigationProcessed( + apps::AppsNavigationAction action, + std::vector<apps::IntentPickerAppInfo> apps) override; + + void CloseTab(); + + // True if ARC is enabled, false otherwise. + const bool arc_enabled_; + + base::WeakPtrFactory<ChromeOsAppsNavigationThrottle> weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(ChromeOsAppsNavigationThrottle); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_APPS_INTENT_HELPER_CHROMEOS_APPS_NAVIGATION_THROTTLE_H_
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc b/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc index d38113a8..921856a 100644 --- a/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc +++ b/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc
@@ -9,9 +9,9 @@ #include "base/bind.h" #include "base/memory/ref_counted.h" -#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" #include "chrome/browser/apps/intent_helper/page_transition_util.h" +#include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h" #include "chrome/browser/chromeos/arc/arc_web_contents_data.h" #include "chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h" #include "chrome/browser/chromeos/external_protocol_dialog.h" @@ -357,7 +357,7 @@ std::vector<mojom::IntentHandlerInfoPtr> handlers, const std::string& selected_app_package, apps::mojom::AppType app_type, - chromeos::IntentPickerCloseReason reason, + apps::IntentPickerCloseReason reason, bool should_persist) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -388,17 +388,17 @@ } if (!instance) - reason = chromeos::IntentPickerCloseReason::ERROR; + reason = apps::IntentPickerCloseReason::PICKER_ERROR; - if (reason == chromeos::IntentPickerCloseReason::OPEN_APP || - reason == chromeos::IntentPickerCloseReason::STAY_IN_CHROME) { + if (reason == apps::IntentPickerCloseReason::OPEN_APP || + reason == apps::IntentPickerCloseReason::STAY_IN_CHROME) { if (selected_app_index == handlers.size()) { - reason = chromeos::IntentPickerCloseReason::ERROR; + reason = apps::IntentPickerCloseReason::PICKER_ERROR; } } switch (reason) { - case chromeos::IntentPickerCloseReason::OPEN_APP: + case apps::IntentPickerCloseReason::OPEN_APP: // Only ARC apps are offered in the external protocol intent picker, so if // the user decided to open in app the type must be ARC. DCHECK_EQ(apps::mojom::AppType::kArc, app_type); @@ -417,29 +417,29 @@ HandleUrl(render_process_host_id, routing_id, url, handlers, selected_app_index, /*out_result=*/nullptr, safe_to_bypass_ui); break; - case chromeos::IntentPickerCloseReason::PREFERRED_APP_FOUND: + case apps::IntentPickerCloseReason::PREFERRED_APP_FOUND: // We shouldn't be here if a preferred app was found. NOTREACHED(); return; // no UMA recording. - case chromeos::IntentPickerCloseReason::STAY_IN_CHROME: + case apps::IntentPickerCloseReason::STAY_IN_CHROME: LOG(ERROR) << "Chrome is not a valid option for external protocol URLs"; NOTREACHED(); return; // no UMA recording. - case chromeos::IntentPickerCloseReason::ERROR: + case apps::IntentPickerCloseReason::PICKER_ERROR: LOG(ERROR) << "IntentPickerBubbleView returned CloseReason::ERROR: " << "instance=" << instance << ", selected_app_index=" << selected_app_index << ", handlers.size=" << handlers.size(); FALLTHROUGH; - case chromeos::IntentPickerCloseReason::DIALOG_DEACTIVATED: + case apps::IntentPickerCloseReason::DIALOG_DEACTIVATED: // The user didn't select any ARC activity. OnIntentPickerDialogDeactivated(render_process_host_id, routing_id, safe_to_bypass_ui, handlers); break; } - chromeos::AppsNavigationThrottle::RecordUma(selected_app_package, app_type, - reason, should_persist); + chromeos::ChromeOsAppsNavigationThrottle::RecordUma( + selected_app_package, app_type, reason, should_persist); } // Called when ARC returned activity icons for the |handlers|. @@ -452,7 +452,7 @@ std::unique_ptr<ArcIntentHelperBridge::ActivityToIconsMap> icons) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - using AppInfo = chromeos::IntentPickerAppInfo; + using AppInfo = apps::IntentPickerAppInfo; std::vector<AppInfo> app_info; for (const auto& handler : handlers) { @@ -519,9 +519,9 @@ if (HandleUrl(render_process_host_id, routing_id, url, handlers, handlers.size(), &result, safe_to_bypass_ui)) { if (result == GetActionResult::HANDLE_URL_IN_ARC) { - chromeos::AppsNavigationThrottle::RecordUma( + chromeos::ChromeOsAppsNavigationThrottle::RecordUma( std::string(), apps::mojom::AppType::kArc, - chromeos::IntentPickerCloseReason::PREFERRED_APP_FOUND, + apps::IntentPickerCloseReason::PREFERRED_APP_FOUND, /*should_persist=*/false); } return; // the |url| has been handled. @@ -551,13 +551,12 @@ DCHECK(!url.SchemeIsHTTPOrHTTPS()) << url; // For external protocol navigation, always ignore the FROM_API qualifier. - const ui::PageTransition masked_page_transition = - chromeos::MaskOutPageTransition(page_transition, - ui::PAGE_TRANSITION_FROM_API); + const ui::PageTransition masked_page_transition = apps::MaskOutPageTransition( + page_transition, ui::PAGE_TRANSITION_FROM_API); - if (chromeos::ShouldIgnoreNavigation(masked_page_transition, - /*allow_form_submit=*/true, - /*allow_client_redirect=*/true)) { + if (apps::ShouldIgnoreNavigation(masked_page_transition, + /*allow_form_submit=*/true, + /*allow_client_redirect=*/true)) { LOG(WARNING) << "RunArcExternalProtocolDialog: ignoring " << url << " with PageTransition=" << masked_page_transition; return false;
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.cc b/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.cc index ceaac90..e7959c22 100644 --- a/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.cc +++ b/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.cc
@@ -8,7 +8,7 @@ #include "base/bind.h" #include "base/callback.h" -#include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" +#include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_window.h" @@ -52,7 +52,7 @@ void ArcIntentPickerAppFetcher::GetArcAppsForPicker( content::WebContents* web_contents, const GURL& url, - chromeos::GetAppsCallback callback) { + apps::GetAppsCallback callback) { arc::ArcServiceManager* arc_service_manager = arc::ArcServiceManager::Get(); if (!arc_service_manager) { DVLOG(1) << "Cannot get an instance of ArcServiceManager"; @@ -78,7 +78,7 @@ // static bool ArcIntentPickerAppFetcher::WillGetArcAppsForNavigation( content::NavigationHandle* handle, - chromeos::AppsNavigationCallback callback) { + apps::AppsNavigationCallback callback) { ArcServiceManager* arc_service_manager = ArcServiceManager::Get(); if (!arc_service_manager) return false; @@ -193,7 +193,7 @@ void ArcIntentPickerAppFetcher::GetArcAppsForNavigation( mojom::IntentHelperInstance* instance, const GURL& url, - chromeos::AppsNavigationCallback callback) { + apps::AppsNavigationCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); instance->RequestUrlHandlerList( @@ -206,7 +206,7 @@ void ArcIntentPickerAppFetcher::GetArcAppsForPicker( mojom::IntentHelperInstance* instance, const GURL& url, - chromeos::GetAppsCallback callback) { + apps::GetAppsCallback callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); instance->RequestUrlHandlerList( @@ -218,7 +218,7 @@ void ArcIntentPickerAppFetcher::OnAppCandidatesReceivedForNavigation( const GURL& url, - chromeos::AppsNavigationCallback callback, + apps::AppsNavigationCallback callback, std::vector<mojom::IntentHandlerInfoPtr> app_candidates) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -227,28 +227,29 @@ // This scenario shouldn't be accessed as ArcIntentPickerAppFetcher is // created iff there are ARC apps which can actually handle the given URL. DVLOG(1) << "There are no app candidates for this URL: " << url; - chromeos::AppsNavigationThrottle::RecordUma( + chromeos::ChromeOsAppsNavigationThrottle::RecordUma( std::string(), apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::ERROR, /*should_persist=*/false); - std::move(callback).Run(chromeos::AppsNavigationAction::RESUME, {}); + apps::IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/false); + std::move(callback).Run(apps::AppsNavigationAction::RESUME, {}); return; } // If one of the apps is marked as preferred, launch it immediately. - chromeos::PreferredPlatform pref_platform = + apps::PreferredPlatform pref_platform = DidLaunchPreferredArcApp(url, app_candidates); switch (pref_platform) { - case chromeos::PreferredPlatform::ARC: - std::move(callback).Run(chromeos::AppsNavigationAction::CANCEL, {}); + case apps::PreferredPlatform::ARC: + std::move(callback).Run(apps::AppsNavigationAction::CANCEL, {}); return; - case chromeos::PreferredPlatform::NATIVE_CHROME: - std::move(callback).Run(chromeos::AppsNavigationAction::RESUME, {}); + case apps::PreferredPlatform::NATIVE_CHROME: + std::move(callback).Run(apps::AppsNavigationAction::RESUME, {}); return; - case chromeos::PreferredPlatform::PWA: + case apps::PreferredPlatform::PWA: NOTREACHED(); break; - case chromeos::PreferredPlatform::NONE: + case apps::PreferredPlatform::NONE: break; // Do nothing. } @@ -256,14 +257,14 @@ // the intent picker bubble to prompt the user to choose if they would like to // use an ARC app to open the URL. deleter.release(); - GetArcAppIcons(url, std::move(app_candidates), - base::BindOnce(std::move(callback), - chromeos::AppsNavigationAction::RESUME)); + GetArcAppIcons( + url, std::move(app_candidates), + base::BindOnce(std::move(callback), apps::AppsNavigationAction::RESUME)); } void ArcIntentPickerAppFetcher::OnAppCandidatesReceivedForPicker( const GURL& url, - chromeos::GetAppsCallback callback, + apps::GetAppsCallback callback, std::vector<arc::mojom::IntentHandlerInfoPtr> app_candidates) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -278,18 +279,17 @@ GetArcAppIcons(url, std::move(app_candidates), std::move(callback)); } -chromeos::PreferredPlatform ArcIntentPickerAppFetcher::DidLaunchPreferredArcApp( +apps::PreferredPlatform ArcIntentPickerAppFetcher::DidLaunchPreferredArcApp( const GURL& url, const std::vector<mojom::IntentHandlerInfoPtr>& app_candidates) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - chromeos::PreferredPlatform preferred_platform = - chromeos::PreferredPlatform::NONE; + apps::PreferredPlatform preferred_platform = apps::PreferredPlatform::NONE; apps::mojom::AppType app_type = apps::mojom::AppType::kUnknown; const size_t index = FindPreferredApp(app_candidates, url); if (index != app_candidates.size()) { - auto close_reason = chromeos::IntentPickerCloseReason::PREFERRED_APP_FOUND; + auto close_reason = apps::IntentPickerCloseReason::PREFERRED_APP_FOUND; const std::string& package_name = app_candidates[index]->package_name; // Make sure that the instance at least supports HandleUrl. @@ -302,18 +302,18 @@ } if (!instance) { - close_reason = chromeos::IntentPickerCloseReason::ERROR; + close_reason = apps::IntentPickerCloseReason::PICKER_ERROR; } else if (ArcIntentHelperBridge::IsIntentHelperPackage(package_name)) { Browser* browser = chrome::FindBrowserWithWebContents(web_contents()); if (browser) browser->window()->SetIntentPickerViewVisibility(/*visible=*/true); - preferred_platform = chromeos::PreferredPlatform::NATIVE_CHROME; + preferred_platform = apps::PreferredPlatform::NATIVE_CHROME; } else { instance->HandleUrl(url.spec(), package_name); - preferred_platform = chromeos::PreferredPlatform::ARC; + preferred_platform = apps::PreferredPlatform::ARC; app_type = apps::mojom::AppType::kArc; } - chromeos::AppsNavigationThrottle::RecordUma( + chromeos::ChromeOsAppsNavigationThrottle::RecordUma( package_name, app_type, close_reason, /*should_persist=*/false); } @@ -323,7 +323,7 @@ void ArcIntentPickerAppFetcher::GetArcAppIcons( const GURL& url, std::vector<mojom::IntentHandlerInfoPtr> app_candidates, - chromeos::GetAppsCallback callback) { + apps::GetAppsCallback callback) { std::unique_ptr<ArcIntentPickerAppFetcher> deleter(this); DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -331,9 +331,10 @@ web_contents()->GetBrowserContext()); if (!intent_helper_bridge) { LOG(ERROR) << "Cannot get an instance of ArcIntentHelperBridge"; - chromeos::AppsNavigationThrottle::RecordUma( + chromeos::ChromeOsAppsNavigationThrottle::RecordUma( std::string(), apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::ERROR, /*should_persist=*/false); + apps::IntentPickerCloseReason::PICKER_ERROR, + /*should_persist=*/false); std::move(callback).Run({}); return; } @@ -352,12 +353,12 @@ void ArcIntentPickerAppFetcher::OnAppIconsReceived( const GURL& url, std::vector<arc::mojom::IntentHandlerInfoPtr> app_candidates, - chromeos::GetAppsCallback callback, + apps::GetAppsCallback callback, std::unique_ptr<arc::ArcIntentHelperBridge::ActivityToIconsMap> icons) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); std::unique_ptr<ArcIntentPickerAppFetcher> deleter(this); - std::vector<chromeos::IntentPickerAppInfo> app_info; + std::vector<apps::IntentPickerAppInfo> app_info; for (const auto& candidate : app_candidates) { gfx::Image icon;
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h b/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h index 27ba3a9..631ae60f 100644 --- a/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h +++ b/chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h
@@ -32,7 +32,7 @@ // |callback| when complete. Does not attempt to open preferred apps. static void GetArcAppsForPicker(content::WebContents* web_contents, const GURL& url, - chromeos::GetAppsCallback callback); + apps::GetAppsCallback callback); // Returns true if the navigation request represented by |handle| should be // deferred while ARC is queried for apps, and if so, |callback| will be run @@ -40,7 +40,7 @@ // run if false is returned. static bool WillGetArcAppsForNavigation( content::NavigationHandle* handle, - chromeos::AppsNavigationCallback callback); + apps::AppsNavigationCallback callback); // Called to launch an ARC app if it was selected by the user, and persist the // preference to launch or stay in Chrome if |should_persist| is true. Returns @@ -80,13 +80,13 @@ // of handling apps. void GetArcAppsForNavigation(mojom::IntentHelperInstance* instance, const GURL& url, - chromeos::AppsNavigationCallback callback); + apps::AppsNavigationCallback callback); // Asychronously queries ARC for apps which can handle |url|. Runs |callback| // with the list of handling apps. void GetArcAppsForPicker(mojom::IntentHelperInstance* instance, const GURL& url, - chromeos::GetAppsCallback callback); + apps::GetAppsCallback callback); // Determines if there are apps to show the intent picker, or if we should // open a preferred app. Runs |callback| to RESUME/CANCEL the navigation which @@ -96,21 +96,21 @@ // navigation. void OnAppCandidatesReceivedForNavigation( const GURL& url, - chromeos::AppsNavigationCallback callback, + apps::AppsNavigationCallback callback, std::vector<mojom::IntentHandlerInfoPtr> app_candidates); // Determines if there are apps to show the intent picker. Runs |callback| // with the list of apps to show in the picker. void OnAppCandidatesReceivedForPicker( const GURL& url, - chromeos::GetAppsCallback callback, + apps::GetAppsCallback callback, std::vector<arc::mojom::IntentHandlerInfoPtr> app_candidates); // Returns NONE if there is no preferred app given the potential // |app_candidates| or if we had an error while checking for preferred apps. // Otherwise return the platform where the preferred app lives (for now only // ARC and NATIVE_CHROME). - chromeos::PreferredPlatform DidLaunchPreferredArcApp( + apps::PreferredPlatform DidLaunchPreferredArcApp( const GURL& url, const std::vector<mojom::IntentHandlerInfoPtr>& app_candidates); @@ -118,12 +118,12 @@ // |app_candidates|. Calls OnAppIconsReceived() when finished. void GetArcAppIcons(const GURL& url, std::vector<mojom::IntentHandlerInfoPtr> app_candidates, - chromeos::GetAppsCallback callback); + apps::GetAppsCallback callback); void OnAppIconsReceived( const GURL& url, std::vector<arc::mojom::IntentHandlerInfoPtr> app_candidates, - chromeos::GetAppsCallback callback, + apps::GetAppsCallback callback, std::unique_ptr<arc::ArcIntentHelperBridge::ActivityToIconsMap> icons); // content::WebContentsObserver overrides.
diff --git a/chrome/browser/chromeos/crostini/crostini_util.cc b/chrome/browser/chromeos/crostini/crostini_util.cc index 3969af9..e2ac697 100644 --- a/chrome/browser/chromeos/crostini/crostini_util.cc +++ b/chrome/browser/chromeos/crostini/crostini_util.cc
@@ -164,7 +164,6 @@ if (loaded_icons_ != icons_.size()) return; - timeout_timer_.AbandonAndStop(); RunCallback(); } @@ -182,10 +181,16 @@ // If we're running the callback as loading has finished, we can't delete // ourselves yet as it would destroy the CrostiniAppIcon which is calling - // into us right now. - base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, - base::BindOnce(&IconLoadWaiter::Delete, base::Unretained(this))); + // into us right now. If we hit the timeout, we delete immediately to avoid + // any race with more icons finishing loading. + if (timeout_timer_.IsRunning()) { + timeout_timer_.AbandonAndStop(); + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(&IconLoadWaiter::Delete, base::Unretained(this))); + } else { + Delete(); + } } std::vector<std::unique_ptr<CrostiniAppIcon>> icons_;
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.cc b/chrome/browser/chromeos/input_method/input_method_engine.cc index b455bd8..38b3fdc 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine.cc +++ b/chrome/browser/chromeos/input_method/input_method_engine.cc
@@ -64,11 +64,17 @@ class MojoHelper : public ime::mojom::ImeEngine, public ime::mojom::ImeEngineFactory { public: - MojoHelper(InputMethodEngine* engine, - ime::mojom::ImeEngineFactoryRegistryPtr registry) - : engine_(engine), factory_binding_(this), engine_binding_(this) { + explicit MojoHelper(InputMethodEngine* engine) + : engine_(engine), factory_binding_(this), engine_binding_(this) {} + ~MojoHelper() override = default; + + void Activate(ime::mojom::ImeEngineFactoryRegistryPtr registry) { ime::mojom::ImeEngineFactoryPtr factory_ptr; + factory_binding_.Close(); factory_binding_.Bind(mojo::MakeRequest(&factory_ptr)); + factory_binding_.set_connection_error_handler( + base::BindOnce(&MojoHelper::OnConnectionLost, base::Unretained(this))); + if (registry) { registry_ = std::move(registry); } else { @@ -79,11 +85,11 @@ } registry_->ActivateFactory(std::move(factory_ptr)); } - ~MojoHelper() override = default; // ime::mojom::ImeEngineFactory overrides: void CreateEngine(ime::mojom::ImeEngineRequest engine_request, ime::mojom::ImeEngineClientPtr client) override { + engine_binding_.Close(); engine_binding_.Bind(std::move(engine_request)); engine_client_ = std::move(client); } @@ -112,7 +118,11 @@ engine_->SetCompositionBounds(bounds); } - ime::mojom::ImeEngineClientPtr& engine_client() { return engine_client_; } + bool IsConnected() const { return engine_client_.is_bound(); } + + ime::mojom::ImeEngineClientProxy* engine_client() { + return engine_client_.get(); + } void FlushForTesting() { if (registry_) @@ -122,6 +132,14 @@ } private: + void OnConnectionLost() { + // After the connection to |ImeEngineFactoryRegistry| is broken, break the + // connection to the client, so that the client can reconnect through Window + // Service. + engine_binding_.Close(); + engine_client_.reset(); + } + InputMethodEngine* engine_; mojo::Binding<ime::mojom::ImeEngineFactory> factory_binding_; mojo::Binding<ime::mojom::ImeEngine> engine_binding_; @@ -152,20 +170,16 @@ : candidate_window_(new ui::CandidateWindow()), window_visible_(false), is_mirroring_(false), - is_casting_(false) {} + is_casting_(false) { + mojo_helper_ = std::make_unique<MojoHelper>(this); +} InputMethodEngine::~InputMethodEngine() {} void InputMethodEngine::Enable(const std::string& component_id) { InputMethodEngineBase::Enable(component_id); EnableInputView(); - mojo_helper_ = std::make_unique<MojoHelper>( - this, std::move(ime_engine_factory_registry_)); -} - -void InputMethodEngine::Disable() { - InputMethodEngineBase::Disable(); - mojo_helper_.reset(); + mojo_helper_->Activate(std::move(ime_engine_factory_registry_)); } bool InputMethodEngine::IsActive() const { @@ -355,19 +369,33 @@ const ui::CompositionText& composition_text, uint32_t cursor_pos, bool is_visible) { - ui::IMEInputContextHandlerInterface* input_context = - ui::IMEBridge::Get()->GetInputContextHandler(); - if (input_context) - input_context->UpdateCompositionText(composition_text, cursor_pos, - is_visible); + if (mojo_helper_->IsConnected()) { + NOTIMPLEMENTED_LOG_ONCE(); + } else { + ui::IMEInputContextHandlerInterface* input_context = + ui::IMEBridge::Get()->GetInputContextHandler(); + if (input_context) + input_context->UpdateCompositionText(composition_text, cursor_pos, + is_visible); + } } void InputMethodEngine::CommitTextToInputContext(int context_id, const std::string& text) { - ui::IMEBridge::Get()->GetInputContextHandler()->CommitText(text); + bool committed = false; + if (mojo_helper_->IsConnected()) { + NOTIMPLEMENTED_LOG_ONCE(); + } else { + ui::IMEInputContextHandlerInterface* input_context = + ui::IMEBridge::Get()->GetInputContextHandler(); + if (input_context) { + input_context->CommitText(text); + committed = true; + } + } - // Records histograms for committed characters. - if (!composition_text_->text.empty()) { + if (committed && !composition_text_->text.empty()) { + // Records histograms for committed characters. base::string16 wtext = base::UTF8ToUTF16(text); UMA_HISTOGRAM_CUSTOM_COUNTS("InputMethod.CommitLength", wtext.length(), 1, 25, 25); @@ -375,24 +403,42 @@ } } +void InputMethodEngine::DeleteSurroundingTextToInputContext( + int offset, + size_t number_of_chars) { + if (mojo_helper_->IsConnected()) { + NOTIMPLEMENTED_LOG_ONCE(); + } else { + ui::IMEInputContextHandlerInterface* input_context = + ui::IMEBridge::Get()->GetInputContextHandler(); + if (input_context) + input_context->DeleteSurroundingText(offset, number_of_chars); + } +} + bool InputMethodEngine::SendKeyEvent(ui::KeyEvent* event, const std::string& code) { DCHECK(event); if (event->key_code() == ui::VKEY_UNKNOWN) event->set_key_code(ui::DomKeycodeToKeyboardCode(code)); - ui::IMEInputContextHandlerInterface* input_context = - ui::IMEBridge::Get()->GetInputContextHandler(); - if (!input_context) - return false; - // Marks the simulated key event is from the Virtual Keyboard. ui::Event::Properties properties; properties[ui::kPropertyFromVK] = std::vector<uint8_t>(); event->SetProperties(properties); - input_context->SendKeyEvent(event); - return true; + bool sent = false; + if (mojo_helper_->IsConnected()) { + NOTIMPLEMENTED_LOG_ONCE(); + } else { + ui::IMEInputContextHandlerInterface* input_context = + ui::IMEBridge::Get()->GetInputContextHandler(); + if (input_context) { + input_context->SendKeyEvent(event); + sent = true; + } + } + return sent; } void InputMethodEngine::EnableInputView() {
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.h b/chrome/browser/chromeos/input_method/input_method_engine.h index e5374ab..710f8adc 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine.h +++ b/chrome/browser/chromeos/input_method/input_method_engine.h
@@ -91,7 +91,6 @@ // InputMethodEngineBase overrides. void Enable(const std::string& component_id) override; - void Disable() override; bool IsActive() const override; // ui::IMEEngineHandlerInterface overrides. @@ -146,6 +145,8 @@ bool is_visible) override; void CommitTextToInputContext(int context_id, const std::string& text) override; + void DeleteSurroundingTextToInputContext(int offset, + size_t number_of_chars) override; bool SendKeyEvent(ui::KeyEvent* event, const std::string& code) override; // Enables overriding input view page to Virtual Keyboard window.
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.cc b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.cc index 3d5c804c..08ca541 100644 --- a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.cc +++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.cc
@@ -1,633 +1,37 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. - +// #include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h" -#include "ash/public/interfaces/constants.mojom.h" -#include "ash/public/interfaces/cros_display_config.mojom.h" -#include "base/base64url.h" -#include "base/bind.h" -#include "base/json/json_reader.h" -#include "base/metrics/histogram_functions.h" -#include "base/metrics/histogram_macros.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_piece.h" -#include "base/strings/string_split.h" -#include "base/task/post_task.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/browser/profiles/profile_manager.h" -#include "content/public/browser/gpu_data_manager.h" -#include "content/public/browser/storage_partition.h" -#include "content/public/common/service_manager_connection.h" -#include "extensions/common/api/system_display.h" -#include "gpu/config/gpu_info.h" -#include "net/base/load_flags.h" -#include "net/http/http_status_code.h" -#include "services/network/public/cpp/simple_url_loader.h" -#include "services/service_manager/public/cpp/connector.h" -#include "third_party/zlib/google/compression_utils.h" -#include "ui/display/display.h" -#include "ui/display/screen.h" -#include "ui/events/devices/input_device.h" -#include "ui/events/devices/input_device_manager.h" -#include "ui/gfx/extension_set.h" -#include "ui/gl/gl_version_info.h" +#include "base/callback.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.h" namespace chromeos { namespace { -constexpr const char kGetAppListUrl[] = - "https://android.clients.google.com/fdfe/chrome/getfastreinstallappslist"; - -constexpr int kResponseErrorNotEnoughApps = 5; - -constexpr int kResponseErrorNotFirstTimeChromebookUser = 6; - -constexpr base::TimeDelta kDownloadTimeOut = base::TimeDelta::FromMinutes(1); - -constexpr const int64_t kMaxDownloadBytes = 1024 * 1024; // 1Mb - -constexpr const int kMaxAppCount = 21; - -enum RecommendAppsResponseParseResult { - // These values are persisted to logs. Entries should not be renumbered and - // numeric values should never be reused. - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_ERROR = 0, - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON = 1, - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP = 2, - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_OWNS_CHROMEBOOK_ALREADY = 3, - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_UNKNOWN_ERROR_CODE = 4, - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE = 5, - - kMaxValue = RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE -}; - -bool HasTouchScreen() { - return !ui::InputDeviceManager::GetInstance() - ->GetTouchscreenDevices() - .empty(); -} - -bool HasStylusInput() { - // Check to see if the hardware reports it is stylus capable. - for (const ui::TouchscreenDevice& device : - ui::InputDeviceManager::GetInstance()->GetTouchscreenDevices()) { - if (device.has_stylus && - device.type == ui::InputDeviceType::INPUT_DEVICE_INTERNAL) { - return true; - } - } - - return false; -} - -bool HasKeyboard() { - return !ui::InputDeviceManager::GetInstance()->GetKeyboardDevices().empty(); -} - -bool HasHardKeyboard() { - for (const ui::InputDevice& device : - ui::InputDeviceManager::GetInstance()->GetKeyboardDevices()) { - if (!device.phys.empty()) - return true; - } - - return false; -} - -gfx::Size GetScreenSize() { - return display::Screen::GetScreen()->GetPrimaryDisplay().GetSizeInPixel(); -} - -// TODO(rsgingerrs): This function is copied from Play. We need to find a way to -// keep this synced with the Play side if there are any changes there. Another -// approach is to let the server do the calculation since we have provided the -// screen width, height and dpi. -int CalculateStableScreenLayout(const int screen_width, - const int screen_height, - const float dpi) { - const int density_default = 160; - const float px_to_dp = density_default / static_cast<float>(dpi); - const int short_size_dp = static_cast<int>(screen_width * px_to_dp); - const int long_size_dp = static_cast<int>(screen_height * px_to_dp); - - int screen_layout_size; - bool screen_layout_long; - - const int screenlayout_size_small = 0x01; - const int screenlayout_size_normal = 0x02; - const int screenlayout_size_large = 0x03; - const int screenlayout_size_xlarge = 0x04; - const int screenlayout_long_no = 0x10; - - // These semi-magic numbers define our compatibility modes for - // applications with different screens. These are guarantees to - // app developers about the space they can expect for a particular - // configuration. DO NOT CHANGE! - if (long_size_dp < 470) { - // This is shorter than an HVGA normal density screen (which - // is 480 pixels on its long side). - screen_layout_size = screenlayout_size_small; - screen_layout_long = false; - } else { - // What size is this screen? - if (long_size_dp >= 960 && short_size_dp >= 720) { - // 1.5xVGA or larger screens at medium density are the point - // at which we consider it to be an extra large screen. - screen_layout_size = screenlayout_size_xlarge; - } else if (long_size_dp >= 640 && short_size_dp >= 480) { - // VGA or larger screens at medium density are the point - // at which we consider it to be a large screen. - screen_layout_size = screenlayout_size_large; - } else { - screen_layout_size = screenlayout_size_normal; - } - - // Is this a long screen? Anything wider than WVGA (5:3) is considering to - // be long. - screen_layout_long = ((long_size_dp * 3) / 5) >= (short_size_dp - 1); - } - - int screen_layout = screen_layout_size; - if (!screen_layout_long) { - screen_layout |= screenlayout_long_no; - } - - return screen_layout; -} - -device_configuration::DeviceConfigurationProto_ScreenLayout -GetScreenLayoutSizeId(const int screen_layout_size_value) { - const int screenlayout_size_small = 0x01; - const int screenlayout_size_normal = 0x02; - const int screenlayout_size_large = 0x03; - const int screenlayout_size_xlarge = 0x04; - const int screenlayout_size_mask = 0x0f; - int size_bits = screen_layout_size_value & screenlayout_size_mask; - - switch (size_bits) { - case screenlayout_size_small: - return device_configuration::DeviceConfigurationProto_ScreenLayout:: - DeviceConfigurationProto_ScreenLayout_SMALL; - case screenlayout_size_normal: - return device_configuration::DeviceConfigurationProto_ScreenLayout:: - DeviceConfigurationProto_ScreenLayout_NORMAL; - case screenlayout_size_large: - return device_configuration::DeviceConfigurationProto_ScreenLayout:: - DeviceConfigurationProto_ScreenLayout_LARGE; - case screenlayout_size_xlarge: - return device_configuration::DeviceConfigurationProto_ScreenLayout:: - DeviceConfigurationProto_ScreenLayout_EXTRA_LARGE; - default: - return device_configuration::DeviceConfigurationProto_ScreenLayout:: - DeviceConfigurationProto_ScreenLayout_UNDEFINED_SCREEN_LAYOUT; - } -} - -const gpu::GPUInfo GetGPUInfo() { - return content::GpuDataManager::GetInstance()->GetGPUInfo(); -} - -// This function converts the major and minor versions to the proto accepted -// value. For example, if the version is 3.2, the return value is 0x00030002. -unsigned GetGLVersionInfo() { - const gpu::GPUInfo gpu_info = GetGPUInfo(); - gfx::ExtensionSet extensionSet(gfx::MakeExtensionSet(gpu_info.gl_extensions)); - gl::GLVersionInfo glVersionInfo(gpu_info.gl_version.c_str(), - gpu_info.gl_renderer.c_str(), extensionSet); - - unsigned major_version = glVersionInfo.major_version; - unsigned minor_version = glVersionInfo.minor_version; - unsigned version = 0x0000ffff; - version &= minor_version; - version |= (major_version << 16) & 0xffff0000; - - return version; -} - -gfx::ExtensionSet GetGLExtensions() { - const gpu::GPUInfo gpu_info = GetGPUInfo(); - gfx::ExtensionSet extensionSet(gfx::MakeExtensionSet(gpu_info.gl_extensions)); - - return extensionSet; -} - -const std::string& GetAndroidSdkVersion(const arc::ArcFeatures& arc_features) { - return arc_features.build_props.at("ro.build.version.sdk"); -} - -std::vector<std::string> GetCpuAbiList(const arc::ArcFeatures& arc_features) { - const std::string& abi_list_str = - arc_features.build_props.at("ro.product.cpu.abilist"); - return base::SplitString(abi_list_str, ",", base::TRIM_WHITESPACE, - base::SPLIT_WANT_ALL); -} - -std::string CompressAndEncodeProtoMessageOnBlockingThread( - device_configuration::DeviceConfigurationProto device_config) { - std::string encoded_device_configuration_proto; - - std::string serialized_proto; - device_config.SerializeToString(&serialized_proto); - std::string compressed_proto; - compression::GzipCompress(serialized_proto, &compressed_proto); - base::Base64UrlEncode(compressed_proto, - base::Base64UrlEncodePolicy::OMIT_PADDING, - &encoded_device_configuration_proto); - - return encoded_device_configuration_proto; -} - -void RecordUmaResponseAppCount(int app_count) { - UMA_HISTOGRAM_CUSTOM_COUNTS("OOBE.RecommendApps.Fetcher.AppCount", app_count, - 0, kMaxAppCount, kMaxAppCount + 1); -} - -void RecordUmaDownloadTime(base::TimeDelta download_time) { - UMA_HISTOGRAM_TIMES("OOBE.RecommendApps.Fetcher.DownloadTime", download_time); -} - -void RecordUmaResponseCode(int code) { - base::UmaHistogramSparse("OOBE.RecommendApps.Fetcher.ResponseCode", code); -} - -void RecordUmaResponseParseResult(RecommendAppsResponseParseResult result) { - UMA_HISTOGRAM_ENUMERATION("OOBE.RecommendApps.Fetcher.ResponseParseResult", - result); -} - -void RecordUmaResponseSize(unsigned long responseSize) { - UMA_HISTOGRAM_COUNTS_1M( - "OOBE.RecommendApps.Fetcher.ResponseSize", - static_cast<base::HistogramBase::Sample>(responseSize)); -} +// The factory callback that will be used to create RecommendAppsFetcher +// instances other than default RecommendAppsFetcherImpl. +// It can be set by SetFactoryCallbackForTesting(). +RecommendAppsFetcher::FactoryCallback* g_factory_callback = nullptr; } // namespace -RecommendAppsFetcher::RecommendAppsFetcher(RecommendAppsScreenView* view) - : view_(view), weak_ptr_factory_(this) { - service_manager::Connector* connector = - content::ServiceManagerConnection::GetForProcess()->GetConnector(); - DCHECK(connector); - connector->BindInterface(ash::mojom::kServiceName, &cros_display_config_); - - PopulateDeviceConfig(); - StartAshRequest(); - arc::ArcFeaturesParser::GetArcFeatures( - base::BindOnce(&RecommendAppsFetcher::OnArcFeaturesRead, - weak_ptr_factory_.GetWeakPtr())); +// static +std::unique_ptr<RecommendAppsFetcher> RecommendAppsFetcher::Create( + RecommendAppsScreenView* view) { + if (g_factory_callback) + return g_factory_callback->Run(view); + return std::make_unique<RecommendAppsFetcherImpl>(view); } -RecommendAppsFetcher::~RecommendAppsFetcher() = default; +// static +void RecommendAppsFetcher::SetFactoryCallbackForTesting( + FactoryCallback* callback) { + DCHECK(!g_factory_callback || !callback); -void RecommendAppsFetcher::PopulateDeviceConfig() { - if (!HasTouchScreen()) { - device_config_.set_touch_screen( - device_configuration::DeviceConfigurationProto_TouchScreen:: - DeviceConfigurationProto_TouchScreen_NOTOUCH); - } else if (!HasStylusInput()) { - device_config_.set_touch_screen( - device_configuration::DeviceConfigurationProto_TouchScreen:: - DeviceConfigurationProto_TouchScreen_FINGER); - } else { - device_config_.set_touch_screen( - device_configuration::DeviceConfigurationProto_TouchScreen:: - DeviceConfigurationProto_TouchScreen_STYLUS); - } - - if (!HasKeyboard()) { - device_config_.set_keyboard( - device_configuration::DeviceConfigurationProto_Keyboard:: - DeviceConfigurationProto_Keyboard_NOKEYS); - } else { - // TODO(rsgingerrs): Currently there is no straightforward way to determine - // whether it is a full keyboard or not. We assume it is safe to set it as - // QWERTY keyboard for this feature. - device_config_.set_keyboard( - device_configuration::DeviceConfigurationProto_Keyboard:: - DeviceConfigurationProto_Keyboard_QWERTY); - } - device_config_.set_has_hard_keyboard(HasHardKeyboard()); - - // TODO(rsgingerrs): There is no straightforward way to get this info. We - // assume it is safe to set it as no navigation. - device_config_.set_navigation( - device_configuration::DeviceConfigurationProto_Navigation:: - DeviceConfigurationProto_Navigation_NONAV); - device_config_.set_has_five_way_navigation(false); - - device_config_.set_gl_es_version(GetGLVersionInfo()); - - for (const base::StringPiece& gl_extension : GetGLExtensions()) { - if (!gl_extension.empty()) - device_config_.add_gl_extension(gl_extension.as_string()); - } -} - -void RecommendAppsFetcher::StartAshRequest() { - cros_display_config_->GetDisplayUnitInfoList( - false /* single_unified */, - base::BindOnce(&RecommendAppsFetcher::OnAshResponse, - weak_ptr_factory_.GetWeakPtr())); -} - -void RecommendAppsFetcher::MaybeStartCompressAndEncodeProtoMessage() { - if (!ash_ready_ || !arc_features_ready_ || has_started_proto_processing_) - return; - - base::PostTaskWithTraitsAndReplyWithResult( - FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, - base::BindOnce(&CompressAndEncodeProtoMessageOnBlockingThread, - std::move(device_config_)), - base::BindOnce(&RecommendAppsFetcher::OnProtoMessageCompressedAndEncoded, - weak_ptr_factory_.GetWeakPtr())); - has_started_proto_processing_ = true; -} - -void RecommendAppsFetcher::OnProtoMessageCompressedAndEncoded( - std::string encoded_device_configuration_proto) { - proto_compressed_and_encoded_ = true; - encoded_device_configuration_proto_ = encoded_device_configuration_proto; - StartDownload(); -} - -void RecommendAppsFetcher::OnAshResponse( - std::vector<ash::mojom::DisplayUnitInfoPtr> all_displays_info) { - ash_ready_ = true; - - int screen_density = 0; - for (const ash::mojom::DisplayUnitInfoPtr& display_info : all_displays_info) { - if (base::NumberToString(display::Display::InternalDisplayId()) == - display_info->id) { - screen_density = display_info->dpi_x + display_info->dpi_y; - break; - } - } - device_config_.set_screen_density(screen_density); - - const int screen_width = GetScreenSize().width(); - const int screen_height = GetScreenSize().height(); - device_config_.set_screen_width(screen_width); - device_config_.set_screen_height(screen_height); - - const int screen_layout = - CalculateStableScreenLayout(screen_width, screen_height, screen_density); - device_config_.set_screen_layout(GetScreenLayoutSizeId(screen_layout)); - - MaybeStartCompressAndEncodeProtoMessage(); -} - -void RecommendAppsFetcher::OnArcFeaturesRead( - base::Optional<arc::ArcFeatures> read_result) { - arc_features_ready_ = true; - - if (read_result != base::nullopt) { - for (const auto& feature : read_result.value().feature_map) { - device_config_.add_system_available_feature(feature.first); - } - - for (const auto& abi : GetCpuAbiList(read_result.value())) { - device_config_.add_native_platform(abi); - } - - play_store_version_ = read_result.value().play_store_version; - - android_sdk_version_ = GetAndroidSdkVersion(read_result.value()); - } - - MaybeStartCompressAndEncodeProtoMessage(); -} - -void RecommendAppsFetcher::StartDownload() { - if (!proto_compressed_and_encoded_) - return; - - net::NetworkTrafficAnnotationTag traffic_annotation = - net::DefineNetworkTrafficAnnotation("play_recommended_apps_download", R"( - semantics { - sender: "ChromeOS Recommended Apps Screen" - description: - "Chrome OS downloads the recommended app list from Google Play API." - trigger: - "When user has accepted the ARC Terms of Service." - data: - "URL of the Google Play API." - destination: GOOGLE_OWNED_SERVICE - } - policy { - cookies_allowed: YES - cookie_store: "user" - setting: - "NA" - policy_exception_justification: - "Not implemented, considered not necessary." - })"); - - Profile* profile = ProfileManager::GetActiveUserProfile(); - - auto resource_request = std::make_unique<network::ResourceRequest>(); - resource_request->url = GURL(kGetAppListUrl); - resource_request->method = "GET"; - resource_request->load_flags = - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE; - - resource_request->headers.SetHeader("X-DFE-Device-Config", - encoded_device_configuration_proto_); - resource_request->headers.SetHeader("X-DFE-Sdk-Version", - android_sdk_version_); - resource_request->headers.SetHeader("X-DFE-Chromesky-Client-Version", - play_store_version_); - - network::mojom::URLLoaderFactory* loader_factory = - content::BrowserContext::GetDefaultStoragePartition(profile) - ->GetURLLoaderFactoryForBrowserProcess() - .get(); - - start_time_ = base::TimeTicks::Now(); - app_list_loader_ = network::SimpleURLLoader::Create( - std::move(resource_request), traffic_annotation); - // Retry up to three times if network changes are detected during the - // download. - app_list_loader_->SetRetryOptions( - 3, network::SimpleURLLoader::RETRY_ON_NETWORK_CHANGE); - app_list_loader_->DownloadToString( - loader_factory, - base::BindOnce(&RecommendAppsFetcher::OnDownloaded, - base::Unretained(this)), - kMaxDownloadBytes); - - // Abort the download attempt if it takes longer than one minute. - download_timer_.Start(FROM_HERE, kDownloadTimeOut, this, - &RecommendAppsFetcher::OnDownloadTimeout); -} - -void RecommendAppsFetcher::OnDownloadTimeout() { - // Destroy the fetcher, which will abort the download attempt. - app_list_loader_.reset(); - - RecordUmaDownloadTime(base::TimeTicks::Now() - start_time_); - - // Show an error message to the user. - if (view_) - view_->OnLoadError(); -} - -void RecommendAppsFetcher::OnDownloaded( - std::unique_ptr<std::string> response_body) { - download_timer_.Stop(); - - RecordUmaDownloadTime(base::TimeTicks::Now() - start_time_); - - std::unique_ptr<network::SimpleURLLoader> loader(std::move(app_list_loader_)); - if (!view_) - return; - - int response_code = 0; - if (!loader->ResponseInfo() || !loader->ResponseInfo()->headers) { - view_->OnLoadError(); - return; - } - response_code = loader->ResponseInfo()->headers->response_code(); - RecordUmaResponseCode(response_code); - - // If the recommended app list could not be downloaded, show an error message - // to the user. - if (!response_body || response_body->empty()) { - view_->OnLoadError(); - return; - } - - // If the recommended app list were downloaded successfully, show them to - // the user. - // - // The response starts with a prefix ")]}'". This needs to be removed before - // further parsing. - RecordUmaResponseSize(response_body->size()); - constexpr base::StringPiece json_xss_prevention_prefix(")]}'"); - base::StringPiece response_body_json(*response_body); - if (response_body_json.starts_with(json_xss_prevention_prefix)) - response_body_json.remove_prefix(json_xss_prevention_prefix.length()); - base::Optional<base::Value> output = ParseResponse(response_body_json); - if (!output.has_value()) { - RecordUmaResponseAppCount(0); - view_->OnParseResponseError(); - return; - } - - view_->OnLoadSuccess(std::move(output.value())); -} - -void RecommendAppsFetcher::Retry() { - StartDownload(); -} - -base::Optional<base::Value> RecommendAppsFetcher::ParseResponse( - base::StringPiece response) { - base::Value output(base::Value::Type::LIST); - - int error_code; - std::string error_msg; - std::unique_ptr<base::Value> json_value = - base::JSONReader::ReadAndReturnErrorDeprecated( - response, base::JSON_PARSE_RFC, &error_code, &error_msg); - - if (!json_value || (!json_value->is_list() && !json_value->is_dict())) { - LOG(ERROR) << "Error parsing response JSON: " << error_msg; - RecordUmaResponseParseResult( - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON); - return base::nullopt; - } - - // If the response is a dictionary, it is an error message in the - // following format: - // {"Error code":"error code","Error message":"Error message"} - if (json_value->is_dict()) { - const base::Value* response_error_code_value = - json_value->FindKeyOfType("Error code", base::Value::Type::STRING); - - if (!response_error_code_value) { - LOG(ERROR) << "Unable to find error code: response=" - << response.substr(0, 128); - RecordUmaResponseParseResult( - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON); - return base::nullopt; - } - - base::StringPiece response_error_code_str = - response_error_code_value->GetString(); - int response_error_code = 0; - if (!base::StringToInt(response_error_code_str, &response_error_code)) { - LOG(WARNING) << "Unable to parse error code: " << response_error_code_str; - RecordUmaResponseParseResult( - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE); - return base::nullopt; - } - - if (response_error_code == kResponseErrorNotFirstTimeChromebookUser) { - RecordUmaResponseParseResult( - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_OWNS_CHROMEBOOK_ALREADY); - } else if (response_error_code == kResponseErrorNotEnoughApps) { - RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP); - } else { - LOG(WARNING) << "Unknown error code: " << response_error_code_str; - RecordUmaResponseParseResult( - RECOMMEND_APPS_RESPONSE_PARSE_RESULT_UNKNOWN_ERROR_CODE); - } - - return base::nullopt; - } - - // Otherwise, the response should return a list of apps. - const base::Value::ListStorage& app_list = json_value->GetList(); - if (app_list.empty()) { - DVLOG(1) << "No app in the response."; - RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP); - return base::nullopt; - } - - for (auto& item : app_list) { - base::Value output_map(base::Value::Type::DICTIONARY); - - if (!item.is_dict()) { - DVLOG(1) << "Cannot parse item."; - continue; - } - - // Retrieve the app title. - const base::Value* title = - item.FindPathOfType({"title_", "name_"}, base::Value::Type::STRING); - if (title) - output_map.SetKey("name", base::Value(title->GetString())); - - // Retrieve the package name. - const base::Value* package_name = - item.FindPathOfType({"id_", "id_"}, base::Value::Type::STRING); - if (package_name) - output_map.SetKey("package_name", base::Value(package_name->GetString())); - - // Retrieve the icon URL for the app. - // - // The name "privateDoNotAccessOrElseSafeUrlWrappedValue_" here is because - // it is a direct serialization from the proto message. The value has been - // sanitized so it is regarded as a safe URL. In general, if the response is - // a protobuf, we should not directly access this field but use the wrapper - // method getSafeUrlString() to read it. In our case, we don't have the - // option other than access it directly. - const base::Value* icon_url = item.FindPathOfType( - {"icon_", "url_", "privateDoNotAccessOrElseSafeUrlWrappedValue_"}, - base::Value::Type::STRING); - if (icon_url) - output_map.SetKey("icon", base::Value(icon_url->GetString())); - - output.GetList().push_back(std::move(output_map)); - } - - RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_ERROR); - RecordUmaResponseAppCount(static_cast<int>(output.GetList().size())); - - return output; + g_factory_callback = callback; } } // namespace chromeos
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h index 357c7a5..f6be97a 100644 --- a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h +++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h
@@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -6,132 +6,27 @@ #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_RECOMMEND_APPS_RECOMMEND_APPS_FETCHER_H_ #include <memory> -#include <string> -#include <vector> -#include "ash/public/interfaces/cros_display_config.mojom.h" -#include "base/callback.h" -#include "base/macros.h" -#include "base/memory/weak_ptr.h" -#include "base/timer/timer.h" -#include "chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.pb.h" -#include "chrome/browser/chromeos/login/screens/recommend_apps_screen_view.h" -#include "components/arc/arc_features_parser.h" -#include "extensions/browser/api/system_display/display_info_provider.h" - -namespace network { -class SimpleURLLoader; -} +#include "base/callback_forward.h" namespace chromeos { -// This class handles the network request for the Recommend Apps screen. It is -// supposed to run on the UI thread. The request requires the following headers: -// 1. X-Device-Config -// 2. X-Sdk-Version -// Play requires Android device config information to filter apps. -// device_configuration.proto is used to encode all the info. The following -// fields will be retrieved and sent: -// 1. touch_screen -// 2. keyboard -// 3. navigation -// 4. screen_layout -// 5. has_hard_keyboard -// 6. has_five_way_navigation -// 7. screen_density -// 8. screen_width -// 9. screen_height -// 10. gl_es_version -// 11. system_available_feature -// 12. native_platform -// 13. gl_extension +class RecommendAppsScreenView; + class RecommendAppsFetcher { public: - explicit RecommendAppsFetcher(RecommendAppsScreenView* view); - ~RecommendAppsFetcher(); + static std::unique_ptr<RecommendAppsFetcher> Create( + RecommendAppsScreenView* view); - // Provide a retry method to download the app list again. - void Retry(); + using FactoryCallback = + base::RepeatingCallback<std::unique_ptr<RecommendAppsFetcher>( + RecommendAppsScreenView* view)>; + static void SetFactoryCallbackForTesting(FactoryCallback* callback); - private: - // Populate the required device config info. - void PopulateDeviceConfig(); + virtual ~RecommendAppsFetcher() = default; - // Start the connection to ash. Send the request to get display unit info - // list. - void StartAshRequest(); - - // Start to compress and encode the proto message if we finish ash request - // and ARC feature is read. - void MaybeStartCompressAndEncodeProtoMessage(); - - // Callback function called when display unit info list is retrieved from ash. - // It will populate the device config info related to the screen density. - void OnAshResponse( - std::vector<ash::mojom::DisplayUnitInfoPtr> all_displays_info); - - // Callback function called when ARC features are read by the parser. - // It will populate the device config info related to ARC features. - void OnArcFeaturesRead(base::Optional<arc::ArcFeatures> read_result); - - // Callback function called when the proto message has been compressed and - // encoded. - void OnProtoMessageCompressedAndEncoded( - std::string encoded_device_configuration_proto); - - // Start downloading the recommended app list. - void StartDownload(); - - // Abort the attempt to download the recommended app list if it takes too - // long. - void OnDownloadTimeout(); - - // Callback function called when SimpleURLLoader completes. - void OnDownloaded(std::unique_ptr<std::string> response_body); - - // If the response is not a valid JSON, return base::nullopt. - // If the response contains no app, return base::nullopt; - // Value output, in true, is a list containing: - // 1. name: the title of the app. - // 2. package_name - // 3. Possibly an Icon URL. - // Parses an input string that looks somewhat like this: - // [{"title_" : {"name_" : {title of app"}}, - // "id_" : {"id_" : {com.package.name"}}, - // "icon_": {"url_": {"privateDoNotAccessOrElseSafeUrlWrappedValue_": - // "http://icon_url.com/url"}}}, - // {"title_" : "title of second app", - // "packageName_": "second package name.", - // }] - base::Optional<base::Value> ParseResponse(base::StringPiece response); - - device_configuration::DeviceConfigurationProto device_config_; - - std::string android_sdk_version_; - - std::string play_store_version_; - - std::string encoded_device_configuration_proto_; - - bool ash_ready_ = false; - bool arc_features_ready_ = false; - bool has_started_proto_processing_ = false; - bool proto_compressed_and_encoded_ = false; - - RecommendAppsScreenView* view_; - - std::unique_ptr<network::SimpleURLLoader> app_list_loader_; - - // Timer that enforces a custom (shorter) timeout on the attempt to download - // the recommended app list. - base::OneShotTimer download_timer_; - - base::TimeTicks start_time_; - - ash::mojom::CrosDisplayConfigControllerPtr cros_display_config_; - base::WeakPtrFactory<RecommendAppsFetcher> weak_ptr_factory_; - - DISALLOW_COPY_AND_ASSIGN(RecommendAppsFetcher); + virtual void Start() = 0; + virtual void Retry() = 0; }; } // namespace chromeos
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc new file mode 100644 index 0000000..3c4cdf9 --- /dev/null +++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
@@ -0,0 +1,637 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.h" + +#include "ash/public/interfaces/constants.mojom.h" +#include "ash/public/interfaces/cros_display_config.mojom.h" +#include "base/base64url.h" +#include "base/bind.h" +#include "base/json/json_reader.h" +#include "base/metrics/histogram_functions.h" +#include "base/metrics/histogram_macros.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_piece.h" +#include "base/strings/string_split.h" +#include "base/task/post_task.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "content/public/browser/gpu_data_manager.h" +#include "content/public/browser/storage_partition.h" +#include "content/public/common/service_manager_connection.h" +#include "extensions/common/api/system_display.h" +#include "gpu/config/gpu_info.h" +#include "net/base/load_flags.h" +#include "net/http/http_status_code.h" +#include "services/network/public/cpp/simple_url_loader.h" +#include "services/service_manager/public/cpp/connector.h" +#include "third_party/zlib/google/compression_utils.h" +#include "ui/display/display.h" +#include "ui/display/screen.h" +#include "ui/events/devices/input_device.h" +#include "ui/events/devices/input_device_manager.h" +#include "ui/gfx/extension_set.h" +#include "ui/gl/gl_version_info.h" + +namespace chromeos { + +namespace { + +constexpr const char kGetAppListUrl[] = + "https://android.clients.google.com/fdfe/chrome/getfastreinstallappslist"; + +constexpr int kResponseErrorNotEnoughApps = 5; + +constexpr int kResponseErrorNotFirstTimeChromebookUser = 6; + +constexpr base::TimeDelta kDownloadTimeOut = base::TimeDelta::FromMinutes(1); + +constexpr const int64_t kMaxDownloadBytes = 1024 * 1024; // 1Mb + +constexpr const int kMaxAppCount = 21; + +enum RecommendAppsResponseParseResult { + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_ERROR = 0, + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON = 1, + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP = 2, + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_OWNS_CHROMEBOOK_ALREADY = 3, + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_UNKNOWN_ERROR_CODE = 4, + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE = 5, + + kMaxValue = RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE +}; + +bool HasTouchScreen() { + return !ui::InputDeviceManager::GetInstance() + ->GetTouchscreenDevices() + .empty(); +} + +bool HasStylusInput() { + // Check to see if the hardware reports it is stylus capable. + for (const ui::TouchscreenDevice& device : + ui::InputDeviceManager::GetInstance()->GetTouchscreenDevices()) { + if (device.has_stylus && + device.type == ui::InputDeviceType::INPUT_DEVICE_INTERNAL) { + return true; + } + } + + return false; +} + +bool HasKeyboard() { + return !ui::InputDeviceManager::GetInstance()->GetKeyboardDevices().empty(); +} + +bool HasHardKeyboard() { + for (const ui::InputDevice& device : + ui::InputDeviceManager::GetInstance()->GetKeyboardDevices()) { + if (!device.phys.empty()) + return true; + } + + return false; +} + +gfx::Size GetScreenSize() { + return display::Screen::GetScreen()->GetPrimaryDisplay().GetSizeInPixel(); +} + +// TODO(rsgingerrs): This function is copied from Play. We need to find a way to +// keep this synced with the Play side if there are any changes there. Another +// approach is to let the server do the calculation since we have provided the +// screen width, height and dpi. +int CalculateStableScreenLayout(const int screen_width, + const int screen_height, + const float dpi) { + const int density_default = 160; + const float px_to_dp = density_default / static_cast<float>(dpi); + const int short_size_dp = static_cast<int>(screen_width * px_to_dp); + const int long_size_dp = static_cast<int>(screen_height * px_to_dp); + + int screen_layout_size; + bool screen_layout_long; + + const int screenlayout_size_small = 0x01; + const int screenlayout_size_normal = 0x02; + const int screenlayout_size_large = 0x03; + const int screenlayout_size_xlarge = 0x04; + const int screenlayout_long_no = 0x10; + + // These semi-magic numbers define our compatibility modes for + // applications with different screens. These are guarantees to + // app developers about the space they can expect for a particular + // configuration. DO NOT CHANGE! + if (long_size_dp < 470) { + // This is shorter than an HVGA normal density screen (which + // is 480 pixels on its long side). + screen_layout_size = screenlayout_size_small; + screen_layout_long = false; + } else { + // What size is this screen? + if (long_size_dp >= 960 && short_size_dp >= 720) { + // 1.5xVGA or larger screens at medium density are the point + // at which we consider it to be an extra large screen. + screen_layout_size = screenlayout_size_xlarge; + } else if (long_size_dp >= 640 && short_size_dp >= 480) { + // VGA or larger screens at medium density are the point + // at which we consider it to be a large screen. + screen_layout_size = screenlayout_size_large; + } else { + screen_layout_size = screenlayout_size_normal; + } + + // Is this a long screen? Anything wider than WVGA (5:3) is considering to + // be long. + screen_layout_long = ((long_size_dp * 3) / 5) >= (short_size_dp - 1); + } + + int screen_layout = screen_layout_size; + if (!screen_layout_long) { + screen_layout |= screenlayout_long_no; + } + + return screen_layout; +} + +device_configuration::DeviceConfigurationProto_ScreenLayout +GetScreenLayoutSizeId(const int screen_layout_size_value) { + const int screenlayout_size_small = 0x01; + const int screenlayout_size_normal = 0x02; + const int screenlayout_size_large = 0x03; + const int screenlayout_size_xlarge = 0x04; + const int screenlayout_size_mask = 0x0f; + int size_bits = screen_layout_size_value & screenlayout_size_mask; + + switch (size_bits) { + case screenlayout_size_small: + return device_configuration::DeviceConfigurationProto_ScreenLayout:: + DeviceConfigurationProto_ScreenLayout_SMALL; + case screenlayout_size_normal: + return device_configuration::DeviceConfigurationProto_ScreenLayout:: + DeviceConfigurationProto_ScreenLayout_NORMAL; + case screenlayout_size_large: + return device_configuration::DeviceConfigurationProto_ScreenLayout:: + DeviceConfigurationProto_ScreenLayout_LARGE; + case screenlayout_size_xlarge: + return device_configuration::DeviceConfigurationProto_ScreenLayout:: + DeviceConfigurationProto_ScreenLayout_EXTRA_LARGE; + default: + return device_configuration::DeviceConfigurationProto_ScreenLayout:: + DeviceConfigurationProto_ScreenLayout_UNDEFINED_SCREEN_LAYOUT; + } +} + +const gpu::GPUInfo GetGPUInfo() { + return content::GpuDataManager::GetInstance()->GetGPUInfo(); +} + +// This function converts the major and minor versions to the proto accepted +// value. For example, if the version is 3.2, the return value is 0x00030002. +unsigned GetGLVersionInfo() { + const gpu::GPUInfo gpu_info = GetGPUInfo(); + gfx::ExtensionSet extensionSet(gfx::MakeExtensionSet(gpu_info.gl_extensions)); + gl::GLVersionInfo glVersionInfo(gpu_info.gl_version.c_str(), + gpu_info.gl_renderer.c_str(), extensionSet); + + unsigned major_version = glVersionInfo.major_version; + unsigned minor_version = glVersionInfo.minor_version; + unsigned version = 0x0000ffff; + version &= minor_version; + version |= (major_version << 16) & 0xffff0000; + + return version; +} + +gfx::ExtensionSet GetGLExtensions() { + const gpu::GPUInfo gpu_info = GetGPUInfo(); + gfx::ExtensionSet extensionSet(gfx::MakeExtensionSet(gpu_info.gl_extensions)); + + return extensionSet; +} + +const std::string& GetAndroidSdkVersion(const arc::ArcFeatures& arc_features) { + return arc_features.build_props.at("ro.build.version.sdk"); +} + +std::vector<std::string> GetCpuAbiList(const arc::ArcFeatures& arc_features) { + const std::string& abi_list_str = + arc_features.build_props.at("ro.product.cpu.abilist"); + return base::SplitString(abi_list_str, ",", base::TRIM_WHITESPACE, + base::SPLIT_WANT_ALL); +} + +std::string CompressAndEncodeProtoMessageOnBlockingThread( + device_configuration::DeviceConfigurationProto device_config) { + std::string encoded_device_configuration_proto; + + std::string serialized_proto; + device_config.SerializeToString(&serialized_proto); + std::string compressed_proto; + compression::GzipCompress(serialized_proto, &compressed_proto); + base::Base64UrlEncode(compressed_proto, + base::Base64UrlEncodePolicy::OMIT_PADDING, + &encoded_device_configuration_proto); + + return encoded_device_configuration_proto; +} + +void RecordUmaResponseAppCount(int app_count) { + UMA_HISTOGRAM_CUSTOM_COUNTS("OOBE.RecommendApps.Fetcher.AppCount", app_count, + 0, kMaxAppCount, kMaxAppCount + 1); +} + +void RecordUmaDownloadTime(base::TimeDelta download_time) { + UMA_HISTOGRAM_TIMES("OOBE.RecommendApps.Fetcher.DownloadTime", download_time); +} + +void RecordUmaResponseCode(int code) { + base::UmaHistogramSparse("OOBE.RecommendApps.Fetcher.ResponseCode", code); +} + +void RecordUmaResponseParseResult(RecommendAppsResponseParseResult result) { + UMA_HISTOGRAM_ENUMERATION("OOBE.RecommendApps.Fetcher.ResponseParseResult", + result); +} + +void RecordUmaResponseSize(unsigned long responseSize) { + UMA_HISTOGRAM_COUNTS_1M( + "OOBE.RecommendApps.Fetcher.ResponseSize", + static_cast<base::HistogramBase::Sample>(responseSize)); +} + +} // namespace + +RecommendAppsFetcherImpl::RecommendAppsFetcherImpl( + RecommendAppsScreenView* view) + : view_(view), weak_ptr_factory_(this) { + service_manager::Connector* connector = + content::ServiceManagerConnection::GetForProcess()->GetConnector(); + DCHECK(connector); + connector->BindInterface(ash::mojom::kServiceName, &cros_display_config_); +} + +RecommendAppsFetcherImpl::~RecommendAppsFetcherImpl() = default; + +void RecommendAppsFetcherImpl::PopulateDeviceConfig() { + if (!HasTouchScreen()) { + device_config_.set_touch_screen( + device_configuration::DeviceConfigurationProto_TouchScreen:: + DeviceConfigurationProto_TouchScreen_NOTOUCH); + } else if (!HasStylusInput()) { + device_config_.set_touch_screen( + device_configuration::DeviceConfigurationProto_TouchScreen:: + DeviceConfigurationProto_TouchScreen_FINGER); + } else { + device_config_.set_touch_screen( + device_configuration::DeviceConfigurationProto_TouchScreen:: + DeviceConfigurationProto_TouchScreen_STYLUS); + } + + if (!HasKeyboard()) { + device_config_.set_keyboard( + device_configuration::DeviceConfigurationProto_Keyboard:: + DeviceConfigurationProto_Keyboard_NOKEYS); + } else { + // TODO(rsgingerrs): Currently there is no straightforward way to determine + // whether it is a full keyboard or not. We assume it is safe to set it as + // QWERTY keyboard for this feature. + device_config_.set_keyboard( + device_configuration::DeviceConfigurationProto_Keyboard:: + DeviceConfigurationProto_Keyboard_QWERTY); + } + device_config_.set_has_hard_keyboard(HasHardKeyboard()); + + // TODO(rsgingerrs): There is no straightforward way to get this info. We + // assume it is safe to set it as no navigation. + device_config_.set_navigation( + device_configuration::DeviceConfigurationProto_Navigation:: + DeviceConfigurationProto_Navigation_NONAV); + device_config_.set_has_five_way_navigation(false); + + device_config_.set_gl_es_version(GetGLVersionInfo()); + + for (const base::StringPiece& gl_extension : GetGLExtensions()) { + if (!gl_extension.empty()) + device_config_.add_gl_extension(gl_extension.as_string()); + } +} + +void RecommendAppsFetcherImpl::StartAshRequest() { + cros_display_config_->GetDisplayUnitInfoList( + false /* single_unified */, + base::BindOnce(&RecommendAppsFetcherImpl::OnAshResponse, + weak_ptr_factory_.GetWeakPtr())); +} + +void RecommendAppsFetcherImpl::MaybeStartCompressAndEncodeProtoMessage() { + if (!ash_ready_ || !arc_features_ready_ || has_started_proto_processing_) + return; + + base::PostTaskWithTraitsAndReplyWithResult( + FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, + base::BindOnce(&CompressAndEncodeProtoMessageOnBlockingThread, + std::move(device_config_)), + base::BindOnce( + &RecommendAppsFetcherImpl::OnProtoMessageCompressedAndEncoded, + weak_ptr_factory_.GetWeakPtr())); + has_started_proto_processing_ = true; +} + +void RecommendAppsFetcherImpl::OnProtoMessageCompressedAndEncoded( + std::string encoded_device_configuration_proto) { + proto_compressed_and_encoded_ = true; + encoded_device_configuration_proto_ = encoded_device_configuration_proto; + StartDownload(); +} + +void RecommendAppsFetcherImpl::OnAshResponse( + std::vector<ash::mojom::DisplayUnitInfoPtr> all_displays_info) { + ash_ready_ = true; + + int screen_density = 0; + for (const ash::mojom::DisplayUnitInfoPtr& display_info : all_displays_info) { + if (base::NumberToString(display::Display::InternalDisplayId()) == + display_info->id) { + screen_density = display_info->dpi_x + display_info->dpi_y; + break; + } + } + device_config_.set_screen_density(screen_density); + + const int screen_width = GetScreenSize().width(); + const int screen_height = GetScreenSize().height(); + device_config_.set_screen_width(screen_width); + device_config_.set_screen_height(screen_height); + + const int screen_layout = + CalculateStableScreenLayout(screen_width, screen_height, screen_density); + device_config_.set_screen_layout(GetScreenLayoutSizeId(screen_layout)); + + MaybeStartCompressAndEncodeProtoMessage(); +} + +void RecommendAppsFetcherImpl::OnArcFeaturesRead( + base::Optional<arc::ArcFeatures> read_result) { + arc_features_ready_ = true; + + if (read_result != base::nullopt) { + for (const auto& feature : read_result.value().feature_map) { + device_config_.add_system_available_feature(feature.first); + } + + for (const auto& abi : GetCpuAbiList(read_result.value())) { + device_config_.add_native_platform(abi); + } + + play_store_version_ = read_result.value().play_store_version; + + android_sdk_version_ = GetAndroidSdkVersion(read_result.value()); + } + + MaybeStartCompressAndEncodeProtoMessage(); +} + +void RecommendAppsFetcherImpl::StartDownload() { + if (!proto_compressed_and_encoded_) + return; + + net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("play_recommended_apps_download", R"( + semantics { + sender: "ChromeOS Recommended Apps Screen" + description: + "Chrome OS downloads the recommended app list from Google Play API." + trigger: + "When user has accepted the ARC Terms of Service." + data: + "URL of the Google Play API." + destination: GOOGLE_OWNED_SERVICE + } + policy { + cookies_allowed: YES + cookie_store: "user" + setting: + "NA" + policy_exception_justification: + "Not implemented, considered not necessary." + })"); + + Profile* profile = ProfileManager::GetActiveUserProfile(); + + auto resource_request = std::make_unique<network::ResourceRequest>(); + resource_request->url = GURL(kGetAppListUrl); + resource_request->method = "GET"; + resource_request->load_flags = + net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE; + + resource_request->headers.SetHeader("X-DFE-Device-Config", + encoded_device_configuration_proto_); + resource_request->headers.SetHeader("X-DFE-Sdk-Version", + android_sdk_version_); + resource_request->headers.SetHeader("X-DFE-Chromesky-Client-Version", + play_store_version_); + + network::mojom::URLLoaderFactory* loader_factory = + content::BrowserContext::GetDefaultStoragePartition(profile) + ->GetURLLoaderFactoryForBrowserProcess() + .get(); + + start_time_ = base::TimeTicks::Now(); + app_list_loader_ = network::SimpleURLLoader::Create( + std::move(resource_request), traffic_annotation); + // Retry up to three times if network changes are detected during the + // download. + app_list_loader_->SetRetryOptions( + 3, network::SimpleURLLoader::RETRY_ON_NETWORK_CHANGE); + app_list_loader_->DownloadToString( + loader_factory, + base::BindOnce(&RecommendAppsFetcherImpl::OnDownloaded, + base::Unretained(this)), + kMaxDownloadBytes); + + // Abort the download attempt if it takes longer than one minute. + download_timer_.Start(FROM_HERE, kDownloadTimeOut, this, + &RecommendAppsFetcherImpl::OnDownloadTimeout); +} + +void RecommendAppsFetcherImpl::OnDownloadTimeout() { + // Destroy the fetcher, which will abort the download attempt. + app_list_loader_.reset(); + + RecordUmaDownloadTime(base::TimeTicks::Now() - start_time_); + + // Show an error message to the user. + if (view_) + view_->OnLoadError(); +} + +void RecommendAppsFetcherImpl::OnDownloaded( + std::unique_ptr<std::string> response_body) { + download_timer_.Stop(); + + RecordUmaDownloadTime(base::TimeTicks::Now() - start_time_); + + std::unique_ptr<network::SimpleURLLoader> loader(std::move(app_list_loader_)); + if (!view_) + return; + + int response_code = 0; + if (!loader->ResponseInfo() || !loader->ResponseInfo()->headers) { + view_->OnLoadError(); + return; + } + response_code = loader->ResponseInfo()->headers->response_code(); + RecordUmaResponseCode(response_code); + + // If the recommended app list could not be downloaded, show an error message + // to the user. + if (!response_body || response_body->empty()) { + view_->OnLoadError(); + return; + } + + // If the recommended app list were downloaded successfully, show them to + // the user. + // + // The response starts with a prefix ")]}'". This needs to be removed before + // further parsing. + RecordUmaResponseSize(response_body->size()); + constexpr base::StringPiece json_xss_prevention_prefix(")]}'"); + base::StringPiece response_body_json(*response_body); + if (response_body_json.starts_with(json_xss_prevention_prefix)) + response_body_json.remove_prefix(json_xss_prevention_prefix.length()); + base::Optional<base::Value> output = ParseResponse(response_body_json); + if (!output.has_value()) { + RecordUmaResponseAppCount(0); + view_->OnParseResponseError(); + return; + } + + view_->OnLoadSuccess(std::move(output.value())); +} + +void RecommendAppsFetcherImpl::Start() { + PopulateDeviceConfig(); + StartAshRequest(); + arc::ArcFeaturesParser::GetArcFeatures( + base::BindOnce(&RecommendAppsFetcherImpl::OnArcFeaturesRead, + weak_ptr_factory_.GetWeakPtr())); +} + +void RecommendAppsFetcherImpl::Retry() { + StartDownload(); +} + +base::Optional<base::Value> RecommendAppsFetcherImpl::ParseResponse( + base::StringPiece response) { + base::Value output(base::Value::Type::LIST); + + int error_code; + std::string error_msg; + std::unique_ptr<base::Value> json_value = + base::JSONReader::ReadAndReturnErrorDeprecated( + response, base::JSON_PARSE_RFC, &error_code, &error_msg); + + if (!json_value || (!json_value->is_list() && !json_value->is_dict())) { + LOG(ERROR) << "Error parsing response JSON: " << error_msg; + RecordUmaResponseParseResult( + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON); + return base::nullopt; + } + + // If the response is a dictionary, it is an error message in the + // following format: + // {"Error code":"error code","Error message":"Error message"} + if (json_value->is_dict()) { + const base::Value* response_error_code_value = + json_value->FindKeyOfType("Error code", base::Value::Type::STRING); + + if (!response_error_code_value) { + LOG(ERROR) << "Unable to find error code: response=" + << response.substr(0, 128); + RecordUmaResponseParseResult( + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_JSON); + return base::nullopt; + } + + base::StringPiece response_error_code_str = + response_error_code_value->GetString(); + int response_error_code = 0; + if (!base::StringToInt(response_error_code_str, &response_error_code)) { + LOG(WARNING) << "Unable to parse error code: " << response_error_code_str; + RecordUmaResponseParseResult( + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_INVALID_ERROR_CODE); + return base::nullopt; + } + + if (response_error_code == kResponseErrorNotFirstTimeChromebookUser) { + RecordUmaResponseParseResult( + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_OWNS_CHROMEBOOK_ALREADY); + } else if (response_error_code == kResponseErrorNotEnoughApps) { + RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP); + } else { + LOG(WARNING) << "Unknown error code: " << response_error_code_str; + RecordUmaResponseParseResult( + RECOMMEND_APPS_RESPONSE_PARSE_RESULT_UNKNOWN_ERROR_CODE); + } + + return base::nullopt; + } + + // Otherwise, the response should return a list of apps. + const base::Value::ListStorage& app_list = json_value->GetList(); + if (app_list.empty()) { + DVLOG(1) << "No app in the response."; + RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_APP); + return base::nullopt; + } + + for (auto& item : app_list) { + base::Value output_map(base::Value::Type::DICTIONARY); + + if (!item.is_dict()) { + DVLOG(1) << "Cannot parse item."; + continue; + } + + // Retrieve the app title. + const base::Value* title = + item.FindPathOfType({"title_", "name_"}, base::Value::Type::STRING); + if (title) + output_map.SetKey("name", base::Value(title->GetString())); + + // Retrieve the package name. + const base::Value* package_name = + item.FindPathOfType({"id_", "id_"}, base::Value::Type::STRING); + if (package_name) + output_map.SetKey("package_name", base::Value(package_name->GetString())); + + // Retrieve the icon URL for the app. + // + // The name "privateDoNotAccessOrElseSafeUrlWrappedValue_" here is because + // it is a direct serialization from the proto message. The value has been + // sanitized so it is regarded as a safe URL. In general, if the response is + // a protobuf, we should not directly access this field but use the wrapper + // method getSafeUrlString() to read it. In our case, we don't have the + // option other than access it directly. + const base::Value* icon_url = item.FindPathOfType( + {"icon_", "url_", "privateDoNotAccessOrElseSafeUrlWrappedValue_"}, + base::Value::Type::STRING); + if (icon_url) + output_map.SetKey("icon", base::Value(icon_url->GetString())); + + output.GetList().push_back(std::move(output_map)); + } + + RecordUmaResponseParseResult(RECOMMEND_APPS_RESPONSE_PARSE_RESULT_NO_ERROR); + RecordUmaResponseAppCount(static_cast<int>(output.GetList().size())); + + return output; +} + +} // namespace chromeos
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.h b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.h new file mode 100644 index 0000000..7c51c1f --- /dev/null +++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.h
@@ -0,0 +1,142 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_RECOMMEND_APPS_RECOMMEND_APPS_FETCHER_IMPL_H_ +#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_RECOMMEND_APPS_RECOMMEND_APPS_FETCHER_IMPL_H_ + +#include <memory> +#include <string> +#include <vector> + +#include "ash/public/interfaces/cros_display_config.mojom.h" +#include "base/callback.h" +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "base/timer/timer.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.pb.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps_screen_view.h" +#include "components/arc/arc_features_parser.h" +#include "extensions/browser/api/system_display/display_info_provider.h" + +namespace network { +class SimpleURLLoader; +} + +namespace chromeos { + +// This class handles the network request for the Recommend Apps screen. It is +// supposed to run on the UI thread. The request requires the following headers: +// 1. X-Device-Config +// 2. X-Sdk-Version +// Play requires Android device config information to filter apps. +// device_configuration.proto is used to encode all the info. The following +// fields will be retrieved and sent: +// 1. touch_screen +// 2. keyboard +// 3. navigation +// 4. screen_layout +// 5. has_hard_keyboard +// 6. has_five_way_navigation +// 7. screen_density +// 8. screen_width +// 9. screen_height +// 10. gl_es_version +// 11. system_available_feature +// 12. native_platform +// 13. gl_extension +class RecommendAppsFetcherImpl : public RecommendAppsFetcher { + public: + explicit RecommendAppsFetcherImpl(RecommendAppsScreenView* view); + ~RecommendAppsFetcherImpl() override; + + // Provide a retry method to download the app list again. + // RecommendAppsFetcher: + void Start() override; + void Retry() override; + + private: + // Populate the required device config info. + void PopulateDeviceConfig(); + + // Start the connection to ash. Send the request to get display unit info + // list. + void StartAshRequest(); + + // Start to compress and encode the proto message if we finish ash request + // and ARC feature is read. + void MaybeStartCompressAndEncodeProtoMessage(); + + // Callback function called when display unit info list is retrieved from ash. + // It will populate the device config info related to the screen density. + void OnAshResponse( + std::vector<ash::mojom::DisplayUnitInfoPtr> all_displays_info); + + // Callback function called when ARC features are read by the parser. + // It will populate the device config info related to ARC features. + void OnArcFeaturesRead(base::Optional<arc::ArcFeatures> read_result); + + // Callback function called when the proto message has been compressed and + // encoded. + void OnProtoMessageCompressedAndEncoded( + std::string encoded_device_configuration_proto); + + // Start downloading the recommended app list. + void StartDownload(); + + // Abort the attempt to download the recommended app list if it takes too + // long. + void OnDownloadTimeout(); + + // Callback function called when SimpleURLLoader completes. + void OnDownloaded(std::unique_ptr<std::string> response_body); + + // If the response is not a valid JSON, return base::nullopt. + // If the response contains no app, return base::nullopt; + // Value output, in true, is a list containing: + // 1. name: the title of the app. + // 2. package_name + // 3. Possibly an Icon URL. + // Parses an input string that looks somewhat like this: + // [{"title_" : {"name_" : {title of app"}}, + // "id_" : {"id_" : {com.package.name"}}, + // "icon_": {"url_": {"privateDoNotAccessOrElseSafeUrlWrappedValue_": + // "http://icon_url.com/url"}}}, + // {"title_" : "title of second app", + // "packageName_": "second package name.", + // }] + base::Optional<base::Value> ParseResponse(base::StringPiece response); + + device_configuration::DeviceConfigurationProto device_config_; + + std::string android_sdk_version_; + + std::string play_store_version_; + + std::string encoded_device_configuration_proto_; + + bool ash_ready_ = false; + bool arc_features_ready_ = false; + bool has_started_proto_processing_ = false; + bool proto_compressed_and_encoded_ = false; + + RecommendAppsScreenView* view_; + + std::unique_ptr<network::SimpleURLLoader> app_list_loader_; + + // Timer that enforces a custom (shorter) timeout on the attempt to download + // the recommended app list. + base::OneShotTimer download_timer_; + + base::TimeTicks start_time_; + + ash::mojom::CrosDisplayConfigControllerPtr cros_display_config_; + base::WeakPtrFactory<RecommendAppsFetcherImpl> weak_ptr_factory_; + + DISALLOW_COPY_AND_ASSIGN(RecommendAppsFetcherImpl); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_RECOMMEND_APPS_RECOMMEND_APPS_FETCHER_IMPL_H_
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps_screen.cc b/chrome/browser/chromeos/login/screens/recommend_apps_screen.cc index 026bad3..cc71080 100644 --- a/chrome/browser/chromeos/login/screens/recommend_apps_screen.cc +++ b/chrome/browser/chromeos/login/screens/recommend_apps_screen.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/chromeos/login/screens/recommend_apps_screen.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h" + namespace chromeos { RecommendAppsScreen::RecommendAppsScreen( @@ -28,7 +30,8 @@ void RecommendAppsScreen::Show() { view_->Show(); - recommend_apps_fetcher_ = std::make_unique<RecommendAppsFetcher>(view_); + recommend_apps_fetcher_ = RecommendAppsFetcher::Create(view_); + recommend_apps_fetcher_->Start(); } void RecommendAppsScreen::Hide() {
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps_screen.h b/chrome/browser/chromeos/login/screens/recommend_apps_screen.h index 9d7af0b..252ac1dc3 100644 --- a/chrome/browser/chromeos/login/screens/recommend_apps_screen.h +++ b/chrome/browser/chromeos/login/screens/recommend_apps_screen.h
@@ -11,11 +11,12 @@ #include "base/callback.h" #include "base/macros.h" #include "chrome/browser/chromeos/login/screens/base_screen.h" -#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h" #include "chrome/browser/chromeos/login/screens/recommend_apps_screen_view.h" namespace chromeos { +class RecommendAppsFetcher; + // This is Recommend Apps screen that is displayed as a part of user first // sign-in flow. class RecommendAppsScreen : public BaseScreen,
diff --git a/chrome/browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc b/chrome/browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc new file mode 100644 index 0000000..2a309a8a --- /dev/null +++ b/chrome/browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc
@@ -0,0 +1,699 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/login/screens/recommend_apps_screen.h" + +#include <memory> +#include <vector> + +#include "base/bind.h" +#include "base/run_loop.h" +#include "base/strings/string_piece.h" +#include "base/strings/stringprintf.h" +#include "base/values.h" +#include "chrome/browser/chromeos/login/login_wizard.h" +#include "chrome/browser/chromeos/login/mixin_based_in_process_browser_test.h" +#include "chrome/browser/chromeos/login/oobe_screen.h" +#include "chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher.h" +#include "chrome/browser/chromeos/login/test/js_checker.h" +#include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h" +#include "chrome/browser/chromeos/login/ui/login_display_host.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" +#include "components/arc/arc_prefs.h" +#include "components/prefs/pref_service.h" +#include "content/public/test/browser_test_utils.h" + +namespace chromeos { + +namespace { + +chromeos::OobeUI* GetOobeUI() { + auto* host = chromeos::LoginDisplayHost::default_host(); + return host ? host->GetOobeUI() : nullptr; +} + +struct FakeAppInfo { + public: + FakeAppInfo(const std::string& package_name, const std::string& name) + : package_name(package_name), name(name) {} + ~FakeAppInfo() = default; + + base::Value ToValue() const { + base::Value result(base::Value::Type::DICTIONARY); + result.SetKey("package_name", base::Value(package_name)); + result.SetKey("name", base::Value(name)); + return result; + } + + const std::string package_name; + const std::string name; +}; + +class FakeRecommendAppsFetcher : public RecommendAppsFetcher { + public: + explicit FakeRecommendAppsFetcher(RecommendAppsScreenView* view) + : view_(view) {} + ~FakeRecommendAppsFetcher() override = default; + + bool started() const { return started_; } + int retries() const { return retries_; } + + void SimulateSuccess(const std::vector<FakeAppInfo>& apps) { + EXPECT_TRUE(started_); + base::Value app_list(base::Value::Type::LIST); + for (const auto& app : apps) { + app_list.GetList().emplace_back(app.ToValue()); + } + view_->OnLoadSuccess(app_list); + } + + void SimulateParseError() { + EXPECT_TRUE(started_); + view_->OnParseResponseError(); + } + + void SimulateLoadError() { + EXPECT_TRUE(started_); + view_->OnLoadError(); + } + + // RecommendAppsFetcher: + void Start() override { + EXPECT_FALSE(started_); + started_ = true; + } + void Retry() override { + EXPECT_TRUE(started_); + ++retries_; + } + + private: + RecommendAppsScreenView* const view_; + bool started_ = false; + int retries_ = 0; +}; + +} // namespace + +class RecommendAppsScreenTest : public InProcessBrowserTest { + public: + RecommendAppsScreenTest() = default; + ~RecommendAppsScreenTest() override = default; + + void SetUpOnMainThread() override { + ShowLoginWizard(OobeScreen::SCREEN_TEST_NO_WINDOW); + + fetcher_factory_callback_ = base::BindRepeating( + &RecommendAppsScreenTest::CreateRecommendAppsFetcher, + base::Unretained(this)); + RecommendAppsFetcher::SetFactoryCallbackForTesting( + &fetcher_factory_callback_); + + recommend_apps_screen_ = std::make_unique<RecommendAppsScreen>( + GetOobeUI()->GetRecommendAppsScreenView(), + base::BindRepeating(&RecommendAppsScreenTest::HandleScreenExit, + base::Unretained(this))); + + InProcessBrowserTest::SetUpOnMainThread(); + } + void TearDownOnMainThread() override { + RecommendAppsFetcher::SetFactoryCallbackForTesting(nullptr); + fetcher_factory_callback_.Reset(); + recommend_apps_fetcher_ = nullptr; + + InProcessBrowserTest::TearDownOnMainThread(); + } + + void WaitForScreenExit() { + if (screen_result_.has_value()) + return; + base::RunLoop run_loop; + screen_exit_callback_ = run_loop.QuitClosure(); + run_loop.Run(); + } + + bool WaitForAppListSize(const std::string& webview_path, int app_count) { + std::string count_apps_script = + "Array.from(document.getElementById('recommend-apps-container')" + " .querySelectorAll('.item'))" + " .map(i => i.getAttribute('data-packagename'));"; + + std::string script = base::StringPrintf( + "(function() {" + " var getAppCount = function() {" + " %s.executeScript({code: \"%s\"}, r => {" + " if (!r || !r[0] || r[0].length !== %d) {" + " setTimeout(getAppCount, 50);" + " return;" + " }" + " window.domAutomationController.send(true);" + " });" + " };" + " getAppCount();" + "})();", + webview_path.c_str(), count_apps_script.c_str(), app_count); + + // Wait for some apps to be shown + bool result; + return content::ExecuteScriptAndExtractBool( + LoginDisplayHost::default_host()->GetOobeWebContents(), script, + &result) && + result; + } + + // Simulates click on the apps in the webview's app list. + // The apps are expected to be passed in as a JavaScript array string. + // For example ['app_package_name1', 'app_package_name_2'] + bool ToggleAppsSelection(const std::string& webview_path, + const std::string& package_names) { + std::string toggle_apps_script = base::StringPrintf( + "Array.from(document.getElementById('recommend-apps-container')" + " .querySelectorAll('.item'))" + " .filter(i => %s.includes(i.getAttribute('data-packagename')))" + " .forEach(i => i.querySelector('.image-picker').click());", + package_names.c_str()); + + std::string script = base::StringPrintf( + "(function() {" + " %s.executeScript({code: \"%s\"}," + " r => window.domAutomationController.send(true));" + "})();", + webview_path.c_str(), toggle_apps_script.c_str()); + + bool result; + return content::ExecuteScriptAndExtractBool( + LoginDisplayHost::default_host()->GetOobeWebContents(), script, + &result) && + result; + } + + std::unique_ptr<RecommendAppsScreen> recommend_apps_screen_; + base::Optional<RecommendAppsScreen::Result> screen_result_; + FakeRecommendAppsFetcher* recommend_apps_fetcher_ = nullptr; + + private: + void HandleScreenExit(RecommendAppsScreen::Result result) { + ASSERT_FALSE(screen_result_.has_value()); + screen_result_ = result; + if (screen_exit_callback_) + std::move(screen_exit_callback_).Run(); + } + + std::unique_ptr<RecommendAppsFetcher> CreateRecommendAppsFetcher( + RecommendAppsScreenView* view) { + EXPECT_EQ(view, GetOobeUI()->GetRecommendAppsScreenView()); + EXPECT_FALSE(recommend_apps_fetcher_); + + auto fetcher = std::make_unique<FakeRecommendAppsFetcher>(view); + recommend_apps_fetcher_ = fetcher.get(); + return fetcher; + } + + // The callback passed to + // RecommendAppsFetcher::SetFactoryCallbackForTesting(). Bound to + // CreateRecommendAppsFetcher(). + RecommendAppsFetcher::FactoryCallback fetcher_factory_callback_; + + base::OnceClosure screen_exit_callback_; +}; + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, BasicSelection) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1"), + FakeAppInfo("test.app.foo.app2", "Test app 2"), + FakeAppInfo("test.app.foo.app3", "Test app 3")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().ExpectDisabledPath(install_button); + + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + test::OobeJS().ExpectPathDisplayed(true, install_button); + test::OobeJS().ExpectDisabledPath(install_button); + test::OobeJS().ExpectPathDisplayed(true, skip_button); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection( + webview_path, "['test.app.foo.app1', 'test.app.foo.app2']")); + + test::OobeJS().CreateEnabledWaiter(true, install_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + test::OobeJS().TapOnPath(install_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SELECTED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + + base::Value expected_pref_value(base::Value::Type::LIST); + expected_pref_value.GetList().emplace_back("test.app.foo.app1"); + expected_pref_value.GetList().emplace_back("test.app.foo.app2"); + EXPECT_EQ(expected_pref_value, *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, SelectionChange) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1"), + FakeAppInfo("test.app.foo.app2", "Test app 2"), + FakeAppInfo("test.app.foo.app3", "Test app 3")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().ExpectDisabledPath(install_button); + + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + test::OobeJS().ExpectPathDisplayed(true, install_button); + test::OobeJS().ExpectDisabledPath(install_button); + test::OobeJS().ExpectPathDisplayed(true, skip_button); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection( + webview_path, "['test.app.foo.app1', 'test.app.foo.app2']")); + + test::OobeJS().CreateEnabledWaiter(true, install_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection(webview_path, "['test.app.foo.app1']")); + + test::OobeJS().TapOnPath(install_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SELECTED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + + base::Value expected_pref_value(base::Value::Type::LIST); + expected_pref_value.GetList().emplace_back("test.app.foo.app2"); + EXPECT_EQ(expected_pref_value, *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, SkipWithSelectedApps) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1"), + FakeAppInfo("test.app.foo.app2", "Test app 2"), + FakeAppInfo("test.app.foo.app3", "Test app 3")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().ExpectDisabledPath(install_button); + + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + test::OobeJS().ExpectPathDisplayed(true, install_button); + test::OobeJS().ExpectDisabledPath(install_button); + test::OobeJS().ExpectPathDisplayed(true, skip_button); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection(webview_path, "['test.app.foo.app2']")); + + test::OobeJS().CreateEnabledWaiter(true, install_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + test::OobeJS().TapOnPath(skip_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, SkipWithNoAppsSelected) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1"), + FakeAppInfo("test.app.foo.app2", "Test app 2"), + FakeAppInfo("test.app.foo.app3", "Test app 3")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().ExpectDisabledPath(install_button); + + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + test::OobeJS().ExpectPathDisplayed(true, install_button); + test::OobeJS().ExpectDisabledPath(install_button); + test::OobeJS().ExpectPathDisplayed(true, skip_button); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection(webview_path, "['test.app.foo.app2']")); + + test::OobeJS().CreateEnabledWaiter(true, install_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + ASSERT_TRUE(ToggleAppsSelection(webview_path, "['test.app.foo.app2']")); + + test::OobeJS().CreateEnabledWaiter(false, install_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + test::OobeJS().TapOnPath(skip_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, InstallWithNoAppsSelected) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + // The install button is expected to be disabled at this point. Send empty app + // list directly to test handler behavior when install is triggered with no + // apps selected. + test::OobeJS().Evaluate("chrome.send('recommendAppsInstall', []);"); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, NoRecommendedApps) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + recommend_apps_fetcher_->SimulateSuccess(std::vector<FakeAppInfo>()); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().CreateDisplayedWaiter(true, skip_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, install_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + test::OobeJS().TapOnPath(skip_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, ParseError) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + recommend_apps_fetcher_->SimulateParseError(); + + ASSERT_TRUE(screen_result_.has_value()); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, SkipOnLoadError) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + recommend_apps_fetcher_->SimulateLoadError(); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().CreateDisplayedWaiter(true, skip_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().CreateDisplayedWaiter(true, retry_button)->Wait(); + test::OobeJS().ExpectEnabledPath(retry_button); + test::OobeJS().ExpectPathDisplayed(false, install_button); + + test::OobeJS().TapOnPath(skip_button); + + WaitForScreenExit(); + EXPECT_EQ(RecommendAppsScreen::Result::SKIPPED, screen_result_.value()); + EXPECT_EQ(0, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +IN_PROC_BROWSER_TEST_F(RecommendAppsScreenTest, RetryOnLoadError) { + recommend_apps_screen_->Show(); + + OobeScreenWaiter screen_waiter(OobeScreen::SCREEN_RECOMMEND_APPS); + screen_waiter.set_assert_next_screen(); + screen_waiter.Wait(); + + // Wait for loading screen. + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-loading"}); + test::OobeJS().ExpectHidden("recommend-apps-screen"); + + recommend_apps_fetcher_->SimulateLoadError(); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::initializer_list<base::StringPiece> install_button = { + "recommend-apps-screen", "recommend-apps-install-button"}; + const std::initializer_list<base::StringPiece> skip_button = { + "recommend-apps-screen", "recommend-apps-skip-button"}; + const std::initializer_list<base::StringPiece> retry_button = { + "recommend-apps-screen", "recommend-apps-retry-button"}; + + test::OobeJS().CreateDisplayedWaiter(true, skip_button)->Wait(); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().CreateDisplayedWaiter(true, retry_button)->Wait(); + test::OobeJS().ExpectEnabledPath(retry_button); + test::OobeJS().ExpectPathDisplayed(false, install_button); + + test::OobeJS().TapOnPath(retry_button); + + EXPECT_EQ(1, recommend_apps_fetcher_->retries()); + + test::OobeJS().CreateVisibilityWaiter(false, {"recommend-apps-screen"}); + test::OobeJS().ExpectVisible("recommend-apps-loading"); + + std::vector<FakeAppInfo> test_apps = { + FakeAppInfo("test.app.foo.app1", "Test app 1")}; + recommend_apps_fetcher_->SimulateSuccess(test_apps); + + test::OobeJS().CreateVisibilityWaiter(true, {"recommend-apps-screen"}); + test::OobeJS().ExpectHidden("recommend-apps-loading"); + + const std::string webview_path = + test::GetOobeElementPath({"recommend-apps-screen", "app-list-view"}); + test::OobeJS() + .CreateDisplayedWaiter(true, {"recommend-apps-screen", "app-list-view"}) + ->Wait(); + ASSERT_TRUE(WaitForAppListSize(webview_path, test_apps.size())); + + test::OobeJS().ExpectPathDisplayed(true, install_button); + test::OobeJS().ExpectDisabledPath(install_button); + test::OobeJS().ExpectPathDisplayed(true, skip_button); + test::OobeJS().ExpectEnabledPath(skip_button); + test::OobeJS().ExpectPathDisplayed(false, retry_button); + + EXPECT_FALSE(screen_result_.has_value()); + EXPECT_EQ(1, recommend_apps_fetcher_->retries()); + + const base::Value* fast_reinstall_packages = + ProfileManager::GetActiveUserProfile()->GetPrefs()->Get( + arc::prefs::kArcFastAppReinstallPackages); + ASSERT_TRUE(fast_reinstall_packages); + EXPECT_EQ(base::Value(base::Value::Type::LIST), *fast_reinstall_packages); +} + +} // namespace chromeos
diff --git a/chrome/browser/chromeos/login/test/js_checker.cc b/chrome/browser/chromeos/login/test/js_checker.cc index 58f2379c..8382afa 100644 --- a/chrome/browser/chromeos/login/test/js_checker.cc +++ b/chrome/browser/chromeos/login/test/js_checker.cc
@@ -136,6 +136,28 @@ return CreateWaiter(js_condition); } +std::unique_ptr<TestConditionWaiter> JSChecker::CreateDisplayedWaiter( + bool displayed, + std::initializer_list<base::StringPiece> element_ids) { + const std::string element_path = GetOobeElementPath(element_ids); + std::string js_condition = element_path + ".offsetWidth > 0 && " + + element_path + ".offsetHeight > 0"; + if (!displayed) { + js_condition = "!(" + js_condition + ")"; + } + return CreateWaiter(js_condition); +} + +std::unique_ptr<TestConditionWaiter> JSChecker::CreateEnabledWaiter( + bool enabled, + std::initializer_list<base::StringPiece> element_ids) { + std::string js_condition = GetOobeElementPath(element_ids) + ".disabled"; + if (enabled) { + js_condition = "!(" + js_condition + ")"; + } + return CreateWaiter(js_condition); +} + void JSChecker::GetBoolImpl(const std::string& expression, bool* result) { CHECK(web_contents_); ASSERT_TRUE(content::ExecuteScriptAndExtractBool( @@ -180,6 +202,28 @@ ExpectHiddenPath({element_id}); } +void JSChecker::ExpectPathDisplayed( + bool displayed, + std::initializer_list<base::StringPiece> element_ids) { + const std::string element_path = GetOobeElementPath(element_ids); + std::string js_condition = element_path + ".offsetWidth > 0 && " + + element_path + ".offsetHeight > 0"; + if (!displayed) { + js_condition = "!(" + js_condition + ")"; + } + ExpectTrue(js_condition); +} + +void JSChecker::ExpectDisabledPath( + std::initializer_list<base::StringPiece> element_ids) { + ExpectTrue(GetOobeElementPath(element_ids) + ".disabled"); +} + +void JSChecker::ExpectEnabledPath( + std::initializer_list<base::StringPiece> element_ids) { + ExpectFalse(GetOobeElementPath(element_ids) + ".disabled"); +} + void JSChecker::ExpectHasClass( const std::string& css_class, std::initializer_list<base::StringPiece> element_ids) {
diff --git a/chrome/browser/chromeos/login/test/js_checker.h b/chrome/browser/chromeos/login/test/js_checker.h index 6a289db..0db84970 100644 --- a/chrome/browser/chromeos/login/test/js_checker.h +++ b/chrome/browser/chromeos/login/test/js_checker.h
@@ -65,14 +65,42 @@ bool visibility, std::initializer_list<base::StringPiece> element_ids); + // Waiter that waits until specified element is (not) displayed with non-zero + // size. + std::unique_ptr<TestConditionWaiter> CreateDisplayedWaiter( + bool displayed, + std::initializer_list<base::StringPiece> element_ids); + + // Waiter that waits until an element is enabled or disabled. + std::unique_ptr<TestConditionWaiter> CreateEnabledWaiter( + bool enabled, + std::initializer_list<base::StringPiece> element_ids); + // Expects that indicated UI element is not hidden. + // NOTE: This only checks hidden property - it might not work for elements + // hidden by "display: none" style. void ExpectVisiblePath(std::initializer_list<base::StringPiece> element_ids); void ExpectVisible(const std::string& element_id); // Expects that indicated UI element is hidden. + // NOTE: This only checks hidden property - it might not work for elements + // hidden by "display: none" style. void ExpectHiddenPath(std::initializer_list<base::StringPiece> element_ids); void ExpectHidden(const std::string& element_id); + // Expects that the element is displayed on screen - i.e. that it has non-null + // size. Unlike ExpectHidden and ExpectVisible methods, this will correctly + // elements with "display: none" style, but might not work for polymer module + // roots. + void ExpectPathDisplayed(bool displayed, + std::initializer_list<base::StringPiece> element_id); + + // Expects that the indicated UI element is disabled. + void ExpectDisabledPath(std::initializer_list<base::StringPiece> element_ids); + + // Expects that the indicated UI element is not disabled. + void ExpectEnabledPath(std::initializer_list<base::StringPiece> element_ids); + // Expects that indicated UI element has particular class. void ExpectHasClass(const std::string& css_class, std::initializer_list<base::StringPiece> element_ids);
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/adapter.cc b/chrome/browser/chromeos/power/auto_screen_brightness/adapter.cc index ca9cf9f..c024f58 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/adapter.cc +++ b/chrome/browser/chromeos/power/auto_screen_brightness/adapter.cc
@@ -69,16 +69,16 @@ void Adapter::OnAmbientLightUpdated(int lux) { // Ambient light data is only used when adapter is initialized to success. - // |ambient_light_values_| may not be available to use when adapter is being + // |log_als_values_| may not be available to use when adapter is being // initialized. if (adapter_status_ != Status::kSuccess) return; - DCHECK(ambient_light_values_); + DCHECK(log_als_values_); const base::TimeTicks now = tick_clock_->NowTicks(); - ambient_light_values_->SaveToBuffer({lux, now}); + log_als_values_->SaveToBuffer({ConvertToLog(lux), now}); MaybeAdjustBrightness(now); } @@ -108,17 +108,17 @@ return; // |latest_brightness_change_time_|, |current_brightness_|, - // |log_average_ambient_lux_| and thresholds are only needed if adapter is + // |average_log_ambient_lux_| and thresholds are only needed if adapter is // |kSuccess|. if (adapter_status_ == Status::kSuccess) { - DCHECK(ambient_light_values_); - const base::Optional<AlsAvgStdDev> als_avg_stddev = - ambient_light_values_->AverageAmbientWithStdDev(now); + DCHECK(log_als_values_); + const base::Optional<AlsAvgStdDev> log_als_avg_stddev = + log_als_values_->AverageAmbientWithStdDev(now); OnBrightnessChanged(now, new_brightness_percent, - als_avg_stddev ? base::Optional<double>( - ConvertToLog(als_avg_stddev->avg)) - : base::nullopt); + log_als_avg_stddev + ? base::Optional<double>(log_als_avg_stddev->avg) + : base::nullopt); } if (!metrics_reporter_) @@ -237,8 +237,8 @@ base::Optional<AlsAvgStdDev> Adapter::GetAverageAmbientWithStdDevForTesting( base::TimeTicks now) { - DCHECK(ambient_light_values_); - return ambient_light_values_->AverageAmbientWithStdDev(now); + DCHECK(log_als_values_); + return log_als_values_->AverageAmbientWithStdDev(now); } double Adapter::GetBrighteningThresholdForTesting() const { @@ -249,8 +249,8 @@ return *darkening_threshold_; } -base::Optional<double> Adapter::GetCurrentLogAvgAlsForTesting() const { - return log_average_ambient_lux_; +base::Optional<double> Adapter::GetCurrentAvgLogAlsForTesting() const { + return average_log_ambient_lux_; } std::unique_ptr<Adapter> Adapter::CreateForTesting( @@ -349,7 +349,7 @@ params_.auto_brightness_als_horizon = base::TimeDelta::FromSeconds(auto_brightness_als_horizon_seconds); - ambient_light_values_ = std::make_unique<AmbientLightSampleBuffer>( + log_als_values_ = std::make_unique<AmbientLightSampleBuffer>( params_.auto_brightness_als_horizon); // TODO(jiameng): move this to device config once we complete experiments. @@ -426,8 +426,7 @@ } base::Optional<Adapter::BrightnessChangeCause> Adapter::CanAdjustBrightness( - double current_log_average_ambient, - double stddev) const { + const AlsAvgStdDev& log_als_avg_stddev) const { if (adapter_status_ != Status::kSuccess || adapter_disabled_by_user_adjustment_) { return base::nullopt; @@ -442,7 +441,7 @@ return base::nullopt; } - if (!log_average_ambient_lux_) { + if (!average_log_ambient_lux_) { // Either // 1. brightness hasn't been changed, or, // 2. brightness was changed by the user but there wasn't any ALS data. This @@ -456,15 +455,15 @@ DCHECK(brightening_threshold_); DCHECK(darkening_threshold_); - if (current_log_average_ambient > *brightening_threshold_ && - stddev <= params_.brightening_log_lux_threshold * - params_.stabilization_threshold) { + if (log_als_avg_stddev.avg > *brightening_threshold_ && + log_als_avg_stddev.stddev <= params_.brightening_log_lux_threshold * + params_.stabilization_threshold) { return BrightnessChangeCause::kBrightneningThresholdExceeded; } - if (current_log_average_ambient < *darkening_threshold_ && - stddev <= params_.darkening_log_lux_threshold * - params_.stabilization_threshold) { + if (log_als_avg_stddev.avg < *darkening_threshold_ && + log_als_avg_stddev.stddev <= params_.darkening_log_lux_threshold * + params_.stabilization_threshold) { return BrightnessChangeCause::kDarkeningThresholdExceeded; } @@ -473,7 +472,7 @@ void Adapter::MaybeAdjustBrightness(base::TimeTicks now) { DCHECK_EQ(adapter_status_, Status::kSuccess); - DCHECK(ambient_light_values_); + DCHECK(log_als_values_); DCHECK(!als_init_time_.is_null()); // Wait until we've had enough ALS data to calc avg. if (now - als_init_time_ < params_.auto_brightness_als_horizon) @@ -486,21 +485,19 @@ params_.auto_brightness_als_horizon) return; - const base::Optional<AlsAvgStdDev> als_avg_stddev = - ambient_light_values_->AverageAmbientWithStdDev(now); - if (!als_avg_stddev) + const base::Optional<AlsAvgStdDev> log_als_avg_stddev = + log_als_values_->AverageAmbientWithStdDev(now); + if (!log_als_avg_stddev) return; - const double log_average_ambient_lux = ConvertToLog(als_avg_stddev->avg); - const base::Optional<BrightnessChangeCause> brightness_change_cause = - CanAdjustBrightness(log_average_ambient_lux, als_avg_stddev->stddev); + CanAdjustBrightness(*log_als_avg_stddev); if (!brightness_change_cause.has_value()) return; const base::Optional<double> brightness = - GetBrightnessBasedOnAmbientLogLux(log_average_ambient_lux); + GetBrightnessBasedOnAmbientLogLux(log_als_avg_stddev->avg); // This could occur if curve isn't set up (e.g. when we want to use // personal only that's not yet available). @@ -526,11 +523,11 @@ UMA_HISTOGRAM_ENUMERATION("AutoScreenBrightness.BrightnessChange.Cause", cause); - WriteLogMessages(log_average_ambient_lux, *brightness, cause); + WriteLogMessages(log_als_avg_stddev->avg, *brightness, cause); model_brightness_change_counter_++; OnBrightnessChanged(brightness_change_time, *brightness, - log_average_ambient_lux); + log_als_avg_stddev->avg); } base::Optional<double> Adapter::GetBrightnessBasedOnAmbientLogLux( @@ -565,13 +562,13 @@ if (!new_log_als) return; - // Update |log_average_ambient_lux_| with the new reference value. Brightness + // Update |average_log_ambient_lux_| with the new reference value. Brightness // will be changed by the model if next log-avg ALS value goes outside of the // range // [|darkening_threshold_|, |brightening_threshold_|]. // Thresholds in |params_| are absolute values to be added/subtracted from // the reference values. Log-avg can be negative. - log_average_ambient_lux_ = new_log_als; + average_log_ambient_lux_ = new_log_als; brightening_threshold_ = *new_log_als + params_.brightening_log_lux_threshold; darkening_threshold_ = *new_log_als - params_.darkening_log_lux_threshold; } @@ -581,8 +578,8 @@ BrightnessChangeCause cause) const { DCHECK_EQ(adapter_status_, Status::kSuccess); const std::string old_log_als = - log_average_ambient_lux_ - ? base::StringPrintf("%.4f", log_average_ambient_lux_.value()) + "->" + average_log_ambient_lux_ + ? base::StringPrintf("%.4f", average_log_ambient_lux_.value()) + "->" : ""; const std::string old_brightness =
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/adapter.h b/chrome/browser/chromeos/power/auto_screen_brightness/adapter.h index 87591ba..27470a7 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/adapter.h +++ b/chrome/browser/chromeos/power/auto_screen_brightness/adapter.h
@@ -161,14 +161,14 @@ base::Optional<MonotoneCubicSpline> GetGlobalCurveForTesting() const; base::Optional<MonotoneCubicSpline> GetPersonalCurveForTesting() const; - // Returns the average and std-dev over |ambient_light_values_|. + // Returns the average and std-dev over |log_als_values_|. base::Optional<AlsAvgStdDev> GetAverageAmbientWithStdDevForTesting( base::TimeTicks now); double GetBrighteningThresholdForTesting() const; double GetDarkeningThresholdForTesting() const; - // Returns |log_average_ambient_lux_|. - base::Optional<double> GetCurrentLogAvgAlsForTesting() const; + // Returns |average_log_ambient_lux_|. + base::Optional<double> GetCurrentAvgLogAlsForTesting() const; static std::unique_ptr<Adapter> CreateForTesting( Profile* profile, @@ -209,8 +209,7 @@ // the ambient light has changed beyond thresholds and has stabilized. // Returns nullopt if it shouldn't change the brightness. base::Optional<BrightnessChangeCause> CanAdjustBrightness( - double current_log_average_ambient, - double stddev) const; + const AlsAvgStdDev& log_als_avg_stddev) const; // Called when ambient light changes. It only changes screen brightness if // |CanAdjustBrightness| returns true and a required curve is set up: @@ -232,7 +231,7 @@ // Called when brightness is changed by the model or user. This function // updates |latest_brightness_change_time_|, |current_brightness_|. If // |new_log_als| is not nullopt, it will also update - // |log_average_ambient_lux_| and thresholds. |new_log_als| should be + // |average_log_ambient_lux_| and thresholds. |new_log_als| should be // available when this function is called, but may be nullopt when a user // changes brightness before any ALS reading comes in. We log an error if this // happens. @@ -271,8 +270,9 @@ // TODO(jiameng): refactor internal states and flags. - // This buffer will be used to store the recent ambient light values. - std::unique_ptr<AmbientLightSampleBuffer> ambient_light_values_; + // This buffer will be used to store the recent ambient light values in the + // log space. + std::unique_ptr<AmbientLightSampleBuffer> log_als_values_; base::Optional<AlsReader::AlsInitStatus> als_init_status_; // Time when AlsReader is initialized. @@ -298,7 +298,7 @@ // to check |adapter_disabled_by_user_adjustment_|. bool adapter_disabled_by_user_adjustment_ = false; - // The thresholds are calculated from the |log_average_ambient_lux_|. + // The thresholds are calculated from the |average_log_ambient_lux_|. // They are only updated when brightness is changed (either by user or model). base::Optional<double> brightening_threshold_; base::Optional<double> darkening_threshold_; @@ -306,9 +306,9 @@ base::Optional<MonotoneCubicSpline> global_curve_; base::Optional<MonotoneCubicSpline> personal_curve_; - // |log_average_ambient_lux_| is only recorded when screen brightness is + // |average_log_ambient_lux_| is only recorded when screen brightness is // changed by either model or user. New thresholds will be calculated from it. - base::Optional<double> log_average_ambient_lux_; + base::Optional<double> average_log_ambient_lux_; // Last time brightness change occurred, either by user or model. base::TimeTicks latest_brightness_change_time_;
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/adapter_unittest.cc b/chrome/browser/chromeos/power/auto_screen_brightness/adapter_unittest.cc index 5334b5f..19af919 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/adapter_unittest.cc +++ b/chrome/browser/chromeos/power/auto_screen_brightness/adapter_unittest.cc
@@ -41,15 +41,18 @@ namespace { -// Checks |actual_log_avg| is equal to the log avg calculated from -// |expected_data|. -void CheckLogAvg(const std::vector<double>& expected_data, - double actual_log_avg) { +// Checks |actual_avg_log| is equal to the avg log calculated from +// |expected_data|. |expected_data| contains absolute lux value, not log lux. +void CheckAvgLog(const std::vector<double>& expected_data, + double actual_avg_log) { const size_t count = expected_data.size(); CHECK_NE(count, 0u); - const double expected_log_avg = ConvertToLog( - std::accumulate(expected_data.begin(), expected_data.end(), 0.0) / count); - EXPECT_DOUBLE_EQ(actual_log_avg, expected_log_avg); + const double expected_avg_log = + std::accumulate( + expected_data.begin(), expected_data.end(), 0.0, + [](double sum, double lux) { return sum + ConvertToLog(lux); }) / + count; + EXPECT_DOUBLE_EQ(actual_avg_log, expected_avg_log); } // Testing modeller. @@ -496,8 +499,8 @@ ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 100}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 100}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // First ALS comes in at the same time when AlsReader is initialized. Hence @@ -516,8 +519,8 @@ ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 100}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 100}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } TEST_F(AdapterTest, SequenceOfBrightnessUpdatesWithDefaultParams) { @@ -536,45 +539,45 @@ // Brightness is changed for the first time after the 5th reading. ForwardTimeAndReportAls({5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Several other ALS readings come in, but need to wait for // |params.auto_brightness_als_horizon_seconds| to pass before having any // effect ForwardTimeAndReportAls({20}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({30}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({40}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({50}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // The next ALS reading triggers brightness change. ForwardTimeAndReportAls({60}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({20, 30, 40, 50, 60}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({20, 30, 40, 50, 60}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // |params.auto_brightness_als_horizon_seconds| has elapsed since we've made // the change, but there's no new ALS value, hence no brightness change is // triggered. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(10)); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({20, 30, 40, 50, 60}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({20, 30, 40, 50, 60}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_EQ(adapter_->GetAverageAmbientWithStdDevForTesting( thread_bundle_.NowTicks()), @@ -583,7 +586,7 @@ // A new ALS value triggers a brightness change. ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 3); - CheckLogAvg({100}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({100}, adapter_->GetCurrentAvgLogAlsForTesting().value()); } // A user brightness change comes in when ALS readings exist. This also disables @@ -604,12 +607,12 @@ "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 1); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_FALSE(adapter_->IsAppliedForTesting()); - CheckLogAvg({1, 2, 3, 4}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4}, adapter_->GetCurrentAvgLogAlsForTesting().value()); // An als reading comes in but will not change the brightness. ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 0); - CheckLogAvg({1, 2, 3, 4}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4}, adapter_->GetCurrentAvgLogAlsForTesting().value()); // Another user manual adjustment comes in. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -619,8 +622,8 @@ EXPECT_FALSE(adapter_->IsAppliedForTesting()); histogram_tester_.ExpectUniqueSample( "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 2); - CheckLogAvg({2, 3, 4, 100}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 3, 4, 100}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Same as |UserBrightnessChangeAlsReadingExists| except that user adjustment @@ -644,19 +647,19 @@ EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); EXPECT_EQ(test_observer_.num_changes(), 0); - CheckLogAvg({2, 4, 6, 8}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 4, 6, 8}, adapter_->GetCurrentAvgLogAlsForTesting().value()); // Four ALS readings come in, but not enough time has passed since user // brightness change. ForwardTimeAndReportAls({4, 6, 8, 2}); EXPECT_EQ(test_observer_.num_changes(), 0); - CheckLogAvg({2, 4, 6, 8}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 4, 6, 8}, adapter_->GetCurrentAvgLogAlsForTesting().value()); - // Another ALS reading is in, but avg is the same as reference ALS (when user - // changed brightness). Hence no change to brightness. + // Another ALS reading is in and triggers brightness change. ForwardTimeAndReportAls({5}); - EXPECT_EQ(test_observer_.num_changes(), 0); - CheckLogAvg({2, 4, 6, 8}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + EXPECT_EQ(test_observer_.num_changes(), 1); + CheckAvgLog({4, 6, 8, 2, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Another user manual adjustment comes in. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -665,8 +668,8 @@ EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); histogram_tester_.ExpectUniqueSample( - "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 2); - CheckLogAvg({6, 8, 2, 5}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 3); + CheckAvgLog({6, 8, 2, 5}, adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Same as |UserBrightnessChangeAlsReadingExists| except that the 1st user @@ -682,15 +685,15 @@ histogram_tester_.ExpectUniqueSample( "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", true, 1); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_FALSE(adapter_->IsAppliedForTesting()); - EXPECT_FALSE(adapter_->GetCurrentLogAvgAlsForTesting()); + EXPECT_FALSE(adapter_->GetCurrentAvgLogAlsForTesting()); // ALS readings come in but will not change the brightness. ForwardTimeAndReportAls({100, 101, 102, 103, 104}); EXPECT_EQ(test_observer_.num_changes(), 0); - EXPECT_FALSE(adapter_->GetCurrentLogAvgAlsForTesting()); + EXPECT_FALSE(adapter_->GetCurrentAvgLogAlsForTesting()); // Another user manual adjustment comes in. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -701,8 +704,8 @@ "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 1); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_FALSE(adapter_->IsAppliedForTesting()); - CheckLogAvg({101, 102, 103, 104}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({101, 102, 103, 104}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Same as |UserBrightnessChangeAlsReadingAbsent| except that user adjustment @@ -720,18 +723,18 @@ histogram_tester_.ExpectUniqueSample( "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", true, 1); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); - EXPECT_FALSE(adapter_->GetCurrentLogAvgAlsForTesting()); + EXPECT_FALSE(adapter_->GetCurrentAvgLogAlsForTesting()); // ALS readings come in, and will trigger a brightness change. ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 0); ForwardTimeAndReportAls({101, 102, 103, 104}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({100, 101, 102, 103, 104}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({100, 101, 102, 103, 104}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Another user manual adjustment comes in. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); @@ -742,8 +745,8 @@ "AutoScreenBrightness.MissingAlsWhenBrightnessChanged", false, 2); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); - CheckLogAvg({101, 102, 103, 104}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({101, 102, 103, 104}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Set |brightening_log_lux_threshold| to a very high value to effectively make @@ -764,40 +767,40 @@ EXPECT_EQ(test_observer_.num_changes(), 0); ForwardTimeAndReportAls({5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 100); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 0.00001); ForwardTimeAndReportAls({4, 4, 4, 4, 4}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 100); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 0.00001); // Darkening is still possible. ForwardTimeAndReportAls({1}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 100); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 0.00001); ForwardTimeAndReportAls({1}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({4, 4, 4, 1, 1}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({4, 4, 4, 1, 1}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 100); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 0.00001); } // Set |darkening_log_lux_threshold| to a very high value to effectively make @@ -812,29 +815,29 @@ EXPECT_EQ(test_observer_.num_changes(), 0); ForwardTimeAndReportAls({50}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({10, 20, 30, 40, 50}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({10, 20, 30, 40, 50}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 0.00001); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 100); - ForwardTimeAndReportAls({29, 29, 29, 29, 29}); + ForwardTimeAndReportAls({25, 25, 25, 25, 25}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({10, 20, 30, 40, 50}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({10, 20, 30, 40, 50}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 0.00001); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 100); ForwardTimeAndReportAls({40}); - CheckLogAvg({29, 29, 29, 29, 40}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({25, 25, 25, 25, 40}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_DOUBLE_EQ(adapter_->GetBrighteningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() + 0.00001); + adapter_->GetCurrentAvgLogAlsForTesting().value() + 0.00001); EXPECT_DOUBLE_EQ(adapter_->GetDarkeningThresholdForTesting(), - adapter_->GetCurrentLogAvgAlsForTesting().value() - 100); + adapter_->GetCurrentAvgLogAlsForTesting().value() - 100); } // Set |stabilization_threshold| to a very low value so that the average really @@ -847,19 +850,19 @@ ForwardTimeAndReportAls({10, 20, 30, 40, 50}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({10, 20, 30, 40, 50}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({10, 20, 30, 40, 50}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); - // A slight fluctuation means brightness is not changed. - ForwardTimeAndReportAls({29, 29, 29, 29, 28}); + // A fluctuation means brightness is not changed. + ForwardTimeAndReportAls({29, 29, 29, 29, 20}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({10, 20, 30, 40, 50}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({10, 20, 30, 40, 50}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); - ForwardTimeAndReportAls({28, 28, 28, 28}); + ForwardTimeAndReportAls({20, 20, 20, 20}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({28, 28, 28, 28, 28}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({20, 20, 20, 20, 20}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Shorten |auto_brightness_als_horizon| to 1 second. Averaging period is @@ -875,15 +878,15 @@ ForwardTimeAndReportAls({10}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({10}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({10}, adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({100}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({100}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({100}, adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({2}); EXPECT_EQ(test_observer_.num_changes(), 3); - CheckLogAvg({2}, adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2}, adapter_->GetCurrentAvgLogAlsForTesting().value()); } TEST_F(AdapterTest, UsePersonalCurve) { @@ -901,14 +904,14 @@ // because there is no personal curve. ForwardTimeAndReportAls({1, 2, 3, 4, 5, 6, 7, 8}); EXPECT_EQ(test_observer_.num_changes(), 0); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); // Personal curve is received, it does not lead to any immediate brightness // change. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); fake_modeller_.ReportModelTrained(*personal_curve_); EXPECT_EQ(test_observer_.num_changes(), 0); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); // Another ALS comes in, which triggers a brightness change. ReportAls(20); @@ -916,13 +919,13 @@ EXPECT_EQ(test_observer_.GetCause(), power_manager::BacklightBrightnessChange_Cause_MODEL); - CheckLogAvg({5, 6, 7, 8, 20}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({5, 6, 7, 8, 20}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Brightness is changed according to the personal curve. EXPECT_DOUBLE_EQ(test_observer_.GetBrightnessPercent(), personal_curve_->Interpolate( - adapter_->GetCurrentLogAvgAlsForTesting().value())); + adapter_->GetCurrentAvgLogAlsForTesting().value())); } TEST_F(AdapterTest, UseGlobalCurve) { @@ -936,13 +939,13 @@ ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Brightness is changed according to the global curve. EXPECT_DOUBLE_EQ(test_observer_.GetBrightnessPercent(), global_curve_->Interpolate( - adapter_->GetCurrentLogAvgAlsForTesting().value())); + adapter_->GetCurrentAvgLogAlsForTesting().value())); // A new personal curve is received but adapter still uses the global curve. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(20)); @@ -955,7 +958,7 @@ // Brightness is changed according to the global curve. EXPECT_DOUBLE_EQ(test_observer_.GetBrightnessPercent(), global_curve_->Interpolate( - adapter_->GetCurrentLogAvgAlsForTesting().value())); + adapter_->GetCurrentAvgLogAlsForTesting().value())); } TEST_F(AdapterTest, BrightnessSetByPolicy) { @@ -967,7 +970,7 @@ ForwardTimeAndReportAls({1, 2, 3, 4, 5, 6, 7, 8}); EXPECT_EQ(test_observer_.num_changes(), 0); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); } TEST_F(AdapterTest, FeatureDisabled) { @@ -987,7 +990,7 @@ // No brightness is changed. ForwardTimeAndReportAls({1, 2, 3, 4, 5, 6, 7, 8}); EXPECT_EQ(test_observer_.num_changes(), 0); - EXPECT_EQ(adapter_->GetCurrentLogAvgAlsForTesting(), base::nullopt); + EXPECT_EQ(adapter_->GetCurrentAvgLogAlsForTesting(), base::nullopt); } TEST_F(AdapterTest, FeatureEnabledForAtlas) { @@ -1005,8 +1008,8 @@ ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } TEST_F(AdapterTest, ValidParameters) { @@ -1042,8 +1045,8 @@ // Brightness is changed for the 1st time. ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Adapter will not be applied after a user manual adjustment. ReportUserBrightnessChangeRequest(20.0, 30.0); @@ -1052,8 +1055,8 @@ ForwardTimeAndReportAls({6, 7, 8, 9, 10, 11}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // SuspendDone is received, which does not enable Adapter. ReportSuspendDone(); @@ -1062,8 +1065,8 @@ ForwardTimeAndReportAls({11, 12, 13, 14, 15, 16}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } TEST_F(AdapterTest, UserAdjustmentEffectPause) { @@ -1083,8 +1086,8 @@ // Brightness is changed for the 1st time. ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // User manually changes brightness so that adapter will not be applied. ReportUserBrightnessChangeRequest(20.0, 30.0); @@ -1094,8 +1097,8 @@ // New ALS data will not trigger brightness update. ForwardTimeAndReportAls({101, 102, 103, 104, 105, 106, 107, 108}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // // SuspendDone is received, which reenables adapter. ReportSuspendDone(); @@ -1105,21 +1108,21 @@ // Another ALS results in a brightness change. ForwardTimeAndReportAls({109}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({105, 106, 107, 108, 109}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({105, 106, 107, 108, 109}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // Another user brightness change. ReportUserBrightnessChangeRequest(40.0, 50.0); - CheckLogAvg({105, 106, 107, 108, 109}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({105, 106, 107, 108, 109}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_FALSE(adapter_->IsAppliedForTesting()); // New ALS data will not trigger brightness update. ForwardTimeAndReportAls({200}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({105, 106, 107, 108, 109}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({105, 106, 107, 108, 109}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); // SuspendDone is received, which reenables adapter. ReportSuspendDone(); @@ -1129,13 +1132,13 @@ // Als readings come in but not sufficient time since user changed brightness. ForwardTimeAndReportAls({201, 202, 203}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({105, 106, 107, 108, 109}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({105, 106, 107, 108, 109}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({204}); EXPECT_EQ(test_observer_.num_changes(), 3); - CheckLogAvg({200, 201, 202, 203, 204}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({200, 201, 202, 203, 204}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } TEST_F(AdapterTest, UserAdjustmentEffectContinue) { @@ -1155,26 +1158,26 @@ // Brightness is changed for the 1st time. ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({10}); // User manual adjustment doesn't disable adapter. ReportUserBrightnessChangeRequest(40.0, 50.0); - CheckLogAvg({2, 3, 4, 5, 10}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 3, 4, 5, 10}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); ForwardTimeAndReportAls({100, 101, 102, 103}); - CheckLogAvg({2, 3, 4, 5, 10}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 3, 4, 5, 10}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({104}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({100, 101, 102, 103, 104}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({100, 101, 102, 103, 104}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } // Default user adjustment effect for atlas is Continue. @@ -1196,26 +1199,26 @@ // Brightness is changed for the 1st time. ForwardTimeAndReportAls({1, 2, 3, 4, 5}); EXPECT_EQ(test_observer_.num_changes(), 1); - CheckLogAvg({1, 2, 3, 4, 5}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({1, 2, 3, 4, 5}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({10}); // User manual adjustment doesn't disable adapter. ReportUserBrightnessChangeRequest(40.0, 50.0); - CheckLogAvg({2, 3, 4, 5, 10}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 3, 4, 5, 10}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); EXPECT_EQ(adapter_->GetStatusForTesting(), Adapter::Status::kSuccess); EXPECT_TRUE(adapter_->IsAppliedForTesting()); ForwardTimeAndReportAls({100, 101, 102, 103}); - CheckLogAvg({2, 3, 4, 5, 10}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({2, 3, 4, 5, 10}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); ForwardTimeAndReportAls({104}); EXPECT_EQ(test_observer_.num_changes(), 2); - CheckLogAvg({100, 101, 102, 103, 104}, - adapter_->GetCurrentLogAvgAlsForTesting().value()); + CheckAvgLog({100, 101, 102, 103, 104}, + adapter_->GetCurrentAvgLogAlsForTesting().value()); } } // namespace auto_screen_brightness
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.cc b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.cc index 418810c1..deffb0212 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.cc +++ b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.cc
@@ -143,8 +143,8 @@ if (!is_modeller_enabled_.has_value() || !*is_modeller_enabled_) return; - DCHECK(ambient_light_values_); - ambient_light_values_->SaveToBuffer({lux, tick_clock_->NowTicks()}); + DCHECK(log_als_values_); + log_als_values_->SaveToBuffer({ConvertToLog(lux), tick_clock_->NowTicks()}); } void ModellerImpl::OnAlsReaderInitialized(AlsReader::AlsInitStatus status) { @@ -170,17 +170,16 @@ if (!is_modeller_enabled_.has_value() || !*is_modeller_enabled_) return; - DCHECK(ambient_light_values_); + DCHECK(log_als_values_); const base::TimeTicks now = tick_clock_->NowTicks(); // We don't add any training data if there is no ambient light sample. - const base::Optional<AlsAvgStdDev> als_avg_stddev = - ambient_light_values_->AverageAmbientWithStdDev(now); - if (!als_avg_stddev) + const base::Optional<AlsAvgStdDev> log_als_avg_stddev = + log_als_values_->AverageAmbientWithStdDev(now); + if (!log_als_avg_stddev) return; - const double average_ambient_lux = als_avg_stddev->avg; data_cache_.push_back({old_brightness_percent, new_brightness_percent, - ConvertToLog(average_ambient_lux), now}); + log_als_avg_stddev->avg, now}); ScheduleTrainerStart(); } @@ -225,13 +224,13 @@ base::Optional<double> ModellerImpl::AverageAmbientForTesting( base::TimeTicks now) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(ambient_light_values_); - const base::Optional<AlsAvgStdDev> als_avg_stddev = - ambient_light_values_->AverageAmbientWithStdDev(now); - if (!als_avg_stddev) + DCHECK(log_als_values_); + const base::Optional<AlsAvgStdDev> log_als_avg_stddev = + log_als_values_->AverageAmbientWithStdDev(now); + if (!log_als_avg_stddev) return base::nullopt; - return als_avg_stddev->avg; + return log_als_avg_stddev->avg; } size_t ModellerImpl::NumberTrainingDataPointsForTesting() const { @@ -373,7 +372,7 @@ global_curve_.emplace( MonotoneCubicSpline(model_config_.log_lux, model_config_.brightness)); - ambient_light_values_ = std::make_unique<AmbientLightSampleBuffer>( + log_als_values_ = std::make_unique<AmbientLightSampleBuffer>( base::TimeDelta::FromSeconds(model_config_.model_als_horizon_seconds)); // TODO(jiameng): the following params are probably not useful and can be
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.h b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.h index 7af1e93..edc5e82 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.h +++ b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl.h
@@ -88,7 +88,7 @@ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner, const base::TickClock* tick_clock); - // Current average ambient light. + // Current average log ambient light. base::Optional<double> AverageAmbientForTesting(base::TimeTicks now); // Current number of training data points stored, which will be used for next @@ -246,8 +246,8 @@ // generates a new curve. base::Optional<MonotoneCubicSpline> current_curve_; - // Recent ambient values. - std::unique_ptr<AmbientLightSampleBuffer> ambient_light_values_; + // Recent log ambient values. + std::unique_ptr<AmbientLightSampleBuffer> log_als_values_; std::vector<TrainingDataPoint> data_cache_;
diff --git a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl_unittest.cc b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl_unittest.cc index 79e8988c..1de50128 100644 --- a/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl_unittest.cc +++ b/chrome/browser/chromeos/power/auto_screen_brightness/modeller_impl_unittest.cc
@@ -485,17 +485,19 @@ thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); const int lux = i == 0 ? first_lux : i; fake_als_reader_.ReportAmbientLightUpdate(lux); - running_sum += lux; - EXPECT_EQ(modeller_->AverageAmbientForTesting(thread_bundle_.NowTicks()), - running_sum / (i + 1)); + running_sum += ConvertToLog(lux); + EXPECT_DOUBLE_EQ( + modeller_->AverageAmbientForTesting(thread_bundle_.NowTicks()).value(), + running_sum / (i + 1)); } // Add another one should push the oldest |first_lux| out of the horizon. thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); fake_als_reader_.ReportAmbientLightUpdate(100); - running_sum = running_sum + 100 - first_lux; - EXPECT_EQ(modeller_->AverageAmbientForTesting(thread_bundle_.NowTicks()), - running_sum / horizon_in_seconds); + running_sum = running_sum + ConvertToLog(100) - ConvertToLog(first_lux); + EXPECT_DOUBLE_EQ( + modeller_->AverageAmbientForTesting(thread_bundle_.NowTicks()).value(), + running_sum / horizon_in_seconds); } // User brightness changes are received, training example cache reaches @@ -523,9 +525,9 @@ const double brightness_old = 10.0 + i; const double brightness_new = 20.0 + i; modeller_->OnUserBrightnessChanged(brightness_old, brightness_new); - expected_data.push_back( - {brightness_old, brightness_new, - ConvertToLog(modeller_->AverageAmbientForTesting(now).value()), now}); + expected_data.push_back({brightness_old, brightness_new, + modeller_->AverageAmbientForTesting(now).value(), + now}); } // Training should not have started. @@ -538,9 +540,9 @@ const double brightness_old = 85; const double brightness_new = 95; modeller_->OnUserBrightnessChanged(brightness_old, brightness_new); - expected_data.push_back( - {brightness_old, brightness_new, - ConvertToLog(modeller_->AverageAmbientForTesting(now).value()), now}); + expected_data.push_back({brightness_old, brightness_new, + modeller_->AverageAmbientForTesting(now).value(), + now}); thread_bundle_.RunUntilIdle(); EXPECT_EQ(0u, modeller_->NumberTrainingDataPointsForTesting()); @@ -577,9 +579,9 @@ const double brightness_old = 10.0 + i; const double brightness_new = 20.0 + i; modeller_->OnUserBrightnessChanged(brightness_old, brightness_new); - expected_data.push_back( - {brightness_old, brightness_new, - ConvertToLog(modeller_->AverageAmbientForTesting(now).value()), now}); + expected_data.push_back({brightness_old, brightness_new, + modeller_->AverageAmbientForTesting(now).value(), + now}); } EXPECT_EQ(modeller_->NumberTrainingDataPointsForTesting(), 10u);
diff --git a/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc b/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc index f709922..26ff796 100644 --- a/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc +++ b/chrome/browser/dom_distiller/dom_distiller_viewer_source_browsertest.cc
@@ -52,8 +52,8 @@ using leveldb_proto::test::FakeDB; using test::FakeDistiller; -using test::MockDistillerPage; using test::MockDistillerFactory; +using test::MockDistillerPage; using test::MockDistillerPageFactory; using test::util::CreateStoreWithFakeDB; using testing::HasSubstr; @@ -63,23 +63,23 @@ const char kGetLoadIndicatorClassName[] = "window.domAutomationController.send(" - "document.getElementById('loadingIndicator').className)"; + "document.getElementById('loadingIndicator').className)"; const char kGetContent[] = "window.domAutomationController.send(" - "document.getElementById('content').innerHTML)"; + "document.getElementById('content').innerHTML)"; const char kGetTitle[] = "window.domAutomationController.send(" - "document.title)"; + "document.title)"; const char kGetBodyClass[] = "window.domAutomationController.send(" - "document.body.className)"; + "document.body.className)"; const char kGetFontSize[] = "window.domAutomationController.send(" - "window.getComputedStyle(document.documentElement).fontSize)"; + "window.getComputedStyle(document.documentElement).fontSize)"; const unsigned kDarkToolbarThemeColor = 0xFF1A1A1A; @@ -259,14 +259,16 @@ EXPECT_EQ(url, contents->GetLastCommittedURL()); std::string result; - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent, &result)); - EXPECT_THAT(result, HasSubstr(l10n_util::GetStringUTF8( - IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_CONTENT))); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetTitle, &result)); - EXPECT_THAT(result, HasSubstr(l10n_util::GetStringUTF8( - IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_TITLE))); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); + EXPECT_THAT(result, + HasSubstr(l10n_util::GetStringUTF8( + IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_CONTENT))); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetTitle, &result)); + EXPECT_THAT(result, + HasSubstr(l10n_util::GetStringUTF8( + IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_TITLE))); } // The DomDistillerViewerSource renders untrusted content, so ensure no bindings @@ -282,7 +284,6 @@ ViewSingleDistilledPage(url, "text/css"); } - #if defined(OS_LINUX) // Flaky on Ubuntu-12.04 bots: https://crbug.com/604362 #define MAYBE_EmptyURLShouldNotCrash DISABLED_EmptyURLShouldNotCrash @@ -307,8 +308,7 @@ ViewSingleDistilledPage(url, "text/html"); } -IN_PROC_BROWSER_TEST_F(DomDistillerViewerSourceBrowserTest, - EarlyTemplateLoad) { +IN_PROC_BROWSER_TEST_F(DomDistillerViewerSourceBrowserTest, EarlyTemplateLoad) { dom_distiller::DomDistillerServiceFactory::GetInstance() ->SetTestingFactoryAndUse(browser()->profile(), base::BindRepeating(&Build)); @@ -316,9 +316,8 @@ scoped_refptr<content::MessageLoopRunner> distillation_done_runner = new content::MessageLoopRunner; - FakeDistiller* distiller = new FakeDistiller( - false, - distillation_done_runner->QuitClosure()); + FakeDistiller* distiller = + new FakeDistiller(false, distillation_done_runner->QuitClosure()); EXPECT_CALL(*distiller_factory_, CreateDistillerImpl()) .WillOnce(testing::Return(distiller)); @@ -337,19 +336,19 @@ std::string result; // Loading spinner should be on screen at this point. EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetLoadIndicatorClassName , &result)); + contents, kGetLoadIndicatorClassName, &result)); EXPECT_EQ("visible", result); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent , &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); EXPECT_THAT(result, Not(HasSubstr("content"))); // Finish distillation and make sure the spinner has been replaced by text. - std::vector<scoped_refptr<ArticleDistillationUpdate::RefCountedPageProto> > + std::vector<scoped_refptr<ArticleDistillationUpdate::RefCountedPageProto>> update_pages; std::unique_ptr<DistilledArticleProto> article(new DistilledArticleProto()); - scoped_refptr<base::RefCountedData<DistilledPageProto> > page_proto = + scoped_refptr<base::RefCountedData<DistilledPageProto>> page_proto = new base::RefCountedData<DistilledPageProto>(); page_proto->data.set_url("http://foo.html"); page_proto->data.set_html("<div>content</div>"); @@ -361,8 +360,8 @@ content::WaitForLoadStop(contents); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent , &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); EXPECT_THAT(result, HasSubstr("content")); } @@ -435,9 +434,8 @@ scoped_refptr<content::MessageLoopRunner> distillation_done_runner = new content::MessageLoopRunner; - FakeDistiller* distiller = new FakeDistiller( - false, - distillation_done_runner->QuitClosure()); + FakeDistiller* distiller = + new FakeDistiller(false, distillation_done_runner->QuitClosure()); EXPECT_CALL(*distiller_factory_, CreateDistillerImpl()) .WillOnce(testing::Return(distiller)); @@ -454,13 +452,13 @@ // Fake a multi-page response from distiller. - std::vector<scoped_refptr<ArticleDistillationUpdate::RefCountedPageProto> > + std::vector<scoped_refptr<ArticleDistillationUpdate::RefCountedPageProto>> update_pages; std::unique_ptr<DistilledArticleProto> article(new DistilledArticleProto()); // Flush page 1. { - scoped_refptr<base::RefCountedData<DistilledPageProto> > page_proto = + scoped_refptr<base::RefCountedData<DistilledPageProto>> page_proto = new base::RefCountedData<DistilledPageProto>(); page_proto->data.set_url("http://foobar.1.html"); page_proto->data.set_html("<div>Page 1 content</div>"); @@ -476,18 +474,18 @@ std::string result; EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetLoadIndicatorClassName , &result)); + contents, kGetLoadIndicatorClassName, &result)); EXPECT_EQ("visible", result); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent , &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); EXPECT_THAT(result, HasSubstr("Page 1 content")); EXPECT_THAT(result, Not(HasSubstr("Page 2 content"))); } // Flush page 2. { - scoped_refptr<base::RefCountedData<DistilledPageProto> > page_proto = + scoped_refptr<base::RefCountedData<DistilledPageProto>> page_proto = new base::RefCountedData<DistilledPageProto>(); page_proto->data.set_url("http://foobar.2.html"); page_proto->data.set_html("<div>Page 2 content</div>"); @@ -499,11 +497,11 @@ std::string result; EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetLoadIndicatorClassName , &result)); + contents, kGetLoadIndicatorClassName, &result)); EXPECT_EQ("hidden", result); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent , &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); EXPECT_THAT(result, HasSubstr("Page 1 content")); EXPECT_THAT(result, HasSubstr("Page 2 content")); } @@ -516,8 +514,8 @@ EXPECT_TRUE(content::ExecuteScriptAndExtractString( contents, kGetLoadIndicatorClassName, &result)); EXPECT_EQ("hidden", result); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetContent , &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetContent, &result)); EXPECT_THAT(result, HasSubstr("Page 1 content")); EXPECT_THAT(result, HasSubstr("Page 2 content")); } @@ -528,8 +526,7 @@ #else #define MAYBE_PrefChange PrefChange #endif -IN_PROC_BROWSER_TEST_F(DomDistillerViewerSourceBrowserTest, - MAYBE_PrefChange) { +IN_PROC_BROWSER_TEST_F(DomDistillerViewerSourceBrowserTest, MAYBE_PrefChange) { PrefTest(false); } @@ -544,7 +541,6 @@ PrefTest(true); } - void DomDistillerViewerSourceBrowserTest::PrefTest(bool is_error_page) { GURL url; if (is_error_page) { @@ -562,19 +558,19 @@ ViewSingleDistilledPage(url, "text/html"); content::WaitForLoadStop(contents); std::string result; - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetBodyClass, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetBodyClass, &result)); EXPECT_EQ("light sans-serif", result); DistilledPagePrefs* distilled_page_prefs = - DomDistillerServiceFactory::GetForBrowserContext( - browser()->profile())->GetDistilledPagePrefs(); + DomDistillerServiceFactory::GetForBrowserContext(browser()->profile()) + ->GetDistilledPagePrefs(); // Test theme. distilled_page_prefs->SetTheme(DistilledPagePrefs::THEME_DARK); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetBodyClass, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetBodyClass, &result)); EXPECT_EQ("dark sans-serif", result); // Verify that the theme color for the tab is updated as well. @@ -588,19 +584,19 @@ EXPECT_EQ("dark serif", result); // Test font scaling. - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetFontSize, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetFontSize, &result)); double oldFontSize; base::StringToDouble(result, &oldFontSize); const double kScale = 1.23; distilled_page_prefs->SetFontScaling(kScale); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetFontSize, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetFontSize, &result)); double fontSize; base::StringToDouble(result, &fontSize); - ASSERT_FLOAT_EQ(kScale, fontSize/oldFontSize); + ASSERT_FLOAT_EQ(kScale, fontSize / oldFontSize); } IN_PROC_BROWSER_TEST_F(DomDistillerViewerSourceBrowserTest, PrefPersist) { @@ -614,11 +610,11 @@ std::string result; DistilledPagePrefs* distilled_page_prefs = - DomDistillerServiceFactory::GetForBrowserContext( - browser()->profile())->GetDistilledPagePrefs(); + DomDistillerServiceFactory::GetForBrowserContext(browser()->profile()) + ->GetDistilledPagePrefs(); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetFontSize, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetFontSize, &result)); double oldFontSize; base::StringToDouble(result, &oldFontSize); @@ -629,15 +625,15 @@ distilled_page_prefs->SetFontScaling(kScale); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetBodyClass, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetBodyClass, &result)); EXPECT_EQ("dark serif", result); EXPECT_EQ(kDarkToolbarThemeColor, contents->GetThemeColor()); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetFontSize, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetFontSize, &result)); double fontSize; base::StringToDouble(result, &fontSize); - ASSERT_FLOAT_EQ(kScale, fontSize/oldFontSize); + ASSERT_FLOAT_EQ(kScale, fontSize / oldFontSize); // Make sure perf persist across web pages. GURL url2("chrome-distiller://bad2"); @@ -645,15 +641,15 @@ content::WaitForLoadStop(contents); base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetBodyClass, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetBodyClass, &result)); EXPECT_EQ("dark serif", result); EXPECT_EQ(kDarkToolbarThemeColor, contents->GetThemeColor()); - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - contents, kGetFontSize, &result)); + EXPECT_TRUE( + content::ExecuteScriptAndExtractString(contents, kGetFontSize, &result)); base::StringToDouble(result, &fontSize); - ASSERT_FLOAT_EQ(kScale, fontSize/oldFontSize); + ASSERT_FLOAT_EQ(kScale, fontSize / oldFontSize); } } // namespace dom_distiller
diff --git a/chrome/browser/dom_distiller/lazy_dom_distiller_service.cc b/chrome/browser/dom_distiller/lazy_dom_distiller_service.cc index 9fb7a9fe..5f137e1 100644 --- a/chrome/browser/dom_distiller/lazy_dom_distiller_service.cc +++ b/chrome/browser/dom_distiller/lazy_dom_distiller_service.cc
@@ -20,13 +20,11 @@ Profile* profile, const DomDistillerServiceFactory* service_factory) : profile_(profile), service_factory_(service_factory) { - registrar_.Add(this, - chrome::NOTIFICATION_PROFILE_DESTROYED, + registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, content::Source<Profile>(profile)); } -LazyDomDistillerService::~LazyDomDistillerService() { -} +LazyDomDistillerService::~LazyDomDistillerService() {} // This will create an object and schedule work the first time it's called // and just return an existing object after that.
diff --git a/chrome/browser/dom_distiller/tab_utils.cc b/chrome/browser/dom_distiller/tab_utils.cc index d988440a..6c17d5f 100644 --- a/chrome/browser/dom_distiller/tab_utils.cc +++ b/chrome/browser/dom_distiller/tab_utils.cc
@@ -25,15 +25,15 @@ namespace { -using dom_distiller::ViewRequestDelegate; -using dom_distiller::DistilledArticleProto; using dom_distiller::ArticleDistillationUpdate; -using dom_distiller::ViewerHandle; -using dom_distiller::SourcePageHandleWebContents; +using dom_distiller::DistilledArticleProto; +using dom_distiller::DistillerPage; using dom_distiller::DomDistillerService; using dom_distiller::DomDistillerServiceFactory; -using dom_distiller::DistillerPage; using dom_distiller::SourcePageHandle; +using dom_distiller::SourcePageHandleWebContents; +using dom_distiller::ViewerHandle; +using dom_distiller::ViewRequestDelegate; // An no-op ViewRequestDelegate which holds a ViewerHandle and deletes itself // after the WebContents navigates or goes away. This class is a band-aid to @@ -86,19 +86,15 @@ SelfDeletingRequestDelegate::SelfDeletingRequestDelegate( content::WebContents* web_contents) - : WebContentsObserver(web_contents) { -} + : WebContentsObserver(web_contents) {} -SelfDeletingRequestDelegate::~SelfDeletingRequestDelegate() { -} +SelfDeletingRequestDelegate::~SelfDeletingRequestDelegate() {} void SelfDeletingRequestDelegate::OnArticleReady( - const DistilledArticleProto* article_proto) { -} + const DistilledArticleProto* article_proto) {} void SelfDeletingRequestDelegate::OnArticleUpdated( - ArticleDistillationUpdate article_update) { -} + ArticleDistillationUpdate article_update) {} void SelfDeletingRequestDelegate::TakeViewerHandle( std::unique_ptr<ViewerHandle> viewer_handle) {
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc index fadeabe..b128f79 100644 --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -242,12 +242,6 @@ base::OnceCallback<void(bool /* storage permission granted */, bool /*allow*/)>; -// Remove this function once DownloadRequestLimiter::Callback() is declared as a -// OnceCallback -void CheckDownloadComplete(CanDownloadCallback can_download_cb, bool allow) { - std::move(can_download_cb).Run(true, allow); -} - void CheckCanDownload( const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const GURL& url, @@ -256,9 +250,8 @@ DownloadRequestLimiter* limiter = g_browser_process->download_request_limiter(); if (limiter) { - DownloadRequestLimiter::Callback cb = - base::Bind(&CheckDownloadComplete, base::Passed(&can_download_cb)); - limiter->CanDownload(web_contents_getter, url, request_method, cb); + limiter->CanDownload(web_contents_getter, url, request_method, + base::BindOnce(std::move(can_download_cb), true)); } }
diff --git a/chrome/browser/download/download_request_limiter.cc b/chrome/browser/download/download_request_limiter.cc index c5d4044..75cb0fa 100644 --- a/chrome/browser/download/download_request_limiter.cc +++ b/chrome/browser/download/download_request_limiter.cc
@@ -4,6 +4,9 @@ #include "chrome/browser/download/download_request_limiter.h" +#include <iterator> +#include <utility> + #include "base/bind.h" #include "base/stl_util.h" #include "base/task/post_task.h" @@ -223,8 +226,8 @@ } void DownloadRequestLimiter::TabDownloadState::PromptUserForDownload( - const DownloadRequestLimiter::Callback& callback) { - callbacks_.push_back(callback); + DownloadRequestLimiter::Callback callback) { + callbacks_.push_back(std::move(callback)); DCHECK(web_contents_); if (is_showing_prompt()) return; @@ -363,15 +366,16 @@ std::vector<DownloadRequestLimiter::Callback>::iterator start, end; start = callbacks_.begin(); end = callbacks_.begin() + kMaxDownloadsAtOnce; - callbacks.assign(start, end); + callbacks.assign(std::make_move_iterator(start), + std::make_move_iterator(end)); callbacks_.erase(start, end); throttled = true; } - for (const auto& callback : callbacks) { + for (auto& callback : callbacks) { // When callback runs, it can cause the WebContents to be destroyed. base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI}, - base::BindOnce(callback, allow)); + base::BindOnce(std::move(callback), allow)); } return throttled; @@ -466,45 +470,46 @@ const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const GURL& url, const std::string& request_method, - const Callback& callback) { + Callback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); content::WebContents* originating_contents = web_contents_getter.Run(); if (!originating_contents) { // The WebContents was closed, don't allow the download. - callback.Run(false); + std::move(callback).Run(false); return; } if (!originating_contents->GetDelegate()) { - callback.Run(false); + std::move(callback).Run(false); return; } // Note that because |originating_contents| might go away before // OnCanDownloadDecided is invoked, we look it up by |render_process_host_id| // and |render_view_id|. - base::Callback<void(bool)> can_download_callback = base::Bind( + base::OnceCallback<void(bool)> can_download_callback = base::BindOnce( &DownloadRequestLimiter::OnCanDownloadDecided, factory_.GetWeakPtr(), - web_contents_getter, request_method, callback); + web_contents_getter, request_method, std::move(callback)); - originating_contents->GetDelegate()->CanDownload(url, request_method, - can_download_callback); + originating_contents->GetDelegate()->CanDownload( + url, request_method, std::move(can_download_callback)); } void DownloadRequestLimiter::OnCanDownloadDecided( const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const std::string& request_method, - const Callback& orig_callback, + Callback orig_callback, bool allow) { DCHECK_CURRENTLY_ON(BrowserThread::UI); content::WebContents* originating_contents = web_contents_getter.Run(); if (!originating_contents || !allow) { - orig_callback.Run(false); + std::move(orig_callback).Run(false); return; } - CanDownloadImpl(originating_contents, request_method, orig_callback); + CanDownloadImpl(originating_contents, request_method, + std::move(orig_callback)); } HostContentSettingsMap* DownloadRequestLimiter::GetContentSettings( @@ -516,7 +521,7 @@ void DownloadRequestLimiter::CanDownloadImpl( content::WebContents* originating_contents, const std::string& request_method, - const Callback& callback) { + Callback callback) { DCHECK(originating_contents); TabDownloadState* state = @@ -538,20 +543,20 @@ } else { state->SetDownloadStatusAndNotify(ALLOW_ALL_DOWNLOADS); } - callback.Run(true); + std::move(callback).Run(true); state->increment_download_count(); break; case ALLOW_ONE_DOWNLOAD: state->SetDownloadStatusAndNotify(PROMPT_BEFORE_DOWNLOAD); - callback.Run(true); + std::move(callback).Run(true); state->increment_download_count(); break; case DOWNLOADS_NOT_ALLOWED: state->SetDownloadStatusAndNotify(DOWNLOADS_NOT_ALLOWED); ret = false; - callback.Run(false); + std::move(callback).Run(false); break; case PROMPT_BEFORE_DOWNLOAD: { @@ -566,19 +571,19 @@ switch (setting) { case CONTENT_SETTING_ALLOW: { state->SetDownloadStatusAndNotify(ALLOW_ALL_DOWNLOADS); - callback.Run(true); + std::move(callback).Run(true); state->increment_download_count(); break; } case CONTENT_SETTING_BLOCK: { state->SetDownloadStatusAndNotify(DOWNLOADS_NOT_ALLOWED); ret = false; - callback.Run(false); + std::move(callback).Run(false); break; } case CONTENT_SETTING_DEFAULT: case CONTENT_SETTING_ASK: - state->PromptUserForDownload(callback); + state->PromptUserForDownload(std::move(callback)); state->increment_download_count(); break; case CONTENT_SETTING_SESSION_ONLY: @@ -606,6 +611,6 @@ } void DownloadRequestLimiter::SetOnCanDownloadDecidedCallbackForTesting( - Callback callback) { + CanDownloadDecidedCallback callback) { on_can_download_decided_callback_ = callback; }
diff --git a/chrome/browser/download/download_request_limiter.h b/chrome/browser/download/download_request_limiter.h index 577b77ee..030f03e 100644 --- a/chrome/browser/download/download_request_limiter.h +++ b/chrome/browser/download/download_request_limiter.h
@@ -78,7 +78,7 @@ // The callback from CanDownloadOnIOThread. This is invoked on the io thread. // The boolean parameter indicates whether or not the download is allowed. - typedef base::Callback<void(bool /*allow*/)> Callback; + using Callback = base::OnceCallback<void(bool /*allow*/)>; // TabDownloadState maintains the download state for a particular tab. // TabDownloadState prompts the user with an infobar as necessary. @@ -132,8 +132,7 @@ // Asks the user if they really want to allow the download. // See description above CanDownloadOnIOThread for details on lifetime of // callback. - void PromptUserForDownload( - const DownloadRequestLimiter::Callback& callback); + void PromptUserForDownload(DownloadRequestLimiter::Callback callback); // Invoked from DownloadRequestDialogDelegate. Notifies the delegates and // changes the status appropriately. Virtual for testing. @@ -229,7 +228,7 @@ web_contents_getter, const GURL& url, const std::string& request_method, - const Callback& callback); + Callback callback); private: FRIEND_TEST_ALL_PREFIXES(DownloadTest, DownloadResourceThrottleCancels); @@ -262,14 +261,14 @@ // potentially prompting the user. void CanDownloadImpl(content::WebContents* originating_contents, const std::string& request_method, - const Callback& callback); + Callback callback); // Invoked when decision to download has been made. void OnCanDownloadDecided( const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const std::string& request_method, - const Callback& orig_callback, + Callback orig_callback, bool allow); // Removes the specified TabDownloadState from the internal map and deletes @@ -281,7 +280,10 @@ content::WebContents* contents); // Sets the callback for tests to know the result of OnCanDownloadDecided(). - void SetOnCanDownloadDecidedCallbackForTesting(Callback callback); + using CanDownloadDecidedCallback = + base::RepeatingCallback<void(bool /*allow*/)>; + void SetOnCanDownloadDecidedCallbackForTesting( + CanDownloadDecidedCallback callback); // TODO(bauerb): Change this to use WebContentsUserData. // Maps from tab to download state. The download state for a tab only exists @@ -291,7 +293,7 @@ typedef std::map<content::WebContents*, TabDownloadState*> StateMap; StateMap state_map_; - Callback on_can_download_decided_callback_; + CanDownloadDecidedCallback on_can_download_decided_callback_; // Weak ptr factory used when |CanDownload| asks the delegate asynchronously // about the download.
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index addaf52..3452bd0 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1387,6 +1387,11 @@ "expiry_milestone": 74 }, { + "name": "download-auto-resumption-native", + "owners": [ "shaktisahu", "qinmin" ], + "expiry_milestone": 76 + }, + { "name": "enable-new-download-backend", "owners": [ "shaktisahu", "dtrainor" ], "expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 16443a5..91926ea1 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -725,6 +725,11 @@ const char kEnableNetworkServiceInProcessDescription[] = "Runs the network service in the browser process."; +const char kDownloadAutoResumptionNativeName[] = + "Enable download auto-resumption in native"; +const char kDownloadAutoResumptionNativeDescription[] = + "Enables download auto-resumption in native"; + const char kEnableNewDownloadBackendName[] = "Enable new download backend"; const char kEnableNewDownloadBackendDescription[] = "Enables the new download backend that uses offline content provider";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 898d349..cd22b23 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -500,6 +500,9 @@ extern const char kMemlogStackModeNativeWithThreadNames[]; extern const char kMemlogStackModePseudo[]; +extern const char kDownloadAutoResumptionNativeName[]; +extern const char kDownloadAutoResumptionNativeDescription[]; + extern const char kEnableNewDownloadBackendName[]; extern const char kEnableNewDownloadBackendDescription[];
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc index 156ffa75..59bff3c 100644 --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
@@ -95,24 +95,22 @@ void ChromeWebViewPermissionHelperDelegate::CanDownload( const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { base::DictionaryValue request_info; request_info.SetString(guest_view::kUrl, url.spec()); web_view_permission_helper()->RequestPermission( - WEB_VIEW_PERMISSION_TYPE_DOWNLOAD, - request_info, - base::Bind( + WEB_VIEW_PERMISSION_TYPE_DOWNLOAD, request_info, + base::BindOnce( &ChromeWebViewPermissionHelperDelegate::OnDownloadPermissionResponse, - weak_factory_.GetWeakPtr(), - callback), + weak_factory_.GetWeakPtr(), std::move(callback)), false /* allowed_by_default */); } void ChromeWebViewPermissionHelperDelegate::OnDownloadPermissionResponse( - const base::Callback<void(bool)>& callback, + base::OnceCallback<void(bool)> callback, bool allow, const std::string& user_input) { - callback.Run(allow && web_view_guest()->attached()); + std::move(callback).Run(allow && web_view_guest()->attached()); } void ChromeWebViewPermissionHelperDelegate::RequestPointerLockPermission(
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h index d4dea2a6..6b78b19 100644 --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h
@@ -29,7 +29,7 @@ // WebViewPermissionHelperDelegate implementation. void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) override; + base::OnceCallback<void(bool)> callback) override; void RequestPointerLockPermission( bool user_gesture, bool last_unlocked_by_target, @@ -83,10 +83,9 @@ bool allow, const std::string& user_input); - void OnDownloadPermissionResponse( - const base::Callback<void(bool)>& callback, - bool allow, - const std::string& user_input); + void OnDownloadPermissionResponse(base::OnceCallback<void(bool)> callback, + bool allow, + const std::string& user_input); void OnPointerLockPermissionResponse( const base::Callback<void(bool)>& callback,
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc index 3f2bbde..6712d76 100644 --- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc +++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc
@@ -28,14 +28,16 @@ #include "components/url_formatter/top_domains/top500_domains.h" #include "components/url_formatter/top_domains/top_domain_util.h" #include "content/public/browser/navigation_handle.h" -#include "net/base/registry_controlled_domains/registry_controlled_domain.h" namespace { +using lookalikes::LookalikeUrlNavigationThrottle; using MatchType = LookalikeUrlInterstitialPage::MatchType; using UserAction = LookalikeUrlInterstitialPage::UserAction; using NavigationSuggestionEvent = - LookalikeUrlNavigationThrottle::NavigationSuggestionEvent; + lookalikes::LookalikeUrlNavigationThrottle::NavigationSuggestionEvent; +using DomainInfo = lookalikes::DomainInfo; + typedef content::NavigationThrottle::ThrottleCheckResult ThrottleCheckResult; void RecordEvent( @@ -57,8 +59,7 @@ } // Returns true if the domain given by |domain_info| is a top domain. -bool IsTopDomain( - const LookalikeUrlNavigationThrottle::DomainInfo& domain_info) { +bool IsTopDomain(const DomainInfo& domain_info) { // Top domains are only accessible through their skeletons, so query the top // domains trie for each skeleton of this domain. for (const std::string& skeleton : domain_info.skeletons) { @@ -71,64 +72,19 @@ return false; } -// Returns the eTLD+1 of |hostname|. This excludes private registries so that -// GetETLDPlusOne("test.blogspot.com") returns "blogspot.com" (blogspot.com is -// listed as a private registry). We do this to be consistent with -// url_formatter's top domain list which doesn't have a notion of private -// registries. -std::string GetETLDPlusOne(const GURL& url) { - return net::registry_controlled_domains::GetDomainAndRegistry( - url, net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); -} - // Returns a site that the user has used before that the eTLD+1 in // |domain_and_registry| may be attempting to spoof, based on skeleton // comparison. std::string GetMatchingSiteEngagementDomain( - const std::set<GURL>& engaged_sites, - const LookalikeUrlNavigationThrottle::DomainInfo& navigated_domain) { + const std::vector<DomainInfo>& engaged_sites, + const DomainInfo& navigated_domain) { DCHECK(!navigated_domain.domain_and_registry.empty()); - std::map<std::string, url_formatter::Skeletons> - domain_and_registry_to_skeleton; - - for (const GURL& engaged_site : engaged_sites) { - DCHECK(engaged_site.SchemeIsHTTPOrHTTPS()); - // If the user has engaged with eTLD+1 of this site, don't show any - // lookalike navigation suggestions. This ignores the scheme. That's okay as - // it's the more conservative option: If the user is engaged with - // http://domain.test, not showing the warning on https://domain.test is - // acceptable. - const std::string engaged_domain_and_registry = - GetETLDPlusOne(engaged_site); - // eTLD+1 can be empty for private domains (e.g. http://test). - if (engaged_domain_and_registry.empty()) { - continue; - } - - if (navigated_domain.domain_and_registry == engaged_domain_and_registry) { - return std::string(); - } - - // Multiple domains can map to the same eTLD+1, avoid skeleton generation - // when possible. - auto it = domain_and_registry_to_skeleton.find(engaged_domain_and_registry); - url_formatter::Skeletons skeletons; - if (it == domain_and_registry_to_skeleton.end()) { - // Engaged site can be IDN. Decode as unicode and compute the skeleton - // from that. This skips all spoof checks so it will always return the - // unicode version of the domain. - const url_formatter::IDNConversionResult conversion_result = - url_formatter::UnsafeIDNToUnicodeWithDetails( - engaged_domain_and_registry); - - skeletons = url_formatter::GetSkeletons(conversion_result.result); - domain_and_registry_to_skeleton[engaged_domain_and_registry] = skeletons; - } else { - skeletons = it->second; - } - - if (SkeletonsMatch(navigated_domain.skeletons, skeletons)) { - return engaged_site.host(); + for (const DomainInfo& engaged_site : engaged_sites) { + DCHECK(!engaged_site.domain_and_registry.empty()); + DCHECK_NE(navigated_domain.domain_and_registry, + engaged_site.domain_and_registry); + if (SkeletonsMatch(navigated_domain.skeletons, engaged_site.skeletons)) { + return engaged_site.full_domain; } } return std::string(); @@ -136,23 +92,12 @@ } // namespace +namespace lookalikes { + // static const char LookalikeUrlNavigationThrottle::kHistogramName[] = "NavigationSuggestion.Event"; -LookalikeUrlNavigationThrottle::DomainInfo::DomainInfo( - const std::string& arg_domain_and_registry, - const url_formatter::IDNConversionResult& arg_idn_result, - const url_formatter::Skeletons& arg_skeletons) - : domain_and_registry(arg_domain_and_registry), - idn_result(arg_idn_result), - skeletons(arg_skeletons) {} - -LookalikeUrlNavigationThrottle::DomainInfo::~DomainInfo() = default; - -LookalikeUrlNavigationThrottle::DomainInfo::DomainInfo(const DomainInfo&) = - default; - LookalikeUrlNavigationThrottle::LookalikeUrlNavigationThrottle( content::NavigationHandle* navigation_handle) : content::NavigationThrottle(navigation_handle), @@ -255,31 +200,10 @@ return std::make_unique<LookalikeUrlNavigationThrottle>(navigation_handle); } -// static -LookalikeUrlNavigationThrottle::DomainInfo -LookalikeUrlNavigationThrottle::GetDomainInfo(const GURL& url) { - // Perform all computations on eTLD+1. - const std::string domain_and_registry = GetETLDPlusOne(url); - // eTLD+1 can be empty for private domains. - if (domain_and_registry.empty()) { - return DomainInfo(domain_and_registry, url_formatter::IDNConversionResult(), - url_formatter::Skeletons()); - } - // Compute skeletons using eTLD+1, skipping all spoofing checks. Spoofing - // checks in url_formatter can cause the converted result to be punycode. - // We want to avoid this in order to get an accurate skeleton for the unicode - // version of the domain. - const url_formatter::IDNConversionResult idn_result = - url_formatter::UnsafeIDNToUnicodeWithDetails(domain_and_registry); - const url_formatter::Skeletons skeletons = - url_formatter::GetSkeletons(idn_result.result); - return DomainInfo(domain_and_registry, idn_result, skeletons); -} - void LookalikeUrlNavigationThrottle::PerformChecksDeferred( const GURL& url, const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites) { + const std::vector<DomainInfo>& engaged_sites) { ThrottleCheckResult result = LookalikeUrlNavigationThrottle::PerformChecks( url, navigated_domain, engaged_sites); @@ -298,14 +222,23 @@ ThrottleCheckResult LookalikeUrlNavigationThrottle::PerformChecks( const GURL& url, const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites) { + const std::vector<DomainInfo>& engaged_sites) { std::string matched_domain; MatchType match_type; // Ensure that this URL is not already engaged. We can't use the synchronous // SiteEngagementService::IsEngagementAtLeast as it has side effects. We check // in PerformChecks to ensure we have up-to-date engaged_sites. - if (base::ContainsKey(engaged_sites, url.GetOrigin())) { + // This check ignores the scheme which is okay since it's more conservative: + // If the user is engaged with http://domain.test, not showing the warning on + // https://domain.test is acceptable. + const auto already_engaged = + std::find_if(engaged_sites.begin(), engaged_sites.end(), + [navigated_domain](const DomainInfo& engaged_domain) { + return (navigated_domain.domain_and_registry == + engaged_domain.domain_and_registry); + }); + if (already_engaged != engaged_sites.end()) { return content::NavigationThrottle::PROCEED; } @@ -336,7 +269,7 @@ bool LookalikeUrlNavigationThrottle::GetMatchingDomain( const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites, + const std::vector<DomainInfo>& engaged_sites, std::string* matched_domain, MatchType* match_type) { DCHECK(!navigated_domain.domain_and_registry.empty()); @@ -458,3 +391,5 @@ } return std::string(); } + +} // namespace lookalikes
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h index 4c1dd8f8..6b283a5d 100644 --- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h +++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h
@@ -22,6 +22,10 @@ class Profile; +namespace lookalikes { + +struct DomainInfo; + // Observes navigations and shows an interstitial if the navigated domain name // is visually similar to a top domain or a domain with a site engagement score. class LookalikeUrlNavigationThrottle : public content::NavigationThrottle { @@ -41,16 +45,6 @@ kMaxValue = kMatchEditDistance, }; - struct DomainInfo { - const std::string domain_and_registry; - const url_formatter::IDNConversionResult idn_result; - const url_formatter::Skeletons skeletons; - DomainInfo(const std::string& arg_domain_and_registry, - const url_formatter::IDNConversionResult& arg_idn_result, - const url_formatter::Skeletons& arg_skeletons); - ~DomainInfo(); - DomainInfo(const DomainInfo& other); - }; static const char kHistogramName[]; @@ -71,18 +65,17 @@ ThrottleCheckResult HandleThrottleRequest(const GURL& url); - static DomainInfo GetDomainInfo(const GURL& url); - // Performs synchronous top domain and engaged site checks on the navigated // |url|. Uses |engaged_sites| for the engaged site checks. - ThrottleCheckResult PerformChecks(const GURL& url, - const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites); + ThrottleCheckResult PerformChecks( + const GURL& url, + const DomainInfo& navigated_domain, + const std::vector<DomainInfo>& engaged_sites); // A void-returning variant, only used with deferred throttle results. void PerformChecksDeferred(const GURL& url, const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites); + const std::vector<DomainInfo>& engaged_sites); // Returns true if a domain is visually similar to the hostname of |url|. The // matching domain can be a top domain or an engaged site. Similarity check @@ -90,7 +83,7 @@ // returns true, match details will be written into |matched_domain| and // |match_type|. They cannot be nullptr. bool GetMatchingDomain(const DomainInfo& navigated_domain, - const std::set<GURL>& engaged_sites, + const std::vector<DomainInfo>& engaged_sites, std::string* matched_domain, LookalikeUrlInterstitialPage::MatchType* match_type); @@ -116,4 +109,6 @@ base::WeakPtrFactory<LookalikeUrlNavigationThrottle> weak_factory_; }; +} // namespace lookalikes + #endif // CHROME_BROWSER_LOOKALIKES_LOOKALIKE_URL_NAVIGATION_THROTTLE_H_
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc index e6e1623..d29384f 100644 --- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc +++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_browsertest.cc
@@ -34,11 +34,13 @@ namespace { +using lookalikes::LookalikeUrlNavigationThrottle; +using lookalikes::LookalikeUrlService; using security_interstitials::MetricsHelper; using security_interstitials::SecurityInterstitialCommand; using UkmEntry = ukm::builders::LookalikeUrl_NavigationSuggestion; using NavigationSuggestionEvent = - LookalikeUrlNavigationThrottle::NavigationSuggestionEvent; + lookalikes::LookalikeUrlNavigationThrottle::NavigationSuggestionEvent; using MatchType = LookalikeUrlInterstitialPage::MatchType; using UserAction = LookalikeUrlInterstitialPage::UserAction;
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc index 32d9263a..48f6f56 100644 --- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc +++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc
@@ -7,6 +7,8 @@ #include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" +namespace lookalikes { + TEST(LookalikeUrlNavigationThrottleTest, IsEditDistanceAtMostOne) { const struct TestCase { const wchar_t* domain; @@ -65,3 +67,5 @@ EXPECT_EQ(test_case.expected, result); } } + +} // namespace lookalikes
diff --git a/chrome/browser/lookalikes/lookalike_url_service.cc b/chrome/browser/lookalikes/lookalike_url_service.cc index e157ebef..36e1e92e 100644 --- a/chrome/browser/lookalikes/lookalike_url_service.cc +++ b/chrome/browser/lookalikes/lookalike_url_service.cc
@@ -21,8 +21,13 @@ #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" +#include "components/url_formatter/url_formatter.h" +#include "net/base/registry_controlled_domains/registry_controlled_domain.h" namespace { + +using lookalikes::LookalikeUrlService; + constexpr uint32_t kEngagedSiteUpdateIntervalInSeconds = 5 * 60; class LookalikeUrlServiceFactory : public BrowserContextKeyedServiceFactory { @@ -65,6 +70,48 @@ } // namespace +namespace lookalikes { + +DomainInfo::DomainInfo(const std::string& arg_domain_and_registry, + const std::string& arg_full_domain, + const url_formatter::IDNConversionResult& arg_idn_result, + const url_formatter::Skeletons& arg_skeletons) + : domain_and_registry(arg_domain_and_registry), + full_domain(arg_full_domain), + idn_result(arg_idn_result), + skeletons(arg_skeletons) {} + +DomainInfo::~DomainInfo() = default; + +DomainInfo::DomainInfo(const DomainInfo&) = default; + +DomainInfo GetDomainInfo(const GURL& url) { + // Perform all computations on eTLD+1. This excludes private registries, and + // returns "blogspot.com" for "test.blogspot.com" (blogspot.com is + // listed as a private registry). We do this to be consistent with + // url_formatter's top domain list which doesn't have a notion of private + // registries. + const std::string domain_and_registry = + net::registry_controlled_domains::GetDomainAndRegistry( + url, net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES); + + // eTLD+1 can be empty for private domains. + if (domain_and_registry.empty()) { + return DomainInfo(domain_and_registry, url.host(), + url_formatter::IDNConversionResult(), + url_formatter::Skeletons()); + } + // Compute skeletons using eTLD+1, skipping all spoofing checks. Spoofing + // checks in url_formatter can cause the converted result to be punycode. + // We want to avoid this in order to get an accurate skeleton for the unicode + // version of the domain. + const url_formatter::IDNConversionResult idn_result = + url_formatter::UnsafeIDNToUnicodeWithDetails(domain_and_registry); + const url_formatter::Skeletons skeletons = + url_formatter::GetSkeletons(idn_result.result); + return DomainInfo(domain_and_registry, url.host(), idn_result, skeletons); +} + LookalikeUrlService::LookalikeUrlService(Profile* profile) : profile_(profile), clock_(base::DefaultClock::GetInstance()), @@ -101,7 +148,8 @@ return true; } -const std::set<GURL> LookalikeUrlService::GetLatestEngagedSites() const { +const std::vector<DomainInfo> LookalikeUrlService::GetLatestEngagedSites() + const { return engaged_sites_; } @@ -115,14 +163,22 @@ SiteEngagementService* service = SiteEngagementService::Get(profile_); engaged_sites_.clear(); for (const mojom::SiteEngagementDetails& detail : details) { + if (!detail.origin.SchemeIsHTTPOrHTTPS()) { + continue; + } // Ignore sites with an engagement score below threshold. if (!service->IsEngagementAtLeast(detail.origin, blink::mojom::EngagementLevel::MEDIUM)) { continue; } - engaged_sites_.insert(detail.origin); + const DomainInfo domain_info = GetDomainInfo(detail.origin); + if (domain_info.domain_and_registry.empty()) { + continue; + } + engaged_sites_.push_back(domain_info); } - last_engagement_fetch_time_ = clock_->Now(); std::move(callback).Run(engaged_sites_); } + +} // namespace lookalikes
diff --git a/chrome/browser/lookalikes/lookalike_url_service.h b/chrome/browser/lookalikes/lookalike_url_service.h index ca2d29d..2495570 100644 --- a/chrome/browser/lookalikes/lookalike_url_service.h +++ b/chrome/browser/lookalikes/lookalike_url_service.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_LOOKALIKES_LOOKALIKE_URL_SERVICE_H_ #define CHROME_BROWSER_LOOKALIKES_LOOKALIKE_URL_SERVICE_H_ -#include <set> +#include <string> #include <vector> #include "base/callback_forward.h" @@ -14,14 +14,39 @@ #include "base/time/time.h" #include "chrome/browser/engagement/site_engagement_details.mojom.h" #include "components/keyed_service/core/keyed_service.h" +#include "components/url_formatter/url_formatter.h" #include "url/gurl.h" +class GURL; class Profile; namespace base { class Clock; } +namespace lookalikes { + +struct DomainInfo { + // eTLD+1, used for skeleton and edit distance comparison. Must be ASCII. + const std::string domain_and_registry; + // Full hostname, used for suggesting a new URL. Must be ASCII. + const std::string full_domain; + + // Result of IDN conversion of domain_and_registry field. + const url_formatter::IDNConversionResult idn_result; + // Skeletons of domain_and_registry field. + const url_formatter::Skeletons skeletons; + + DomainInfo(const std::string& arg_domain_and_registry, + const std::string& full_domain, + const url_formatter::IDNConversionResult& arg_idn_result, + const url_formatter::Skeletons& arg_skeletons); + ~DomainInfo(); + DomainInfo(const DomainInfo& other); +}; + +DomainInfo GetDomainInfo(const GURL& url); + // A service that handles operations on lookalike URLs. It can fetch the list of // engaged sites in a background thread and cache the results until the next // update. This is more efficient than fetching the list on each navigation for @@ -31,7 +56,8 @@ explicit LookalikeUrlService(Profile* profile); ~LookalikeUrlService() override; - using EngagedSitesCallback = base::OnceCallback<void(const std::set<GURL>&)>; + using EngagedSitesCallback = + base::OnceCallback<void(const std::vector<DomainInfo>&)>; static LookalikeUrlService* Get(Profile* profile); @@ -44,7 +70,7 @@ // Returns the _current_ list of engaged sites, without updating them if // they're out of date. - const std::set<GURL> GetLatestEngagedSites() const; + const std::vector<DomainInfo> GetLatestEngagedSites() const; void SetClockForTesting(base::Clock* clock); @@ -55,10 +81,12 @@ Profile* profile_; base::Clock* clock_; base::Time last_engagement_fetch_time_; - std::set<GURL> engaged_sites_; + std::vector<DomainInfo> engaged_sites_; base::WeakPtrFactory<LookalikeUrlService> weak_factory_; DISALLOW_COPY_AND_ASSIGN(LookalikeUrlService); }; +} // namespace lookalikes + #endif // CHROME_BROWSER_LOOKALIKES_LOOKALIKE_URL_SERVICE_H_
diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc index 648f3d6..e9107afc 100644 --- a/chrome/browser/media/offscreen_tab.cc +++ b/chrome/browser/media/offscreen_tab.cc
@@ -237,12 +237,11 @@ return false; } -void OffscreenTab::CanDownload( - const GURL& url, - const std::string& request_method, - const base::RepeatingCallback<void(bool)>& callback) { +void OffscreenTab::CanDownload(const GURL& url, + const std::string& request_method, + base::OnceCallback<void(bool)> callback) { // Offscreen tab pages are not allowed to download files. - callback.Run(false); + std::move(callback).Run(false); } bool OffscreenTab::HandleContextMenu(
diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h index acb56a4..85b8853 100644 --- a/chrome/browser/media/offscreen_tab.h +++ b/chrome/browser/media/offscreen_tab.h
@@ -90,7 +90,7 @@ bool ShouldFocusPageAfterCrash() final; void CanDownload(const GURL& url, const std::string& request_method, - const base::RepeatingCallback<void(bool)>& callback) final; + base::OnceCallback<void(bool)> callback) final; bool HandleContextMenu(content::RenderFrameHost* render_frame_host, const content::ContextMenuParams& params) final; content::KeyboardEventProcessingResult PreHandleKeyboardEvent(
diff --git a/chrome/browser/notifications/scheduler/BUILD.gn b/chrome/browser/notifications/scheduler/BUILD.gn index 941b7adf..01332b4 100644 --- a/chrome/browser/notifications/scheduler/BUILD.gn +++ b/chrome/browser/notifications/scheduler/BUILD.gn
@@ -49,6 +49,8 @@ sources = [ "collection_store.h", + "display_decider.cc", + "display_decider.h", "distribution_policy.cc", "distribution_policy.h", "icon_entry.h", @@ -89,6 +91,7 @@ source_set("unit_tests") { testonly = true sources = [ + "display_decider_unittest.cc", "distribution_policy_unittest.cc", "icon_store_unittest.cc", "impression_history_tracker_unittest.cc",
diff --git a/chrome/browser/notifications/scheduler/collection_store.h b/chrome/browser/notifications/scheduler/collection_store.h index a7102713..25543c8 100644 --- a/chrome/browser/notifications/scheduler/collection_store.h +++ b/chrome/browser/notifications/scheduler/collection_store.h
@@ -15,7 +15,8 @@ namespace notifications { // A storage interface which loads a collection of data type T into memory -// during initialization. +// during initialization. When updating the data, T will be copied to the actual +// storage layer since the caller will keep in memory data as well. template <typename T> class CollectionStore { public: @@ -24,20 +25,19 @@ using InitCallback = base::OnceCallback<void(bool)>; using UpdateCallback = base::OnceCallback<void(bool)>; - // Initializes the database. - virtual void Init(InitCallback callback) = 0; - // Initializes the database and loads all entries into memory. virtual void InitAndLoad(LoadCallback callback) = 0; - // Loads one entry into memory. - virtual void Load(const std::string& key, LoadCallback callback) = 0; - // Adds an entry to the storage. virtual void Add(const std::string& key, - T& entry, + const T& entry, UpdateCallback callback) = 0; + // Updates an entry. + virtual void Update(const std::string& key, + const T& entry, + UpdateCallback callback) = 0; + // Deletes an entry from storage. virtual void Delete(const std::string& key, UpdateCallback callback) = 0;
diff --git a/chrome/browser/notifications/scheduler/display_decider.cc b/chrome/browser/notifications/scheduler/display_decider.cc new file mode 100644 index 0000000..6fb97d5 --- /dev/null +++ b/chrome/browser/notifications/scheduler/display_decider.cc
@@ -0,0 +1,208 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/notifications/scheduler/display_decider.h" + +#include <algorithm> + +#include "chrome/browser/notifications/scheduler/distribution_policy.h" +#include "chrome/browser/notifications/scheduler/impression_types.h" +#include "chrome/browser/notifications/scheduler/notification_entry.h" +#include "chrome/browser/notifications/scheduler/scheduler_config.h" +#include "chrome/browser/notifications/scheduler/scheduler_utils.h" + +using Notifications = notifications::DisplayDecider::Notifications; +using Results = notifications::DisplayDecider::Results; +using TypeStates = notifications::DisplayDecider::TypeStates; + +namespace notifications { +namespace { + +// Helper class contains the actual logic to decide which notifications to show. +// This is an one-shot class, callers should create a new object each time. +class DecisionHelper { + public: + DecisionHelper(const SchedulerConfig* config, + const std::vector<SchedulerClientType>& clients, + std::unique_ptr<DistributionPolicy> distribution_policy, + SchedulerTaskTime task_start_time, + Notifications notifications, + TypeStates type_states) + : notifications_(std::move(notifications)), + current_task_start_time_(task_start_time), + type_states_(std::move(type_states)), + config_(config), + clients_(clients), + policy_(std::move(distribution_policy)), + daily_max_to_show_all_types_(0), + last_shown_type_(SchedulerClientType::kUnknown), + shown_(0) {} + + ~DecisionHelper() = default; + + // Figures out a list of notifications to show. + void DecideNotificationToShow(Results* results) { + ComputeDailyQuotaAllTypes(); + CountNotificationsShownToday(); + PickNotificationToShow(results); + } + + private: + void ComputeDailyQuotaAllTypes() { + // Only background task launch needs to comply to |policy_|. + if (current_task_start_time_ == SchedulerTaskTime::kUnknown) { + daily_max_to_show_all_types_ = config_->max_daily_shown_all_type; + return; + } + + int quota = std::max(config_->max_daily_shown_all_type - shown_, 0); + DCHECK(policy_); + daily_max_to_show_all_types_ = + std::min(config_->max_daily_shown_all_type, + policy_->MaxToShow(current_task_start_time_, quota)); + } + + void CountNotificationsShownToday() { + base::Time last_shown_time; + base::Time now(base::Time::Now()); + base::Time beginning_of_today; + bool success = ToLocalHour(0, now, 0, &beginning_of_today); + DCHECK(success); + + for (const auto& state : type_states_) { + const auto* type_state = state.second; + // TODO(xingliu): Ensure deprecated clients will not have data in storage. + DCHECK(std::find(clients_.begin(), clients_.end(), type_state->type) != + clients_.end()); + for (const auto& impression_it : type_state->impressions) { + const auto& impression = impression_it.second; + + // Tracks last notification shown to the user. + if (impression.create_time > last_shown_time) { + last_shown_time = impression.create_time; + last_shown_type_ = type_state->type; + } + + // Count notification shown today. + if (impression.create_time >= beginning_of_today) { + shown_per_type_[type_state->type]++; + ++shown_; + } + } + } + } + + // Picks a list of notifications to show. + void PickNotificationToShow(Results* to_show) { + DCHECK(to_show); + if (shown_ > config_->max_daily_shown_all_type || clients_.empty()) + return; + + // No previous shown notification, move the iterator to last element. + // We will iterate through all client types later. + auto it = std::find(clients_.begin(), clients_.end(), last_shown_type_); + if (it == clients_.end()) { + DCHECK_EQ(last_shown_type_, SchedulerClientType::kUnknown); + last_shown_type_ = clients_.back(); + it = clients_.end() - 1; + } + + DCHECK_NE(last_shown_type_, SchedulerClientType::kUnknown); + size_t steps = 0u; + + // Circling around all clients to find new notification to show. + // TODO(xingliu): Apply scheduling parameters here. + do { + // Move the iterator to next client type. + DCHECK(it != clients_.end()); + if (++it == clients_.end()) + it = clients_.begin(); + ++steps; + + SchedulerClientType type = *it; + + // Check quota for all types and current background task type. + if (ReachDailyQuota()) + break; + + // Check quota for this type, and continue to iterate other types. + if (NoMoreNotificationToShow(type)) + continue; + + // Show the last notification in the vector. Notice the order depends on + // how the vector is sorted. + to_show->emplace(notifications_[type].back()->guid); + notifications_[type].pop_back(); + shown_per_type_[type]++; + shown_++; + steps = 0u; + + // Stop if we didn't find anything new to show, and have looped around + // all clients. + } while (steps <= clients_.size()); + } + + bool NoMoreNotificationToShow(SchedulerClientType type) { + auto it = type_states_.find(type); + int max_daily_show = + it == type_states_.end() ? 0 : it->second->current_max_daily_show; + + return notifications_[type].empty() || + shown_per_type_[type] >= config_->max_daily_shown_per_type || + shown_per_type_[type] >= max_daily_show; + } + + bool ReachDailyQuota() const { + return shown_ >= daily_max_to_show_all_types_; + } + + // Scheduled notifications as candidates to display to the user. + Notifications notifications_; + + const SchedulerTaskTime current_task_start_time_; + const TypeStates type_states_; + const SchedulerConfig* config_; + const std::vector<SchedulerClientType> clients_; + std::unique_ptr<DistributionPolicy> policy_; + int daily_max_to_show_all_types_; + + SchedulerClientType last_shown_type_; + std::map<SchedulerClientType, int> shown_per_type_; + int shown_; + + DISALLOW_COPY_AND_ASSIGN(DecisionHelper); +}; + +class DisplayDeciderImpl : public DisplayDecider { + public: + DisplayDeciderImpl() = default; + ~DisplayDeciderImpl() override = default; + + private: + // DisplayDecider implementation. + void FindNotificationsToShow( + const SchedulerConfig* config, + std::vector<SchedulerClientType> clients, + std::unique_ptr<DistributionPolicy> distribution_policy, + SchedulerTaskTime task_start_time, + Notifications notifications, + TypeStates type_states, + Results* results) override { + auto helper = std::make_unique<DecisionHelper>( + config, std::move(clients), std::move(distribution_policy), + task_start_time, std::move(notifications), std::move(type_states)); + helper->DecideNotificationToShow(results); + } + + DISALLOW_COPY_AND_ASSIGN(DisplayDeciderImpl); +}; + +} // namespace + +// static +std::unique_ptr<DisplayDecider> DisplayDecider::Create() { + return std::make_unique<DisplayDeciderImpl>(); +} + +} // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/display_decider.h b/chrome/browser/notifications/scheduler/display_decider.h new file mode 100644 index 0000000..4a55dd3 --- /dev/null +++ b/chrome/browser/notifications/scheduler/display_decider.h
@@ -0,0 +1,59 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_DISPLAY_DECIDER_H_ +#define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_DISPLAY_DECIDER_H_ + +#include <map> +#include <memory> +#include <set> +#include <utility> +#include <vector> + +#include "base/callback.h" +#include "base/macros.h" +#include "chrome/browser/notifications/scheduler/internal_types.h" +#include "chrome/browser/notifications/scheduler/notification_scheduler_types.h" + +namespace notifications { + +class DistributionPolicy; +struct TypeState; +struct NotificationEntry; +struct SchedulerConfig; + +// This class uses scheduled notifications data and notification impression data +// of each notification type to find a list of notification that should be +// displayed to the user. +// All operations should be done on the main thread. +class DisplayDecider { + public: + using Notifications = + std::map<SchedulerClientType, std::vector<const NotificationEntry*>>; + using TypeStates = std::map<SchedulerClientType, const TypeState*>; + using Results = std::set<std::string>; + + // Creates the decider to determine notifications to show. + static std::unique_ptr<DisplayDecider> Create(); + + DisplayDecider() = default; + virtual ~DisplayDecider() = default; + + // Finds notifications to show. Returns a list of notification guids. + virtual void FindNotificationsToShow( + const SchedulerConfig* config, + std::vector<SchedulerClientType> clients, + std::unique_ptr<DistributionPolicy> distribution_policy, + SchedulerTaskTime task_start_time, + Notifications notifications, + TypeStates type_states, + Results* results) = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(DisplayDecider); +}; + +} // namespace notifications + +#endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_DISPLAY_DECIDER_H_
diff --git a/chrome/browser/notifications/scheduler/display_decider_unittest.cc b/chrome/browser/notifications/scheduler/display_decider_unittest.cc new file mode 100644 index 0000000..f3b2b1b1 --- /dev/null +++ b/chrome/browser/notifications/scheduler/display_decider_unittest.cc
@@ -0,0 +1,150 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/notifications/scheduler/display_decider.h" + +#include <map> +#include <memory> +#include <vector> + +#include "base/strings/stringprintf.h" +#include "base/test/scoped_task_environment.h" +#include "chrome/browser/notifications/scheduler/distribution_policy.h" +#include "chrome/browser/notifications/scheduler/notification_entry.h" +#include "chrome/browser/notifications/scheduler/notification_scheduler_types.h" +#include "chrome/browser/notifications/scheduler/scheduler_config.h" +#include "chrome/browser/notifications/scheduler/test/test_utils.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace notifications { +namespace { + +// Default suppression info used in this test. +const SuppressionInfo kSuppressionInfo = + SuppressionInfo(base::Time::Now(), base::TimeDelta::FromDays(56)); + +// Initial state for test cases with a single registered client. +const std::vector<test::ImpressionTestData> kSingleClientImpressionTestData = { + {SchedulerClientType::kTest1, + 2 /* current_max_daily_show */, + {}, + base::nullopt /* suppression_info */}}; + +const std::vector<test::ImpressionTestData> kClientsImpressionTestData = { + {SchedulerClientType::kTest1, + 2 /* current_max_daily_show */, + {}, + base::nullopt /* suppression_info */}, + {SchedulerClientType::kTest2, + 5 /* current_max_daily_show */, + {}, + base::nullopt /* suppression_info */}, + {SchedulerClientType::kTest3, + 0 /* current_max_daily_show */, + {}, + kSuppressionInfo}}; + +struct TestData { + // Impression data as the input. + std::vector<test::ImpressionTestData> impression_test_data; + + // Notification entries as the input. + std::vector<NotificationEntry> notification_entries; + + // The type of current background task. + SchedulerTaskTime task_start_time = SchedulerTaskTime::kUnknown; + + // Expected output data. + DisplayDecider::Results expected; +}; + +std::string DebugString(const DisplayDecider::Results& results) { + std::string debug_string("notifications_to_show: \n"); + for (const auto& guid : results) + debug_string += base::StringPrintf("%s ", guid.c_str()); + + return debug_string; +} + +// TODO(xingliu): Add more test cases. +class DisplayDeciderTest : public testing::Test { + public: + DisplayDeciderTest() = default; + ~DisplayDeciderTest() override = default; + + void SetUp() override { + // Setup configuration used by this test. + config_.morning_task_hour = 7; + config_.evening_task_hour = 18; + config_.max_daily_shown_all_type = 3; + } + + protected: + // Initializes a test case with input data. + void RunTestCase(const TestData& test_data) { + test_data_ = test_data; + test::AddImpressionTestData(test_data_.impression_test_data, &type_states_); + + DisplayDecider::Notifications notifications; + for (const auto& entry : test_data_.notification_entries) { + notifications[entry.type].emplace_back(&entry); + } + std::vector<SchedulerClientType> clients; + + std::map<SchedulerClientType, const TypeState*> type_states; + for (const auto& type : type_states_) { + type_states.emplace(type.first, type.second.get()); + clients.emplace_back(type.first); + } + + // Copy test inputs into |decider_|. + decider_ = DisplayDecider::Create(); + decider_->FindNotificationsToShow( + &config_, std::move(clients), DistributionPolicy::Create(), + test_data_.task_start_time, std::move(notifications), + std::move(type_states), &results_); + + // Verify output. + EXPECT_EQ(results_, test_data_.expected) + << "Actual result: \n" + << DebugString(results_) << " \n Expected result: \n" + << DebugString(test_data_.expected); + } + + private: + base::test::ScopedTaskEnvironment scoped_task_environment_; + + TestData test_data_; + SchedulerConfig config_; + + std::map<SchedulerClientType, std::unique_ptr<TypeState>> type_states_; + + // Test target class and output. + std::unique_ptr<DisplayDecider> decider_; + DisplayDecider::Results results_; + + DISALLOW_COPY_AND_ASSIGN(DisplayDeciderTest); +}; + +TEST_F(DisplayDeciderTest, NoNotification) { + TestData data{kClientsImpressionTestData, + {}, + SchedulerTaskTime::kEvening, + DisplayDecider::Results()}; + RunTestCase(data); +} + +// Simple test case to verify new notifcaiton can be selected to show. +TEST_F(DisplayDeciderTest, PickNewMorning) { + NotificationEntry entry(SchedulerClientType::kTest1, "guid123"); + DisplayDecider::Results expected = {"guid123"}; + TestData data{kSingleClientImpressionTestData, + {entry}, + SchedulerTaskTime::kMorning, + std::move(expected)}; + RunTestCase(data); +} + +} // namespace +} // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/distribution_policy_unittest.cc b/chrome/browser/notifications/scheduler/distribution_policy_unittest.cc index 393bf84..320b900 100644 --- a/chrome/browser/notifications/scheduler/distribution_policy_unittest.cc +++ b/chrome/browser/notifications/scheduler/distribution_policy_unittest.cc
@@ -30,6 +30,12 @@ 5); EXPECT_EQ(MaxToShow(policy.get(), SchedulerTaskTime::kEvening, 4 /* quota */), 4); + + // Test 0 quota. + EXPECT_EQ(MaxToShow(policy.get(), SchedulerTaskTime::kMorning, 0 /* quota */), + 0); + EXPECT_EQ(MaxToShow(policy.get(), SchedulerTaskTime::kMorning, 0 /* quota */), + 0); } } // namespace
diff --git a/chrome/browser/notifications/scheduler/notification_entry.cc b/chrome/browser/notifications/scheduler/notification_entry.cc index 461c693..8703595 100644 --- a/chrome/browser/notifications/scheduler/notification_entry.cc +++ b/chrome/browser/notifications/scheduler/notification_entry.cc
@@ -12,6 +12,8 @@ const std::string& guid) : type(type), guid(guid) {} +NotificationEntry::NotificationEntry(const NotificationEntry& other) = default; + NotificationEntry::~NotificationEntry() = default; } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/notification_entry.h b/chrome/browser/notifications/scheduler/notification_entry.h index eadfdb5f..9dc8cb91 100644 --- a/chrome/browser/notifications/scheduler/notification_entry.h +++ b/chrome/browser/notifications/scheduler/notification_entry.h
@@ -17,6 +17,7 @@ // record. struct NotificationEntry { NotificationEntry(SchedulerClientType type, const std::string& guid); + NotificationEntry(const NotificationEntry& other); ~NotificationEntry(); // The type of the notification. @@ -25,8 +26,10 @@ // The unique id of the notification database entry. std::string guid; + // Contains information to construct the notification. NotificationData notification_data; + // Scheduling details. ScheduleParams schedule_params; };
diff --git a/chrome/browser/notifications/scheduler/notification_scheduler_types.h b/chrome/browser/notifications/scheduler/notification_scheduler_types.h index fcd7774..ecd65840 100644 --- a/chrome/browser/notifications/scheduler/notification_scheduler_types.h +++ b/chrome/browser/notifications/scheduler/notification_scheduler_types.h
@@ -12,6 +12,7 @@ // Test only values. kTest1 = -1, kTest2 = -2, + kTest3 = -3, // Default value of client type. kUnknown = 0,
diff --git a/chrome/browser/notifications/scheduler/scheduler_utils.cc b/chrome/browser/notifications/scheduler/scheduler_utils.cc index 11e1ecc..ae455472 100644 --- a/chrome/browser/notifications/scheduler/scheduler_utils.cc +++ b/chrome/browser/notifications/scheduler/scheduler_utils.cc
@@ -6,22 +6,26 @@ namespace notifications { -bool ToLocalYesterdayHour(int hour, const base::Time& today, base::Time* out) { +bool ToLocalHour(int hour, + const base::Time& today, + int day_delta, + base::Time* out) { DCHECK_GE(hour, 0); DCHECK_LE(hour, 23); DCHECK(out); // Gets the local time at |hour| in yesterday. - base::Time yesterday = today - base::TimeDelta::FromDays(1); - base::Time::Exploded yesterday_exploded; - yesterday.LocalExplode(&yesterday_exploded); - yesterday_exploded.hour = hour; - yesterday_exploded.minute = 0; - yesterday_exploded.second = 0; - yesterday_exploded.millisecond = 0; + + base::Time another_day = today + base::TimeDelta::FromDays(day_delta); + base::Time::Exploded another_day_exploded; + another_day.LocalExplode(&another_day_exploded); + another_day_exploded.hour = hour; + another_day_exploded.minute = 0; + another_day_exploded.second = 0; + another_day_exploded.millisecond = 0; // Converts local exploded time to time stamp. - return base::Time::FromLocalExploded(yesterday_exploded, out); + return base::Time::FromLocalExploded(another_day_exploded, out); } } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/scheduler_utils.h b/chrome/browser/notifications/scheduler/scheduler_utils.h index 378bc55..c18ea0d 100644 --- a/chrome/browser/notifications/scheduler/scheduler_utils.h +++ b/chrome/browser/notifications/scheduler/scheduler_utils.h
@@ -9,12 +9,16 @@ namespace notifications { -// Retrieves the time stamp of a certain hour at yesterday. +// Retrieves the time stamp of a certain hour at a certain day from today. // |hour| must be in the range of [0, 23]. // |today| is a timestamp to define today, usually caller can directly pass in // the current system time. +// |day_delta| is the different between the output date and today. // Returns false if the conversion is failed. -bool ToLocalYesterdayHour(int hour, const base::Time& today, base::Time* out); +bool ToLocalHour(int hour, + const base::Time& today, + int day_delta, + base::Time* out); } // namespace notifications
diff --git a/chrome/browser/notifications/scheduler/scheduler_utils_unittest.cc b/chrome/browser/notifications/scheduler/scheduler_utils_unittest.cc index 2d56c288..e4acaee 100644 --- a/chrome/browser/notifications/scheduler/scheduler_utils_unittest.cc +++ b/chrome/browser/notifications/scheduler/scheduler_utils_unittest.cc
@@ -11,20 +11,31 @@ namespace { // Verifies we can get the correct time stamp at certain hour in yesterday. -TEST(SchedulerUtilsTest, ToLocalYesterdayHour) { - base::Time today, yesterday, expected; +TEST(SchedulerUtilsTest, ToLocalHour) { + base::Time today, another_day, expected; - // Retrieve a timestamp of yesterday at 6am. + // Timestamp of another day in the past. EXPECT_TRUE(base::Time::FromString("10/15/07 12:45:12 PM", &today)); - EXPECT_TRUE(ToLocalYesterdayHour(6, today, &yesterday)); + EXPECT_TRUE(ToLocalHour(6, today, -1, &another_day)); EXPECT_TRUE(base::Time::FromString("10/14/07 06:00:00 AM", &expected)); - EXPECT_EQ(expected, yesterday); + EXPECT_EQ(expected, another_day); - // Test an edge case, that the time is 0 am of a Monday. EXPECT_TRUE(base::Time::FromString("03/25/19 00:00:00 AM", &today)); - EXPECT_TRUE(ToLocalYesterdayHour(0, today, &yesterday)); + EXPECT_TRUE(ToLocalHour(0, today, -1, &another_day)); EXPECT_TRUE(base::Time::FromString("03/24/19 00:00:00 AM", &expected)); - EXPECT_EQ(expected, yesterday); + EXPECT_EQ(expected, another_day); + + // Timestamp of the same day. + EXPECT_TRUE(base::Time::FromString("03/25/19 00:00:00 AM", &today)); + EXPECT_TRUE(ToLocalHour(0, today, 0, &another_day)); + EXPECT_TRUE(base::Time::FromString("03/25/19 00:00:00 AM", &expected)); + EXPECT_EQ(expected, another_day); + + // Timestamp of another day in the future. + EXPECT_TRUE(base::Time::FromString("03/25/19 06:35:27 AM", &today)); + EXPECT_TRUE(ToLocalHour(16, today, 7, &another_day)); + EXPECT_TRUE(base::Time::FromString("04/01/19 16:00:00 PM", &expected)); + EXPECT_EQ(expected, another_day); } } // namespace
diff --git a/chrome/browser/offline_pages/background_loader_offliner.cc b/chrome/browser/offline_pages/background_loader_offliner.cc index ced2785..598c44f 100644 --- a/chrome/browser/offline_pages/background_loader_offliner.cc +++ b/chrome/browser/offline_pages/background_loader_offliner.cc
@@ -284,9 +284,9 @@ } void BackgroundLoaderOffliner::CanDownload( - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { if (!pending_request_.get()) { - callback.Run(false); // Shouldn't happen though... + std::move(callback).Run(false); // Shouldn't happen though... } bool should_allow_downloads = false; @@ -302,7 +302,7 @@ final_status = Offliner::RequestStatus::DOWNLOAD_THROTTLED; } - callback.Run(should_allow_downloads); + std::move(callback).Run(should_allow_downloads); SavePageRequest request(*pending_request_.get()); std::move(completion_callback_).Run(request, final_status); base::ThreadTaskRunnerHandle::Get()->PostTask(
diff --git a/chrome/browser/offline_pages/background_loader_offliner.h b/chrome/browser/offline_pages/background_loader_offliner.h index ae020b0..a05a6b6 100644 --- a/chrome/browser/offline_pages/background_loader_offliner.h +++ b/chrome/browser/offline_pages/background_loader_offliner.h
@@ -68,7 +68,7 @@ // Called when a navigation resulted in a single-file download. e.g. // When user navigated to a pdf page while offline and clicks on the // "Download page later" button. - void CanDownload(const base::Callback<void(bool)>& callback) override; + void CanDownload(base::OnceCallback<void(bool)> callback) override; // WebContentsObserver implementation. void DocumentAvailableInMainFrame() override;
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc index d6c6998..45ad2fd 100644 --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc
@@ -479,8 +479,8 @@ // Only records histograms on pages that have some ad bytes. if (aggregate_frame_data_->ad_bytes() == 0) return; - PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.Ads", - aggregate_frame_data_->ad_bytes()); + PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.Ads2", + aggregate_frame_data_->ad_network_bytes()); size_t unfinished_bytes = 0; for (auto const& kv : GetDelegate()->GetResourceTracker().unfinished_resources())
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc index b64ad18..ef87cc5 100644 --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc
@@ -625,8 +625,8 @@ histogram_tester.ExpectBucketCount( "PageLoad.Clients.Ads.Bytes.FullPage.Network", 5, 1); // We have received 4 KB of ads and 1 KB of mainframe ads. - histogram_tester.ExpectBucketCount("PageLoad.Clients.Ads.Resources.Bytes.Ads", - 4, 1); + histogram_tester.ExpectBucketCount( + "PageLoad.Clients.Ads.Resources.Bytes.Ads2", 4, 1); histogram_tester.ExpectBucketCount( "PageLoad.Clients.Ads.Bytes.MainFrame.Ads.Total", 1, 1);
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc index c54ebf9..e090d2a 100644 --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
@@ -714,6 +714,37 @@ 0u /* non_ad_cached_kb */, 0u /* non_ad_uncached_kb */); } +// Tests that main frame ad bytes are recorded correctly. +TEST_F(AdsPageLoadMetricsObserverTest, MainFrameAdBytesRecorded) { + NavigateMainFrame(kNonAdUrl); + + ResourceDataUpdate(main_rfh(), ResourceCached::NOT_CACHED, 10, + "" /* mime_type */, true /* is_ad_resource */); + ResourceDataUpdate(main_rfh(), ResourceCached::CACHED, 10, "" /* mime_type */, + true /* is_ad_resource */); + + RenderFrameHost* subframe = + RenderFrameHostTester::For(main_rfh())->AppendChild("foo"); + std::unique_ptr<NavigationSimulator> simulator = + NavigationSimulator::CreateRendererInitiated(GURL(kDefaultDisallowedUrl), + subframe); + ResourceDataUpdate(subframe, ResourceCached::NOT_CACHED, 10, + "" /* mime_type */, true /* is_ad_resource */); + ResourceDataUpdate(subframe, ResourceCached::CACHED, 10, "" /* mime_type */, + true /* is_ad_resource */); + simulator->Commit(); + + NavigateMainFrame(kNonAdUrl); + histogram_tester().ExpectUniqueSample( + SuffixedHistogram("Bytes.MainFrame.Ads.Total"), 20, 1); + histogram_tester().ExpectUniqueSample( + SuffixedHistogram("Bytes.MainFrame.Ads.Network"), 10, 1); + + // Verify page total for network bytes. + histogram_tester().ExpectUniqueSample( + SuffixedHistogram("Resources.Bytes.Ads2"), 20, 1); +} + // UKM metrics for ad page load are recorded correctly. TEST_F(AdsPageLoadMetricsObserverTest, AdPageLoadUKM) { ukm::TestAutoSetUkmRecorder ukm_recorder;
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc index ef8862a..416f7734 100644 --- a/chrome/browser/prerender/prerender_contents.cc +++ b/chrome/browser/prerender/prerender_contents.cc
@@ -104,10 +104,10 @@ void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) override { + base::OnceCallback<void(bool)> callback) override { prerender_contents_->Destroy(FINAL_STATUS_DOWNLOAD); // Cancel the download. - callback.Run(false); + std::move(callback).Run(false); } bool ShouldCreateWebContents(
diff --git a/chrome/browser/prerender/prerender_field_trial.cc b/chrome/browser/prerender/prerender_field_trial.cc index 804a9e5..e99cb2ef 100644 --- a/chrome/browser/prerender/prerender_field_trial.cc +++ b/chrome/browser/prerender/prerender_field_trial.cc
@@ -14,6 +14,9 @@ const base::Feature kNoStatePrefetchFeature{"NoStatePrefetch", base::FEATURE_ENABLED_BY_DEFAULT}; +const base::Feature kGWSPrefetchHoldback{"GWSPrefetchHoldback", + base::FEATURE_DISABLED_BY_DEFAULT}; + void ConfigureNoStatePrefetch() { auto mode = PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH; if (!base::FeatureList::IsEnabled(kNoStatePrefetchFeature))
diff --git a/chrome/browser/prerender/prerender_field_trial.h b/chrome/browser/prerender/prerender_field_trial.h index d4b674e..3a41f95 100644 --- a/chrome/browser/prerender/prerender_field_trial.h +++ b/chrome/browser/prerender/prerender_field_trial.h
@@ -12,6 +12,9 @@ // These Finch feature and parameter strings exposed for for testing. extern const base::Feature kNoStatePrefetchFeature; +// Preconnects instead of prefetching from GWS. +extern const base::Feature kGWSPrefetchHoldback; + // Configures global state using kNoStatePrefetchFeature. void ConfigureNoStatePrefetch();
diff --git a/chrome/browser/prerender/prerender_final_status.cc b/chrome/browser/prerender/prerender_final_status.cc index b708eedf..dfb382ea9 100644 --- a/chrome/browser/prerender/prerender_final_status.cc +++ b/chrome/browser/prerender/prerender_final_status.cc
@@ -71,6 +71,7 @@ "NoStatePrefetch Finished", "Low-End Device", "BrowserSwitcher Switch", + "GWS Holdback", "Max", }; static_assert(base::size(kFinalStatusNames) == FINAL_STATUS_MAX + 1,
diff --git a/chrome/browser/prerender/prerender_final_status.h b/chrome/browser/prerender/prerender_final_status.h index 9785d2b7..cb5ebe4f 100644 --- a/chrome/browser/prerender/prerender_final_status.h +++ b/chrome/browser/prerender/prerender_final_status.h
@@ -76,6 +76,7 @@ FINAL_STATUS_NOSTATE_PREFETCH_FINISHED = 56, FINAL_STATUS_LOW_END_DEVICE = 57, FINAL_STATUS_BROWSER_SWITCH = 58, + FINAL_STATUS_GWS_HOLDBACK = 59, FINAL_STATUS_MAX, };
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index e1e0c0d..77cd9d2 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc
@@ -861,6 +861,18 @@ return nullptr; } + // If this is GWS, and we are in the holdback, fall back to preconnect + // instead of prefetch. Record the status as holdback, so we can analyze via + // UKM. + if (origin == ORIGIN_GWS_PRERENDER && + base::FeatureList::IsEnabled(kGWSPrefetchHoldback)) { + // Set the holdback status on the prefetch entry. + SetPrefetchFinalStatusForUrl(url, FINAL_STATUS_GWS_HOLDBACK); + SkipPrerenderContentsAndMaybePreconnect(url, origin, + FINAL_STATUS_GWS_HOLDBACK); + return nullptr; + } + std::unique_ptr<PrerenderContents> prerender_contents = CreatePrerenderContents(url, referrer, origin); DCHECK(prerender_contents); @@ -1184,12 +1196,13 @@ if (final_status == FINAL_STATUS_LOW_END_DEVICE || final_status == FINAL_STATUS_CELLULAR_NETWORK || final_status == FINAL_STATUS_DUPLICATE || - final_status == FINAL_STATUS_TOO_MANY_PROCESSES) { + final_status == FINAL_STATUS_TOO_MANY_PROCESSES || + final_status == FINAL_STATUS_GWS_HOLDBACK) { MaybePreconnect(origin, url); } static_assert( - FINAL_STATUS_MAX == FINAL_STATUS_BROWSER_SWITCH + 1, + FINAL_STATUS_MAX == FINAL_STATUS_GWS_HOLDBACK + 1, "Consider whether a failed prerender should fallback to preconnect"); }
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc index e4fe8d1..9f44120 100644 --- a/chrome/browser/prerender/prerender_unittest.cc +++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -391,6 +391,19 @@ return LauncherHasRunningPrerender(kDefaultChildId, last_prerender_id()); } + // Shorthand to add a simple prerender with a reasonable source. Returns + // true iff the prerender has been added to the PrerenderManager by the + // PrerenderLinkManager and the PrerenderManager returned a handle. The + // referrer is set to a google domain. + bool AddSimpleGWSPrerender(const GURL& url) { + content::Referrer referrer; + referrer.url = GURL("https://www.google.com"); + prerender_link_manager()->OnAddPrerender( + kDefaultChildId, GetNextPrerenderID(), url, kDefaultRelTypes, referrer, + kSize, kDefaultRenderViewRouteId); + return LauncherHasRunningPrerender(kDefaultChildId, last_prerender_id()); + } + void DisablePrerender() { profile_.GetPrefs()->SetInteger( prefs::kNetworkPredictionOptions, @@ -457,6 +470,66 @@ EXPECT_FALSE(AddSimplePrerender(url)); } +TEST_F(PrerenderTest, GWSPrefetchHoldbackNonGWSSReferrer) { + GURL url("http://www.notgoogle.com/"); + test_utils::RestorePrerenderMode restore_prerender_mode; + + prerender_manager()->SetMode( + PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); + + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature(kGWSPrefetchHoldback); + prerender_manager()->CreateNextPrerenderContents( + url, FINAL_STATUS_MANAGER_SHUTDOWN); + + EXPECT_TRUE(AddSimplePrerender(url)); +} + +TEST_F(PrerenderTest, GWSPrefetchHoldbackGWSReferrer) { + GURL url("http://www.notgoogle.com/"); + test_utils::RestorePrerenderMode restore_prerender_mode; + + prerender_manager()->SetMode( + PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); + + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature(kGWSPrefetchHoldback); + prerender_manager()->CreateNextPrerenderContents( + url, ORIGIN_GWS_PRERENDER, FINAL_STATUS_MANAGER_SHUTDOWN); + + EXPECT_FALSE(AddSimpleGWSPrerender(url)); +} + +TEST_F(PrerenderTest, GWSPrefetchHoldbackOffNonGWSReferrer) { + GURL url("http://www.notgoogle.com/"); + test_utils::RestorePrerenderMode restore_prerender_mode; + + prerender_manager()->SetMode( + PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); + + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndDisableFeature(kGWSPrefetchHoldback); + prerender_manager()->CreateNextPrerenderContents( + url, FINAL_STATUS_MANAGER_SHUTDOWN); + + EXPECT_TRUE(AddSimplePrerender(url)); +} + +TEST_F(PrerenderTest, GWSPrefetchHoldbackOffGWSReferrer) { + GURL url("http://www.notgoogle.com/"); + test_utils::RestorePrerenderMode restore_prerender_mode; + + prerender_manager()->SetMode( + PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); + + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndDisableFeature(kGWSPrefetchHoldback); + prerender_manager()->CreateNextPrerenderContents( + url, ORIGIN_GWS_PRERENDER, FINAL_STATUS_MANAGER_SHUTDOWN); + + EXPECT_TRUE(AddSimpleGWSPrerender(url)); +} + TEST_F(PrerenderTest, PrerenderDisabledOnLowEndDevice) { GURL url("http://www.google.com/"); ASSERT_TRUE(IsNoStatePrefetchEnabled());
diff --git a/chrome/browser/resource_coordinator/tab_activity_watcher.cc b/chrome/browser/resource_coordinator/tab_activity_watcher.cc index 52e5337..743d56b0 100644 --- a/chrome/browser/resource_coordinator/tab_activity_watcher.cc +++ b/chrome/browser/resource_coordinator/tab_activity_watcher.cc
@@ -14,7 +14,6 @@ #include "chrome/browser/resource_coordinator/tab_metrics_logger.h" #include "chrome/browser/resource_coordinator/tab_ranker/mru_features.h" #include "chrome/browser/resource_coordinator/tab_ranker/tab_features.h" -#include "chrome/browser/resource_coordinator/tab_ranker/window_features.h" #include "chrome/browser/resource_coordinator/time.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" @@ -109,8 +108,7 @@ backgrounded_time_ = replaced_tab.backgrounded_time_; // Copy the replaced tab's stats. - tab_metrics_.page_metrics = replaced_tab.tab_metrics_.page_metrics; - tab_metrics_.page_transition = replaced_tab.tab_metrics_.page_transition; + page_metrics_ = replaced_tab.page_metrics_; // Record previous ukm_source_id from the |replaced_tab|. previous_ukm_source_id_ = replaced_tab.ukm_source_id_; @@ -190,7 +188,6 @@ explicit WebContentsData(content::WebContents* web_contents) : WebContentsObserver(web_contents) { DCHECK(!web_contents->GetBrowserContext()->IsOffTheRecord()); - tab_metrics_.web_contents = web_contents; web_contents->GetRenderViewHost()->GetWidget()->AddInputEventObserver(this); creation_time_ = NowTicks(); @@ -243,7 +240,7 @@ foregrounded_time_ = NowTicks(); creation_time_ = NowTicks(); - tab_metrics_.page_metrics.num_reactivations++; + page_metrics_.num_reactivations++; } // content::WebContentsObserver: @@ -274,10 +271,10 @@ navigation_time_ = navigation_handle->NavigationStart(); // Reset the per-page data. - tab_metrics_.page_metrics = {}; + page_metrics_ = {}; // Update navigation info. - tab_metrics_.page_transition = navigation_handle->GetPageTransition(); + page_metrics_.page_transition = navigation_handle->GetPageTransition(); } // Logs metrics for the tab when it stops loading instead of immediately @@ -343,11 +340,11 @@ // content::RenderWidgetHost::InputEventObserver: void OnInputEvent(const blink::WebInputEvent& event) override { if (blink::WebInputEvent::IsMouseEventType(event.GetType())) - tab_metrics_.page_metrics.mouse_event_count++; + page_metrics_.mouse_event_count++; else if (blink::WebInputEvent::IsKeyboardEventType(event.GetType())) - tab_metrics_.page_metrics.key_event_count++; + page_metrics_.key_event_count++; else if (blink::WebInputEvent::IsTouchEventType(event.GetType())) - tab_metrics_.page_metrics.touch_event_count++; + page_metrics_.touch_event_count++; } // Iterates through tabstrips to determine the index of |contents| in @@ -402,27 +399,25 @@ // Returns the tabfeatures of current tab by combining TabMetrics, // WindowFeatures and MRUFeatures. + // TODO(charleszhao): refactor TabMetricsLogger::GetTabFeatures to return a + // full TabFeatures instead of a partial TabFeatures. base::Optional<tab_ranker::TabFeatures> GetTabFeatures( const tab_ranker::MRUFeatures& mru = tab_ranker::MRUFeatures()) { - const Browser* browser = chrome::FindBrowserWithWebContents(web_contents()); - if (!browser) - return base::nullopt; // For tab features. - tab_ranker::TabFeatures tab = TabMetricsLogger::GetTabFeatures( - browser, tab_metrics_, NowTicks() - backgrounded_time_); + base::Optional<tab_ranker::TabFeatures> tab = + TabMetricsLogger::GetTabFeatures(page_metrics_, web_contents()); + if (!tab.has_value()) + return tab; - // For window features. - tab_ranker::WindowFeatures window = - TabMetricsLogger::CreateWindowFeatures(browser); - tab.window_is_active = window.is_active; - tab.window_show_state = window.show_state; - tab.window_tab_count = window.tab_count; - tab.window_type = window.type; + tab->time_from_backgrounded = + backgrounded_time_.is_null() + ? 0 + : (NowTicks() - backgrounded_time_).InMilliseconds(); // For mru features. - tab.mru_index = mru.index; - tab.total_tab_count = mru.total; + tab->mru_index = mru.index; + tab->total_tab_count = mru.total; return tab; } @@ -475,8 +470,8 @@ // The last navigation time associated with this tab. base::TimeTicks navigation_time_; - // Stores current stats for the tab. - TabMetricsLogger::TabMetrics tab_metrics_; + // Stores current page stats for the tab. + TabMetricsLogger::PageMetrics page_metrics_; // Set to true when the WebContents has been detached from its tab. bool is_detached_ = false;
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger.cc b/chrome/browser/resource_coordinator/tab_metrics_logger.cc index f00efa8..d69fac0 100644 --- a/chrome/browser/resource_coordinator/tab_metrics_logger.cc +++ b/chrome/browser/resource_coordinator/tab_metrics_logger.cc
@@ -37,8 +37,8 @@ namespace { // Populates navigation-related metrics. -void PopulatePageTransitionFeatures(tab_ranker::TabFeatures* tab, - ui::PageTransition page_transition) { +void PopulatePageTransitionFeatures(ui::PageTransition page_transition, + tab_ranker::TabFeatures* tab) { // We only report the following core types. // Note: Redirects unrelated to clicking a link still get the "link" type. if (ui::PageTransitionCoreTypeIs(page_transition, ui::PAGE_TRANSITION_LINK) || @@ -58,33 +58,71 @@ ui::PageTransitionIsRedirect(page_transition); } +// Populates TabFeatures from |page_metrics|. +void PopulateTabFeaturesFromPageMetrics( + const TabMetricsLogger::PageMetrics& page_metrics, + tab_ranker::TabFeatures* tab) { + static_assert(sizeof(TabMetricsLogger::PageMetrics) == + sizeof(int) * 4 + sizeof(ui::PageTransition), + "Make sure all fields in PageMetrics are considered here."); + tab->key_event_count = page_metrics.key_event_count; + tab->mouse_event_count = page_metrics.mouse_event_count; + tab->num_reactivations = page_metrics.num_reactivations; + tab->touch_event_count = page_metrics.touch_event_count; + + PopulatePageTransitionFeatures(page_metrics.page_transition, tab); +} + +// Populates TabFeatures that can be calculated simply from |web_contents|. +void PopulateTabFeaturesFromWebContents(content::WebContents* web_contents, + tab_ranker::TabFeatures* tab_features) { + tab_features->has_before_unload_handler = + web_contents->GetMainFrame()->GetSuddenTerminationDisablerState( + blink::kBeforeUnloadHandler); + tab_features->has_form_entry = + web_contents->GetPageImportanceSignals().had_form_interaction; + tab_features->host = web_contents->GetLastCommittedURL().host(); + tab_features->navigation_entry_count = + web_contents->GetController().GetEntryCount(); + + if (SiteEngagementService::IsEnabled()) { + tab_features->site_engagement_score = + TabMetricsLogger::GetSiteEngagementScore(web_contents); + } + + // This checks if the tab was audible within the past two seconds, same as the + // audio indicator in the tab strip. + tab_features->was_recently_audible = + RecentlyAudibleHelper::FromWebContents(web_contents) + ->WasRecentlyAudible(); +} + +// Populates TabFeatures that calculated from |browser| including WindowMetrics +// and PinState. +void PopulateTabFeaturesFromBrowser(const Browser* browser, + content::WebContents* web_contents, + tab_ranker::TabFeatures* tab_features) { + // For pin state. + const TabStripModel* tab_strip_model = browser->tab_strip_model(); + int index = tab_strip_model->GetIndexOfWebContents(web_contents); + DCHECK_NE(index, TabStripModel::kNoTab); + tab_features->is_pinned = tab_strip_model->IsTabPinned(index); + + // For window features. + tab_ranker::WindowFeatures window = + TabMetricsLogger::CreateWindowFeatures(browser); + tab_features->window_is_active = window.is_active; + tab_features->window_show_state = window.show_state; + tab_features->window_tab_count = window.tab_count; + tab_features->window_type = window.type; +} + } // namespace TabMetricsLogger::TabMetricsLogger() = default; TabMetricsLogger::~TabMetricsLogger() = default; // static -TabMetricsEvent::ContentType TabMetricsLogger::GetContentTypeFromMimeType( - const std::string& mime_type) { - // Test for special cases before testing wildcard types. - if (mime_type.empty()) - return TabMetricsEvent::CONTENT_TYPE_UNKNOWN; - if (net::MatchesMimeType("text/html", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_TEXT_HTML; - if (net::MatchesMimeType("application/*", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_APPLICATION; - if (net::MatchesMimeType("audio/*", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_AUDIO; - if (net::MatchesMimeType("image/*", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_IMAGE; - if (net::MatchesMimeType("text/*", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_TEXT; - if (net::MatchesMimeType("video/*", mime_type)) - return TabMetricsEvent::CONTENT_TYPE_VIDEO; - return TabMetricsEvent::CONTENT_TYPE_OTHER; -} - -// static int TabMetricsLogger::GetSiteEngagementScore( content::WebContents* web_contents) { if (!SiteEngagementService::IsEnabled()) @@ -104,44 +142,18 @@ } // static -tab_ranker::TabFeatures TabMetricsLogger::GetTabFeatures( - const Browser* browser, - const TabMetrics& tab_metrics, - base::TimeDelta inactive_duration) { - DCHECK(browser); - const TabStripModel* tab_strip_model = browser->tab_strip_model(); - content::WebContents* web_contents = tab_metrics.web_contents; +base::Optional<tab_ranker::TabFeatures> TabMetricsLogger::GetTabFeatures( + const PageMetrics& page_metrics, + content::WebContents* web_contents) { + Browser* browser = chrome::FindBrowserWithWebContents(web_contents); + if (!browser) + return base::nullopt; tab_ranker::TabFeatures tab; + PopulateTabFeaturesFromWebContents(web_contents, &tab); + PopulateTabFeaturesFromBrowser(browser, web_contents, &tab); + PopulateTabFeaturesFromPageMetrics(page_metrics, &tab); - tab.has_before_unload_handler = - web_contents->GetMainFrame()->GetSuddenTerminationDisablerState( - blink::kBeforeUnloadHandler); - tab.has_form_entry = - web_contents->GetPageImportanceSignals().had_form_interaction; - tab.host = web_contents->GetLastCommittedURL().host(); - - int index = tab_strip_model->GetIndexOfWebContents(web_contents); - DCHECK_NE(index, TabStripModel::kNoTab); - tab.is_pinned = tab_strip_model->IsTabPinned(index); - - tab.key_event_count = tab_metrics.page_metrics.key_event_count; - tab.mouse_event_count = tab_metrics.page_metrics.mouse_event_count; - tab.navigation_entry_count = web_contents->GetController().GetEntryCount(); - tab.num_reactivations = tab_metrics.page_metrics.num_reactivations; - - PopulatePageTransitionFeatures(&tab, tab_metrics.page_transition); - - if (SiteEngagementService::IsEnabled()) - tab.site_engagement_score = GetSiteEngagementScore(web_contents); - - tab.time_from_backgrounded = inactive_duration.InMilliseconds(); - tab.touch_event_count = tab_metrics.page_metrics.touch_event_count; - - // This checks if the tab was audible within the past two seconds, same as the - // audio indicator in the tab strip. - auto* audible_helper = RecentlyAudibleHelper::FromWebContents(web_contents); - tab.was_recently_audible = audible_helper->WasRecentlyAudible(); return tab; }
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger.h b/chrome/browser/resource_coordinator/tab_metrics_logger.h index f1f0f0f..bd595ddd 100644 --- a/chrome/browser/resource_coordinator/tab_metrics_logger.h +++ b/chrome/browser/resource_coordinator/tab_metrics_logger.h
@@ -6,6 +6,7 @@ #define CHROME_BROWSER_RESOURCE_COORDINATOR_TAB_METRICS_LOGGER_H_ #include "base/macros.h" +#include "base/optional.h" #include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "ui/base/page_transition_types.h" @@ -40,18 +41,8 @@ int touch_event_count = 0; // Number of times this tab has been reactivated. int num_reactivations = 0; - }; - - // The state of a tab. - struct TabMetrics { - content::WebContents* web_contents = nullptr; - // Source of the last committed navigation. ui::PageTransition page_transition = ui::PAGE_TRANSITION_FIRST; - - // Per-page metrics of the state of the WebContents. Tracked since the - // tab's last top-level navigation. - PageMetrics page_metrics = {}; }; // A struct that contains metrics to be logged in ForegroundedOrClosed event. @@ -84,10 +75,6 @@ void LogTabLifetime(ukm::SourceId ukm_source_id, base::TimeDelta time_since_navigation); - // Returns the ContentType that matches |mime_type|. - static metrics::TabMetricsEvent::ContentType GetContentTypeFromMimeType( - const std::string& mime_type); - // Returns the site engagement score for the WebContents, rounded down to 10s // to limit granularity. Returns -1 if site engagement service is disabled. static int GetSiteEngagementScore(content::WebContents* web_contents); @@ -96,10 +83,9 @@ // A common function for populating these features ensures that the same // values are used for logging training examples to UKM and for locally // scoring tabs. - static tab_ranker::TabFeatures GetTabFeatures( - const Browser* browser, - const TabMetrics& tab_metrics, - base::TimeDelta inactive_duration); + static base::Optional<tab_ranker::TabFeatures> GetTabFeatures( + const PageMetrics& page_metrics, + content::WebContents* web_contents); // Returns a populated WindowFeatures for the browser. static tab_ranker::WindowFeatures CreateWindowFeatures(
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc b/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc index 68f10a3..d822174 100644 --- a/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc +++ b/chrome/browser/resource_coordinator/tab_metrics_logger_interactive_uitest.cc
@@ -9,6 +9,7 @@ #include "base/macros.h" #include "build/build_config.h" #include "chrome/browser/resource_coordinator/tab_metrics_event.pb.h" +#include "chrome/browser/resource_coordinator/tab_ranker/tab_features.h" #include "chrome/browser/resource_coordinator/tab_ranker/window_features.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" @@ -22,12 +23,15 @@ using tab_ranker::WindowFeatures; const char* kTestUrl = "https://example.com/"; +constexpr char kBeforeUnloadHtml[] = + "data:text/html,<html><body><script>window.onbeforeunload=function(e) {}" + "</script></body></html>"; // Tests WindowFeatures generated by TabMetricsLogger::CreateWindowFeatures due // to interactive changes to window state. -class CreateWindowFeaturesTest : public InProcessBrowserTest { +class TabMetricsLoggerTest : public InProcessBrowserTest { protected: - CreateWindowFeaturesTest() = default; + TabMetricsLoggerTest() = default; // InProcessBrowserTest: void PreRunTestOnMainThread() override { @@ -49,12 +53,27 @@ #endif } + // Returns TabFeatures of Tab at |index|. + tab_ranker::TabFeatures CurrentTabFeatures(const int index) { + auto* web_contents = browser()->tab_strip_model()->GetWebContentsAt(index); + return TabMetricsLogger::GetTabFeatures(TabMetricsLogger::PageMetrics(), + web_contents) + .value(); + } + private: - DISALLOW_COPY_AND_ASSIGN(CreateWindowFeaturesTest); + DISALLOW_COPY_AND_ASSIGN(TabMetricsLoggerTest); }; +// Tests before unload handler is calculated correctly. +IN_PROC_BROWSER_TEST_F(TabMetricsLoggerTest, GetBeforeUnloadHandler) { + EXPECT_FALSE(CurrentTabFeatures(0).has_before_unload_handler); + ui_test_utils::NavigateToURL(browser(), GURL(kBeforeUnloadHtml)); + EXPECT_TRUE(CurrentTabFeatures(0).has_before_unload_handler); +} + // Tests WindowMetrics of the current browser window. -IN_PROC_BROWSER_TEST_F(CreateWindowFeaturesTest, Basic) { +IN_PROC_BROWSER_TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTest) { WindowFeatures expected_metrics{WindowMetricsEvent::TYPE_TABBED, WindowMetricsEvent::SHOW_STATE_NORMAL, true, 1}; @@ -84,7 +103,8 @@ // TODO(https://crbug.com/51364): Implement BrowserWindow::Deactivate() on Mac. #if !defined(OS_MACOSX) // Tests WindowMetrics by activating/deactivating the window. -IN_PROC_BROWSER_TEST_F(CreateWindowFeaturesTest, WindowActivation) { +IN_PROC_BROWSER_TEST_F(TabMetricsLoggerTest, + CreateWindowFeaturesTestWindowActivation) { WindowFeatures expected_metrics{WindowMetricsEvent::TYPE_TABBED, WindowMetricsEvent::SHOW_STATE_NORMAL, false, 1}; @@ -114,7 +134,8 @@ } // Tests WindowMetrics when switching between windows. -IN_PROC_BROWSER_TEST_F(CreateWindowFeaturesTest, MultipleWindows) { +IN_PROC_BROWSER_TEST_F(TabMetricsLoggerTest, + CreateWindowFeaturesTestMultipleWindows) { // Create a new browser window. Browser* browser_2 = CreateBrowser(browser()->profile()); WindowFeatures expected_metrics{WindowMetricsEvent::TYPE_TABBED,
diff --git a/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc b/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc index b36cf31..5a61622 100644 --- a/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc +++ b/chrome/browser/resource_coordinator/tab_metrics_logger_unittest.cc
@@ -25,6 +25,7 @@ #include "chrome/test/base/testing_profile.h" #include "components/ukm/test_ukm_recorder.h" #include "content/public/browser/web_contents.h" +#include "content/public/common/page_importance_signals.h" #include "content/public/test/web_contents_tester.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/ui_base_types.h" @@ -33,13 +34,12 @@ using metrics::WindowMetricsEvent; using tab_ranker::WindowFeatures; -// Sanity checks for functions in TabMetricsLogger. -// See TabActivityWatcherTest for more thorough tab usage UKM tests. -using TabMetricsLoggerTest = ChromeRenderViewHostTestHarness; - namespace { -const char* kTestUrl = "https://example.com/"; +constexpr char kChromiumUrl[] = "https://www.chromium.org"; +constexpr char kChromiumDomain[] = "www.chromium.org"; +constexpr char kExampleUrl[] = "https://example.com/test.html"; +constexpr char kExampleDomain[] = "example.com"; // TestBrowserWindow whose show state can be modified. class FakeBrowserWindow : public TestBrowserWindow { @@ -100,7 +100,7 @@ } private: - Browser* browser_; + Browser* browser_ = nullptr; bool is_active_ = false; ui::WindowShowState show_state_ = ui::SHOW_STATE_NORMAL; @@ -109,6 +109,98 @@ } // namespace +// Sanity checks for functions in TabMetricsLogger. +// See TabActivityWatcherTest for more thorough tab usage UKM tests. +class TabMetricsLoggerTest : public ChromeRenderViewHostTestHarness { + protected: + void SetUp() override { + ChromeRenderViewHostTestHarness::SetUp(); + + params_ = new Browser::CreateParams(profile(), true); + browser_ = CreateBrowserWithTestWindowForParams(params_); + tab_strip_model_ = browser_->tab_strip_model(); + + // Add a foreground tab. + web_contents_ = tab_activity_simulator_.AddWebContentsAndNavigate( + tab_strip_model_, GURL(kChromiumUrl)); + tab_strip_model_->ActivateTabAt(0); + web_contents_tester_ = WebContentsTester::For(web_contents_); + } + + TabActivitySimulator tab_activity_simulator_; + Browser::CreateParams* params_; + std::unique_ptr<Browser> browser_; + TabStripModel* tab_strip_model_; + content::WebContents* web_contents_; + content::WebContentsTester* web_contents_tester_; + TabMetricsLogger::PageMetrics pg_metrics_; + + void TearDown() override { + tab_strip_model_->CloseAllTabs(); + browser_.reset(); + ChromeRenderViewHostTestHarness::TearDown(); + } + + tab_ranker::TabFeatures CurrentTabFeatures() { + return TabMetricsLogger::GetTabFeatures(pg_metrics_, web_contents_).value(); + } + + // Adds a tab and simulates a basic navigation. + void AddTab(Browser* browser) { + content::WebContentsTester::For( + tab_activity_simulator_.AddWebContentsAndNavigate( + browser->tab_strip_model(), GURL(kExampleUrl))) + ->TestSetIsLoading(false); + } +}; + +// Tests has_form_entry. +TEST_F(TabMetricsLoggerTest, GetHasFormEntry) { + EXPECT_FALSE(CurrentTabFeatures().has_form_entry); + content::PageImportanceSignals signal; + signal.had_form_interaction = true; + web_contents_tester_->SetPageImportanceSignals(signal); + EXPECT_TRUE(CurrentTabFeatures().has_form_entry); +} + +// Tests is_pinned. +TEST_F(TabMetricsLoggerTest, GetPinState) { + EXPECT_FALSE(CurrentTabFeatures().is_pinned); + tab_strip_model_->SetTabPinned(0, true); + EXPECT_TRUE(CurrentTabFeatures().is_pinned); +} + +// Tests navigation_entry_count. +TEST_F(TabMetricsLoggerTest, GetNavigationEntryCount) { + EXPECT_EQ(CurrentTabFeatures().navigation_entry_count, 1); + tab_activity_simulator_.Navigate(web_contents_, GURL(kChromiumUrl), + pg_metrics_.page_transition); + EXPECT_EQ(CurrentTabFeatures().navigation_entry_count, 2); + tab_activity_simulator_.Navigate(web_contents_, GURL(kChromiumUrl), + pg_metrics_.page_transition); + EXPECT_EQ(CurrentTabFeatures().navigation_entry_count, 3); +} + +// Tests site_engagement_score. +TEST_F(TabMetricsLoggerTest, GetSiteEngagementScore) { + EXPECT_EQ(CurrentTabFeatures().site_engagement_score, 0); + SiteEngagementService::Get(profile())->ResetBaseScoreForURL( + GURL(kChromiumUrl), 91); + EXPECT_EQ(CurrentTabFeatures().site_engagement_score, 90); +} + +// Tests was_recently_audible. +TEST_F(TabMetricsLoggerTest, GetAudibleState) { + EXPECT_FALSE(CurrentTabFeatures().was_recently_audible); + web_contents_tester_->SetIsCurrentlyAudible(true); + EXPECT_TRUE(CurrentTabFeatures().was_recently_audible); +} + +// Tests host. +TEST_F(TabMetricsLoggerTest, GetHost) { + EXPECT_EQ(CurrentTabFeatures().host, kChromiumDomain); +} + // Tests creating a flat TabFeatures structure for logging a tab and its // TabMetrics state. TEST_F(TabMetricsLoggerTest, GetTabFeatures) { @@ -125,22 +217,19 @@ // Add a background tab to test. content::WebContents* bg_contents = - tab_activity_simulator.AddWebContentsAndNavigate( - tab_strip_model, GURL("http://example.com/test.html")); + tab_activity_simulator.AddWebContentsAndNavigate(tab_strip_model, + GURL(kExampleUrl)); WebContentsTester::For(bg_contents)->TestSetIsLoading(false); { - TabMetricsLogger::TabMetrics bg_metrics; - bg_metrics.web_contents = bg_contents; + TabMetricsLogger::PageMetrics bg_metrics; bg_metrics.page_transition = ui::PAGE_TRANSITION_FORM_SUBMIT; - base::TimeDelta inactive_duration = base::TimeDelta::FromSeconds(10); - - tab_ranker::TabFeatures bg_features = TabMetricsLogger::GetTabFeatures( - browser.get(), bg_metrics, inactive_duration); + tab_ranker::TabFeatures bg_features = + TabMetricsLogger::GetTabFeatures(bg_metrics, bg_contents).value(); EXPECT_EQ(bg_features.has_before_unload_handler, false); EXPECT_EQ(bg_features.has_form_entry, false); - EXPECT_EQ(bg_features.host, "example.com"); + EXPECT_EQ(bg_features.host, kExampleDomain); EXPECT_EQ(bg_features.is_pinned, false); EXPECT_EQ(bg_features.key_event_count, 0); EXPECT_EQ(bg_features.mouse_event_count, 0); @@ -152,8 +241,6 @@ EXPECT_EQ(bg_features.page_transition_is_redirect, false); ASSERT_TRUE(bg_features.site_engagement_score.has_value()); EXPECT_EQ(bg_features.site_engagement_score.value(), 0); - EXPECT_EQ(bg_features.time_from_backgrounded, - inactive_duration.InMilliseconds()); EXPECT_EQ(bg_features.touch_event_count, 0); EXPECT_EQ(bg_features.was_recently_audible, false); } @@ -161,28 +248,25 @@ // Update tab features. ui::PageTransition page_transition = static_cast<ui::PageTransition>( ui::PAGE_TRANSITION_LINK | ui::PAGE_TRANSITION_FROM_ADDRESS_BAR); - tab_activity_simulator.Navigate(bg_contents, GURL("https://www.chromium.org"), + tab_activity_simulator.Navigate(bg_contents, GURL(kChromiumUrl), page_transition); tab_strip_model->SetTabPinned(1, true); SiteEngagementService::Get(profile())->ResetBaseScoreForURL( - GURL("https://www.chromium.org"), 91); + GURL(kChromiumUrl), 91); { - TabMetricsLogger::TabMetrics bg_metrics; - bg_metrics.web_contents = bg_contents; + TabMetricsLogger::PageMetrics bg_metrics; bg_metrics.page_transition = page_transition; - bg_metrics.page_metrics.key_event_count = 3; - bg_metrics.page_metrics.mouse_event_count = 42; - bg_metrics.page_metrics.num_reactivations = 5; - bg_metrics.page_metrics.touch_event_count = 10; + bg_metrics.key_event_count = 3; + bg_metrics.mouse_event_count = 42; + bg_metrics.num_reactivations = 5; + bg_metrics.touch_event_count = 10; - base::TimeDelta inactive_duration = base::TimeDelta::FromSeconds(5); - - tab_ranker::TabFeatures bg_features = TabMetricsLogger::GetTabFeatures( - browser.get(), bg_metrics, inactive_duration); + tab_ranker::TabFeatures bg_features = + TabMetricsLogger::GetTabFeatures(bg_metrics, bg_contents).value(); EXPECT_EQ(bg_features.has_before_unload_handler, false); EXPECT_EQ(bg_features.has_form_entry, false); - EXPECT_EQ(bg_features.host, "www.chromium.org"); + EXPECT_EQ(bg_features.host, kChromiumDomain); EXPECT_EQ(bg_features.is_pinned, true); EXPECT_EQ(bg_features.key_event_count, 3); EXPECT_EQ(bg_features.mouse_event_count, 42); @@ -195,8 +279,6 @@ ASSERT_TRUE(bg_features.site_engagement_score.has_value()); // Site engagement score should round down to the nearest 10. EXPECT_EQ(bg_features.site_engagement_score.value(), 90); - EXPECT_EQ(bg_features.time_from_backgrounded, - inactive_duration.InMilliseconds()); EXPECT_EQ(bg_features.touch_event_count, 10); EXPECT_EQ(bg_features.was_recently_audible, false); } @@ -213,8 +295,7 @@ // Returns a new source_id associated with the test url. ukm::SourceId GetSourceId() { const ukm::SourceId source_id = ukm::UkmRecorder::GetNewSourceID(); - test_ukm_recorder_.UpdateSourceURL(source_id, - GURL("https://www.chromium.org")); + test_ukm_recorder_.UpdateSourceURL(source_id, GURL(kChromiumUrl)); return source_id; } @@ -322,28 +403,8 @@ }); } -// Tests WindowFeatures generated by CreateWindowFeatures. -class CreateWindowFeaturesTest : public ChromeRenderViewHostTestHarness { - protected: - CreateWindowFeaturesTest() = default; - ~CreateWindowFeaturesTest() override = default; - - // Adds a tab and simulates a basic navigation. - void AddTab(Browser* browser) { - content::WebContentsTester::For( - tab_activity_simulator_.AddWebContentsAndNavigate( - browser->tab_strip_model(), GURL(kTestUrl))) - ->TestSetIsLoading(false); - } - - private: - TabActivitySimulator tab_activity_simulator_; - - DISALLOW_COPY_AND_ASSIGN(CreateWindowFeaturesTest); -}; - // Tests CreateWindowFeatures of two browser windows. -TEST_F(CreateWindowFeaturesTest, Basic) { +TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTest) { Browser::CreateParams params(profile(), true); std::unique_ptr<Browser> browser = FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(¶ms); @@ -395,7 +456,7 @@ } // Tests moving a tab between browser windows. -TEST_F(CreateWindowFeaturesTest, MoveTabToOtherWindow) { +TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTestMoveTabToOtherWindow) { Browser::CreateParams params(profile(), true); std::unique_ptr<Browser> starting_browser = FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(¶ms); @@ -443,7 +504,7 @@ } // Tests replacing a tab. -TEST_F(CreateWindowFeaturesTest, ReplaceTab) { +TEST_F(TabMetricsLoggerTest, CreateWindowFeaturesTestReplaceTab) { Browser::CreateParams params(profile(), true); std::unique_ptr<Browser> browser = FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(¶ms);
diff --git a/chrome/browser/resources/chromeos/login/screen_recommend_apps.js b/chrome/browser/resources/chromeos/login/screen_recommend_apps.js index 9e1f9a2..4eb70a89 100644 --- a/chrome/browser/resources/chromeos/login/screen_recommend_apps.js +++ b/chrome/browser/resources/chromeos/login/screen_recommend_apps.js
@@ -92,14 +92,20 @@ // Hide the loading throbber and show the recommend app list. this.setThrobberVisible(false); + // Disable install button until the webview reports that some apps are + // selected. + $('recommend-apps-screen') + .getElement('recommend-apps-install-button') + .disabled = true; + const appListView = this.getElement_('app-list-view'); const subtitle = this.getElement_('subtitle'); subtitle.innerText = loadTimeData.getStringF( 'recommendAppsScreenDescription', appList.length); appListView.addEventListener('contentload', () => { - appListView.contentWindow.postMessage('initialMessage', '*'); - appListView.executeScript({file: 'recommend_app_list_view.js'}, () => { + appListView.contentWindow.postMessage('initialMessage', '*'); + appList.forEach(function(app, index) { let generateItemScript = 'generateContents("' + app.icon + '", "' + app.name + '", "' + app.package_name + '");'; @@ -182,4 +188,4 @@ $('recommend-apps-screen').hidden = visible; }, }; -}); \ No newline at end of file +});
diff --git a/chrome/browser/resources/settings/privacy_page/security_keys_subpage.html b/chrome/browser/resources/settings/privacy_page/security_keys_subpage.html index 51277d22..496b5bf 100644 --- a/chrome/browser/resources/settings/privacy_page/security_keys_subpage.html +++ b/chrome/browser/resources/settings/privacy_page/security_keys_subpage.html
@@ -14,7 +14,6 @@ <cr-link-row id="setPINButton" - class="hr" label="$i18n{securityKeysSetPIN}" sub-label="$i18n{securityKeysSetPINDesc}" on-click="onSetPIN_"></cr-link-row>
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.js b/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.js index bb8aa03..eb7ae332 100644 --- a/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.js +++ b/chrome/browser/resources/welcome/onboarding_welcome/set_as_default/nux_set_as_default.js
@@ -86,6 +86,8 @@ onDefaultBrowserChange_: function(status) { if (status.isDefault) { this.browserProxy_.recordSuccessfullySetDefault(); + // Triggers toast in the containing welcome-app. + this.fire('default-browser-change'); this.finished_(); return; }
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/welcome.html b/chrome/browser/resources/welcome/onboarding_welcome/welcome.html index 74245cd..d4bb3e8 100644 --- a/chrome/browser/resources/welcome/onboarding_welcome/welcome.html +++ b/chrome/browser/resources/welcome/onboarding_welcome/welcome.html
@@ -9,7 +9,7 @@ </head> <body> <style> - html { + html[dark] { background: var(--md-background-color); } </style>
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.html b/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.html index 5aeb85d4..ea2ce1e 100644 --- a/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.html +++ b/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.html
@@ -1,5 +1,6 @@ <link rel="import" href="chrome://resources/html/polymer.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_toast/cr_toast.html"> <link rel="import" href="chrome://resources/cr_elements/cr_view_manager/cr_view_manager.html"> <link rel="import" href="chrome://resources/cr_elements/hidden_style_css.html"> <link rel="import" href="chrome://resources/html/cr.html"> @@ -35,10 +36,17 @@ right: initial; top: initial; } + + cr-toast { + min-width: initial; + } </style> <cr-view-manager id="viewManager" hidden="[[!modulesInitialized_]]"> <landing-view id="step-landing" slot="view" class="active"></landing-view> </cr-view-manager> + <cr-toast duration="3000"> + <div>$i18n{defaultBrowserChanged}</div> + </cr-toast> </template> <script src="welcome_app.js"></script> </dom-module>
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.js b/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.js index 1445968d..90e75c3 100644 --- a/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.js +++ b/chrome/browser/resources/welcome/onboarding_welcome/welcome_app.js
@@ -56,6 +56,10 @@ }, }, + listeners: { + 'default-browser-change': 'onDefaultBrowserChange_', + }, + /** @override */ ready: function() { this.defaultCheckPromise_ = new PromiseResolver(); @@ -80,6 +84,11 @@ nux.NuxSetAsDefaultProxyImpl.getInstance().requestDefaultBrowserState(); }, + /** @private */ + onDefaultBrowserChange_: function() { + this.$$('cr-toast').show(); + }, + /** * @param {welcome.Routes} route * @param {number} step
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 532fb5e..7e4fa3a 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1096,6 +1096,10 @@ "uma_browsing_activity_observer.h", "unload_controller.cc", "unload_controller.h", + "views/intent_picker_bubble_view.cc", + "views/intent_picker_bubble_view.h", + "views/location_bar/intent_picker_view.cc", + "views/location_bar/intent_picker_view.h", "webui/app_launcher_login_handler.cc", "webui/app_launcher_login_handler.h", "webui/app_management/app_management_page_handler.cc", @@ -1510,10 +1514,6 @@ "views/frame/top_controls_slide_controller_chromeos.h", "views/ime_driver/input_method_bridge_chromeos.cc", "views/ime_driver/input_method_bridge_chromeos.h", - "views/intent_picker_bubble_view.cc", - "views/intent_picker_bubble_view.h", - "views/location_bar/intent_picker_view.cc", - "views/location_bar/intent_picker_view.h", "views/platform_keys_certificate_selector_chromeos.cc", "views/platform_keys_certificate_selector_chromeos.h", "views/profiles/profile_indicator_icon.cc",
diff --git a/chrome/browser/ui/browser_window.h b/chrome/browser/ui/browser_window.h index d628d52..b109b526 100644 --- a/chrome/browser/ui/browser_window.h +++ b/chrome/browser/ui/browser_window.h
@@ -31,9 +31,9 @@ #include "chrome/browser/ui/in_product_help/in_product_help.h" #endif // BUILDFLAG(ENABLE_DESKTOP_IN_PRODUCT_HELP) -#if defined(OS_CHROMEOS) +#if !defined(OS_ANDROID) #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" -#endif // defined(OS_CHROMEOS) +#endif // !defined(OS_ANDROID) class Browser; class DownloadShelf; @@ -317,18 +317,18 @@ // Shows the Update Recommended dialog box. virtual void ShowUpdateChromeDialog() = 0; -#if defined(OS_CHROMEOS) +#if !defined(OS_ANDROID) // Shows the intent picker bubble. |app_info| contains the app candidates to // display, |disable_stay_in_chrome| allows to disable 'Stay in Chrome' (used // for non-http(s) queries), and |callback| helps to continue the flow back to // either AppsNavigationThrottle or ArcExternalProtocolDialog capturing the // user's decision and storing UMA metrics. virtual void ShowIntentPickerBubble( - std::vector<chromeos::IntentPickerAppInfo> app_info, + std::vector<apps::IntentPickerAppInfo> app_info, bool disable_stay_in_chrome, IntentPickerResponse callback) = 0; virtual void SetIntentPickerViewVisibility(bool visible) = 0; -#endif // defined(OS_CHROMEOS) +#endif // !defined(OS_ANDROID) // Shows the Bookmark bubble. |url| is the URL being bookmarked, // |already_bookmarked| is true if the url is already bookmarked.
diff --git a/chrome/browser/ui/input_method/input_method_engine.cc b/chrome/browser/ui/input_method/input_method_engine.cc index c00eadd..fa487abf 100644 --- a/chrome/browser/ui/input_method/input_method_engine.cc +++ b/chrome/browser/ui/input_method/input_method_engine.cc
@@ -107,6 +107,15 @@ } } +void InputMethodEngine::DeleteSurroundingTextToInputContext( + int offset, + size_t number_of_chars) { + ui::IMEInputContextHandlerInterface* input_context = + ui::IMEBridge::Get()->GetInputContextHandler(); + if (input_context) + input_context->DeleteSurroundingText(offset, number_of_chars); +} + bool InputMethodEngine::SendKeyEvent(ui::KeyEvent* event, const std::string& code) { DCHECK(event);
diff --git a/chrome/browser/ui/input_method/input_method_engine.h b/chrome/browser/ui/input_method/input_method_engine.h index 32197c72..29b3433 100644 --- a/chrome/browser/ui/input_method/input_method_engine.h +++ b/chrome/browser/ui/input_method/input_method_engine.h
@@ -33,6 +33,8 @@ bool is_visible) override; void CommitTextToInputContext(int context_id, const std::string& text) override; + void DeleteSurroundingTextToInputContext(int offset, + size_t number_of_chars) override; bool SendKeyEvent(ui::KeyEvent* ui_event, const std::string& code) override; bool IsActive() const override;
diff --git a/chrome/browser/ui/input_method/input_method_engine_base.cc b/chrome/browser/ui/input_method/input_method_engine_base.cc index acecc9b79..7d0ae02 100644 --- a/chrome/browser/ui/input_method/input_method_engine_base.cc +++ b/chrome/browser/ui/input_method/input_method_engine_base.cc
@@ -211,9 +211,8 @@ void InputMethodEngineBase::Disable() { std::string last_component_id{active_component_id_}; active_component_id_.clear(); - if (ui::IMEBridge::Get()->GetInputContextHandler()) - ui::IMEBridge::Get()->GetInputContextHandler()->CommitText( - base::UTF16ToUTF8(composition_text_->text)); + CommitTextToInputContext(context_id_, + base::UTF16ToUTF8(composition_text_->text)); composition_text_.reset(new ui::CompositionText()); observer_->OnDeactivated(last_component_id); } @@ -320,10 +319,7 @@ // TODO(nona): Return false if there is ongoing composition. - ui::IMEInputContextHandlerInterface* input_context = - ui::IMEBridge::Get()->GetInputContextHandler(); - if (input_context) - input_context->DeleteSurroundingText(offset, number_of_chars); + DeleteSurroundingTextToInputContext(offset, number_of_chars); return true; } @@ -418,21 +414,14 @@ handling_key_event_ = false; // When finish handling key event, take care of the unprocessed commitText // and setComposition calls. - ui::IMEInputContextHandlerInterface* input_context = - ui::IMEBridge::Get()->GetInputContextHandler(); if (commit_text_changed_) { - if (input_context) { - input_context->CommitText(text_); - } + CommitTextToInputContext(context_id_, text_); text_ = ""; commit_text_changed_ = false; } if (composition_changed_) { - if (input_context) { - input_context->UpdateCompositionText( - composition_, composition_.selection.start(), true); - } + UpdateComposition(composition_, composition_.selection.start(), true); composition_ = ui::CompositionText(); composition_changed_ = false; }
diff --git a/chrome/browser/ui/input_method/input_method_engine_base.h b/chrome/browser/ui/input_method/input_method_engine_base.h index 59dd38c..201716e 100644 --- a/chrome/browser/ui/input_method/input_method_engine_base.h +++ b/chrome/browser/ui/input_method/input_method_engine_base.h
@@ -212,6 +212,9 @@ // Notifies InputContextHanlder to commit |text|. virtual void CommitTextToInputContext(int context_id, const std::string& text) = 0; + // Notifies InputContextHandler to delete surrounding text. + virtual void DeleteSurroundingTextToInputContext(int offset, + size_t number_of_chars) = 0; // Sends the key event to the window tree host. virtual bool SendKeyEvent(ui::KeyEvent* ui_event, const std::string& code) = 0;
diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc index 1d592a44..1a5ce1d 100644 --- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc +++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
@@ -190,9 +190,9 @@ void PresentationReceiverWindowController::CanDownload( const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { // Local presentation pages are not allowed to download files. - callback.Run(false); + std::move(callback).Run(false); } bool PresentationReceiverWindowController::ShouldCreateWebContents(
diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h index 6c8115b..039725f 100644 --- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h +++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
@@ -92,7 +92,7 @@ bool ShouldFocusPageAfterCrash() final; void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) final; + base::OnceCallback<void(bool)> callback) final; bool ShouldCreateWebContents( content::WebContents* web_contents, content::RenderFrameHost* opener,
diff --git a/chrome/browser/ui/views/autofill/local_card_migration_browsertest.cc b/chrome/browser/ui/views/autofill/local_card_migration_browsertest.cc index 4ebeb46..d1a3dd0d 100644 --- a/chrome/browser/ui/views/autofill/local_card_migration_browsertest.cc +++ b/chrome/browser/ui/views/autofill/local_card_migration_browsertest.cc
@@ -15,6 +15,7 @@ #include "base/run_loop.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" +#include "build/build_config.h" #include "chrome/browser/autofill/autofill_uitest_util.h" #include "chrome/browser/autofill/personal_data_manager_factory.h" #include "chrome/browser/signin/identity_manager_factory.h" @@ -35,8 +36,10 @@ #include "chrome/browser/ui/views/autofill/local_card_migration_icon_view.h" #include "chrome/browser/ui/views/autofill/migratable_card_view.h" #include "chrome/browser/ui/views/autofill/save_card_bubble_views.h" +#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h" +#include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/browser/web_data_service_factory.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -980,8 +983,75 @@ Bucket(AutofillMetrics::LOCAL_CARD_MIGRATION_BUBBLE_SHOWN, 1))); } +#if defined(OS_MACOSX) +// TODO(crbug.com/823543): Widget activation doesn't work on Mac. +#define MAYBE_ActivateFirstInactiveBubbleForAccessibility \ + DISABLED_ActivateFirstInactiveBubbleForAccessibility +#else +#define MAYBE_ActivateFirstInactiveBubbleForAccessibility \ + ActivateFirstInactiveBubbleForAccessibility +#endif +IN_PROC_BROWSER_TEST_F(LocalCardMigrationBrowserTestForStatusChip, + MAYBE_ActivateFirstInactiveBubbleForAccessibility) { + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); + ToolbarView* toolbar_view = browser_view->toolbar(); + EXPECT_FALSE(toolbar_view->toolbar_page_action_container() + ->ActivateFirstInactiveBubbleForAccessibility()); + + SaveLocalCard(kFirstCardNumber); + SaveLocalCard(kSecondCardNumber); + UseCardAndWaitForMigrationOffer(kFirstCardNumber); + + // Ensures the bubble's widget is visible, but inactive. Active widgets are + // focused by accessibility, so not of concern. + views::Widget* widget = GetLocalCardMigrationOfferBubbleViews()->GetWidget(); + widget->Deactivate(); + widget->ShowInactive(); + EXPECT_TRUE(widget->IsVisible()); + EXPECT_FALSE(widget->IsActive()); + + EXPECT_TRUE(toolbar_view->toolbar_page_action_container() + ->ActivateFirstInactiveBubbleForAccessibility()); + + // Ensure the bubble's widget refreshed appropriately. + EXPECT_TRUE( + GetLocalCardMigrationIconView(/*icon_in_status_chip=*/true)->visible()); + EXPECT_TRUE(widget->IsVisible()); + EXPECT_TRUE(widget->IsActive()); +} + +// Ensures the credit card icon updates its visibility when switching between +// tabs. +IN_PROC_BROWSER_TEST_F(LocalCardMigrationBrowserTestForStatusChip, + IconAndBubbleVisibilityAfterTabSwitching) { + SaveLocalCard(kFirstCardNumber); + SaveLocalCard(kSecondCardNumber); + UseCardAndWaitForMigrationOffer(kFirstCardNumber); + + // Ensures flow is triggered, and bubble and icon view are visible. + EXPECT_TRUE( + GetLocalCardMigrationIconView(/*icon_in_status_chip=*/true)->visible()); + EXPECT_TRUE(GetLocalCardMigrationOfferBubbleViews()->visible()); + + AddTabAtIndex(1, GURL("http://example.com/"), ui::PAGE_TRANSITION_TYPED); + TabStripModel* tab_model = browser()->tab_strip_model(); + tab_model->ActivateTabAt(1, {TabStripModel::GestureType::kOther}); + + // Ensures bubble and icon go away if user navigates to another tab. + EXPECT_FALSE( + GetLocalCardMigrationIconView(/*icon_in_status_chip=*/true)->visible()); + EXPECT_FALSE(GetLocalCardMigrationOfferBubbleViews()); + + tab_model->ActivateTabAt(0, {TabStripModel::GestureType::kOther}); + + // If the user navigates back, shows only the icon not the bubble. + EXPECT_TRUE( + GetLocalCardMigrationIconView(/*icon_in_status_chip=*/true)->visible()); + EXPECT_FALSE(GetLocalCardMigrationOfferBubbleViews()); +} + // TODO(crbug.com/897998): -// - Update test set-up and add navagation tests. +// - Update test set-up and add navigation tests. // - Add more tests for feedback dialog. } // namespace autofill
diff --git a/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest.cc b/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest.cc index 2e03198..4a6393d4c 100644 --- a/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest.cc +++ b/chrome/browser/ui/views/autofill/save_card_bubble_views_browsertest.cc
@@ -28,8 +28,10 @@ #include "chrome/browser/ui/views/autofill/dialog_view_ids.h" #include "chrome/browser/ui/views/autofill/save_card_bubble_views.h" #include "chrome/browser/ui/views/autofill/save_card_icon_view.h" +#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h" +#include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" #include "components/autofill/content/browser/content_autofill_driver.h" @@ -2779,4 +2781,69 @@ EXPECT_TRUE(GetSaveCardBubbleViews()->visible()); } +#if defined(OS_MACOSX) +// TODO(crbug.com/823543): Widget activation doesn't work on Mac. +#define MAYBE_ActivateFirstInactiveBubbleForAccessibility \ + DISABLED_ActivateFirstInactiveBubbleForAccessibility +#else +#define MAYBE_ActivateFirstInactiveBubbleForAccessibility \ + ActivateFirstInactiveBubbleForAccessibility +#endif +IN_PROC_BROWSER_TEST_F(SaveCardBubbleViewsFullFormBrowserTestForStatusChip, + MAYBE_ActivateFirstInactiveBubbleForAccessibility) { + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); + ToolbarView* toolbar_view = browser_view->toolbar(); + EXPECT_FALSE(toolbar_view->toolbar_page_action_container() + ->ActivateFirstInactiveBubbleForAccessibility()); + + ResetEventWaiterForSequence({DialogEvent::OFFERED_LOCAL_SAVE}); + NavigateTo(kCreditCardUploadForm); + FillAndSubmitForm(); + WaitForObservedEvent(); + + // Ensures the bubble's widget is visible, but inactive. Active widgets are + // focused by accessibility, so not of concern. + views::Widget* widget = GetSaveCardBubbleViews()->GetWidget(); + widget->Deactivate(); + widget->ShowInactive(); + EXPECT_TRUE(widget->IsVisible()); + EXPECT_FALSE(widget->IsActive()); + + EXPECT_TRUE(toolbar_view->toolbar_page_action_container() + ->ActivateFirstInactiveBubbleForAccessibility()); + + // Ensure the bubble's widget refreshed appropriately. + EXPECT_TRUE(GetSaveCardIconView()->visible()); + EXPECT_TRUE(widget->IsVisible()); + EXPECT_TRUE(widget->IsActive()); +} + +// Ensures the credit card icon updates its visibility when switching between +// tabs. +IN_PROC_BROWSER_TEST_F(SaveCardBubbleViewsFullFormBrowserTestForStatusChip, + IconAndBubbleVisibilityAfterTabSwitching) { + ResetEventWaiterForSequence({DialogEvent::OFFERED_LOCAL_SAVE}); + NavigateTo(kCreditCardUploadForm); + FillAndSubmitForm(); + WaitForObservedEvent(); + + // Ensures flow is triggered, and bubble and icon view are visible. + EXPECT_TRUE(GetSaveCardIconView()->visible()); + EXPECT_TRUE(GetSaveCardBubbleViews()->visible()); + + AddTabAtIndex(1, GURL("http://example.com/"), ui::PAGE_TRANSITION_TYPED); + TabStripModel* tab_model = browser()->tab_strip_model(); + tab_model->ActivateTabAt(1, {TabStripModel::GestureType::kOther}); + + // Ensures bubble and icon go away if user navigates to another tab. + EXPECT_FALSE(GetSaveCardIconView()->visible()); + EXPECT_FALSE(GetSaveCardBubbleViews()); + + tab_model->ActivateTabAt(0, {TabStripModel::GestureType::kOther}); + + // If the user navigates back, shows only the icon not the bubble. + EXPECT_TRUE(GetSaveCardIconView()->visible()); + EXPECT_FALSE(GetSaveCardBubbleViews()); +} + } // namespace autofill
diff --git a/chrome/browser/ui/views/collected_cookies_views.cc b/chrome/browser/ui/views/collected_cookies_views.cc index 8519ed1..e1b1dee 100644 --- a/chrome/browser/ui/views/collected_cookies_views.cc +++ b/chrome/browser/ui/views/collected_cookies_views.cc
@@ -402,10 +402,10 @@ // Add margin above the content. The left, right, and bottom margins are added // by the content itself. - set_margins( + SetBorder(views::CreateEmptyBorder( gfx::Insets(provider->GetDistanceMetric( views::DISTANCE_DIALOG_CONTENT_MARGIN_TOP_CONTROL), - 0, 0, 0)); + 0, 0, 0))); const int single_column_layout_id = 0; views::ColumnSet* column_set = layout->AddColumnSet(single_column_layout_id);
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view.cc b/chrome/browser/ui/views/extensions/extensions_menu_view.cc index 2c7ca38..a4cda46 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_view.cc +++ b/chrome/browser/ui/views/extensions/extensions_menu_view.cc
@@ -4,17 +4,52 @@ #include "chrome/browser/ui/views/extensions/extensions_menu_view.h" +#include "base/memory/ptr_util.h" +#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" #include "chrome/browser/ui/views/extensions/extensions_menu_button.h" #include "chrome/grit/generated_resources.h" +#include "third_party/skia/include/core/SkPath.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/views/controls/button/image_button.h" +#include "ui/views/controls/button/image_button_factory.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/layout/flex_layout.h" +#include "ui/views/view_class_properties.h" namespace { ExtensionsMenuView* g_extensions_dialog = nullptr; + +constexpr int EXTENSIONS_SETTINGS_ID = 42; + +std::unique_ptr<views::View> CreateHeaderView(const base::string16& title) { + auto container = std::make_unique<views::View>(); + + auto* layout_manager = + container->SetLayoutManager(std::make_unique<views::FlexLayout>()); + layout_manager->SetOrientation(views::LayoutOrientation::kHorizontal) + .SetCrossAxisAlignment(views::LayoutAlignment::kCenter); + + gfx::Insets header_insets = + ChromeLayoutProvider::Get()->GetInsetsMetric(views::INSETS_DIALOG); + container->SetProperty(views::kMarginsKey, new gfx::Insets(header_insets)); + + views::Label* title_label = + new views::Label(title, views::style::CONTEXT_DIALOG_TITLE); + title_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); + title_label->SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY); + + container->AddChildView(title_label); + layout_manager->SetFlexForView(title_label, + views::FlexSpecification::ForSizeRule( + views::MinimumFlexSizeRule::kPreferred, + views::MaximumFlexSizeRule::kUnbounded)); + return container; +} } // namespace ExtensionsMenuView::ExtensionsMenuView(views::View* anchor_view, @@ -40,6 +75,13 @@ g_extensions_dialog = nullptr; } +void ExtensionsMenuView::ButtonPressed(views::Button* sender, + const ui::Event& event) { + if (sender->id() != EXTENSIONS_SETTINGS_ID) + return; + chrome::ShowExtensions(browser_, std::string()); +} + base::string16 ExtensionsMenuView::GetAccessibleWindowTitle() const { // TODO(pbos): Revisit this when subpanes exist so that the title read by a11y // tools are in sync with the current visuals. @@ -66,10 +108,15 @@ } void ExtensionsMenuView::Repopulate() { - // TODO(pbos): Add a header that displays the menu title. This cannot use - // ::GetWindowTitle() as we need it to belong to the displayed panel and not - // the BubbleFrameView. RemoveAllChildViews(true); + + auto header = + CreateHeaderView(l10n_util::GetStringUTF16(IDS_EXTENSIONS_MENU_TITLE)); + header->AddChildView(CreateImageButtonForHeader( + kSettingsIcon, EXTENSIONS_SETTINGS_ID, + l10n_util::GetStringUTF16(IDS_EXTENSIONS_MENU_SETTINGS_TOOLTIP))); + AddChildView(std::move(header)); + for (auto action_id : model_->action_ids()) { AddChildView(std::make_unique<ExtensionsMenuButton>( browser_, model_->CreateActionForId(browser_, nullptr, action_id))); @@ -137,3 +184,25 @@ ExtensionsMenuView* ExtensionsMenuView::GetExtensionsMenuViewForTesting() { return g_extensions_dialog; } + +std::unique_ptr<views::ImageButton> +ExtensionsMenuView::CreateImageButtonForHeader(const gfx::VectorIcon& icon, + int id, + const base::string16& tooltip) { + views::ImageButton* image_button = views::CreateVectorImageButton(this); + views::SetImageFromVectorIconWithColor( + image_button, icon, + GetNativeTheme()->SystemDarkModeEnabled() + ? SkColorSetA(SK_ColorWHITE, 0xDD) + : gfx::kGoogleGrey700); + image_button->set_id(id); + image_button->SetTooltipText(tooltip); + image_button->SizeToPreferredSize(); + + // Let the settings button use a circular inkdrop shape. + auto highlight_path = std::make_unique<SkPath>(); + highlight_path->addOval(gfx::RectToSkRect(gfx::Rect(image_button->size()))); + image_button->SetProperty(views::kHighlightPathKey, highlight_path.release()); + + return base::WrapUnique<views::ImageButton>(image_button); +}
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view.h b/chrome/browser/ui/views/extensions/extensions_menu_view.h index 4dea9d4..ec99a5cf 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_view.h +++ b/chrome/browser/ui/views/extensions/extensions_menu_view.h
@@ -5,17 +5,25 @@ #ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_VIEW_H_ #define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSIONS_MENU_VIEW_H_ +#include <memory> + #include "chrome/browser/ui/toolbar/toolbar_actions_model.h" #include "ui/views/bubble/bubble_dialog_delegate_view.h" +#include "ui/views/controls/button/button.h" + +namespace gfx { +struct VectorIcon; +} // namespace gfx namespace views { -class View; +class ImageButton; } // namespace views // This bubble view displays a list of user extensions. // TODO(pbos): Once there's more functionality in here (getting to // chrome://extensions, pinning, extension settings), update this comment. -class ExtensionsMenuView : public views::BubbleDialogDelegateView, +class ExtensionsMenuView : public views::ButtonListener, + public views::BubbleDialogDelegateView, public ToolbarActionsModel::Observer { public: ExtensionsMenuView(views::View* anchor_view, Browser* browser); @@ -26,6 +34,9 @@ static void Hide(); static ExtensionsMenuView* GetExtensionsMenuViewForTesting(); + // views::ButtonListener: + void ButtonPressed(views::Button* sender, const ui::Event& event) override; + // views::BubbleDialogDelegateView: base::string16 GetAccessibleWindowTitle() const override; bool AcceleratorPressed(const ui::Accelerator& accelerator) override; @@ -49,6 +60,11 @@ private: void Repopulate(); + std::unique_ptr<views::ImageButton> CreateImageButtonForHeader( + const gfx::VectorIcon& icon, + int id, + const base::string16& tooltip); + Browser* const browser_; ToolbarActionsModel* const model_; ScopedObserver<ToolbarActionsModel, ToolbarActionsModel::Observer>
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm index 8bc61a2..740b04a 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
@@ -37,6 +37,14 @@ constexpr int kFramePaddingLeft = 75; constexpr double kTitlePaddingWidthFraction = 0.1; +FullscreenToolbarStyle GetUserPreferredToolbarStyle(bool always_show) { + // In Kiosk mode, we don't show top Chrome UI. + if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) + return FullscreenToolbarStyle::TOOLBAR_NONE; + return always_show ? FullscreenToolbarStyle::TOOLBAR_PRESENT + : FullscreenToolbarStyle::TOOLBAR_HIDDEN; +} + } // namespace /////////////////////////////////////////////////////////////////////////////// @@ -55,9 +63,8 @@ [[FullscreenToolbarControllerViews alloc] initWithBrowserView:browser_view]); [fullscreen_toolbar_controller_ - setToolbarStyle:*show_fullscreen_toolbar_ - ? FullscreenToolbarStyle::TOOLBAR_PRESENT - : FullscreenToolbarStyle::TOOLBAR_HIDDEN]; + setToolbarStyle:GetUserPreferredToolbarStyle( + *show_fullscreen_toolbar_)]; } if (browser_view->IsBrowserTypeHostedApp()) { @@ -184,9 +191,7 @@ needs_check_tab_fullscreen) { new_style = FullscreenToolbarStyle::TOOLBAR_NONE; } else { - new_style = *show_fullscreen_toolbar_ - ? FullscreenToolbarStyle::TOOLBAR_PRESENT - : FullscreenToolbarStyle::TOOLBAR_HIDDEN; + new_style = GetUserPreferredToolbarStyle(*show_fullscreen_toolbar_); } [fullscreen_toolbar_controller_ setToolbarStyle:new_style];
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index c3b2fa20..e60b53e 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -91,6 +91,7 @@ #include "chrome/browser/ui/views/hats/hats_bubble_view.h" #include "chrome/browser/ui/views/ime/ime_warning_bubble_view.h" #include "chrome/browser/ui/views/infobars/infobar_container_view.h" +#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/location_bar/star_view.h" #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h" @@ -169,7 +170,6 @@ #include "chrome/browser/ui/ash/ash_util.h" #include "chrome/browser/ui/ash/window_properties.h" #include "chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.h" -#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" #include "chrome/grit/chrome_unscaled_resources.h" #include "ui/base/ui_base_features.h" #else @@ -1205,6 +1205,12 @@ if (GetLocationBarView()->ActivateFirstInactiveBubbleForAccessibility()) return; + if (toolbar_ && toolbar_->toolbar_page_action_container() && + toolbar_->toolbar_page_action_container() + ->ActivateFirstInactiveBubbleForAccessibility()) { + return; + } + if (infobar_container_->child_count() > 0) infobar_container_->SetPaneFocusAndFocusDefault(); } @@ -1293,7 +1299,6 @@ UpdateRecommendedMessageBox::Show(GetNativeWindow()); } -#if defined(OS_CHROMEOS) void BrowserView::ShowIntentPickerBubble( std::vector<IntentPickerBubbleView::AppInfo> app_info, bool disable_stay_in_chrome, @@ -1313,7 +1318,6 @@ location_bar->Layout(); } } -#endif // defined(OS_CHROMEOS) void BrowserView::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { toolbar_->ShowBookmarkBubble(url, already_bookmarked,
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h index bbe01ee..9cf89c2 100644 --- a/chrome/browser/ui/views/frame/browser_view.h +++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -33,6 +33,7 @@ #include "chrome/browser/ui/views/frame/immersive_mode_controller.h" #include "chrome/browser/ui/views/frame/top_controls_slide_controller.h" #include "chrome/browser/ui/views/frame/web_contents_close_handler.h" +#include "chrome/browser/ui/views/intent_picker_bubble_view.h" #include "chrome/browser/ui/views/load_complete_listener.h" #include "chrome/browser/ui/views/tabs/tab.h" #include "chrome/browser/ui/views/tabs/tab_renderer_data.h" @@ -47,10 +48,6 @@ #include "ui/views/widget/widget_observer.h" #include "ui/views/window/client_view.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/ui/views/intent_picker_bubble_view.h" -#endif // defined(OS_CHROMEOS) - #if BUILDFLAG(ENABLE_DESKTOP_IN_PRODUCT_HELP) #include "chrome/browser/ui/views/feature_promos/reopen_tab_promo_controller.h" #endif // BUILDFLAG(ENABLE_DESKTOP_IN_PRODUCT_HELP) @@ -364,13 +361,11 @@ bool IsToolbarVisible() const override; bool IsToolbarShowing() const override; void ShowUpdateChromeDialog() override; -#if defined(OS_CHROMEOS) void ShowIntentPickerBubble( std::vector<IntentPickerBubbleView::AppInfo> app_info, bool disable_stay_in_chrome, IntentPickerResponse callback) override; void SetIntentPickerViewVisibility(bool visible) override; -#endif // defined(OS_CHROMEOS) void ShowBookmarkBubble(const GURL& url, bool already_bookmarked) override; autofill::SaveCardBubbleView* ShowSaveCreditCardBubble( content::WebContents* contents,
diff --git a/chrome/browser/ui/views/intent_picker_bubble_view.cc b/chrome/browser/ui/views/intent_picker_bubble_view.cc index 7872380..564402e 100644 --- a/chrome/browser/ui/views/intent_picker_bubble_view.cc +++ b/chrome/browser/ui/views/intent_picker_bubble_view.cc
@@ -10,13 +10,13 @@ #include "base/strings/string_piece.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/apps/intent_helper/apps_navigation_throttle.h" +#include "chrome/browser/platform_util.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/toolbar/toolbar_ink_drop_util.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/grit/generated_resources.h" -#include "components/arc/intent_helper/arc_intent_helper_bridge.h" #include "content/public/browser/navigation_handle.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/base/l10n/l10n_util.h" @@ -33,13 +33,16 @@ #include "ui/views/layout/grid_layout.h" #include "ui/views/window/dialog_client_view.h" +#if defined(OS_CHROMEOS) +#include "components/arc/intent_helper/arc_intent_helper_bridge.h" +#endif // defined(OS_CHROMEOS) + namespace { // TODO(djacobo): Replace this limit to correctly reflect the UI mocks, which // now instead of limiting the results to 3.5 will allow whatever fits in 256pt. // Using |kMaxAppResults| as a measure of how many apps we want to show. -constexpr size_t kMaxAppResults = - chromeos::AppsNavigationThrottle::kMaxAppResults; +constexpr size_t kMaxAppResults = apps::AppsNavigationThrottle::kMaxAppResults; // Main components sizes constexpr int kTitlePadding = 16; constexpr int kRowHeight = 32; @@ -129,7 +132,7 @@ if (!browser || !BrowserView::GetBrowserViewForBrowser(browser)) { std::move(intent_picker_cb) .Run(kInvalidLaunchName, apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::ERROR, false); + apps::IntentPickerCloseReason::PICKER_ERROR, false); return nullptr; } BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser); @@ -142,7 +145,8 @@ intent_picker_bubble_->SetAnchorView(anchor_view); intent_picker_bubble_->SetArrow(views::BubbleBorder::TOP_RIGHT); } else { - intent_picker_bubble_->set_parent_window(browser_view->GetNativeWindow()); + intent_picker_bubble_->set_parent_window( + platform_util::GetViewForWindow(browser_view->GetNativeWindow())); // Using the TopContainerBoundsInScreen Rect to specify an anchor for the // the UI. Rect allow us to set the coordinates(x,y), the width and height // for the new Rectangle. @@ -201,15 +205,20 @@ bool IntentPickerBubbleView::Accept() { RunCallback(app_info_[selected_app_tag_].launch_name, app_info_[selected_app_tag_].type, - chromeos::IntentPickerCloseReason::OPEN_APP, + apps::IntentPickerCloseReason::OPEN_APP, remember_selection_checkbox_->checked()); return true; } bool IntentPickerBubbleView::Cancel() { - RunCallback(arc::ArcIntentHelperBridge::kArcIntentHelperPackageName, - apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::STAY_IN_CHROME, + const char* launch_name = +#if defined(OS_CHROMEOS) + arc::ArcIntentHelperBridge::kArcIntentHelperPackageName; +#else + kInvalidLaunchName; +#endif + RunCallback(launch_name, apps::mojom::AppType::kUnknown, + apps::IntentPickerCloseReason::STAY_IN_CHROME, remember_selection_checkbox_->checked()); return true; } @@ -218,7 +227,7 @@ // Whenever closing the bubble without pressing |Just once| or |Always| we // need to report back that the user didn't select anything. RunCallback(kInvalidLaunchName, apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::DIALOG_DEACTIVATED, false); + apps::IntentPickerCloseReason::DIALOG_DEACTIVATED, false); return true; } @@ -238,11 +247,13 @@ size_t i = 0; size_t to_erase = app_info_.size(); for (const auto& app_info : app_info_) { +#if defined(OS_CHROMEOS) if (arc::ArcIntentHelperBridge::IsIntentHelperPackage( app_info.launch_name)) { to_erase = i; continue; } +#endif // defined(OS_CHROMEOS) IntentPickerLabelButton* app_button = new IntentPickerLabelButton( this, &app_info.icon, app_info.launch_name, app_info.display_name); app_button->set_tag(i); @@ -343,7 +354,7 @@ // the callback so the caller can Resume the navigation. void IntentPickerBubbleView::OnWidgetDestroying(views::Widget* widget) { RunCallback(kInvalidLaunchName, apps::mojom::AppType::kUnknown, - chromeos::IntentPickerCloseReason::DIALOG_DEACTIVATED, false); + apps::IntentPickerCloseReason::DIALOG_DEACTIVATED, false); } void IntentPickerBubbleView::ButtonPressed(views::Button* sender, @@ -398,7 +409,7 @@ void IntentPickerBubbleView::RunCallback( const std::string& launch_name, apps::mojom::AppType app_type, - chromeos::IntentPickerCloseReason close_reason, + apps::IntentPickerCloseReason close_reason, bool should_persist) { if (!intent_picker_cb_.is_null()) { // Calling Run() will make |intent_picker_cb_| null.
diff --git a/chrome/browser/ui/views/intent_picker_bubble_view.h b/chrome/browser/ui/views/intent_picker_bubble_view.h index e5556ca..4e493a3 100644 --- a/chrome/browser/ui/views/intent_picker_bubble_view.h +++ b/chrome/browser/ui/views/intent_picker_bubble_view.h
@@ -58,7 +58,7 @@ class IntentPickerBubbleView : public LocationBarBubbleDelegateView, public views::ButtonListener { public: - using AppInfo = chromeos::IntentPickerAppInfo; + using AppInfo = apps::IntentPickerAppInfo; ~IntentPickerBubbleView() override; static views::Widget* ShowBubble(views::View* anchor_view, @@ -126,7 +126,7 @@ IntentPickerLabelButton* GetIntentPickerLabelButtonAt(size_t index); void RunCallback(const std::string& launch_name, apps::mojom::AppType app_type, - chromeos::IntentPickerCloseReason close_reason, + apps::IntentPickerCloseReason close_reason, bool should_persist); // Returns true if this picker has candidates for the user to choose from, and
diff --git a/chrome/browser/ui/views/intent_picker_bubble_view_browsertest.cc b/chrome/browser/ui/views/intent_picker_bubble_view_browsertest.cc index 74403a4..d45c8ca 100644 --- a/chrome/browser/ui/views/intent_picker_bubble_view_browsertest.cc +++ b/chrome/browser/ui/views/intent_picker_bubble_view_browsertest.cc
@@ -15,12 +15,12 @@ public ::testing::WithParamInterface<std::string> { public: void SetUp() override { - extensions::test::BookmarkAppNavigationBrowserTest::SetUp(); - // Link capturing disables showing the intent picker. scoped_feature_list_.InitWithFeatures( - {features::kDesktopPWAWindowing}, + {features::kDesktopPWAWindowing, features::kIntentPicker}, {features::kDesktopPWAsLinkCapturing}); + + extensions::test::BookmarkAppNavigationBrowserTest::SetUp(); } private:
diff --git a/chrome/browser/ui/views/intent_picker_bubble_view_unittest.cc b/chrome/browser/ui/views/intent_picker_bubble_view_unittest.cc index 6748b98..097ada5 100644 --- a/chrome/browser/ui/views/intent_picker_bubble_view_unittest.cc +++ b/chrome/browser/ui/views/intent_picker_bubble_view_unittest.cc
@@ -23,7 +23,7 @@ #include "ui/views/resources/grit/views_resources.h" #include "url/gurl.h" -using AppInfo = chromeos::IntentPickerAppInfo; +using AppInfo = apps::IntentPickerAppInfo; using content::WebContents; using content::OpenURLParams; using content::Referrer; @@ -89,7 +89,7 @@ // Dummy method to be called upon bubble closing. void OnBubbleClosed(const std::string& selected_app_package, apps::mojom::AppType app_type, - chromeos::IntentPickerCloseReason close_reason, + apps::IntentPickerCloseReason close_reason, bool should_persist) {} std::unique_ptr<IntentPickerBubbleView> bubble_;
diff --git a/chrome/browser/ui/views/location_bar/intent_picker_view.cc b/chrome/browser/ui/views/location_bar/intent_picker_view.cc index 88b2da2..b9daf2a 100644 --- a/chrome/browser/ui/views/location_bar/intent_picker_view.cc +++ b/chrome/browser/ui/views/location_bar/intent_picker_view.cc
@@ -15,6 +15,10 @@ #include "components/omnibox/browser/vector_icons.h" #include "ui/base/l10n/l10n_util.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/apps/intent_helper/chromeos_apps_navigation_throttle.h" +#endif // defined(OS_CHROMEOS) + namespace content { class WebContents; } @@ -24,7 +28,7 @@ : PageActionIconView(nullptr, 0, delegate), browser_(browser) { if (browser_) { intent_picker_controller_ = - std::make_unique<arc::IntentPickerController>(browser_); + std::make_unique<apps::IntentPickerController>(browser_); } } @@ -47,9 +51,13 @@ content::WebContents* web_contents = browser_->tab_strip_model()->GetActiveWebContents(); const GURL& url = chrome::GetURLToBookmark(web_contents); - - chromeos::AppsNavigationThrottle::ShowIntentPickerBubble( +#if defined(OS_CHROMEOS) + chromeos::ChromeOsAppsNavigationThrottle::ShowIntentPickerBubble( web_contents, /*ui_auto_display_service=*/nullptr, url); +#else + apps::AppsNavigationThrottle::ShowIntentPickerBubble( + web_contents, /*ui_auto_display_service=*/nullptr, url); +#endif // defined(OS_CHROMEOS) } else { SetVisible(false); }
diff --git a/chrome/browser/ui/views/location_bar/intent_picker_view.h b/chrome/browser/ui/views/location_bar/intent_picker_view.h index 60adf1d..758e4e7 100644 --- a/chrome/browser/ui/views/location_bar/intent_picker_view.h +++ b/chrome/browser/ui/views/location_bar/intent_picker_view.h
@@ -10,9 +10,9 @@ #include "base/macros.h" #include "chrome/browser/ui/views/page_action/page_action_icon_view.h" -namespace arc { +namespace apps { class IntentPickerController; -} // namespace arc +} // namespace apps class Browser; @@ -35,7 +35,7 @@ private: bool IsIncognitoMode(); - std::unique_ptr<arc::IntentPickerController> intent_picker_controller_; + std::unique_ptr<apps::IntentPickerController> intent_picker_controller_; Browser* const browser_;
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index 1c925da..a20a1a9 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -48,6 +48,7 @@ #include "chrome/browser/ui/views/chrome_typography.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/content_setting_image_view.h" +#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" #include "chrome/browser/ui/views/location_bar/keyword_hint_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_layout.h" #include "chrome/browser/ui/views/location_bar/location_icon_view.h" @@ -111,10 +112,6 @@ #include "ui/views/controls/label.h" #include "ui/views/widget/widget.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" -#endif - namespace { // This feature shows the full URL when the user focuses the omnibox via @@ -255,10 +252,8 @@ page_action_icons_.push_back(local_card_migration_icon_view_); } -#if defined(OS_CHROMEOS) page_action_icons_.push_back(intent_picker_view_ = new IntentPickerView(browser_, this)); -#endif page_action_icons_.push_back( star_view_ = new StarView(command_updater(), browser_, this)); @@ -547,10 +542,8 @@ if (star_view_) add_trailing_decoration(star_view_); add_trailing_decoration(page_action_icon_container_view_); -#if defined(OS_CHROMEOS) if (intent_picker_view_) add_trailing_decoration(intent_picker_view_); -#endif if (save_credit_card_icon_view_) add_trailing_decoration(save_credit_card_icon_view_); if (local_card_migration_icon_view_) @@ -775,9 +768,7 @@ IncrementalMinimumWidth(save_credit_card_icon_view_) + IncrementalMinimumWidth(local_card_migration_icon_view_); -#if defined(OS_CHROMEOS) trailing_width += IncrementalMinimumWidth(intent_picker_view_); -#endif // defined(OS_CHROMEOS) for (auto* content_setting_view : content_setting_views_) trailing_width += IncrementalMinimumWidth(content_setting_view);
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h index 0173842d..1880f5e 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.h +++ b/chrome/browser/ui/views/location_bar/location_bar_view.h
@@ -144,11 +144,9 @@ // Toggles the star on or off. void SetStarToggled(bool on); -#if defined(OS_CHROMEOS) // The intent picker, should not always be visible. It will be null when // |browser_| is null. IntentPickerView* intent_picker_view() { return intent_picker_view_; } -#endif // defined(OS_CHROMEOS) // The star. It may not be visible. It will be null when |browser_| is null. StarView* star_view() { return star_view_; } @@ -412,11 +410,9 @@ autofill::LocalCardMigrationIconView* local_card_migration_icon_view_ = nullptr; -#if defined(OS_CHROMEOS) - // The intent picker for accessing ARC's apps. It will be null when + // The intent picker for accessing apps. It will be null when // |browser_| is null. IntentPickerView* intent_picker_view_ = nullptr; -#endif // defined(OS_CHROMEOS) // The star for bookmarking. It will be null when |browser_| is null. StarView* star_view_ = nullptr;
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_view.cc b/chrome/browser/ui/views/page_action/page_action_icon_view.cc index 8f1ba0a..d554d2c 100644 --- a/chrome/browser/ui/views/page_action/page_action_icon_view.cc +++ b/chrome/browser/ui/views/page_action/page_action_icon_view.cc
@@ -65,10 +65,13 @@ return false; } +SkColor PageActionIconView::GetLabelColorForTesting() const { + return label()->enabled_color(); +} + SkColor PageActionIconView::GetTextColor() const { - // Returns the color of the label shown during animation. return GetNativeTheme()->GetSystemColor( - ui::NativeTheme::kColorId_LabelDisabledColor); + ui::NativeTheme::kColorId_TextfieldDefaultColor); } void PageActionIconView::GetAccessibleNodeData(ui::AXNodeData* node_data) { @@ -144,6 +147,7 @@ } void PageActionIconView::OnNativeThemeChanged(const ui::NativeTheme* theme) { + IconLabelBubbleView::OnNativeThemeChanged(theme); UpdateIconImage(); }
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_view.h b/chrome/browser/ui/views/page_action/page_action_icon_view.h index 6b89965..aefa154 100644 --- a/chrome/browser/ui/views/page_action/page_action_icon_view.h +++ b/chrome/browser/ui/views/page_action/page_action_icon_view.h
@@ -59,6 +59,8 @@ // Retrieve the text to be used for a tooltip or accessible name. virtual base::string16 GetTextForTooltipAndAccessibleName() const = 0; + SkColor GetLabelColorForTesting() const; + protected: enum ExecuteSource { EXECUTE_SOURCE_MOUSE,
diff --git a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc index 1f522fca..7e00cff 100644 --- a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc +++ b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
@@ -19,6 +19,7 @@ #include "chrome/test/base/ui_test_utils.h" #include "content/public/common/referrer.h" #include "services/network/public/cpp/network_switches.h" +#include "ui/gfx/color_utils.h" class PwaInstallViewBrowserTest : public InProcessBrowserTest { public: @@ -219,3 +220,22 @@ EXPECT_TRUE(pwa_install_view_->visible()); EXPECT_TRUE(pwa_install_view_->is_animating_label()); } + +// Tests that the icon label is visible against the omnibox background after the +// native widget becomes active. +IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, TextContrast) { + NavigateToURL(GetInstallableAppURL()); + ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck()); + EXPECT_TRUE(pwa_install_view_->visible()); + EXPECT_TRUE(pwa_install_view_->is_animating_label()); + + pwa_install_view_->GetWidget()->OnNativeWidgetActivationChanged(true); + + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); + SkColor omnibox_background = browser_view->GetLocationBarView()->GetColor( + OmniboxPart::LOCATION_BAR_BACKGROUND); + SkColor label_color = pwa_install_view_->GetLabelColorForTesting(); + EXPECT_EQ(SkColorGetA(label_color), SK_AlphaOPAQUE); + EXPECT_GT(color_utils::GetContrastRatio(omnibox_background, label_color), + color_utils::kMinimumReadableContrastRatio); +}
diff --git a/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.cc b/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.cc index 1491e3b..6dbdf475 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.cc
@@ -9,6 +9,8 @@ #include "chrome/browser/ui/views/autofill/save_card_icon_view.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" #include "chrome/browser/ui/views/chrome_typography.h" +#include "ui/views/bubble/bubble_dialog_delegate_view.h" +#include "ui/views/widget/widget.h" ToolbarPageActionIconContainerView::ToolbarPageActionIconContainerView( CommandUpdater* command_updater, @@ -20,8 +22,7 @@ // what we want here. Put placeholders for now. views::style::GetFont(CONTEXT_TOOLBAR_BUTTON, views::style::STYLE_PRIMARY)); - local_card_migration_icon_view_->SetVisible(false); - AddChildView(local_card_migration_icon_view_); + page_action_icons_.push_back(local_card_migration_icon_view_); save_card_icon_view_ = new autofill::SaveCardIconView( command_updater, browser, this, @@ -29,19 +30,20 @@ // what we want here. Put placeholders for now. views::style::GetFont(CONTEXT_TOOLBAR_BUTTON, views::style::STYLE_PRIMARY)); - save_card_icon_view_->SetVisible(false); - AddChildView(save_card_icon_view_); + page_action_icons_.push_back(save_card_icon_view_); + + for (PageActionIconView* icon_view : page_action_icons_) { + icon_view->SetVisible(false); + AddChildView(icon_view); + } } ToolbarPageActionIconContainerView::~ToolbarPageActionIconContainerView() = default; void ToolbarPageActionIconContainerView::UpdateAllIcons() { - if (local_card_migration_icon_view_) - local_card_migration_icon_view_->Update(); - - if (save_card_icon_view_) - save_card_icon_view_->Update(); + for (PageActionIconView* icon_view : page_action_icons_) + icon_view->Update(); } PageActionIconView* ToolbarPageActionIconContainerView::GetIconView( @@ -57,6 +59,15 @@ } } +bool ToolbarPageActionIconContainerView:: + ActivateFirstInactiveBubbleForAccessibility() { + for (PageActionIconView* icon_view : page_action_icons_) { + if (FocusInactiveBubbleForIcon(icon_view)) + return true; + } + return false; +} + void ToolbarPageActionIconContainerView::UpdatePageActionIcon( PageActionIconType icon_type) { PageActionIconView* icon = GetIconView(icon_type); @@ -73,3 +84,16 @@ ToolbarPageActionIconContainerView::GetWebContentsForPageActionIconView() { return browser_->tab_strip_model()->GetActiveWebContents(); } + +bool ToolbarPageActionIconContainerView::FocusInactiveBubbleForIcon( + PageActionIconView* icon_view) { + if (!icon_view->visible() || !icon_view->GetBubble()) + return false; + + views::Widget* widget = icon_view->GetBubble()->GetWidget(); + if (widget && widget->IsVisible() && !widget->IsActive()) { + widget->Show(); + return true; + } + return false; +}
diff --git a/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h b/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h index 62018c7f..b55c66cf 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_page_action_icon_container_view.h
@@ -32,6 +32,10 @@ PageActionIconView* GetIconView(PageActionIconType icon_type); + // Activate the first visible but inactive PageActionIconView for + // accessibility. + bool ActivateFirstInactiveBubbleForAccessibility(); + // ToolbarIconContainerView: void UpdateAllIcons() override; @@ -51,10 +55,14 @@ } private: + bool FocusInactiveBubbleForIcon(PageActionIconView* icon_view); + autofill::LocalCardMigrationIconView* local_card_migration_icon_view_ = nullptr; autofill::SaveCardIconView* save_card_icon_view_ = nullptr; + std::vector<PageActionIconView*> page_action_icons_; + Browser* const browser_; DISALLOW_COPY_AND_ASSIGN(ToolbarPageActionIconContainerView);
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index bc309e41..1754917e 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -37,6 +37,8 @@ #include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h" #include "chrome/browser/ui/views/extensions/extension_popup.h" #include "chrome/browser/ui/views/extensions/extensions_toolbar_button.h" +#include "chrome/browser/ui/views/frame/browser_view.h" +#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" #include "chrome/browser/ui/views/location_bar/star_view.h" #include "chrome/browser/ui/views/media_router/cast_toolbar_button.h" #include "chrome/browser/ui/views/tabs/tab_strip.h" @@ -87,14 +89,9 @@ #include "chrome/browser/ui/views/critical_notification_bubble_view.h" #endif -#if defined(OS_CHROMEOS) -#include "chrome/browser/ui/views/location_bar/intent_picker_view.h" -#else +#if !defined(OS_CHROMEOS) #include "chrome/browser/signin/signin_global_error_factory.h" #include "chrome/browser/ui/bookmarks/bookmark_bubble_sign_in_delegate.h" -#endif - -#if !defined(OS_CHROMEOS) #include "chrome/browser/ui/views/outdated_upgrade_bubble_view.h" #endif @@ -324,10 +321,15 @@ void ToolbarView::Update(WebContents* tab) { if (location_bar_) location_bar_->Update(tab); + if (browser_actions_) browser_actions_->RefreshToolbarActionViews(); + if (reload_) reload_->set_menu_enabled(chrome::IsDebuggerAttachedToCurrentTab(browser_)); + + if (toolbar_page_action_container_) + toolbar_page_action_container_->UpdateAllIcons(); } void ToolbarView::SetToolbarVisibility(bool visible) { @@ -368,7 +370,6 @@ return app_menu_button_ && app_menu_button_->HasFocus(); } -#if defined(OS_CHROMEOS) void ToolbarView::ShowIntentPickerBubble( std::vector<IntentPickerBubbleView::AppInfo> app_info, bool disable_stay_in_chrome, @@ -385,7 +386,6 @@ disable_stay_in_chrome, std::move(callback)); } } -#endif // defined(OS_CHROMEOS) void ToolbarView::ShowBookmarkBubble( const GURL& url,
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h index 6a1edcd..dac4531 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -16,6 +16,7 @@ #include "chrome/browser/ui/toolbar/back_forward_menu_model.h" #include "chrome/browser/ui/views/frame/browser_root_view.h" #include "chrome/browser/ui/views/frame/toolbar_button_provider.h" +#include "chrome/browser/ui/views/intent_picker_bubble_view.h" #include "chrome/browser/ui/views/location_bar/custom_tab_bar_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" #include "chrome/browser/ui/views/profiles/avatar_toolbar_button.h" @@ -31,7 +32,6 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/arc/intent_helper/arc_intent_picker_app_fetcher.h" -#include "chrome/browser/ui/views/intent_picker_bubble_view.h" #include "components/arc/common/intent_helper.mojom.h" // nogncheck https://crbug.com/784179 #include "components/arc/intent_helper/arc_intent_helper_bridge.h" #endif // defined(OS_CHROMEOS) @@ -112,12 +112,10 @@ // Returns true if the app menu is focused. bool IsAppMenuFocused(); -#if defined(OS_CHROMEOS) void ShowIntentPickerBubble( std::vector<IntentPickerBubbleView::AppInfo> app_info, bool disable_stay_in_chrome, IntentPickerResponse callback); -#endif // defined(OS_CHROMEOS) // Shows a bookmark bubble and anchors it appropriately. void ShowBookmarkBubble(const GURL& url,
diff --git a/chrome/browser/ui/views/webview_accessibility_browsertest.cc b/chrome/browser/ui/views/webview_accessibility_browsertest.cc new file mode 100644 index 0000000..1e368996 --- /dev/null +++ b/chrome/browser/ui/views/webview_accessibility_browsertest.cc
@@ -0,0 +1,106 @@ +// Copyright (c) 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/logging.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/views/frame/browser_view.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/browser/browser_context.h" +#include "content/public/test/browser_test_utils.h" +#include "content/public/test/content_browser_test_utils.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "net/test/embedded_test_server/request_handler_util.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/accessibility/ax_tree.h" +#include "ui/views/controls/webview/webview.h" +#include "url/gurl.h" + +constexpr base::FilePath::CharType kDocRoot[] = + FILE_PATH_LITERAL("chrome/test/data/accessibility"); + +namespace { + +int CountOffscreenButtons(const ui::AXTree* tree, const ui::AXNode* node) { + int count = 0; + if (node->data().role == ax::mojom::Role::kButton) { + bool offscreen = false; + tree->GetTreeBounds(node, &offscreen, /* clip = */ true); + if (offscreen) + count++; + } + + for (int i = 0; i < node->child_count(); i++) + count += CountOffscreenButtons(tree, node->children()[i]); + + return count; +} + +int CountOffscreenButtons(const ui::AXTreeUpdate& tree_update) { + ui::AXTree tree(tree_update); + DCHECK(tree.root()); + return CountOffscreenButtons(&tree, tree.root()); +} + +} // namespace + +class WebViewBrowserTest : public InProcessBrowserTest { + public: + WebViewBrowserTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) { + https_server_.AddDefaultHandlers(base::FilePath(kDocRoot)); + } + + protected: + void SetUpOnMainThread() override { + InProcessBrowserTest::SetUpOnMainThread(); + + ASSERT_TRUE(https_server_.Start()); + + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + + ui::AXMode mode = ui::kAXModeComplete; + mode.set_mode(ui::AXMode::kLabelImages, true); + web_contents->SetAccessibilityMode(mode); + } + + protected: + net::EmbeddedTestServer https_server_; + + private: + DISALLOW_COPY_AND_ASSIGN(WebViewBrowserTest); +}; + +IN_PROC_BROWSER_TEST_F(WebViewBrowserTest, ResizeWebView) { + ui_test_utils::NavigateToURL( + browser(), https_server_.GetURL("/fixed_size_document.html")); + + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); + views::WebView* contents_web_view = browser_view->contents_web_view(); + + // Resize the web view so that only one of the two buttons fits. + contents_web_view->SetSize(gfx::Size(300, 140)); + + content::WaitForAccessibilityTreeToContainNodeWithName(web_contents, + "Button 2"); + + // Wait for just one button to be offscreen + while (1 != CountOffscreenButtons( + content::GetAccessibilityTreeSnapshot(web_contents))) { + content::WaitForAccessibilityTreeToChange(web_contents); + } + + // Now resize the frame to be large enough for both buttons. + contents_web_view->SetSize(gfx::Size(300, 500)); + + // Now no buttons should be offscreen. + while (0 != CountOffscreenButtons( + content::GetAccessibilityTreeSnapshot(web_contents))) { + content::WaitForAccessibilityTreeToChange(web_contents); + } +}
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index 10c13ed..2327bcf 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -897,6 +897,10 @@ if (page_url.host_piece() == chrome::kChromeUIManagementHost) return ManagementUI::GetFaviconResourceBytes(scale_factor); + // Android doesn't use the App Management page. + if (page_url.host_piece() == chrome::kChromeUIAppManagementHost) + return settings_utils::GetFaviconResourceBytes(scale_factor); + #if BUILDFLAG(ENABLE_EXTENSIONS) if (page_url.host_piece() == chrome::kChromeUIExtensionsHost) { return extensions::ExtensionsUI::GetFaviconResourceBytes(scale_factor);
diff --git a/chrome/browser/ui/webui/welcome/welcome_ui.cc b/chrome/browser/ui/webui/welcome/welcome_ui.cc index b6abe2b..4eeda0c 100644 --- a/chrome/browser/ui/webui/welcome/welcome_ui.cc +++ b/chrome/browser/ui/webui/welcome/welcome_ui.cc
@@ -82,6 +82,7 @@ {"bookmarkRemoved", IDS_ONBOARDING_WELCOME_BOOKMARK_REMOVED}, {"bookmarksRemoved", IDS_ONBOARDING_WELCOME_BOOKMARKS_REMOVED}, {"bookmarkReplaced", IDS_ONBOARDING_WELCOME_BOOKMARK_REPLACED}, + {"defaultBrowserChanged", IDS_ONBOARDING_DEFAULT_BROWSER_CHANGED}, {"getStarted", IDS_ONBOARDING_WELCOME_GET_STARTED}, {"headerText", IDS_WELCOME_HEADER}, {"next", IDS_ONBOARDING_WELCOME_NEXT},
diff --git a/chrome/browser/vr/model/capturing_state_model.h b/chrome/browser/vr/model/capturing_state_model.h index 367c960..6e5f0d25 100644 --- a/chrome/browser/vr/model/capturing_state_model.h +++ b/chrome/browser/vr/model/capturing_state_model.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_VR_MODEL_CAPTURING_STATE_MODEL_H_ #define CHROME_BROWSER_VR_MODEL_CAPTURING_STATE_MODEL_H_ +#include <string> + #include "chrome/browser/vr/vr_base_export.h" namespace vr { @@ -15,6 +17,24 @@ bool screen_capture_enabled = false; bool location_access_enabled = false; bool bluetooth_connected = false; + + bool operator==(const CapturingStateModel& rhs) const { + return audio_capture_enabled == rhs.audio_capture_enabled && + video_capture_enabled == rhs.video_capture_enabled && + screen_capture_enabled == rhs.screen_capture_enabled && + location_access_enabled == rhs.location_access_enabled && + bluetooth_connected == rhs.bluetooth_connected; + } + + bool operator!=(const CapturingStateModel& rhs) const { + return !(*this == rhs); + } + + bool IsAnyCapturingEnabled() const { + return audio_capture_enabled || video_capture_enabled || + screen_capture_enabled || location_access_enabled || + bluetooth_connected; + } }; typedef bool CapturingStateModel::*CapturingStateModelMemberPtr;
diff --git a/chrome/browser/vr/test/ui_utils.cc b/chrome/browser/vr/test/ui_utils.cc index 79ee450..6d7f8e1 100644 --- a/chrome/browser/vr/test/ui_utils.cc +++ b/chrome/browser/vr/test/ui_utils.cc
@@ -75,9 +75,8 @@ main_thread_task_runner_->PostTask( FROM_HERE, - base::BindOnce( - &BrowserRenderer::WatchElementForVisibilityStatusForTesting, - base::Unretained(GetBrowserRenderer()), visibility_expectation)); + base::BindOnce(&UiUtils::WatchElementForVisibilityStatusForTesting, + base::Unretained(this), visibility_expectation)); wait_loop.Run(); @@ -88,6 +87,19 @@ << UiTestOperationResultToString(result) << "'"; } +void UiUtils::WatchElementForVisibilityStatusForTesting( + VisibilityChangeExpectation visibility_expectation) { + BrowserRenderer* browser_renderer = UiUtils::GetBrowserRenderer(); + if (browser_renderer) { + interface_ = + std::make_unique<BrowserTestBrowserRendererBrowserInterface>(this); + browser_renderer->SetBrowserRendererBrowserInterfaceForTesting( + interface_.get()); + browser_renderer->WatchElementForVisibilityStatusForTesting( + visibility_expectation); + } +} + void UiUtils::ReportUiOperationResult(const UiTestOperationType& action_type, const UiTestOperationResult& result) { ui_operation_results_[static_cast<int>(action_type)] = result;
diff --git a/chrome/browser/vr/test/ui_utils.h b/chrome/browser/vr/test/ui_utils.h index 3b4f68b2..7838f53b 100644 --- a/chrome/browser/vr/test/ui_utils.h +++ b/chrome/browser/vr/test/ui_utils.h
@@ -55,6 +55,8 @@ static VRBrowserRendererThreadWin* GetRendererThread(); static BrowserRenderer* GetBrowserRenderer(); + void WatchElementForVisibilityStatusForTesting( + VisibilityChangeExpectation visibility_expectation); std::string UiTestOperationResultToString(UiTestOperationResult& result); std::unique_ptr<BrowserTestBrowserRendererBrowserInterface> interface_;
diff --git a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc index 73ed60b..0febaa4 100644 --- a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc +++ b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
@@ -7,18 +7,21 @@ #include <memory> #include "base/task/post_task.h" +#include "chrome/browser/content_settings/tab_specific_content_settings.h" +#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h" +#include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" +#include "chrome/browser/permissions/permission_manager.h" +#include "chrome/browser/permissions/permission_result.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/ssl/security_state_tab_helper.h" #include "chrome/browser/vr/metrics/session_metrics_helper.h" #include "chrome/browser/vr/service/browser_xr_runtime.h" #include "chrome/browser/vr/service/xr_runtime_manager.h" #include "chrome/browser/vr/vr_tab_helper.h" #include "chrome/browser/vr/win/vr_browser_renderer_thread_win.h" -#include "components/strings/grit/components_strings.h" -#include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" -#include "content/public/browser/render_process_host.h" -#include "content/public/browser/render_view_host.h" +#include "content/public/common/service_manager_connection.h" +#include "services/device/public/mojom/constants.mojom.h" +#include "services/service_manager/public/cpp/connector.h" #include "ui/base/l10n/l10n_util.h" namespace vr { @@ -26,11 +29,18 @@ namespace { static constexpr base::TimeDelta kPermissionPromptTimeout = base::TimeDelta::FromSeconds(5); + +static constexpr base::TimeDelta kPollCapturingStateInterval = + base::TimeDelta::FromSecondsD(0.2); + +const CapturingStateModel g_default_capturing_state; } // namespace VRUiHostImpl::VRUiHostImpl(device::mojom::XRDeviceId device_id, device::mojom::XRCompositorHostPtr compositor) - : compositor_(std::move(compositor)), weak_ptr_factory_(this) { + : compositor_(std::move(compositor)), + main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()), + weak_ptr_factory_(this) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DVLOG(1) << __func__; @@ -39,6 +49,10 @@ if (runtime) { runtime->AddObserver(this); } + + auto* connector = + content::ServiceManagerConnection::GetForProcess()->GetConnector(); + connector->BindInterface(device::mojom::kServiceName, &geolocation_config_); } VRUiHostImpl::~VRUiHostImpl() { @@ -109,8 +123,11 @@ web_contents_ = contents; if (contents) { StartUiRendering(); + InitCapturingStates(); ui_rendering_thread_->SetWebXrPresenting(true); + PollCapturingState(); + PermissionRequestManager::CreateForWebContents(contents); permission_request_manager_ = PermissionRequestManager::FromWebContents(contents); @@ -129,6 +146,8 @@ DVLOG(1) << __func__ << ": No PermissionRequestManager"; } } else { + poll_capturing_state_task_.Cancel(); + if (ui_rendering_thread_) ui_rendering_thread_->SetWebXrPresenting(false); StopUiRendering(); @@ -159,6 +178,7 @@ void VRUiHostImpl::StopUiRendering() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DVLOG(1) << __func__; + ui_rendering_thread_ = nullptr; } @@ -185,30 +205,130 @@ SetLocationInfoOnUi(); + if (indicators_visible_) { + indicators_visible_ = false; + ui_rendering_thread_->SetIndicatorsVisible(false); + } + ui_rendering_thread_->SetVisibleExternalPromptNotification( ExternalPromptNotificationType::kPromptGenericPermission); - is_prompt_showing_in_headset_ = true; - current_prompt_sequence_num_++; - base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( - FROM_HERE, - base::BindOnce(&VRUiHostImpl::RemoveHeadsetNotificationPrompt, - weak_ptr_factory_.GetWeakPtr(), - current_prompt_sequence_num_), + is_external_prompt_showing_in_headset_ = true; + external_prompt_timeout_task_.Reset( + base::BindRepeating(&VRUiHostImpl::RemoveHeadsetNotificationPrompt, + weak_ptr_factory_.GetWeakPtr())); + main_thread_task_runner_->PostDelayedTask( + FROM_HERE, external_prompt_timeout_task_.callback(), kPermissionPromptTimeout); } void VRUiHostImpl::OnBubbleRemoved() { - RemoveHeadsetNotificationPrompt(current_prompt_sequence_num_); + external_prompt_timeout_task_.Cancel(); + RemoveHeadsetNotificationPrompt(); } -void VRUiHostImpl::RemoveHeadsetNotificationPrompt(int prompt_sequence_num) { - if (!is_prompt_showing_in_headset_) +void VRUiHostImpl::RemoveHeadsetNotificationPrompt() { + if (!is_external_prompt_showing_in_headset_) return; - if (prompt_sequence_num != current_prompt_sequence_num_) - return; - is_prompt_showing_in_headset_ = false; + is_external_prompt_showing_in_headset_ = false; ui_rendering_thread_->SetVisibleExternalPromptNotification( ExternalPromptNotificationType::kPromptNone); + indicators_shown_start_time_ = base::Time::Now(); } + +void VRUiHostImpl::InitCapturingStates() { + active_capturing_ = g_default_capturing_state; + potential_capturing_ = g_default_capturing_state; + + DCHECK(web_contents_); + PermissionManager* permission_manager = PermissionManager::Get( + Profile::FromBrowserContext(web_contents_->GetBrowserContext())); + const GURL& origin = web_contents_->GetLastCommittedURL(); + content::RenderFrameHost* rfh = web_contents_->GetMainFrame(); + potential_capturing_.audio_capture_enabled = + permission_manager + ->GetPermissionStatusForFrame( + ContentSettingsType::CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, rfh, + origin) + .content_setting == CONTENT_SETTING_ALLOW; + potential_capturing_.video_capture_enabled = + permission_manager + ->GetPermissionStatusForFrame( + ContentSettingsType::CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, + rfh, origin) + .content_setting == CONTENT_SETTING_ALLOW; + potential_capturing_.location_access_enabled = + permission_manager + ->GetPermissionStatusForFrame( + ContentSettingsType::CONTENT_SETTINGS_TYPE_GEOLOCATION, rfh, + origin) + .content_setting == CONTENT_SETTING_ALLOW; + + indicators_shown_start_time_ = base::Time::Now(); + indicators_visible_ = false; +} + +void VRUiHostImpl::PollCapturingState() { + poll_capturing_state_task_.Reset(base::BindRepeating( + &VRUiHostImpl::PollCapturingState, base::Unretained(this))); + main_thread_task_runner_->PostDelayedTask( + FROM_HERE, poll_capturing_state_task_.callback(), + kPollCapturingStateInterval); + + // Microphone, Camera, location. + CapturingStateModel active_capturing = active_capturing_; + TabSpecificContentSettings* settings = + TabSpecificContentSettings::FromWebContents(web_contents_); + if (settings) { + const ContentSettingsUsagesState& usages_state = + settings->geolocation_usages_state(); + if (!usages_state.state_map().empty()) { + unsigned int state_flags = 0; + usages_state.GetDetailedInfo(nullptr, &state_flags); + active_capturing.location_access_enabled = !!( + state_flags & ContentSettingsUsagesState::TABSTATE_HAS_ANY_ALLOWED); + } + active_capturing.audio_capture_enabled = + (settings->GetMicrophoneCameraState() & + TabSpecificContentSettings::MICROPHONE_ACCESSED) && + !(settings->GetMicrophoneCameraState() & + TabSpecificContentSettings::MICROPHONE_BLOCKED); + active_capturing.video_capture_enabled = + (settings->GetMicrophoneCameraState() & + TabSpecificContentSettings::CAMERA_ACCESSED) & + !(settings->GetMicrophoneCameraState() & + TabSpecificContentSettings::CAMERA_BLOCKED); + } + + // Screen capture, bluetooth. + scoped_refptr<MediaStreamCaptureIndicator> indicator = + MediaCaptureDevicesDispatcher::GetInstance() + ->GetMediaStreamCaptureIndicator(); + active_capturing.screen_capture_enabled = + indicator->IsBeingMirrored(web_contents_); + active_capturing.bluetooth_connected = + web_contents_->IsConnectedToBluetoothDevice(); + + if (active_capturing_ != active_capturing) { + indicators_shown_start_time_ = base::Time::Now(); + } + + active_capturing_ = active_capturing; + ui_rendering_thread_->SetCapturingState( + active_capturing_, g_default_capturing_state, potential_capturing_); + + if (indicators_shown_start_time_ + kPermissionPromptTimeout > + base::Time::Now()) { + if (!indicators_visible_ && !is_external_prompt_showing_in_headset_) { + indicators_visible_ = true; + ui_rendering_thread_->SetIndicatorsVisible(true); + } + } else { + if (indicators_visible_) { + indicators_visible_ = false; + ui_rendering_thread_->SetIndicatorsVisible(false); + } + } +} + } // namespace vr
diff --git a/chrome/browser/vr/ui_host/vr_ui_host_impl.h b/chrome/browser/vr/ui_host/vr_ui_host_impl.h index 03f3bd8..07d12bb 100644 --- a/chrome/browser/vr/ui_host/vr_ui_host_impl.h +++ b/chrome/browser/vr/ui_host/vr_ui_host_impl.h
@@ -5,13 +5,17 @@ #ifndef CHROME_BROWSER_VR_UI_HOST_VR_UI_HOST_IMPL_H_ #define CHROME_BROWSER_VR_UI_HOST_VR_UI_HOST_IMPL_H_ +#include "base/callback.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "base/single_thread_task_runner.h" #include "base/threading/thread_checker.h" #include "chrome/browser/permissions/permission_request_manager.h" +#include "chrome/browser/vr/model/capturing_state_model.h" #include "chrome/browser/vr/service/browser_xr_runtime.h" #include "chrome/browser/vr/service/vr_ui_host.h" #include "content/public/browser/web_contents.h" +#include "services/device/public/mojom/geolocation_config.mojom.h" namespace vr { @@ -46,17 +50,28 @@ void OnBubbleAdded() override; void OnBubbleRemoved() override; - void RemoveHeadsetNotificationPrompt(int prompt_sequence_num); + void RemoveHeadsetNotificationPrompt(); void SetLocationInfoOnUi(); + void InitCapturingStates(); + void PollCapturingState(); + device::mojom::XRCompositorHostPtr compositor_; std::unique_ptr<VRBrowserRendererThreadWin> ui_rendering_thread_; device::mojom::VRDisplayInfoPtr info_; content::WebContents* web_contents_ = nullptr; PermissionRequestManager* permission_request_manager_ = nullptr; + scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; - bool is_prompt_showing_in_headset_ = false; - int current_prompt_sequence_num_ = 0; + base::CancelableClosure external_prompt_timeout_task_; + bool is_external_prompt_showing_in_headset_ = false; + + CapturingStateModel active_capturing_; + CapturingStateModel potential_capturing_; + device::mojom::GeolocationConfigPtr geolocation_config_; + base::CancelableClosure poll_capturing_state_task_; + base::Time indicators_shown_start_time_; + bool indicators_visible_ = false; THREAD_CHECKER(thread_checker_);
diff --git a/chrome/browser/vr/ui_scene_creator.cc b/chrome/browser/vr/ui_scene_creator.cc index 984ddb62..58329c02c 100644 --- a/chrome/browser/vr/ui_scene_creator.cc +++ b/chrome/browser/vr/ui_scene_creator.cc
@@ -685,8 +685,9 @@ std::unique_ptr<UiElement> CreateWebVrIndicator(Model* model, UiBrowserInterface* browser, - IndicatorSpec spec) { - auto container = Create<Rect>(spec.webvr_name, kPhaseOverlayForeground); + IndicatorSpec spec, + DrawPhase phase) { + auto container = Create<Rect>(spec.webvr_name, phase); VR_BIND_COLOR(model, container.get(), &ColorScheme::webvr_permission_background, &Rect::SetColor); container->set_corner_radius(kWebVrPermissionCornerRadius); @@ -699,7 +700,7 @@ auto layout = Create<LinearLayout>(kNone, kPhaseNone, LinearLayout::kRight); layout->set_margin(kWebVrPermissionMargin); - auto icon_element = Create<VectorIcon>(kNone, kPhaseOverlayForeground, 128); + auto icon_element = Create<VectorIcon>(kNone, phase, 128); VR_BIND_COLOR(model, icon_element.get(), &ColorScheme::webvr_permission_foreground, &VectorIcon::SetColor); @@ -717,12 +718,12 @@ std::unique_ptr<UiElement> description_element; if (spec.is_url) { auto url_text = Create<UrlText>( - kNone, kPhaseOverlayForeground, kWebVrPermissionFontHeight, + kNone, phase, kWebVrPermissionFontHeight, base::BindRepeating(&UiBrowserInterface::OnUnsupportedMode, base::Unretained(browser), UiUnsupportedMode::kUnhandledCodePoint) - ); + ); url_text->SetFieldWidth(kWebVrPermissionTextWidth); url_text->AddBinding(VR_BIND_FUNC(GURL, Model, model, model->location_bar_state.gurl, UrlText, @@ -736,8 +737,7 @@ description_element = std::move(url_text); } else { - auto text_element = Create<Text>(kNone, kPhaseOverlayForeground, - kWebVrPermissionFontHeight); + auto text_element = Create<Text>(kNone, phase, kWebVrPermissionFontHeight); text_element->SetLayoutMode(kMultiLineFixedWidth); text_element->SetAlignment(kTextAlignmentLeft); text_element->SetColor(SK_ColorWHITE); @@ -758,12 +758,11 @@ return container; } -std::unique_ptr<UiElement> CreateHostedUi( - Model* model, - UiBrowserInterface* browser, - UiElementName name, - UiElementName element_name, - float distance) { +std::unique_ptr<UiElement> CreateHostedUi(Model* model, + UiBrowserInterface* browser, + UiElementName name, + UiElementName element_name, + float distance) { auto hosted_ui = Create<PlatformUiElement>(element_name, kPhaseForeground); hosted_ui->SetSize(kContentWidth * kHostedUiWidthRatio, kContentHeight * kHostedUiHeightRatio); @@ -942,6 +941,178 @@ return parent; } +#if defined(OS_WIN) +void BindIndicatorTranscienceForWin( + TransientElement* e, + Model* model, + UiScene* scene, + const base::Optional< + std::tuple<bool, CapturingStateModel, CapturingStateModel>>& last_value, + const std::tuple<bool, CapturingStateModel, CapturingStateModel>& value) { + const bool in_web_vr_presentation = model->web_vr_enabled() && + model->web_vr.IsImmersiveWebXrVisible() && + model->web_vr.has_received_permissions; + + const CapturingStateModel active_capture = std::get<1>(value); + const CapturingStateModel potential_capture = std::get<2>(value); + const CapturingStateModel last_active_capture = + last_value ? std::get<1>(last_value.value()) : CapturingStateModel(); + const CapturingStateModel last_potential_capture = + last_value ? std::get<2>(last_value.value()) : CapturingStateModel(); + + // Update the visibility state of the indicators based on the capturing state + // diff. potential_capture represents the permissions granted to the site + // before the presentation. active_capture members are set when a relevant + // device starts to get used. + // When the session starts, indicators display which permissions are granted + // upfront (struct potential_capture). Then, when a device gets accessed, + // an indicator notifies the user about its usage. + // The below logic tries to capture this logic. + bool initial_toasts = !active_capture.IsAnyCapturingEnabled(); + if (active_capture != last_active_capture || + potential_capture != last_potential_capture) { + auto specs = GetIndicatorSpecs(); + for (const auto& spec : specs) { + bool allowed = potential_capture.*spec.signal; + bool triggered = + !(last_active_capture.*spec.signal) && (active_capture.*spec.signal); + bool show_ui = initial_toasts ? allowed : triggered; + SetVisibleInLayout(scene->GetUiElementByName(spec.webvr_name), show_ui); + } + } + + if (!in_web_vr_presentation) { + e->SetVisibleImmediately(false); + return; + } + + e->SetVisible(true); + e->RefreshVisible(); + SetVisibleInLayout(scene->GetUiElementByName(kWebVrExclusiveScreenToast), + !model->browsing_disabled); + + e->RemoveKeyframeModels(TRANSFORM); + + e->SetTranslate(0, kWebVrPermissionOffsetStart, 0); + + // Build up a keyframe model for the initial transition. + std::unique_ptr<cc::KeyframedTransformAnimationCurve> curve( + cc::KeyframedTransformAnimationCurve::Create()); + + cc::TransformOperations value_1; + value_1.AppendTranslate(0, kWebVrPermissionOffsetStart, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta(), value_1, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + cc::TransformOperations value_2; + value_2.AppendTranslate(0, kWebVrPermissionOffsetOvershoot, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta::FromMilliseconds(kWebVrPermissionOffsetMs), value_2, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + cc::TransformOperations value_3; + value_3.AppendTranslate(0, kWebVrPermissionOffsetFinal, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta::FromMilliseconds(kWebVrPermissionAnimationDurationMs), + value_3, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + e->AddKeyframeModel(cc::KeyframeModel::Create( + std::move(curve), Animation::GetNextKeyframeModelId(), + Animation::GetNextGroupId(), TRANSFORM)); +} + +#else + +void BindIndicatorTranscience( + TransientElement* e, + Model* model, + UiScene* scene, + const base::Optional<std::tuple<bool, bool, bool>>& last_value, + const std::tuple<bool, bool, bool>& value) { + const bool in_web_vr_presentation = std::get<0>(value); + const bool in_long_press = std::get<1>(value); + const bool showing_hosted_ui = std::get<2>(value); + const bool was_in_long_press = last_value && std::get<1>(last_value.value()); + const bool was_showing_hosted_ui = + last_value && std::get<2>(last_value.value()); + + if (!in_web_vr_presentation) { + e->SetVisibleImmediately(false); + return; + } + + // The reason we need the previous state is to disguish the + // situation where the app button has been released after a long + // press, and the situation when we want to initially show the + // indicators. + if (was_in_long_press && !in_long_press) + return; + + // Similarly, we need to know when we've finished presenting hosted + // ui because we should not show indicators then. + if (was_showing_hosted_ui && !showing_hosted_ui) + return; + + e->SetVisible(true); + e->RefreshVisible(); + SetVisibleInLayout(scene->GetUiElementByName(kWebVrExclusiveScreenToast), + !model->browsing_disabled && !in_long_press); + + auto specs = GetIndicatorSpecs(); + for (const auto& spec : specs) { + SetVisibleInLayout(scene->GetUiElementByName(spec.webvr_name), + model->active_capturing.*spec.signal || + model->potential_capturing.*spec.signal || + model->background_capturing.*spec.signal); + } + + e->RemoveKeyframeModels(TRANSFORM); + if (in_long_press) { + // We do not do a translation animation for long press. + e->SetTranslate(0, 0, 0); + return; + } + + e->SetTranslate(0, kWebVrPermissionOffsetStart, 0); + + // Build up a keyframe model for the initial transition. + std::unique_ptr<cc::KeyframedTransformAnimationCurve> curve( + cc::KeyframedTransformAnimationCurve::Create()); + + cc::TransformOperations value_1; + value_1.AppendTranslate(0, kWebVrPermissionOffsetStart, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta(), value_1, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + cc::TransformOperations value_2; + value_2.AppendTranslate(0, kWebVrPermissionOffsetOvershoot, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta::FromMilliseconds(kWebVrPermissionOffsetMs), value_2, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + cc::TransformOperations value_3; + value_3.AppendTranslate(0, kWebVrPermissionOffsetFinal, 0); + curve->AddKeyframe(cc::TransformKeyframe::Create( + base::TimeDelta::FromMilliseconds(kWebVrPermissionAnimationDurationMs), + value_3, + cc::CubicBezierTimingFunction::CreatePreset( + cc::CubicBezierTimingFunction::EaseType::EASE))); + + e->AddKeyframeModel(cc::KeyframeModel::Create( + std::move(curve), Animation::GetNextKeyframeModelId(), + Animation::GetNextGroupId(), TRANSFORM)); +} + +#endif + } // namespace UiSceneCreator::UiSceneCreator(UiBrowserInterface* browser, @@ -1845,8 +2016,7 @@ float, Model, model_, model->reposition_window_enabled() ? kRepositionContentOpacity : 1.0f, UiElement, content_toggle.get(), SetOpacity)); - scene_->AddParentUiElement(k2dBrowsingForeground, - std::move(content_toggle)); + scene_->AddParentUiElement(k2dBrowsingForeground, std::move(content_toggle)); auto hit_plane = Create<InvisibleHitTarget>(kContentRepositionHitPlane, kPhaseForeground); @@ -2311,7 +2481,8 @@ }; std::vector<MenuItem> menu_items = { { - kOverflowMenuNewIncognitoTabItem, new_incognito_tab_res_id, + kOverflowMenuNewIncognitoTabItem, + new_incognito_tab_res_id, base::BindRepeating( [](UiBrowserInterface* browser) { browser->OpenNewTab(true); }), base::BindRepeating([](Model* m) { return !m->incognito; }), @@ -2803,6 +2974,8 @@ indicators->SetTranslate(0, 0, kWebVrPermissionDepth); indicators->set_margin(kWebVrPermissionOuterMargin); + DrawPhase phase = kPhaseOverlayForeground; + IndicatorSpec app_button_spec = {kNone, kWebVrExclusiveScreenToast, GetVrIcon(kVrRemoveCircleOutlineIcon), @@ -2811,15 +2984,34 @@ 0, nullptr, false}; - indicators->AddChild(CreateWebVrIndicator(model_, browser_, app_button_spec)); + indicators->AddChild( + CreateWebVrIndicator(model_, browser_, app_button_spec, phase)); auto specs = GetIndicatorSpecs(); for (const auto& spec : specs) { - indicators->AddChild(CreateWebVrIndicator(model_, browser_, spec)); + indicators->AddChild(CreateWebVrIndicator(model_, browser_, spec, phase)); } auto parent = CreateTransientParent(kWebVrIndicatorTransience, kToastTimeoutSeconds, true); +#if defined(OS_WIN) + parent->AddBinding( + std::make_unique< + Binding<std::tuple<bool, CapturingStateModel, CapturingStateModel>>>( + VR_BIND_LAMBDA( + [](Model* model) { + return std::tuple<bool, CapturingStateModel, + CapturingStateModel>( + model->web_vr_enabled() && + model->web_vr.IsImmersiveWebXrVisible() && + model->web_vr.has_received_permissions, + model->active_capturing, model->potential_capturing); + }, + base::Unretained(model_)), + VR_BIND_LAMBDA(BindIndicatorTranscienceForWin, + base::Unretained(parent.get()), + base::Unretained(model_), base::Unretained(scene_)))); +#else parent->AddBinding(std::make_unique<Binding<std::tuple<bool, bool, bool>>>( VR_BIND_LAMBDA( [](Model* model) { @@ -2831,93 +3023,9 @@ model->web_vr.showing_hosted_ui); }, base::Unretained(model_)), - VR_BIND_LAMBDA( - [](TransientElement* e, Model* model, UiScene* scene, - const base::Optional<std::tuple<bool, bool, bool>>& last_value, - const std::tuple<bool, bool, bool>& value) { - const bool in_web_vr_presentation = std::get<0>(value); - const bool in_long_press = std::get<1>(value); - const bool showing_hosted_ui = std::get<2>(value); - const bool was_in_long_press = - last_value && std::get<1>(last_value.value()); - const bool was_showing_hosted_ui = - last_value && std::get<2>(last_value.value()); - - if (!in_web_vr_presentation) { - e->SetVisibleImmediately(false); - return; - } - - // The reason we need the previous state is to disguish the - // situation where the app button has been released after a long - // press, and the situation when we want to initially show the - // indicators. - if (was_in_long_press && !in_long_press) - return; - - // Similarly, we need to know when we've finished presenting hosted - // ui because we should not show indicators then. - if (was_showing_hosted_ui && !showing_hosted_ui) - return; - - e->SetVisible(true); - e->RefreshVisible(); - SetVisibleInLayout( - scene->GetUiElementByName(kWebVrExclusiveScreenToast), - !model->browsing_disabled && !in_long_press); - - auto specs = GetIndicatorSpecs(); - for (const auto& spec : specs) { - SetVisibleInLayout( - scene->GetUiElementByName(spec.webvr_name), - model->active_capturing.*spec.signal || - model->potential_capturing.*spec.signal || - model->background_capturing.*spec.signal); - } - - e->RemoveKeyframeModels(TRANSFORM); - if (in_long_press) { - // We do not do a translation animation for long press. - e->SetTranslate(0, 0, 0); - return; - } - - e->SetTranslate(0, kWebVrPermissionOffsetStart, 0); - - // Build up a keyframe model for the initial transition. - std::unique_ptr<cc::KeyframedTransformAnimationCurve> curve( - cc::KeyframedTransformAnimationCurve::Create()); - - cc::TransformOperations value_1; - value_1.AppendTranslate(0, kWebVrPermissionOffsetStart, 0); - curve->AddKeyframe(cc::TransformKeyframe::Create( - base::TimeDelta(), value_1, - cc::CubicBezierTimingFunction::CreatePreset( - cc::CubicBezierTimingFunction::EaseType::EASE))); - - cc::TransformOperations value_2; - value_2.AppendTranslate(0, kWebVrPermissionOffsetOvershoot, 0); - curve->AddKeyframe(cc::TransformKeyframe::Create( - base::TimeDelta::FromMilliseconds(kWebVrPermissionOffsetMs), - value_2, - cc::CubicBezierTimingFunction::CreatePreset( - cc::CubicBezierTimingFunction::EaseType::EASE))); - - cc::TransformOperations value_3; - value_3.AppendTranslate(0, kWebVrPermissionOffsetFinal, 0); - curve->AddKeyframe(cc::TransformKeyframe::Create( - base::TimeDelta::FromMilliseconds( - kWebVrPermissionAnimationDurationMs), - value_3, - cc::CubicBezierTimingFunction::CreatePreset( - cc::CubicBezierTimingFunction::EaseType::EASE))); - - e->AddKeyframeModel(cc::KeyframeModel::Create( - std::move(curve), Animation::GetNextKeyframeModelId(), - Animation::GetNextGroupId(), TRANSFORM)); - }, - base::Unretained(parent.get()), base::Unretained(model_), - base::Unretained(scene_)))); + VR_BIND_LAMBDA(BindIndicatorTranscience, base::Unretained(parent.get()), + base::Unretained(model_), base::Unretained(scene_)))); +#endif auto scaler = std::make_unique<ScaledDepthAdjuster>(kWebVrToastDistance); scaler->AddChild(std::move(indicators));
diff --git a/chrome/browser/vr/ui_unittest.cc b/chrome/browser/vr/ui_unittest.cc index e494271..070be975 100644 --- a/chrome/browser/vr/ui_unittest.cc +++ b/chrome/browser/vr/ui_unittest.cc
@@ -1307,6 +1307,7 @@ // Ensures that permissions do not appear after showing hosted UI. TEST_F(UiTest, DoNotShowIndicatorsAfterHostedUi) { +#if !defined(OS_WIN) CreateScene(kInWebVr); auto browser_ui = ui_->GetBrowserUiWeakPtr(); browser_ui->SetWebVrMode(true); @@ -1323,12 +1324,14 @@ model_->web_vr.showing_hosted_ui = false; OnBeginFrame(); EXPECT_FALSE(IsVisible(kWebVrExclusiveScreenToast)); +#endif } // Ensures that permissions appear on long press, and that when the menu button // is released that we do not show the exclusive screen toast. Distinguishing // these cases requires knowledge of the previous state. TEST_F(UiTest, LongPressMenuButtonInWebVrMode) { +#if !defined(OS_WIN) CreateScene(kInWebVr); auto browser_ui = ui_->GetBrowserUiWeakPtr(); browser_ui->SetWebVrMode(true); @@ -1360,6 +1363,7 @@ std::make_unique<InputEvent>(InputEvent::kMenuButtonLongPressEnd)); ui_->HandleMenuButtonEvents(&events); EXPECT_FALSE(model_->menu_button_long_pressed); +#endif } TEST_F(UiTest, MenuItems) {
diff --git a/chrome/browser/vr/win/graphics_delegate_win.cc b/chrome/browser/vr/win/graphics_delegate_win.cc index e156569..2a6627e 100644 --- a/chrome/browser/vr/win/graphics_delegate_win.cc +++ b/chrome/browser/vr/win/graphics_delegate_win.cc
@@ -304,7 +304,7 @@ } void GraphicsDelegateWin::PrepareBufferForBrowserUi() { - gl_->ClearColor(0, 1, 0, 1); + gl_->ClearColor(0, 0, 0, 0); gl_->Clear(GL_COLOR_BUFFER_BIT); DCHECK(prepared_drawing_buffer_ == DrawingBufferMode::kNone);
diff --git a/chrome/browser/vr/win/scheduler_delegate_win.cc b/chrome/browser/vr/win/scheduler_delegate_win.cc index 271224d..3d171cc8 100644 --- a/chrome/browser/vr/win/scheduler_delegate_win.cc +++ b/chrome/browser/vr/win/scheduler_delegate_win.cc
@@ -13,13 +13,14 @@ void SchedulerDelegateWin::OnPose(base::OnceCallback<void()> on_frame_ended, gfx::Transform head_pose, + bool draw_overlay, bool draw_ui) { on_frame_ended_ = std::move(on_frame_ended); base::TimeTicks now = base::TimeTicks::Now(); - if (draw_ui) - browser_renderer_->DrawBrowserFrame(now); - else + if (draw_overlay) browser_renderer_->DrawWebXrFrame(now, head_pose); + else if (draw_ui) + browser_renderer_->DrawBrowserFrame(now); } void SchedulerDelegateWin::OnPause() {
diff --git a/chrome/browser/vr/win/scheduler_delegate_win.h b/chrome/browser/vr/win/scheduler_delegate_win.h index 1c0c120..f2e0945 100644 --- a/chrome/browser/vr/win/scheduler_delegate_win.h +++ b/chrome/browser/vr/win/scheduler_delegate_win.h
@@ -17,6 +17,7 @@ // Tell browser when poses available, when we rendered, etc. void OnPose(base::OnceCallback<void()> on_frame_ended, gfx::Transform head_pose, + bool draw_overlay, bool draw_ui); private:
diff --git a/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc b/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc index 16d329e..1501421e 100644 --- a/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc +++ b/chrome/browser/vr/win/vr_browser_renderer_thread_win.cc
@@ -57,6 +57,8 @@ started_ = false; graphics_ = nullptr; scheduler_ = nullptr; + ui_ = nullptr; + scheduler_ui_ = nullptr; } void VRBrowserRendererThreadWin::SetVRDisplayInfo( @@ -115,6 +117,13 @@ OnSpinnerVisibilityChanged(false); } +int VRBrowserRendererThreadWin::GetNextRequestId() { + current_request_id_++; + if (current_request_id_ >= 0x10000) + current_request_id_ = 0; + return current_request_id_; +} + void VRBrowserRendererThreadWin::OnWebXrTimeoutImminent() { OnSpinnerVisibilityChanged(true); scheduler_ui_->OnWebXrTimeoutImminent(); @@ -135,16 +144,48 @@ ui_->SetVisibleExternalPromptNotification(prompt); - overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), - draw_state_.ShouldDrawWebXR()); + if (overlay_) + overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), + draw_state_.ShouldDrawWebXR()); if (draw_state_.ShouldDrawUI()) { - overlay_->RequestNextOverlayPose(base::BindOnce( - &VRBrowserRendererThreadWin::OnPose, base::Unretained(this))); + if (overlay_) // False only while testing + overlay_->RequestNextOverlayPose( + base::BindOnce(&VRBrowserRendererThreadWin::OnPose, + base::Unretained(this), GetNextRequestId())); } else { StopOverlay(); } } +void VRBrowserRendererThreadWin::SetIndicatorsVisible(bool visible) { + if (!draw_state_.SetIndicatorsVisible(visible)) + return; + + if (draw_state_.ShouldDrawUI()) + StartOverlay(); + + if (overlay_) + overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), + draw_state_.ShouldDrawWebXR()); + if (draw_state_.ShouldDrawUI()) { + if (overlay_) // False only while testing + overlay_->RequestNextOverlayPose( + base::BindOnce(&VRBrowserRendererThreadWin::OnPose, + base::Unretained(this), GetNextRequestId())); + } else { + StopOverlay(); + } +} + +void VRBrowserRendererThreadWin::SetCapturingState( + const CapturingStateModel& active_capturing, + const CapturingStateModel& background_capturing, + const CapturingStateModel& potential_capturing) { + if (ui_) + ui_->SetCapturingState(active_capturing, background_capturing, + potential_capturing); +} + VRBrowserRendererThreadWin* VRBrowserRendererThreadWin::GetInstanceForTesting() { return instance_for_testing_; @@ -263,22 +304,24 @@ } void VRBrowserRendererThreadWin::OnSpinnerVisibilityChanged(bool visible) { - if (draw_state_.SetSpinnerVisible(visible)) { - if (draw_state_.ShouldDrawUI()) { - StartOverlay(); - } + if (!draw_state_.SetSpinnerVisible(visible)) + return; + if (draw_state_.ShouldDrawUI()) { + StartOverlay(); + } - if (overlay_) { - overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), - draw_state_.ShouldDrawWebXR()); - } + if (overlay_) { + overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), + draw_state_.ShouldDrawWebXR()); + } - if (draw_state_.ShouldDrawUI()) { - overlay_->RequestNextOverlayPose(base::BindOnce( - &VRBrowserRendererThreadWin::OnPose, base::Unretained(this))); - } else { - StopOverlay(); - } + if (draw_state_.ShouldDrawUI()) { + if (overlay_) // False only while testing. + overlay_->RequestNextOverlayPose( + base::BindOnce(&VRBrowserRendererThreadWin::OnPose, + base::Unretained(this), GetNextRequestId())); + } else { + StopOverlay(); } } @@ -288,12 +331,16 @@ StopWebXrTimeout(); } -void VRBrowserRendererThreadWin::OnPose(device::mojom::XRFrameDataPtr data) { +void VRBrowserRendererThreadWin::OnPose(int request_id, + device::mojom::XRFrameDataPtr data) { + if (request_id != current_request_id_) { + // Old request. Do nothing. + return; + } if (!draw_state_.ShouldDrawUI()) { // We shouldn't be showing UI. overlay_->SetOverlayAndWebXRVisibility(draw_state_.ShouldDrawUI(), draw_state_.ShouldDrawWebXR()); - if (graphics_) graphics_->ResetMemoryBuffer(); return; @@ -330,7 +377,8 @@ // calling the callback if we are destroyed. scheduler_->OnPose(base::BindOnce(&VRBrowserRendererThreadWin::SubmitFrame, base::Unretained(this), std::move(data)), - head_from_world, draw_state_.ShouldDrawUI()); + head_from_world, draw_state_.ShouldDrawWebXR(), + draw_state_.ShouldDrawUI()); } void VRBrowserRendererThreadWin::SubmitFrame( @@ -345,24 +393,28 @@ } void VRBrowserRendererThreadWin::SubmitResult(bool success) { - if (!success) { + if (!success && graphics_) { graphics_->ResetMemoryBuffer(); } + if (scheduler_ui_ && success) + scheduler_ui_->OnWebXrFrameAvailable(); if (draw_state_.ShouldDrawUI() && started_) { - overlay_->RequestNextOverlayPose(base::BindOnce( - &VRBrowserRendererThreadWin::OnPose, base::Unretained(this))); + overlay_->RequestNextOverlayPose( + base::BindOnce(&VRBrowserRendererThreadWin::OnPose, + base::Unretained(this), GetNextRequestId())); } } // VRBrowserRendererThreadWin::DrawContentType functions. bool VRBrowserRendererThreadWin::DrawState::ShouldDrawUI() { return prompt_ != ExternalPromptNotificationType::kPromptNone || - spinner_visible_; + spinner_visible_ || indicators_visible_; } bool VRBrowserRendererThreadWin::DrawState::ShouldDrawWebXR() { - return prompt_ == ExternalPromptNotificationType::kPromptNone && - !spinner_visible_; + return (prompt_ == ExternalPromptNotificationType::kPromptNone && + !spinner_visible_) || + indicators_visible_; } bool VRBrowserRendererThreadWin::DrawState::SetPrompt( @@ -380,4 +432,11 @@ return old_ui != ShouldDrawUI() || old_webxr != ShouldDrawWebXR(); } +bool VRBrowserRendererThreadWin::DrawState::SetIndicatorsVisible(bool visible) { + bool old_ui = ShouldDrawUI(); + bool old_webxr = ShouldDrawWebXR(); + indicators_visible_ = visible; + return old_ui != ShouldDrawUI() || old_webxr != ShouldDrawWebXR(); +} + } // namespace vr
diff --git a/chrome/browser/vr/win/vr_browser_renderer_thread_win.h b/chrome/browser/vr/win/vr_browser_renderer_thread_win.h index 8204a03..a8675ee 100644 --- a/chrome/browser/vr/win/vr_browser_renderer_thread_win.h +++ b/chrome/browser/vr/win/vr_browser_renderer_thread_win.h
@@ -9,6 +9,7 @@ #include "base/threading/thread.h" #include "chrome/browser/vr/browser_renderer.h" +#include "chrome/browser/vr/model/capturing_state_model.h" #include "chrome/browser/vr/model/web_vr_model.h" #include "chrome/browser/vr/service/browser_xr_runtime.h" #include "chrome/browser/vr/vr_export.h" @@ -37,6 +38,10 @@ // The below function(s) affect(s) whether UI is drawn or not. void SetVisibleExternalPromptNotification( ExternalPromptNotificationType prompt); + void SetIndicatorsVisible(bool visible); + void SetCapturingState(const CapturingStateModel& active_capturing, + const CapturingStateModel& background_capturing, + const CapturingStateModel& potential_capturing); static VRBrowserRendererThreadWin* GetInstanceForTesting(); BrowserRenderer* GetBrowserRendererForTesting(); @@ -48,6 +53,7 @@ // State changing methods. bool SetPrompt(ExternalPromptNotificationType prompt); bool SetSpinnerVisible(bool visible); + bool SetIndicatorsVisible(bool visible); // State querying methods. bool ShouldDrawUI(); @@ -58,9 +64,10 @@ ExternalPromptNotificationType::kPromptNone; bool spinner_visible_ = false; + bool indicators_visible_ = false; }; - void OnPose(device::mojom::XRFrameDataPtr data); + void OnPose(int request_id, device::mojom::XRFrameDataPtr data); void SubmitResult(bool success); void SubmitFrame(device::mojom::XRFrameDataPtr data); void StartOverlay(); @@ -71,6 +78,7 @@ void OnWebXrTimedOut(); void StartWebXrTimeout(); void StopWebXrTimeout(); + int GetNextRequestId(); // We need to do some initialization of GraphicsDelegateWin before // browser_renderer_, so we first store it in a unique_ptr, then transition @@ -94,6 +102,7 @@ DrawState draw_state_; bool started_ = false; bool webxr_presenting_ = false; + int current_request_id_ = 0; device::mojom::ImmersiveOverlayPtr overlay_; device::mojom::VRDisplayInfoPtr display_info_;
diff --git a/chrome/common/extensions/api/top_sites.json b/chrome/common/extensions/api/top_sites.json index 3a8ece8..b1bd3cf3 100644 --- a/chrome/common/extensions/api/top_sites.json +++ b/chrome/common/extensions/api/top_sites.json
@@ -5,12 +5,12 @@ [ { "namespace": "topSites", - "description": "Use the <code>chrome.topSites</code> API to access the top sites that are displayed on the new tab page.", + "description": "Use the <code>chrome.topSites</code> API to access the top sites (i.e. most visited) that are displayed on the new tab page. These do not include shortcuts customized by the user.", "types": [ { "id": "MostVisitedURL", "type": "object", - "description": "An object encapsulating a most visited URL, such as the URLs on the new tab page.", + "description": "An object encapsulating a most visited URL, such as the default shortcuts on the new tab page.", "properties": { "url": {"type": "string", "description": "The most visited URL."}, "title": {"type": "string", "description": "The title of the page"}
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc index a7ebeaf..65f05bc 100644 --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc
@@ -22,6 +22,7 @@ const char kChromeUIAppIconHost[] = "app-icon"; const char kChromeUIAppIconURL[] = "chrome://app-icon/"; const char kChromeUIAppLauncherPageHost[] = "apps"; +const char kChromeUIAppManagementHost[] = "apps"; const char kChromeUIAppsURL[] = "chrome://apps/"; const char kChromeUIAutofillInternalsHost[] = "autofill-internals"; const char kChromeUIBluetoothInternalsHost[] = "bluetooth-internals";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h index a57a969..002c96b 100644 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h
@@ -29,6 +29,7 @@ extern const char kChromeUIAppIconHost[]; extern const char kChromeUIAppIconURL[]; extern const char kChromeUIAppLauncherPageHost[]; +extern const char kChromeUIAppManagementHost[]; extern const char kChromeUIAppsURL[]; extern const char kChromeUIAutofillInternalsHost[]; extern const char kChromeUIBluetoothInternalsHost[];
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc index 27f5b5e6..d2cc601 100644 --- a/chrome/renderer/chrome_render_thread_observer.cc +++ b/chrome/renderer/chrome_render_thread_observer.cc
@@ -87,7 +87,6 @@ std::unique_ptr<content::RequestPeer> OnRequestComplete( std::unique_ptr<content::RequestPeer> current_peer, - content::ResourceType resource_type, int error_code) override { // Update the browser about our cache. // Rate limit informing the host of our cache stats. @@ -105,7 +104,7 @@ // Resource canceled with a specific error are filtered. return SecurityFilterPeer::CreateSecurityFilterPeerForDeniedRequest( - resource_type, std::move(current_peer), error_code); + std::move(current_peer), error_code); } std::unique_ptr<content::RequestPeer> OnReceivedResponse(
diff --git a/chrome/renderer/security_filter_peer.cc b/chrome/renderer/security_filter_peer.cc index 335bb02..c87308c 100644 --- a/chrome/renderer/security_filter_peer.cc +++ b/chrome/renderer/security_filter_peer.cc
@@ -9,26 +9,18 @@ #include <utility> #include "base/memory/ptr_util.h" -#include "base/strings/stringprintf.h" -#include "chrome/grit/generated_resources.h" -#include "content/public/renderer/fixed_received_data.h" -#include "net/base/escape.h" #include "net/base/net_errors.h" #include "net/http/http_response_headers.h" #include "services/network/public/cpp/url_loader_completion_status.h" -#include "ui/base/l10n/l10n_util.h" SecurityFilterPeer::SecurityFilterPeer( - std::unique_ptr<content::RequestPeer> peer, - const std::string& mime_type, - const std::string& data) - : original_peer_(std::move(peer)), mime_type_(mime_type), data_(data) {} + std::unique_ptr<content::RequestPeer> peer) + : original_peer_(std::move(peer)) {} SecurityFilterPeer::~SecurityFilterPeer() {} // static std::unique_ptr<content::RequestPeer> SecurityFilterPeer::CreateSecurityFilterPeerForDeniedRequest( - content::ResourceType resource_type, std::unique_ptr<content::RequestPeer> peer, int os_error) { // Create a filter for SSL and CERT errors. @@ -46,24 +38,8 @@ case net::ERR_CERT_WEAK_KEY: case net::ERR_CERT_NAME_CONSTRAINT_VIOLATION: case net::ERR_INSECURE_RESPONSE: - case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: { - std::string mime_type; - std::string data; - if (content::IsResourceTypeFrame(resource_type)) { - // TODO(jcampan): use a different message when getting a - // phishing/malware error. - data = base::StringPrintf( - "<html><meta charset='UTF-8'>" - "<body style='background-color:#990000;color:white;'>" - "%s</body></html>", - net::EscapeForHTML( - l10n_util::GetStringUTF8(IDS_UNSAFE_FRAME_MESSAGE)) - .c_str()); - mime_type = "text/html"; - } - return base::WrapUnique( - new SecurityFilterPeer(std::move(peer), mime_type, data)); - } + case net::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: + return base::WrapUnique(new SecurityFilterPeer(std::move(peer))); default: // For other errors, we use our normal error handling. return peer; @@ -102,14 +78,9 @@ void SecurityFilterPeer::OnCompletedRequest( const network::URLLoaderCompletionStatus& status) { network::ResourceResponseInfo info; - info.mime_type = mime_type_; - info.headers = CreateHeaders(mime_type_); - info.content_length = static_cast<int>(data_.size()); + info.headers = CreateHeaders(); + info.content_length = 0; original_peer_->OnReceivedResponse(info); - if (!data_.empty()) { - original_peer_->OnReceivedData(std::make_unique<content::FixedReceivedData>( - data_.data(), data_.size())); - } network::URLLoaderCompletionStatus ok_status(status); ok_status.error_code = net::OK; original_peer_->OnCompletedRequest(ok_status); @@ -119,8 +90,7 @@ return original_peer_->GetTaskRunner(); } -scoped_refptr<net::HttpResponseHeaders> SecurityFilterPeer::CreateHeaders( - const std::string& mime_type) { +scoped_refptr<net::HttpResponseHeaders> SecurityFilterPeer::CreateHeaders() { std::string raw_headers; raw_headers.append("HTTP/1.1 200 OK"); raw_headers.push_back('\0'); @@ -130,11 +100,6 @@ // resource). raw_headers.append("cache-control: no-cache"); raw_headers.push_back('\0'); - if (!mime_type.empty()) { - raw_headers.append("content-type: "); - raw_headers.append(mime_type); - raw_headers.push_back('\0'); - } raw_headers.push_back('\0'); return base::MakeRefCounted<net::HttpResponseHeaders>(raw_headers); }
diff --git a/chrome/renderer/security_filter_peer.h b/chrome/renderer/security_filter_peer.h index 81e94a8..f69e224 100644 --- a/chrome/renderer/security_filter_peer.h +++ b/chrome/renderer/security_filter_peer.h
@@ -11,7 +11,6 @@ #include <string> #include "base/macros.h" -#include "content/public/common/resource_type.h" #include "content/public/renderer/request_peer.h" #include "services/network/public/cpp/resource_response_info.h" @@ -29,7 +28,6 @@ static std::unique_ptr<content::RequestPeer> CreateSecurityFilterPeerForDeniedRequest( - content::ResourceType resource_type, std::unique_ptr<content::RequestPeer> peer, int os_error); @@ -47,16 +45,11 @@ scoped_refptr<base::TaskRunner> GetTaskRunner() override; private: - SecurityFilterPeer(std::unique_ptr<content::RequestPeer> peer, - const std::string& mime_type, - const std::string& data); + explicit SecurityFilterPeer(std::unique_ptr<content::RequestPeer> peer); - static scoped_refptr<net::HttpResponseHeaders> CreateHeaders( - const std::string& mime_type); + static scoped_refptr<net::HttpResponseHeaders> CreateHeaders(); std::unique_ptr<content::RequestPeer> original_peer_; - std::string mime_type_; - std::string data_; DISALLOW_COPY_AND_ASSIGN(SecurityFilterPeer); };
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 45bedc9..95974f2 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1032,8 +1032,10 @@ "../browser/ui/views/content_test_utils.h", "../browser/ui/views/device_chooser_browsertest.cc", "../browser/ui/views/hats/hats_browsertest.cc", + "../browser/ui/views/intent_picker_bubble_view_browsertest.cc", "../browser/ui/views/try_chrome_dialog_win/try_chrome_dialog_browsertest.cc", "../browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc", + "../browser/ui/views/webview_accessibility_browsertest.cc", "../browser/ui/web_applications/bookmark_app_browsertest.cc", "../browser/ui/webauthn/authenticator_dialog_browsertest.cc", "../browser/ui/webui/bookmarks/bookmarks_browsertest.cc", @@ -1287,7 +1289,6 @@ if (is_chromeos) { sources += [ "../browser/ui/views/extensions/request_file_system_dialog_browsertest.cc", - "../browser/ui/views/intent_picker_bubble_view_browsertest.cc", "//third_party/liblouis/wasm/liblouis_wrapper_browsertest.cc", ] deps += [ "//chrome/browser/chromeos" ] @@ -1874,6 +1875,7 @@ "../browser/chromeos/login/screens/mock_wrong_hwid_screen.cc", "../browser/chromeos/login/screens/mock_wrong_hwid_screen.h", "../browser/chromeos/login/screens/network_screen_browsertest.cc", + "../browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc", "../browser/chromeos/login/screens/update_screen_browsertest.cc", "../browser/chromeos/login/screens/user_selection_screen_browsertest.cc", "../browser/chromeos/login/screenshot_testing/SkDiffPixelsMetric.h", @@ -3557,6 +3559,8 @@ if (!is_android) { sources += [ "../browser/apps/app_service/app_service_proxy_unittest.cc", + "../browser/apps/intent_helper/apps_navigation_throttle_unittest.cc", + "../browser/apps/intent_helper/page_transition_util_unittest.cc", "../browser/devtools/devtools_file_system_indexer_unittest.cc", "../browser/devtools/devtools_file_watcher_unittest.cc", "../browser/devtools/devtools_ui_bindings_unittest.cc", @@ -3690,8 +3694,6 @@ "../browser/ui/window_sizer/window_sizer_unittest.cc", ] sources += [ - "../browser/apps/intent_helper/apps_navigation_throttle_unittest.cc", - "../browser/apps/intent_helper/page_transition_util_unittest.cc", "../browser/chromeos/crostini/crostini_mime_types_service_unittest.cc", "../browser/chromeos/crostini/crostini_registry_service_unittest.cc", "../browser/chromeos/crostini/crostini_reporting_util_unittest.cc",
diff --git a/chrome/test/base/test_browser_window.h b/chrome/test/base/test_browser_window.h index 22aae8c0..f339ac8 100644 --- a/chrome/test/base/test_browser_window.h +++ b/chrome/test/base/test_browser_window.h
@@ -19,9 +19,9 @@ #include "chrome/browser/ui/page_action/page_action_icon_container.h" #include "chrome/common/buildflags.h" -#if defined(OS_CHROMEOS) +#if !defined(OS_ANDROID) #include "chrome/browser/apps/intent_helper/apps_navigation_types.h" -#endif // defined(OS_CHROMEOS) +#endif // !defined(OS_ANDROID) class LocationBarTesting; class OmniboxView; @@ -115,13 +115,12 @@ bool IsToolbarShowing() const override; void ShowUpdateChromeDialog() override {} void ShowBookmarkBubble(const GURL& url, bool already_bookmarked) override {} -#if defined(OS_CHROMEOS) - void ShowIntentPickerBubble( - std::vector<chromeos::IntentPickerAppInfo> app_info, - bool disable_stay_in_chrome, - IntentPickerResponse callback) override {} +#if !defined(OS_ANDROID) + void ShowIntentPickerBubble(std::vector<apps::IntentPickerAppInfo> app_info, + bool disable_stay_in_chrome, + IntentPickerResponse callback) override {} void SetIntentPickerViewVisibility(bool visible) override {} -#endif +#endif // !define(OS_ANDROID) autofill::SaveCardBubbleView* ShowSaveCreditCardBubble( content::WebContents* contents, autofill::SaveCardBubbleController* controller,
diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc index 6991024..b29e583e 100644 --- a/chrome/test/chromedriver/window_commands.cc +++ b/chrome/test/chromedriver/window_commands.cc
@@ -235,8 +235,7 @@ return dict; } -Status GetVisibleCookies(Session* session, - WebView* web_view, +Status GetVisibleCookies(WebView* web_view, std::list<Cookie>* cookies) { std::string current_page_url; Status status = GetUrl(web_view, std::string(), ¤t_page_url); @@ -258,10 +257,6 @@ cookie_dict->GetString("value", &value); std::string domain; cookie_dict->GetString("domain", &domain); - if (session->w3c_compliant) { - if (domain[0] == '.') - domain.erase(0, 1); - } std::string path; cookie_dict->GetString("path", &path); double expiry = 0; @@ -1779,12 +1774,14 @@ std::unique_ptr<base::Value>* value, Timeout* timeout) { std::list<Cookie> cookies; - Status status = GetVisibleCookies(session, web_view, &cookies); + Status status = GetVisibleCookies(web_view, &cookies); if (status.IsError()) return status; std::unique_ptr<base::ListValue> cookie_list(new base::ListValue()); - for (std::list<Cookie>::const_iterator it = cookies.begin(); + for (std::list<Cookie>::iterator it = cookies.begin(); it != cookies.end(); ++it) { + if (session->w3c_compliant && it->domain[0] == '.') + it->domain.erase(0, 1); cookie_list->Append(CreateDictionaryFrom(*it)); } *value = std::move(cookie_list); @@ -1801,13 +1798,15 @@ return Status(kInvalidArgument, "missing 'cookie name'"); std::list<Cookie> cookies; - Status status = GetVisibleCookies(session, web_view, &cookies); + Status status = GetVisibleCookies(web_view, &cookies); if (status.IsError()) return status; - for (std::list<Cookie>::const_iterator it = cookies.begin(); + for (std::list<Cookie>::iterator it = cookies.begin(); it != cookies.end(); ++it) { if (name == it->name) { + if (session->w3c_compliant && it->domain[0] == '.') + it->domain.erase(0, 1); value->reset(CreateDictionaryFrom(*it)->DeepCopy()); return Status(kOk); } @@ -1888,7 +1887,7 @@ return status; std::list<Cookie> cookies; - status = GetVisibleCookies(session, web_view, &cookies); + status = GetVisibleCookies(web_view, &cookies); if (status.IsError()) return status; @@ -1909,7 +1908,7 @@ std::unique_ptr<base::Value>* value, Timeout* timeout) { std::list<Cookie> cookies; - Status status = GetVisibleCookies(session, web_view, &cookies); + Status status = GetVisibleCookies(web_view, &cookies); if (status.IsError()) return status;
diff --git a/chrome/test/data/accessibility/fixed_size_document.html b/chrome/test/data/accessibility/fixed_size_document.html new file mode 100644 index 0000000..12f3d2a --- /dev/null +++ b/chrome/test/data/accessibility/fixed_size_document.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> + <style> + body { + width: 300px; + height: 300px; + overflow: hidden; + margin: 0; + padding: 0; + } + button { + display: block; + margin: 0; + padding: 0; + border: 0; + width: 100px; + height: 50px; + position: absolute; + } + #b1 { + left: 0; + top: 0; + background-color: #090; + } + #b2 { + left: 0; + top: 150px; + background-color: #900; + } + </style> +</head> +<body><button id="b1" aria-label="Button 1"></button><button id="b2" aria-label="Button 2"></button></body>
diff --git a/chrome/test/data/autofill/captured_sites/cipd.yaml b/chrome/test/data/autofill/captured_sites/cipd.yaml index 0b561961..ee29656 100644 --- a/chrome/test/data/autofill/captured_sites/cipd.yaml +++ b/chrome/test/data/autofill/captured_sites/cipd.yaml
@@ -15,29 +15,206 @@ description: captured sites test archives and recipes. install_mode: copy data: + - file: 1aauto + - file: 1aauto.test + - file: aarons + - file: aarons.test + - file: academy + - file: academy.test + - file: accesscorrections + - file: accesscorrections.test - file: amazon - file: amazon.test - - file: bestbuy - - file: bestbuy.test - - file: etsy - - file: etsy.test + - file: apmex + - file: apmex.test + - file: apple + - file: apple.test + - file: autoanything + - file: autoanything.test + - file: bath_and_body_works + - file: bath_and_body_works.test + - file: bodybuilding + - file: bodybuilding.test + - file: boostmobile + - file: boostmobile.test + - file: brandfactoryonline + - file: brandfactoryonline.test + - file: bricklink + - file: bricklink.test + - file: broadway + - file: broadway.test + - file: cabelas + - file: cabelas.test + - file: cafe_press + - file: cafe_press.test + - file: cargurus + - file: cargurus.test + - file: carid + - file: carid.test + - file: carmax + - file: carmax.test + - file: cars + - file: cars.test + - file: carsforsale + - file: carsforsale.test + - file: carters + - file: carters.test + - file: catch + - file: catch.test + - file: cdbaby + - file: cdbaby.test + - file: cdjapan + - file: cdjapan.test + - file: cduniverse + - file: cduniverse.test + - file: channelfireball + - file: channelfireball.test + - file: chewy + - file: chewy.test + - file: cinemark + - file: cinemark.test + - file: coach + - file: coach.test + - file: coolstuffinc + - file: coolstuffinc.test + - file: creditonebank + - file: creditonebank.test + - file: cricketwireless + - file: cricketwireless.test + - file: crutch_field + - file: crutch_field.test + - file: customink + - file: customink.test + - file: davidsbridal + - file: davidsbridal.test + - file: dell + - file: dell.test + - file: dickblick + - file: dickblick.test + - file: dish + - file: dish.test + - file: eddiebauer + - file: eddiebauer.test + - file: evo + - file: evo.test + - file: expedia + - file: expedia.test + - file: fanatics + - file: fanatics.test + - file: fender + - file: fender.test + - file: findmeagift + - file: findmeagift.test + - file: fingerhut + - file: fingerhut.test + - file: finish_line + - file: finish_line.test + - file: fromyouflowers + - file: fromyouflowers.test + - file: frys + - file: frys.test + - file: gamestop + - file: gamestop.test + - file: globalcashcard + - file: globalcashcard.test + - file: gnc + - file: gnc.test + - file: gofreecredit + - file: gofreecredit.test + - file: golookup + - file: golookup.test + - file: graze + - file: graze.test + - file: greendot_create_user + - file: greendot_create_user.test - file: groupon - file: groupon.test - - file: home_depot - - file: home_depot.test - - file: jet - - file: jet.test - - file: macys - - file: macys.test - - file: newegg - - file: newegg.test - - file: qvc - - file: qvc.test - - file: walmart - - file: walmart.test - - file: wayfair - - file: wayfair.test - - file: zappos - - file: zappos.test - - file: zulily - - file: zulily.test \ No newline at end of file + - file: harbor_freight + - file: harbor_freight.test + - file: hobbylobby + - file: hobbylobby.test + - file: horizoncardservices + - file: horizoncardservices.test + - file: jetspizza + - file: jetspizza.test + - file: jetstar + - file: jetstar.test + - file: joann + - file: joann.test + - file: jostens + - file: jostens.test + - file: juno + - file: juno.test + - file: just_fab + - file: just_fab.test + - file: levi + - file: levi.test + - file: living_social + - file: living_social.test + - file: mango + - file: mango.test + - file: mapsofindia + - file: mapsofindia.test + - file: mercurypay + - file: mercurypay.test + - file: modcloth + - file: modcloth.test + - file: moma + - file: moma.test + - file: monoprice + - file: monoprice.test + - file: movietickets + - file: movietickets.test + - file: musicians_friend + - file: musicians_friend.test + - file: neiman_marcus + - file: neiman_marcus.test + - file: net_a_porter + - file: net_a_porter.test + - file: netfirstplatinum + - file: netfirstplatinum.test + - file: netspend + - file: netspend.test + - file: newlook + - file: newlook.test + - file: nflshop + - file: nflshop.test + - file: northerntool + - file: northerntool.test + - file: notonthehighstreet + - file: notonthehighstreet.test + - file: opticsplanet + - file: opticsplanet.test + - file: overstock + - file: overstock.test + - file: pac_sun + - file: pac_sun.test + - file: palmettostatearmory + - file: palmettostatearmory.test + - file: pandora + - file: pandora.test + - file: pets_mart + - file: pets_mart.test + - file: pier1 + - file: pier1.test + - file: pizzahut_uk + - file: pizzahut_uk.test + - file: polar + - file: polar.test + - file: pottery_barn + - file: pottery_barn.test + - file: prima_games + - file: prima_games.test + - file: represent + - file: represent.test + - file: rock_auto + - file: rock_auto.test + - file: rue21 + - file: rue21.test + - file: safishing + - file: safishing.test + - file: sheetmusicplus + - file: sheetmusicplus.test + - file: sierra_trading_post + - file: sierra_trading_post.test +
diff --git a/chrome/test/data/webui/welcome/nux_set_as_default_test.js b/chrome/test/data/webui/welcome/nux_set_as_default_test.js index f76a7ea..2f470fb4 100644 --- a/chrome/test/data/webui/welcome/nux_set_as_default_test.js +++ b/chrome/test/data/webui/welcome/nux_set_as_default_test.js
@@ -46,10 +46,14 @@ testSetAsDefaultProxy.whenCalled('setAsDefault'), ]); + const notifyPromise = + test_util.eventToPromise('default-browser-change', testElement); + cr.webUIListenerCallback( 'browser-default-state-changed', {isDefault: true}); return Promise.all([ + notifyPromise, testSetAsDefaultProxy.whenCalled('recordSuccessfullySetDefault'), navigatedPromise ]);
diff --git a/chrome/test/data/webui/welcome/onboarding_welcome_browsertest.js b/chrome/test/data/webui/welcome/onboarding_welcome_browsertest.js index cbb3b65..8633b077 100644 --- a/chrome/test/data/webui/welcome/onboarding_welcome_browsertest.js +++ b/chrome/test/data/webui/welcome/onboarding_welcome_browsertest.js
@@ -166,6 +166,7 @@ /** @override */ get extraLibraries() { return super.extraLibraries.concat([ + '../settings/test_util.js', 'nux_set_as_default_test.js', 'test_nux_set_as_default_proxy.js', ]);
diff --git a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsActivity.java b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsActivity.java index 88f0be96..65b666d 100644 --- a/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsActivity.java +++ b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastWebContentsActivity.java
@@ -10,6 +10,7 @@ import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.KeyEvent; @@ -112,8 +113,7 @@ // Set flags to both exit sleep mode when this activity starts and // avoid entering sleep mode while playing media. If an app that shouldn't turn // on the screen is launching, we don't add TURN_SCREEN_ON. - if (CastWebContentsIntentUtils.shouldTurnOnScreen(intent)) - window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); + if (CastWebContentsIntentUtils.shouldTurnOnScreen(intent)) turnScreenOn(); window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }))); @@ -290,6 +290,14 @@ return false; } + private void turnScreenOn() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + setTurnScreenOn(true); + } else { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); + } + } + @RemovableInRelease public void finishForTesting() { mIsFinishingState.set("Finish for testing");
diff --git a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java index 400b847d..b5d6bfef 100644 --- a/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java +++ b/chromecast/browser/android/junit/src/org/chromium/chromecast/shell/CastWebContentsActivityTest.java
@@ -12,8 +12,10 @@ import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; +import android.app.Activity; import android.content.Intent; import android.media.AudioManager; +import android.os.Build; import android.view.KeyEvent; import android.view.WindowManager; @@ -28,6 +30,9 @@ import org.robolectric.Shadows; import org.robolectric.android.controller.ActivityController; import org.robolectric.annotation.Config; +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; +import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowActivity; import org.chromium.content_public.browser.WebContents; @@ -41,6 +46,20 @@ @RunWith(LocalRobolectricTestRunner.class) @Config(manifest = Config.NONE) public class CastWebContentsActivityTest { + @Implements(Activity.class) + public static class ExtendedShadowActivity extends ShadowActivity { + private boolean mTurnScreenOn; + + public boolean getTurnScreenOn() { + return mTurnScreenOn; + } + + @Implementation + public void setTurnScreenOn(boolean turnScreenOn) { + mTurnScreenOn = turnScreenOn; + } + } + private ActivityController<CastWebContentsActivity> mActivityLifecycle; private CastWebContentsActivity mActivity; private ShadowActivity mShadowActivity; @@ -151,13 +170,27 @@ } @Test + @Config(shadows = {ExtendedShadowActivity.class}) public void testTurnsScreenOnIfTurnOnScreen() { mActivityLifecycle = Robolectric.buildActivity(CastWebContentsActivity.class, CastWebContentsIntentUtils.requestStartCastActivity( RuntimeEnvironment.application, mWebContents, true, false, true, "0")); mActivity = mActivityLifecycle.get(); mActivity.testingModeForTesting(); - mShadowActivity = Shadows.shadowOf(mActivity); + ExtendedShadowActivity shadowActivity = (ExtendedShadowActivity) Shadow.extract(mActivity); + mActivityLifecycle.create(); + + Assert.assertTrue(shadowActivity.getTurnScreenOn()); + } + + @Test + @Config(sdk = {Build.VERSION_CODES.O}) + public void testTurnsScreenOnIfTurnOnScreen_AndroidO() { + mActivityLifecycle = Robolectric.buildActivity(CastWebContentsActivity.class, + CastWebContentsIntentUtils.requestStartCastActivity( + RuntimeEnvironment.application, mWebContents, true, false, true, "0")); + mActivity = mActivityLifecycle.get(); + mActivity.testingModeForTesting(); mActivityLifecycle.create(); Assert.assertTrue(Shadows.shadowOf(mActivity.getWindow()) @@ -165,17 +198,31 @@ } @Test + @Config(shadows = {ExtendedShadowActivity.class}) public void testDoesNotTurnScreenOnIfNotTurnOnScreen() { mActivityLifecycle = Robolectric.buildActivity(CastWebContentsActivity.class, CastWebContentsIntentUtils.requestStartCastActivity( RuntimeEnvironment.application, mWebContents, true, false, false, "0")); mActivity = mActivityLifecycle.get(); mActivity.testingModeForTesting(); - mShadowActivity = Shadows.shadowOf(mActivity); + ExtendedShadowActivity shadowActivity = (ExtendedShadowActivity) Shadow.extract(mActivity); mActivityLifecycle.create(); - Assert.assertFalse(Shadows.shadowOf(mActivity.getWindow()) - .getFlag(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)); + Assert.assertFalse(shadowActivity.getTurnScreenOn()); + } + + @Test + @Config(sdk = {Build.VERSION_CODES.O}) + public void testDoesNotTurnScreenOnIfNotTurnOnScreen_AndroidO() { + mActivityLifecycle = Robolectric.buildActivity(CastWebContentsActivity.class, + CastWebContentsIntentUtils.requestStartCastActivity( + RuntimeEnvironment.application, mWebContents, true, false, true, "0")); + mActivity = mActivityLifecycle.get(); + mActivity.testingModeForTesting(); + mActivityLifecycle.create(); + + Assert.assertTrue(Shadows.shadowOf(mActivity.getWindow()) + .getFlag(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)); } @Test
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc index 79af8e7a..b074a96 100644 --- a/chromeos/services/assistant/assistant_manager_service_impl.cc +++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -1492,6 +1492,16 @@ } void AssistantManagerServiceImpl::UpdateMediaState() { + if (media_session_info_ptr_ && + media_session_info_ptr_->state == + media_session::mojom::MediaSessionInfo::SessionState::kSuspended && + media_session_info_ptr_->playback_state == + media_session::mojom::MediaPlaybackState::kPlaying) { + // It is a intermediate state caused by some providers override the playback + // state. We considered it as invalid and skip reporting the state. + return; + } + // TODO(llin): MediaSession Integrated providers (include the libassistant // internal media provider) will trigger media state change event. Only // update the external media status if the state changes is triggered by
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn index d8d463f..406d655 100644 --- a/components/autofill/core/browser/BUILD.gn +++ b/components/autofill/core/browser/BUILD.gn
@@ -487,6 +487,7 @@ testonly = true sources = [ "address_combobox_model_unittest.cc", + "address_contact_form_label_formatter_unittest.cc", "address_email_form_label_formatter_unittest.cc", "address_field_unittest.cc", "address_form_label_formatter_unittest.cc",
diff --git a/components/autofill/core/browser/address_contact_form_label_formatter.cc b/components/autofill/core/browser/address_contact_form_label_formatter.cc index de5ad387b..b74e75a 100644 --- a/components/autofill/core/browser/address_contact_form_label_formatter.cc +++ b/components/autofill/core/browser/address_contact_form_label_formatter.cc
@@ -4,21 +4,123 @@ #include "components/autofill/core/browser/address_contact_form_label_formatter.h" +#include "components/autofill/core/browser/label_formatter_utils.h" + namespace autofill { AddressContactFormLabelFormatter::AddressContactFormLabelFormatter( const std::string& app_locale, ServerFieldType focused_field_type, const std::vector<ServerFieldType>& field_types) - : LabelFormatter(app_locale, focused_field_type, field_types) {} + : LabelFormatter(app_locale, focused_field_type, field_types), + form_has_street_address_(HasStreetAddress(field_types_for_labels())) {} AddressContactFormLabelFormatter::~AddressContactFormLabelFormatter() {} base::string16 AddressContactFormLabelFormatter::GetLabelForFocusedGroup( const AutofillProfile& profile, FieldTypeGroup group) const { - // TODO(crbug.com/936168): Implement GetLabelForFocusedGroup(). - return base::string16(); + return group == NAME || group == ADDRESS_HOME + ? GetLabelForProfileOnFocusedNameOrAddress(profile, group) + : GetLabelForProfileOnFocusedPhoneOrEmail(profile, group); +} + +// Note that the order in which parts of the label are added--national address +// or name and partial address in the top line followed by phone and email in +// the bottom line--ensures that the label is formatted correctly for +// |focused_group|, |focused_field_type_|, and for this kind of formatter. +// +// To format the address part of the label correctly, either the national +// address or a short form of the address is used. +// +// When a user is focused on a name field, the label has the national address: +// Name: |_________________________________________| +// | Sarah Revere | +// | 19 North Sq, Boston, MA 02113 | +// | (617) 722-2000 • sarah1775@gmail.com | +// +-----------------------------------------+ +// +// When a user is focused on an address field, the label has a short form of the +// address (A) to avoid showing data that also appears in the top line and (B) +// to reduce the width of the dropdown. +// +// The part that is displayed depends on whether |focused_field_type_| is +// related to street addresses. +// +// Address: |_________________________________________| +// | 19 North Sq | +// | Sarah Revere • Boston, MA 02113 | +// | (617) 722-2000 • sarah1775@gmail.com | +// +-----------------------------------------+ +// +// City: |_________________________________________| +// | Boston | +// | Sarah Revere • 19 North Sq | +// | (617) 722-2000 • sarah1775@gmail.com | +// +-----------------------------------------+ +base::string16 +AddressContactFormLabelFormatter::GetLabelForProfileOnFocusedNameOrAddress( + const AutofillProfile& profile, + FieldTypeGroup focused_group) const { + std::vector<base::string16> top_line_label_parts; + + if (focused_group != ADDRESS_HOME) { + AddLabelPartIfNotEmpty(GetLabelNationalAddress(profile, app_locale(), + field_types_for_labels()), + &top_line_label_parts); + } + + if (focused_group != NAME) { + AddLabelPartIfNotEmpty(GetLabelName(profile, app_locale()), + &top_line_label_parts); + AddLabelPartIfNotEmpty(GetLabelForFocusedAddress( + focused_field_type(), form_has_street_address_, + profile, app_locale(), field_types_for_labels()), + &top_line_label_parts); + } + + std::vector<base::string16> bottom_line_label_parts; + AddLabelPartIfNotEmpty(GetLabelPhone(profile, app_locale()), + &bottom_line_label_parts); + AddLabelPartIfNotEmpty(GetLabelEmail(profile, app_locale()), + &bottom_line_label_parts); + + return ConstructLabelLines(ConstructLabelLine(top_line_label_parts), + ConstructLabelLine(bottom_line_label_parts)); +} + +// Note that the order in which parts of the label are added--name, phone and +// email in the top line followed by the national address in the bottom +// line--ensures that the label is formatted correctly for |focused_group| and +// for this kind of formatter. +base::string16 +AddressContactFormLabelFormatter::GetLabelForProfileOnFocusedPhoneOrEmail( + const AutofillProfile& profile, + FieldTypeGroup focused_group) const { + std::vector<base::string16> top_line_label_parts; + + AddLabelPartIfNotEmpty(GetLabelName(profile, app_locale()), + &top_line_label_parts); + + if (focused_group != PHONE_HOME) { + AddLabelPartIfNotEmpty(GetLabelPhone(profile, app_locale()), + &top_line_label_parts); + } + + if (focused_group != EMAIL) { + AddLabelPartIfNotEmpty(GetLabelEmail(profile, app_locale()), + &top_line_label_parts); + } + + // ExtractAddressFieldTypes ensures that name-related information is not + // included in the result. National addresses have recipient names, e.g. + // Sarah Revere, 19 North Sq, Boston, MA 02113. However, for this part of the + // label, only 19 North Sq, Boston, MA 02113 is wanted. + return ConstructLabelLines( + ConstructLabelLine(top_line_label_parts), + GetLabelNationalAddress( + profile, app_locale(), + ExtractAddressFieldTypes(field_types_for_labels()))); } } // namespace autofill
diff --git a/components/autofill/core/browser/address_contact_form_label_formatter.h b/components/autofill/core/browser/address_contact_form_label_formatter.h index ff3fed2..958eba3 100644 --- a/components/autofill/core/browser/address_contact_form_label_formatter.h +++ b/components/autofill/core/browser/address_contact_form_label_formatter.h
@@ -28,6 +28,27 @@ base::string16 GetLabelForFocusedGroup(const AutofillProfile& profile, FieldTypeGroup group) const override; + + private: + // Returns a label to show the user when |focused_field_type_| belongs to the + // name or address groups. The elements of the label and their ordering + // depend on the data in |profile| and on |focused_group|. + base::string16 GetLabelForProfileOnFocusedNameOrAddress( + const AutofillProfile& profile, + FieldTypeGroup focused_group) const; + + // Returns a label to show the user when |focused_field_type_| belongs to the + // phone or email groups. The elements of the label and their ordering depend + // on the data in |profile| and on |focused_group|. + base::string16 GetLabelForProfileOnFocusedPhoneOrEmail( + const AutofillProfile& profile, + FieldTypeGroup focused_group) const; + + // True if this formatter's associated form has a street address field. A + // form may have an address-related field, e.g. zip code, without having a + // street address field. If a form does not include a street address field, + // street addresses should not appear in labels. + bool form_has_street_address_; }; } // namespace autofill
diff --git a/components/autofill/core/browser/address_contact_form_label_formatter_unittest.cc b/components/autofill/core/browser/address_contact_form_label_formatter_unittest.cc new file mode 100644 index 0000000..16e0dbe --- /dev/null +++ b/components/autofill/core/browser/address_contact_form_label_formatter_unittest.cc
@@ -0,0 +1,512 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/autofill/core/browser/address_contact_form_label_formatter.h" + +#include <memory> +#include <string> +#include <vector> + +#include "base/guid.h" +#include "base/strings/string16.h" +#include "base/strings/utf_string_conversions.h" +#include "components/autofill/core/browser/autofill_profile.h" +#include "components/autofill/core/browser/autofill_test_utils.h" +#include "components/autofill/core/browser/field_types.h" +#include "components/autofill/core/browser/label_formatter_test_utils.h" +#include "components/autofill/core/browser/label_formatter_utils.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using testing::ElementsAre; + +namespace autofill { +namespace { + +std::vector<ServerFieldType> GetFieldTypes() { + return {NO_SERVER_DATA, + NAME_BILLING_FULL, + EMAIL_ADDRESS, + ADDRESS_BILLING_LINE1, + ADDRESS_BILLING_LINE2, + ADDRESS_BILLING_DEPENDENT_LOCALITY, + ADDRESS_BILLING_CITY, + ADDRESS_BILLING_STATE, + ADDRESS_BILLING_ZIP, + ADDRESS_BILLING_COUNTRY, + PHONE_BILLING_WHOLE_NUMBER}; +} + +TEST(AddressContactFormLabelFormatterTest, GetLabelsWithMissingProfiles) { + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", NAME_BILLING_FULL, GetFieldTypes()); + EXPECT_TRUE(formatter->GetLabels(std::vector<AutofillProfile*>()).empty()); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForUSProfilesAndFocusedName) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Jackie", "L", "Kennedy", "", "", + "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", + "6175141600"); + + AutofillProfile profile3 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile3, "Paul", "", "Revere", "paul1775@gmail.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + ""); + + AutofillProfile profile4 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile4, "Dina", "", "Katabi", "dina@mit.edu", "", "", + "", "", "", "", "US", "6173240000"); + + AutofillProfile profile5 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile5, "", "", "", "", "", "Old North Church", + "193 Salem St", "Boston", "MA", "02113", "US", ""); + + AutofillProfile profile6 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", + ""); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", NAME_BILLING_FULL, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}), + ElementsAre( + ConstructLabelLines( + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113"), + FormatExpectedLabel("(617) 523-2338", "sarah.revere@aol.com")), + ConstructLabelLines( + base::ASCIIToUTF16("151 Irving Ave, Hyannis, MA 02601"), + base::ASCIIToUTF16("(617) 514-1600")), + ConstructLabelLines( + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113"), + base::ASCIIToUTF16("paul1775@gmail.com")), + FormatExpectedLabel("(617) 324-0000", "dina@mit.edu"), + base::ASCIIToUTF16( + "Old North Church, 193 Salem St, Boston, MA 02113"), + base::string16())); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForUSProfilesAndFocusedStreetAddress) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Jackie", "L", "Kennedy", "", "", + "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", + "6175141600"); + + AutofillProfile profile3 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile3, "Paul", "", "Revere", "paul1775@gmail.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + ""); + + AutofillProfile profile4 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile4, "Dina", "", "Katabi", "dina@mit.edu", "", "", + "", "", "", "", "US", "6173240000"); + + AutofillProfile profile5 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile5, "", "", "", "", "", "Old North Church", + "193 Salem St", "Boston", "MA", "02113", "US", ""); + + AutofillProfile profile6 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", + ""); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", ADDRESS_BILLING_LINE1, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Sarah Revere", "Boston, MA 02113"), + FormatExpectedLabel("(617) 523-2338", "sarah.revere@aol.com")), + ConstructLabelLines( + FormatExpectedLabel("Jackie L Kennedy", "Hyannis, MA 02601"), + base::ASCIIToUTF16("(617) 514-1600")), + ConstructLabelLines( + FormatExpectedLabel("Paul Revere", "Boston, MA 02113"), + base::ASCIIToUTF16("paul1775@gmail.com")), + ConstructLabelLines( + base::ASCIIToUTF16("Dina Katabi"), + FormatExpectedLabel("(617) 324-0000", "dina@mit.edu")), + base::ASCIIToUTF16("Boston, MA 02113"), base::string16())); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForUSProfilesAndFocusedNonStreetAddress) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Jackie", "L", "Kennedy", "", "", + "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", + "6175141600"); + + AutofillProfile profile3 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile3, "Paul", "", "Revere", "paul1775@gmail.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + ""); + + AutofillProfile profile4 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile4, "Dina", "", "Katabi", "dina@mit.edu", "", "", + "", "", "", "", "US", "6173240000"); + + AutofillProfile profile5 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile5, "", "", "", "", "", "Old North Church", + "193 Salem St", "Boston", "MA", "02113", "US", ""); + + AutofillProfile profile6 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", + ""); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", ADDRESS_BILLING_CITY, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Sarah Revere", "19 North Sq"), + FormatExpectedLabel("(617) 523-2338", "sarah.revere@aol.com")), + ConstructLabelLines( + FormatExpectedLabel("Jackie L Kennedy", "151 Irving Ave"), + base::ASCIIToUTF16("(617) 514-1600")), + ConstructLabelLines(FormatExpectedLabel("Paul Revere", "19 North Sq"), + base::ASCIIToUTF16("paul1775@gmail.com")), + ConstructLabelLines( + base::ASCIIToUTF16("Dina Katabi"), + FormatExpectedLabel("(617) 324-0000", "dina@mit.edu")), + base::ASCIIToUTF16("Old North Church, 193 Salem St"), + base::string16())); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForUSProfilesAndFocusedEmail) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Jackie", "L", "Kennedy", "", "", + "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", + "6175141600"); + + AutofillProfile profile3 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile3, "Paul", "", "Revere", "paul1775@gmail.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + ""); + + AutofillProfile profile4 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile4, "Dina", "", "Katabi", "dina@mit.edu", "", "", + "", "", "", "", "US", "6173240000"); + + AutofillProfile profile5 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile5, "", "", "", "", "", "Old North Church", + "193 Salem St", "Boston", "MA", "02113", "US", ""); + + AutofillProfile profile6 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", + ""); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", EMAIL_ADDRESS, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}), + ElementsAre(ConstructLabelLines( + FormatExpectedLabel("Sarah Revere", "(617) 523-2338"), + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113")), + ConstructLabelLines( + FormatExpectedLabel("Jackie L Kennedy", "(617) 514-1600"), + base::ASCIIToUTF16("151 Irving Ave, Hyannis, MA 02601")), + ConstructLabelLines( + base::ASCIIToUTF16("Paul Revere"), + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113")), + FormatExpectedLabel("Dina Katabi", "(617) 324-0000"), + base::ASCIIToUTF16( + "Old North Church, 193 Salem St, Boston, MA 02113"), + base::string16())); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForUSProfilesAndFocusedPhone) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Jackie", "L", "Kennedy", "", "", + "151 Irving Ave", "", "Hyannis", "MA", "02601", "US", + "6175141600"); + + AutofillProfile profile3 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile3, "Paul", "", "Revere", "paul1775@gmail.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + ""); + + AutofillProfile profile4 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile4, "Dina", "", "Katabi", "dina@mit.edu", "", "", + "", "", "", "", "US", "6173240000"); + + AutofillProfile profile5 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile5, "", "", "", "", "", "Old North Church", + "193 Salem St", "Boston", "MA", "02113", "US", ""); + + AutofillProfile profile6 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile6, "", "", "", "", "", "", "", "", "", "", "US", + ""); + + const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( + "en-US", PHONE_BILLING_WHOLE_NUMBER, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{ + &profile1, &profile2, &profile3, &profile4, &profile5, &profile6}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Sarah Revere", "sarah.revere@aol.com"), + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113")), + ConstructLabelLines( + base::ASCIIToUTF16("Jackie L Kennedy"), + base::ASCIIToUTF16("151 Irving Ave, Hyannis, MA 02601")), + ConstructLabelLines( + FormatExpectedLabel("Paul Revere", "paul1775@gmail.com"), + base::ASCIIToUTF16("19 North Sq, Boston, MA 02113")), + FormatExpectedLabel("Dina Katabi", "dina@mit.edu"), + base::ASCIIToUTF16( + "Old North Church, 193 Salem St, Boston, MA 02113"), + base::string16())); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForBRProfilesAndFocusedName) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Tarsila", "do", "Amaral", "tarsila@aol.com", + "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", + "São Paulo", " SP ", " 04094-050 ", "BR", + "+55 11 2648-0254"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Artur", "", "Avila", "aavila@uol.com.br", "", + "Estr. Dona Castorina, 110", "", "Jardim Botânico", + "Rio de Janeiro", "RJ", "22460-320", "BR", + "21987650000"); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("pt-BR", NAME_BILLING_FULL, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{&profile1, &profile2}), + ElementsAre( + ConstructLabelLines( + base::UTF8ToUTF16("Av. Pedro Álvares Cabral, 1301, Vila Mariana, " + "São Paulo-SP, 04094-050"), + FormatExpectedLabel("(11) 2648-0254", "tarsila@aol.com")), + ConstructLabelLines( + base::UTF8ToUTF16("Estr. Dona Castorina, 110, Jardim Botânico, " + "Rio de Janeiro-RJ, 22460-320"), + FormatExpectedLabel("(21) 98765-0000", "aavila@uol.com.br")))); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForBRProfilesAndFocusedStreetAddress) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Tarsila", "do", "Amaral", "tarsila@aol.com", + "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", + "São Paulo", " SP ", " 04094-050 ", "BR", + "+55 11 2648-0254"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Artur", "", "Avila", "aavila@uol.com.br", "", + "Estr. Dona Castorina, 110", "", "Jardim Botânico", + "Rio de Janeiro", "RJ", "22460-320", "BR", + "21987650000"); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("pt-BR", ADDRESS_BILLING_LINE1, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{&profile1, &profile2}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Tarsila do Amaral", + "Vila Mariana, São Paulo-SP, 04094-050"), + FormatExpectedLabel("(11) 2648-0254", "tarsila@aol.com")), + ConstructLabelLines( + FormatExpectedLabel( + "Artur Avila", + "Jardim Botânico, Rio de Janeiro-RJ, 22460-320"), + FormatExpectedLabel("(21) 98765-0000", "aavila@uol.com.br")))); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForBRProfilesAndFocusedNonStreetAddress) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Tarsila", "do", "Amaral", "tarsila@aol.com", + "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", + "São Paulo", " SP ", " 04094-050 ", "BR", + "+55 11 2648-0254"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Artur", "", "Avila", "aavila@uol.com.br", "", + "Estr. Dona Castorina, 110", "", "Jardim Botânico", + "Rio de Janeiro", "RJ", "22460-320", "BR", + "21987650000"); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("pt-BR", ADDRESS_BILLING_ZIP, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{&profile1, &profile2}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Tarsila do Amaral", + "Av. Pedro Álvares Cabral, 1301"), + FormatExpectedLabel("(11) 2648-0254", "tarsila@aol.com")), + ConstructLabelLines( + FormatExpectedLabel("Artur Avila", "Estr. Dona Castorina, 110"), + FormatExpectedLabel("(21) 98765-0000", "aavila@uol.com.br")))); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForBRProfilesAndFocusedEmail) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Tarsila", "do", "Amaral", "tarsila@aol.com", + "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", + "São Paulo", " SP ", " 04094-050 ", "BR", + "+55 11 2648-0254"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Artur", "", "Avila", "aavila@uol.com.br", "", + "Estr. Dona Castorina, 110", "", "Jardim Botânico", + "Rio de Janeiro", "RJ", "22460-320", "BR", + "21987650000"); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("pt-BR", EMAIL_ADDRESS, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{&profile1, &profile2}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Tarsila do Amaral", "(11) 2648-0254"), + base::UTF8ToUTF16("Av. Pedro Álvares Cabral, 1301, Vila Mariana, " + "São Paulo-SP, 04094-050")), + ConstructLabelLines( + FormatExpectedLabel("Artur Avila", "(21) 98765-0000"), + base::UTF8ToUTF16("Estr. Dona Castorina, 110, Jardim Botânico, " + "Rio de Janeiro-RJ, 22460-320")))); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForBRProfilesAndFocusedPhone) { + AutofillProfile profile1 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile1, "Tarsila", "do", "Amaral", "tarsila@aol.com", + "", "Av. Pedro Álvares Cabral, 1301", "", "Vila Mariana", + "São Paulo", " SP ", " 04094-050 ", "BR", + "+55 11 2648-0254"); + + AutofillProfile profile2 = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile2, "Artur", "", "Avila", "aavila@uol.com.br", "", + "Estr. Dona Castorina, 110", "", "Jardim Botânico", + "Rio de Janeiro", "RJ", "22460-320", "BR", + "21987650000"); + + const std::unique_ptr<LabelFormatter> formatter = LabelFormatter::Create( + "pt-BR", PHONE_BILLING_WHOLE_NUMBER, GetFieldTypes()); + + EXPECT_THAT( + formatter->GetLabels(std::vector<AutofillProfile*>{&profile1, &profile2}), + ElementsAre( + ConstructLabelLines( + FormatExpectedLabel("Tarsila do Amaral", "tarsila@aol.com"), + base::UTF8ToUTF16("Av. Pedro Álvares Cabral, 1301, Vila Mariana, " + "São Paulo-SP, 04094-050")), + ConstructLabelLines( + FormatExpectedLabel("Artur Avila", "aavila@uol.com.br"), + base::UTF8ToUTF16("Estr. Dona Castorina, 110, Jardim Botânico, " + "Rio de Janeiro-RJ, 22460-320")))); +} + +TEST(AddressContactFormLabelFormatterTest, + GetLabelsForFormWithPartialAddressFields) { + AutofillProfile profile = + AutofillProfile(base::GenerateGUID(), test::kEmptyOrigin); + test::SetProfileInfo(&profile, "Sarah", "", "Revere", "sarah.revere@aol.com", + "", "19 North Sq", "", "Boston", "MA", "02113", "US", + "16175232338"); + + const std::unique_ptr<LabelFormatter> formatter = + LabelFormatter::Create("en-US", EMAIL_ADDRESS, + {NAME_BILLING_FULL, EMAIL_ADDRESS, + ADDRESS_BILLING_ZIP, PHONE_BILLING_WHOLE_NUMBER}); + + // Checks that only address fields in the form are shown in the label. + EXPECT_THAT(formatter->GetLabels(std::vector<AutofillProfile*>{&profile}), + ElementsAre(ConstructLabelLines( + FormatExpectedLabel("Sarah Revere", "(617) 523-2338"), + base::ASCIIToUTF16("02113")))); +} + +} // namespace +} // namespace autofill
diff --git a/components/autofill/core/browser/label_formatter.h b/components/autofill/core/browser/label_formatter.h index 656de9a..71cc68f 100644 --- a/components/autofill/core/browser/label_formatter.h +++ b/components/autofill/core/browser/label_formatter.h
@@ -40,6 +40,8 @@ // Returns a label to show the user. The elements of the label and their // ordering depend on the kind of LabelFormatter, the data in |profile|, and // on the focused |group|. + // Subclasses may return labels that span one or two lines. If a label is + // intended to span two lines, then it contains a kMultilineLabelDelimiter. virtual base::string16 GetLabelForFocusedGroup( const AutofillProfile& profile, FieldTypeGroup group) const = 0;
diff --git a/components/autofill/core/browser/label_formatter_test_utils.cc b/components/autofill/core/browser/label_formatter_test_utils.cc index 83244f47..2410cd71 100644 --- a/components/autofill/core/browser/label_formatter_test_utils.cc +++ b/components/autofill/core/browser/label_formatter_test_utils.cc
@@ -4,6 +4,7 @@ #include "components/autofill/core/browser/label_formatter_test_utils.h" +#include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "components/grit/components_scaled_resources.h" #include "components/strings/grit/components_strings.h"
diff --git a/components/autofill/core/browser/label_formatter_utils.cc b/components/autofill/core/browser/label_formatter_utils.cc index 1f54772..233af12 100644 --- a/components/autofill/core/browser/label_formatter_utils.cc +++ b/components/autofill/core/browser/label_formatter_utils.cc
@@ -99,6 +99,21 @@ return extracted_address_types; } +std::vector<ServerFieldType> ExtractAddressFieldTypes( + const std::vector<ServerFieldType>& types) { + std::vector<ServerFieldType> only_address_types; + + // Note that GetStorableType maps billing fields to their corresponding non- + // billing fields, e.g. ADDRESS_HOME_ZIP is mapped to ADDRESS_BILLING_ZIP. + std::copy_if( + types.begin(), types.end(), std::back_inserter(only_address_types), + [](ServerFieldType type) { + return AutofillType(AutofillType(type).GetStorableType()).group() == + ADDRESS_HOME; + }); + return only_address_types; +} + void AddLabelPartIfNotEmpty(const base::string16& part, std::vector<base::string16>* parts) { if (!part.empty()) { @@ -113,6 +128,18 @@ : base::JoinString(parts, base::string16()); } +base::string16 ConstructLabelLines(const base::string16& top_line, + const base::string16& bottom_line) { + if (top_line.empty()) { + return bottom_line; + } + if (bottom_line.empty()) { + return top_line; + } + return base::JoinString({top_line, bottom_line}, + base::ASCIIToUTF16(kMultilineLabelDelimiter)); +} + AutofillProfile MakeTrimmedProfile(const AutofillProfile& profile, const std::string& app_locale, const std::vector<ServerFieldType>& types) {
diff --git a/components/autofill/core/browser/label_formatter_utils.h b/components/autofill/core/browser/label_formatter_utils.h index 54cf32d2..64b282a 100644 --- a/components/autofill/core/browser/label_formatter_utils.h +++ b/components/autofill/core/browser/label_formatter_utils.h
@@ -32,6 +32,10 @@ const size_t kMaxNumberOfParts = 2; +// Indicates where to split the label text when the label spans two lines. +// This is used in the kAutofillUseImprovedLabelDisambiguation feature. +constexpr char kMultilineLabelDelimiter[] = "\n"; + // Returns true if kName is set in |groups|. bool ContainsName(uint32_t groups); @@ -63,6 +67,11 @@ bool extract_street_address_types, const std::vector<ServerFieldType>& types); +// Returns a collection of the types in |types| that belong to the +// ADDRESS_HOME or ADDRESS_BILLING FieldTypeGroups. +std::vector<ServerFieldType> ExtractAddressFieldTypes( + const std::vector<ServerFieldType>& types); + // Adds |part| to |parts| if |part| is not an empty string. void AddLabelPartIfNotEmpty(const base::string16& part, std::vector<base::string16>* parts); @@ -79,6 +88,16 @@ // (B) the user with this profile interacts with a contact form. base::string16 ConstructLabelLine(const std::vector<base::string16>& parts); +// Returns the text to be displayed in a multiline label plus maybe a +// delimiting character. If |top_line| and |bottom_line| are both non-empty, +// then a delimiter is placed between them. +// +// Suppose kMultilineLabelDelimiter is "\n", |top_line| is "Elena Barulina", +// and |bottom_line| is "(845) 269-25-32 • ebarulina@saratov.edu". In this +// case, "Elena Barulina\n(845) 269-25-32 • ebarulina@saratov.edu" is returned. +base::string16 ConstructLabelLines(const base::string16& top_line, + const base::string16& bottom_line); + // Returns a pared down copy of |profile|. The copy has the same guid, origin, // country and language codes, and |field_types| as |profile|. AutofillProfile MakeTrimmedProfile(const AutofillProfile& profile,
diff --git a/components/autofill_assistant/browser/actions/set_form_field_value_action.cc b/components/autofill_assistant/browser/actions/set_form_field_value_action.cc index 1b49379d..427ae88f 100644 --- a/components/autofill_assistant/browser/actions/set_form_field_value_action.cc +++ b/components/autofill_assistant/browser/actions/set_form_field_value_action.cc
@@ -41,9 +41,6 @@ return; } - // TODO(crbug.com/806868): Add flag to allow simulating key presses to set - // field value. - // Start with first value, then call OnSetFieldValue() recursively until done. OnSetFieldValue(delegate, std::move(callback), /* next = */ 0, OkClientStatus()); @@ -66,10 +63,11 @@ case SetFormFieldValueProto_KeyPress::kText: delegate->SetFieldValue( selector, key_field.text(), - /* simulate_key_presses = */ false, + proto_.set_form_value().simulate_key_presses(), base::BindOnce(&SetFormFieldValueAction::OnSetFieldValue, weak_ptr_factory_.GetWeakPtr(), delegate, - std::move(callback), /* next = */ next + 1)); + std::move(callback), + /* next = */ next + 1)); break; case SetFormFieldValueProto_KeyPress::kKeycode: // DEPRECATED: the field `keycode' used to contain a single character to @@ -81,7 +79,8 @@ selector, {std::string(1, char(key_field.keycode()))}, base::BindOnce(&SetFormFieldValueAction::OnSetFieldValue, weak_ptr_factory_.GetWeakPtr(), delegate, - std::move(callback), /* next = */ next + 1)); + std::move(callback), + /* next = */ next + 1)); } else { DVLOG(3) << "SetFormFieldValueProto_KeyPress: field `keycode' is deprecated " @@ -96,7 +95,8 @@ selector, {key_field.keyboard_input()}, base::BindOnce(&SetFormFieldValueAction::OnSetFieldValue, weak_ptr_factory_.GetWeakPtr(), delegate, - std::move(callback), /* next = */ next + 1)); + std::move(callback), + /* next = */ next + 1)); break; default: DVLOG(1) << "Unrecognized field for SetFormFieldValueProto_KeyPress";
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index 0cc8f201..be41ad6 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -807,6 +807,9 @@ // The value to set. repeated KeyPress value = 2; + + // Whether to send key press events when setting values to HTML fields. + optional bool simulate_key_presses = 5; } // Set an element attribute to a specific value.
diff --git a/components/download/public/common/download_features.cc b/components/download/public/common/download_features.cc index 979637b..6929f5a 100644 --- a/components/download/public/common/download_features.cc +++ b/components/download/public/common/download_features.cc
@@ -15,7 +15,7 @@ const base::Feature kDownloadAutoResumptionNative { "DownloadsAutoResumptionNative", #if defined(OS_ANDROID) - base::FEATURE_ENABLED_BY_DEFAULT + base::FEATURE_DISABLED_BY_DEFAULT #else base::FEATURE_DISABLED_BY_DEFAULT #endif
diff --git a/components/offline_pages/content/background_loader/background_loader_contents.cc b/components/offline_pages/content/background_loader/background_loader_contents.cc index 2c67abca..fba1d59 100644 --- a/components/offline_pages/content/background_loader/background_loader_contents.cc +++ b/components/offline_pages/content/background_loader/background_loader_contents.cc
@@ -4,6 +4,8 @@ #include "components/offline_pages/content/background_loader/background_loader_contents.h" +#include <utility> + #include "content/public/browser/web_contents.h" namespace background_loader { @@ -64,12 +66,12 @@ void BackgroundLoaderContents::CanDownload( const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { if (delegate_) { - delegate_->CanDownload(callback); + delegate_->CanDownload(std::move(callback)); } else { // Do not download anything if there's no delegate. - callback.Run(false); + std::move(callback).Run(false); } }
diff --git a/components/offline_pages/content/background_loader/background_loader_contents.h b/components/offline_pages/content/background_loader/background_loader_contents.h index 0660eb2e..cbed236 100644 --- a/components/offline_pages/content/background_loader/background_loader_contents.h +++ b/components/offline_pages/content/background_loader/background_loader_contents.h
@@ -28,7 +28,7 @@ // start if a page initiates it. Callback can be called // synchronously. Returning true to the callback will initiate // the single file download. Assumes delegate will appropriately clean up. - virtual void CanDownload(const base::Callback<void(bool)>& callback) = 0; + virtual void CanDownload(base::OnceCallback<void(bool)> callback) = 0; }; // Creates BackgroundLoaderContents with specified |browser_context|. Uses @@ -54,7 +54,7 @@ bool ShouldFocusPageAfterCrash() override; void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) override; + base::OnceCallback<void(bool)> callback) override; bool ShouldCreateWebContents( content::WebContents* web_contents,
diff --git a/components/offline_pages/content/background_loader/background_loader_contents_unittest.cc b/components/offline_pages/content/background_loader/background_loader_contents_unittest.cc index a139e12..d758e02 100644 --- a/components/offline_pages/content/background_loader/background_loader_contents_unittest.cc +++ b/components/offline_pages/content/background_loader/background_loader_contents_unittest.cc
@@ -4,6 +4,8 @@ #include "components/offline_pages/content/background_loader/background_loader_contents.h" +#include <utility> + #include "base/bind.h" #include "base/synchronization/waitable_event.h" #include "content/public/browser/web_contents.h" @@ -22,7 +24,7 @@ void SetUp() override; void TearDown() override; - void CanDownload(const base::Callback<void(bool)>& callback) override; + void CanDownload(base::OnceCallback<void(bool)> callback) override; BackgroundLoaderContents* contents() { return contents_.get(); } @@ -71,9 +73,9 @@ } void BackgroundLoaderContentsTest::CanDownload( - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { delegate_called_ = true; - callback.Run(true); + std::move(callback).Run(true); } void BackgroundLoaderContentsTest::DownloadCallback(bool download) { @@ -110,8 +112,8 @@ TEST_F(BackgroundLoaderContentsTest, CannotDownloadNoDelegate) { contents()->CanDownload( GURL::EmptyGURL(), std::string(), - base::BindRepeating(&BackgroundLoaderContentsTest::DownloadCallback, - base::Unretained(this))); + base::BindOnce(&BackgroundLoaderContentsTest::DownloadCallback, + base::Unretained(this))); WaitForSignal(); ASSERT_FALSE(download()); ASSERT_FALSE(can_download_delegate_called()); @@ -121,8 +123,8 @@ SetDelegate(); contents()->CanDownload( GURL::EmptyGURL(), std::string(), - base::BindRepeating(&BackgroundLoaderContentsTest::DownloadCallback, - base::Unretained(this))); + base::BindOnce(&BackgroundLoaderContentsTest::DownloadCallback, + base::Unretained(this))); WaitForSignal(); ASSERT_TRUE(download()); ASSERT_TRUE(can_download_delegate_called());
diff --git a/components/omnibox/browser/autocomplete_provider_unittest.cc b/components/omnibox/browser/autocomplete_provider_unittest.cc index a992d95..1f5b82f 100644 --- a/components/omnibox/browser/autocomplete_provider_unittest.cc +++ b/components/omnibox/browser/autocomplete_provider_unittest.cc
@@ -396,8 +396,8 @@ provider1->set_listener(controller_.get()); provider2->set_listener(controller_.get()); - client_->set_closure(base::Bind(&AutocompleteProviderTest::CopyResults, - base::Unretained(this))); + client_->set_closure(base::BindRepeating( + &AutocompleteProviderTest::CopyResults, base::Unretained(this))); if (provider1_ptr) *provider1_ptr = provider1;
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc index 0b7878c..c62ff4f 100644 --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc
@@ -213,8 +213,8 @@ if (!match.GetAdditionalInfo(BaseSearchProvider::kDeletionUrlKey).empty()) { deletion_handlers_.push_back(std::make_unique<SuggestionDeletionHandler>( client(), match.GetAdditionalInfo(BaseSearchProvider::kDeletionUrlKey), - base::Bind(&BaseSearchProvider::OnDeletionComplete, - base::Unretained(this)))); + base::BindRepeating(&BaseSearchProvider::OnDeletionComplete, + base::Unretained(this)))); } const TemplateURL* template_url =
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc index 0495c7f..243810d 100644 --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc
@@ -582,7 +582,7 @@ params_ = params.release(); // This object will be destroyed in // QueryComplete() once we're done with it. history_service->ScheduleAutocomplete( - base::Bind(&HistoryURLProvider::ExecuteWithDB, this, params_)); + base::BindRepeating(&HistoryURLProvider::ExecuteWithDB, this, params_)); } }
diff --git a/components/omnibox/browser/in_memory_url_index.cc b/components/omnibox/browser/in_memory_url_index.cc index cf293ec..e99dc70 100644 --- a/components/omnibox/browser/in_memory_url_index.cc +++ b/components/omnibox/browser/in_memory_url_index.cc
@@ -248,10 +248,9 @@ } base::PostTaskAndReplyWithResult( - task_runner_.get(), - FROM_HERE, - base::Bind(&URLIndexPrivateData::RestoreFromFile, path), - base::Bind(&InMemoryURLIndex::OnCacheLoadDone, AsWeakPtr())); + task_runner_.get(), FROM_HERE, + base::BindOnce(&URLIndexPrivateData::RestoreFromFile, path), + base::BindOnce(&InMemoryURLIndex::OnCacheLoadDone, AsWeakPtr())); } void InMemoryURLIndex::OnCacheLoadDone( @@ -352,11 +351,10 @@ scoped_refptr<URLIndexPrivateData> private_data_copy = private_data_->Duplicate(); base::PostTaskAndReplyWithResult( - task_runner_.get(), - FROM_HERE, - base::Bind(&URLIndexPrivateData::WritePrivateDataToCacheFileTask, - private_data_copy, path), - base::Bind(&InMemoryURLIndex::OnCacheSaveDone, AsWeakPtr())); + task_runner_.get(), FROM_HERE, + base::BindOnce(&URLIndexPrivateData::WritePrivateDataToCacheFileTask, + private_data_copy, path), + base::BindOnce(&InMemoryURLIndex::OnCacheSaveDone, AsWeakPtr())); } else { // If there is no data in our index then delete any existing cache file. task_runner_->PostTask(
diff --git a/components/omnibox/browser/omnibox_controller.cc b/components/omnibox/browser/omnibox_controller.cc index 759e5b0..a86a4c5 100644 --- a/components/omnibox/browser/omnibox_controller.cc +++ b/components/omnibox/browser/omnibox_controller.cc
@@ -77,8 +77,8 @@ // passed in to eliminate the potential for crashes on shutdown. client_->OnResultChanged( result(), default_match_changed, - base::Bind(&OmniboxController::SetRichSuggestionBitmap, - weak_ptr_factory_.GetWeakPtr())); + base::BindRepeating(&OmniboxController::SetRichSuggestionBitmap, + weak_ptr_factory_.GetWeakPtr())); } void OmniboxController::InvalidateCurrentMatch() {
diff --git a/components/omnibox/browser/omnibox_metrics_provider.cc b/components/omnibox/browser/omnibox_metrics_provider.cc index 7d38b8d..b43cccc 100644 --- a/components/omnibox/browser/omnibox_metrics_provider.cc +++ b/components/omnibox/browser/omnibox_metrics_provider.cc
@@ -100,8 +100,8 @@ void OmniboxMetricsProvider::OnRecordingEnabled() { subscription_ = OmniboxEventGlobalTracker::GetInstance()->RegisterCallback( - base::Bind(&OmniboxMetricsProvider::OnURLOpenedFromOmnibox, - base::Unretained(this))); + base::BindRepeating(&OmniboxMetricsProvider::OnURLOpenedFromOmnibox, + base::Unretained(this))); } void OmniboxMetricsProvider::OnRecordingDisabled() {
diff --git a/components/omnibox/browser/shortcuts_database.cc b/components/omnibox/browser/shortcuts_database.cc index f66bd2e7..2e5a919 100644 --- a/components/omnibox/browser/shortcuts_database.cc +++ b/components/omnibox/browser/shortcuts_database.cc
@@ -153,7 +153,7 @@ // To recover from corruption. db_.set_error_callback( - base::Bind(&DatabaseErrorCallback, &db_, database_path_)); + base::BindRepeating(&DatabaseErrorCallback, &db_, database_path_)); // Set the database page size to something a little larger to give us // better performance (we're typically seek rather than bandwidth limited).
diff --git a/components/omnibox/browser/zero_suggest_provider.cc b/components/omnibox/browser/zero_suggest_provider.cc index 624728d7..ca1f05e 100644 --- a/components/omnibox/browser/zero_suggest_provider.cc +++ b/components/omnibox/browser/zero_suggest_provider.cc
@@ -172,9 +172,9 @@ return; } - ts->GetMostVisitedURLs( - base::Bind(&ZeroSuggestProvider::OnMostVisitedUrlsAvailable, - weak_ptr_factory_.GetWeakPtr(), most_visited_request_num_)); + ts->GetMostVisitedURLs(base::BindRepeating( + &ZeroSuggestProvider::OnMostVisitedUrlsAvailable, + weak_ptr_factory_.GetWeakPtr(), most_visited_request_num_)); return; }
diff --git a/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc index 931983e..99c8b66b3 100644 --- a/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc +++ b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.cc
@@ -24,8 +24,8 @@ // static std::unique_ptr<LoopbackServerEntity> PersistentTombstoneEntity::CreateNew( const std::string& id, - const std::string& client_defined_unique_tag) { - return CreateNewInternal(id, 0, client_defined_unique_tag); + const std::string& client_tag_hash) { + return CreateNewInternal(id, 0, client_tag_hash); } // static @@ -33,24 +33,24 @@ PersistentTombstoneEntity::CreateNewInternal( const std::string& id, int64_t version, - const std::string& client_defined_unique_tag) { + const std::string& client_tag_hash) { const ModelType model_type = LoopbackServerEntity::GetModelTypeFromId(id); if (model_type == syncer::UNSPECIFIED) { DLOG(WARNING) << "Invalid ID was given: " << id; return nullptr; } - return base::WrapUnique(new PersistentTombstoneEntity( - id, version, model_type, client_defined_unique_tag)); + return base::WrapUnique( + new PersistentTombstoneEntity(id, version, model_type, client_tag_hash)); } PersistentTombstoneEntity::PersistentTombstoneEntity( const string& id, int64_t version, const ModelType& model_type, - const std::string& client_defined_unique_tag) + const std::string& client_tag_hash) : LoopbackServerEntity(id, model_type, version, string()), - client_defined_unique_tag_(client_defined_unique_tag) { + client_tag_hash_(client_tag_hash) { sync_pb::EntitySpecifics specifics; AddDefaultFieldValue(model_type, &specifics); SetSpecifics(specifics); @@ -67,8 +67,8 @@ void PersistentTombstoneEntity::SerializeAsProto( sync_pb::SyncEntity* proto) const { LoopbackServerEntity::SerializeBaseProtoFields(proto); - if (!client_defined_unique_tag_.empty()) - proto->set_client_defined_unique_tag(client_defined_unique_tag_); + if (!client_tag_hash_.empty()) + proto->set_client_defined_unique_tag(client_tag_hash_); } bool PersistentTombstoneEntity::IsDeleted() const {
diff --git a/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.h b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.h index 985fc69..0f2accc 100644 --- a/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.h +++ b/components/sync/engine_impl/loopback_server/persistent_tombstone_entity.h
@@ -25,7 +25,7 @@ static std::unique_ptr<LoopbackServerEntity> CreateNew( const std::string& id, - const std::string& client_defined_unique_tag); + const std::string& client_tag_hash); // LoopbackServerEntity implementation. bool RequiresParentId() const override; @@ -39,15 +39,15 @@ static std::unique_ptr<LoopbackServerEntity> CreateNewInternal( const std::string& id, int64_t version, - const std::string& client_defined_unique_tag); + const std::string& client_tag_hash); PersistentTombstoneEntity(const std::string& id, int64_t version, const syncer::ModelType& model_type, - const std::string& client_defined_unique_tag); + const std::string& client_tag_hash); - // The tag for this entity. - const std::string client_defined_unique_tag_; + // The tag hash for this entity. + const std::string client_tag_hash_; }; } // namespace syncer
diff --git a/components/sync/test/fake_server/android/fake_server_helper_android.cc b/components/sync/test/fake_server/android/fake_server_helper_android.cc index e33467be..b09ccd9 100644 --- a/components/sync/test/fake_server/android/fake_server_helper_android.cc +++ b/components/sync/test/fake_server/android/fake_server_helper_android.cc
@@ -323,13 +323,12 @@ const JavaParamRef<jobject>& obj, jlong fake_server, const JavaParamRef<jstring>& id, - const base::android::JavaParamRef<jstring>& client_defined_unique_tag) { + const base::android::JavaParamRef<jstring>& client_tag_hash) { fake_server::FakeServer* fake_server_ptr = reinterpret_cast<fake_server::FakeServer*>(fake_server); std::string native_id = base::android::ConvertJavaStringToUTF8(env, id); fake_server_ptr->InjectEntity(syncer::PersistentTombstoneEntity::CreateNew( - native_id, - base::android::ConvertJavaStringToUTF8(env, client_defined_unique_tag))); + native_id, base::android::ConvertJavaStringToUTF8(env, client_tag_hash))); } void FakeServerHelperAndroid::ClearServerData(JNIEnv* env,
diff --git a/components/sync/test/fake_server/android/fake_server_helper_android.h b/components/sync/test/fake_server/android/fake_server_helper_android.h index 2f1f4de24..89f2d78 100644 --- a/components/sync/test/fake_server/android/fake_server_helper_android.h +++ b/components/sync/test/fake_server/android/fake_server_helper_android.h
@@ -136,7 +136,7 @@ const base::android::JavaParamRef<jobject>& obj, jlong fake_server, const base::android::JavaParamRef<jstring>& id, - const base::android::JavaParamRef<jstring>& client_defined_unique_tag); + const base::android::JavaParamRef<jstring>& client_tag_hash); // Simulates a dashboard stop and clear. void ClearServerData(JNIEnv* env,
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-25.png.sha1 deleted file mode 100644 index 845bac2..0000000 --- a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-25.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -52541d2087d794f97ed191d74efd366c77012645 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-26.png.sha1 deleted file mode 100644 index 6f61104..0000000 --- a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.page_info_visible_browser_ui.Pixel_XL-26.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -6c96578e1028dcd05b3fa204af5cf17a9e75fd26 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..d27a97a --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +d227fb8426ac42742dc2edb1947be83db684617a \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..5f6b506 --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_popup.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +15c8f8f4a2cafd01d203390758d38e8b2460e093 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..db75e8d --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +60ea6cc503152ff293f976031c4337986a33c847 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..3441b9c --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_http_url_bar_token.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +620fa12072273cea0a9005ff5eface2cd28a6fbf \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..d69ac12 --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +43ee9975eb933c684d4608c2a6852e69c433d45c \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..9b6da7f --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_popup.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +15c6c3a2524a6ff05f9361bc8c7c4c267f913098 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..de7cd10c --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +654341b07d9d0357fe08bae2a70adbc018f1c2aa \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..fc871dd --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_bad_cert_url_bar_token.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +f6afd282616fe6ef74628bf76748ae5c52634636 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..870d216 --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +c14ee554d3f0afd15b1e3bb33730fd26347e7062 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..89c15bee --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_popup.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +971c391fabde3702fe093d5d4b874dda06b2c693 \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-25.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-25.png.sha1 new file mode 100644 index 0000000..53d2aeb --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-25.png.sha1
@@ -0,0 +1 @@ +8ecf718060f3ca31dc4387704b40d734463a892a \ No newline at end of file
diff --git a/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-26.png.sha1 b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-26.png.sha1 new file mode 100644 index 0000000..427f4a4 --- /dev/null +++ b/components/test/data/vr_browser_ui/render_tests/VrBrowserNativeUiTest.security_token_https_url_bar_token.Pixel_XL-26.png.sha1
@@ -0,0 +1 @@ +d8ebd0621cb8c77f71b7ebcf6b4a5a836b5909de \ No newline at end of file
diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc index 00a5835e..9724764 100644 --- a/components/viz/service/display/gl_renderer.cc +++ b/components/viz/service/display/gl_renderer.cc
@@ -1532,8 +1532,11 @@ } SetShaderOpacity(params->quad->shared_quad_state->opacity); - SetShaderRoundedCorner(params->quad->shared_quad_state->rounded_corner_bounds, - params->window_matrix * params->projection_matrix); + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + params->quad->shared_quad_state->rounded_corner_bounds, + params->window_matrix * params->projection_matrix); + } SetShaderQuadF(params->surface_quad); } @@ -1868,9 +1871,11 @@ quad_color_space, current_frame()->current_render_pass->color_space); SetShaderColor(color, opacity); - SetShaderRoundedCorner( - quad->shared_quad_state->rounded_corner_bounds, - current_frame()->window_matrix * current_frame()->projection_matrix); + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + quad->shared_quad_state->rounded_corner_bounds, + current_frame()->window_matrix * current_frame()->projection_matrix); + } if (current_program_->tint_color_matrix_location() != -1) { auto matrix = cc::DebugColors::TintCompositedContentColorTransformMatrix(); @@ -2041,9 +2046,11 @@ // Blending is required for antialiasing. SetBlendEnabled(true); SetShaderOpacity(quad->shared_quad_state->opacity); - SetShaderRoundedCorner( - quad->shared_quad_state->rounded_corner_bounds, - current_frame()->window_matrix * current_frame()->projection_matrix); + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + quad->shared_quad_state->rounded_corner_bounds, + current_frame()->window_matrix * current_frame()->projection_matrix); + } DCHECK(CanApplyBlendModeUsingBlendFunc(quad->shared_quad_state->blend_mode)); ApplyBlendModeUsingBlendFunc(quad->shared_quad_state->blend_mode); @@ -2138,9 +2145,11 @@ ApplyBlendModeUsingBlendFunc(quad->shared_quad_state->blend_mode); SetShaderOpacity(quad->shared_quad_state->opacity); - SetShaderRoundedCorner( - quad->shared_quad_state->rounded_corner_bounds, - current_frame()->window_matrix * current_frame()->projection_matrix); + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + quad->shared_quad_state->rounded_corner_bounds, + current_frame()->window_matrix * current_frame()->projection_matrix); + } // Pass quad coordinates to the uniform in the same order as GeometryBinding // does, then vertices will match the texture mapping in the vertex buffer. @@ -2260,6 +2269,12 @@ false, matrix.data()); } + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + quad->shared_quad_state->rounded_corner_bounds, + current_frame()->window_matrix * current_frame()->projection_matrix); + } + gfx::SizeF ya_tex_scale(1.0f, 1.0f); gfx::SizeF uv_tex_scale(1.0f, 1.0f); if (sampler != SAMPLER_TYPE_2D_RECT) { @@ -2429,6 +2444,12 @@ SetUseProgram(draw_cache_.program_key, locked_quad.color_space(), current_frame()->current_render_pass->color_space); + if (current_program_->rounded_corner_rect_location() != -1) { + SetShaderRoundedCorner( + draw_cache_.rounded_corner_bounds, + current_frame()->window_matrix * current_frame()->projection_matrix); + } + DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); gl_->BindTexture(locked_quad.target(), locked_quad.texture_id()); @@ -2530,16 +2551,14 @@ tint_gl_composited_content_, ShouldUseRoundedCornerShader(quad)); int resource_id = quad->resource_id(); - SetShaderRoundedCorner( - quad->shared_quad_state->rounded_corner_bounds, - current_frame()->window_matrix * current_frame()->projection_matrix); - size_t max_quads = StaticGeometryBinding::NUM_QUADS; if (draw_cache_.is_empty || draw_cache_.program_key != program_key || draw_cache_.resource_id != resource_id || draw_cache_.needs_blending != quad->ShouldDrawWithBlending() || draw_cache_.nearest_neighbor != quad->nearest_neighbor || draw_cache_.background_color != quad->background_color || + draw_cache_.rounded_corner_bounds != + quad->shared_quad_state->rounded_corner_bounds || draw_cache_.matrix_data.size() >= max_quads) { FlushTextureQuadCache(SHARED_BINDING); draw_cache_.is_empty = false; @@ -2548,6 +2567,8 @@ draw_cache_.needs_blending = quad->ShouldDrawWithBlending(); draw_cache_.nearest_neighbor = quad->nearest_neighbor; draw_cache_.background_color = quad->background_color; + draw_cache_.rounded_corner_bounds = + quad->shared_quad_state->rounded_corner_bounds; } // Generate the uv-transform @@ -2786,14 +2807,12 @@ void GLRenderer::SetShaderRoundedCorner( const gfx::RRectF& rounded_corner_bounds, const gfx::Transform& screen_transform) { - if (!current_program_ || - current_program_->rounded_corner_rect_location() == -1 || - current_program_->rounded_corner_radius_location() == -1 || - rounded_corner_bounds.IsEmpty()) { - return; - } - + DCHECK(current_program_); + DCHECK(!rounded_corner_bounds.IsEmpty()); + DCHECK_NE(current_program_->rounded_corner_rect_location(), -1); + DCHECK_NE(current_program_->rounded_corner_radius_location(), -1); DCHECK(screen_transform.IsScaleOrTranslation()); + const gfx::Vector2dF& translate = screen_transform.To2dTranslation(); const gfx::Vector2dF& scale = screen_transform.Scale2d(); gfx::RRectF bounds_in_screen = rounded_corner_bounds;
diff --git a/components/viz/service/display/gl_renderer_draw_cache.h b/components/viz/service/display/gl_renderer_draw_cache.h index e81f88f15..0f025f3 100644 --- a/components/viz/service/display/gl_renderer_draw_cache.h +++ b/components/viz/service/display/gl_renderer_draw_cache.h
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "components/viz/service/display/program_binding.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/rrect_f.h" namespace viz { @@ -38,6 +39,7 @@ bool needs_blending = false; bool nearest_neighbor = false; SkColor background_color = 0; + gfx::RRectF rounded_corner_bounds; // A cache for the coalesced quad data. std::vector<Float4> uv_xform_data;
diff --git a/components/viz/service/display/renderer_pixeltest.cc b/components/viz/service/display/renderer_pixeltest.cc index 95ba3b9..d3f13bd8 100644 --- a/components/viz/service/display/renderer_pixeltest.cc +++ b/components/viz/service/display/renderer_pixeltest.cc
@@ -4285,7 +4285,7 @@ cc::ExactPixelComparator(true))); } -TYPED_TEST(GLOnlyRendererPixelTest, RoundedCornerSimple) { +TYPED_TEST(GLOnlyRendererPixelTest, RoundedCornerSimpleSolidDrawQuad) { gfx::Rect viewport_rect(this->device_viewport_size_); constexpr int kInset = 20; constexpr int kCornerRadius = 20; @@ -4323,6 +4323,65 @@ cc::ExactPixelComparator(true))); } +TYPED_TEST(GLOnlyRendererPixelTest, RoundedCornerSimpleTextureDrawQuad) { + gfx::Rect viewport_rect(this->device_viewport_size_); + constexpr int kInset = 20; + constexpr int kCornerRadius = 20; + + int root_pass_id = 1; + std::unique_ptr<RenderPass> root_pass = + CreateTestRootRenderPass(root_pass_id, viewport_rect); + + gfx::Transform quad_to_target_transform; + gfx::Rect blue_rect(0, 0, this->device_viewport_size_.width(), + this->device_viewport_size_.height()); + gfx::Rect red_rect = blue_rect; + blue_rect.Inset(kInset, kInset); + + gfx::RRectF rounded_corner_rrect(gfx::RectF(blue_rect), kCornerRadius); + SharedQuadState* shared_state_rounded = + CreateTestSharedQuadState(quad_to_target_transform, viewport_rect, + root_pass.get(), rounded_corner_rrect); + + const uint8_t colors[] = {0, 0, 255, 255, 0, 0, 255, 255, + 0, 0, 255, 255, 0, 0, 255, 255}; + ResourceId resource = CreateGpuResource( + this->child_context_provider_, this->child_resource_provider_.get(), + gfx::Size(2, 2), RGBA_8888, gfx::ColorSpace(), colors); + + std::unordered_map<ResourceId, ResourceId> resource_map = + cc::SendResourceAndGetChildToParentMap( + {resource}, this->resource_provider_.get(), + this->child_resource_provider_.get(), + this->child_context_provider_.get()); + ResourceId mapped_resource = resource_map[resource]; + bool needs_blending = true; + const gfx::PointF uv_top_left(0.0f, 0.0f); + const gfx::PointF uv_bottom_right(1.0f, 1.0f); + const bool flipped = false; + const bool nearest_neighbor = false; + auto* blue = root_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); + float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; + blue->SetNew(shared_state_rounded, blue_rect, blue_rect, needs_blending, + mapped_resource, true, uv_top_left, uv_bottom_right, + SK_ColorBLACK, vertex_opacity, flipped, nearest_neighbor, + /*secure_output_only=*/false, ui::ProtectedVideoType::kClear); + + SharedQuadState* shared_state_normal = CreateTestSharedQuadState( + quad_to_target_transform, viewport_rect, root_pass.get(), gfx::RRectF()); + + auto* white = root_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); + white->SetNew(shared_state_normal, red_rect, red_rect, SK_ColorWHITE, false); + + RenderPassList pass_list; + pass_list.push_back(std::move(root_pass)); + + EXPECT_TRUE(this->RunPixelTest( + &pass_list, + base::FilePath(FILE_PATH_LITERAL("rounded_corner_simple.png")), + cc::ExactPixelComparator(true))); +} + // This draws a render pass with 2 solid color quads one of which has a rounded // corner. The render pass itself also has a rounded corner. TYPED_TEST(GLOnlyRendererPixelTest, RoundedCornerOnRenderPass) {
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc index d278bb4..097075d 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc
@@ -484,8 +484,8 @@ sk_sp<SkImage> SkiaOutputSurfaceImplNonDDL::MakeSkImageFromSharedImage( const ResourceMetadata& metadata) { - auto representation = - sir_factory_->ProduceSkia(metadata.mailbox_holder.mailbox); + auto representation = sir_factory_->ProduceSkia( + metadata.mailbox_holder.mailbox, shared_context_state_.get()); if (!representation) { DLOG(ERROR) << "Failed to make the SkImage - SharedImage mailbox not " "found in SharedImageManager.";
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc index 27172362..8bf4c2c07d 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
@@ -656,7 +656,7 @@ if (!*shared_image_out && mailbox_holder.mailbox.IsSharedImage()) { std::unique_ptr<gpu::SharedImageRepresentationSkia> shared_image = shared_image_representation_factory_->ProduceSkia( - mailbox_holder.mailbox); + mailbox_holder.mailbox, context_state_.get()); if (!shared_image) { DLOG(ERROR) << "Failed to fulfill the promise texture - SharedImage " "mailbox not found in SharedImageManager.";
diff --git a/content/browser/accessibility/accessibility_event_recorder.cc b/content/browser/accessibility/accessibility_event_recorder.cc index 8e149f8..744cc39 100644 --- a/content/browser/accessibility/accessibility_event_recorder.cc +++ b/content/browser/accessibility/accessibility_event_recorder.cc
@@ -26,16 +26,16 @@ } // static -std::vector<AccessibilityEventRecorder::EventRecorderFactory> +std::vector<AccessibilityEventRecorder::TestPass> AccessibilityEventRecorder::GetTestPasses() { #if defined(OS_ANDROID) // Note: Android doesn't do a "blink" pass; the blink tree is different on // Android because we exclude inline text boxes, for performance. - return {&AccessibilityEventRecorder::Create}; + return {{"android", &AccessibilityEventRecorder::Create}}; #else // defined(OS_ANDROID) return { - &AccessibilityEventRecorder::Create, - &AccessibilityEventRecorder::Create, + {"blink", &AccessibilityEventRecorder::Create}, + {"native", &AccessibilityEventRecorder::Create}, }; #endif // defined(OS_ANDROID) }
diff --git a/content/browser/accessibility/accessibility_event_recorder.h b/content/browser/accessibility/accessibility_event_recorder.h index 6e12f95..d9ee28c 100644 --- a/content/browser/accessibility/accessibility_event_recorder.h +++ b/content/browser/accessibility/accessibility_event_recorder.h
@@ -50,7 +50,11 @@ BrowserAccessibilityManager* manager, base::ProcessId pid, const base::StringPiece& application_name_match_pattern); - static std::vector<EventRecorderFactory> GetTestPasses(); + struct TestPass { + const char* name; + EventRecorderFactory create_recorder; + }; + static std::vector<TestPass> GetTestPasses(); AccessibilityEventRecorder(BrowserAccessibilityManager* manager); virtual ~AccessibilityEventRecorder();
diff --git a/content/browser/accessibility/accessibility_event_recorder_auralinux.cc b/content/browser/accessibility/accessibility_event_recorder_auralinux.cc index e2091f3d..8683b727 100644 --- a/content/browser/accessibility/accessibility_event_recorder_auralinux.cc +++ b/content/browser/accessibility/accessibility_event_recorder_auralinux.cc
@@ -97,12 +97,12 @@ manager, pid, application_name_match_pattern); } -std::vector<AccessibilityEventRecorder::EventRecorderFactory> +std::vector<AccessibilityEventRecorder::TestPass> AccessibilityEventRecorder::GetTestPasses() { // Both the Blink pass and native pass use the same recorder return { - &AccessibilityEventRecorder::Create, - &AccessibilityEventRecorder::Create, + {"blink", &AccessibilityEventRecorder::Create}, + {"linux", &AccessibilityEventRecorder::Create}, }; }
diff --git a/content/browser/accessibility/accessibility_event_recorder_mac.mm b/content/browser/accessibility/accessibility_event_recorder_mac.mm index 002aa65..bb92209 100644 --- a/content/browser/accessibility/accessibility_event_recorder_mac.mm +++ b/content/browser/accessibility/accessibility_event_recorder_mac.mm
@@ -72,12 +72,12 @@ return std::make_unique<AccessibilityEventRecorderMac>(manager, pid); } -std::vector<AccessibilityEventRecorder::EventRecorderFactory> +std::vector<AccessibilityEventRecorder::TestPass> AccessibilityEventRecorder::GetTestPasses() { // Both the Blink pass and native pass use the same recorder return { - &AccessibilityEventRecorder::Create, - &AccessibilityEventRecorder::Create, + {"blink", &AccessibilityEventRecorder::Create}, + {"mac", &AccessibilityEventRecorder::Create}, }; }
diff --git a/content/browser/accessibility/accessibility_event_recorder_win.cc b/content/browser/accessibility/accessibility_event_recorder_win.cc index 4855000..f4fcad0 100644 --- a/content/browser/accessibility/accessibility_event_recorder_win.cc +++ b/content/browser/accessibility/accessibility_event_recorder_win.cc
@@ -136,15 +136,15 @@ manager, pid, application_name_match_pattern); } -std::vector<AccessibilityEventRecorder::EventRecorderFactory> +std::vector<AccessibilityEventRecorder::TestPass> AccessibilityEventRecorder::GetTestPasses() { // In addition to the 'Blink' pass, Windows includes two accessibility APIs // that need to be tested independently (MSAA & UIA); the Blink pass uses the // same recorder as the MSAA pass. return { - &AccessibilityEventRecorder::Create, - &AccessibilityEventRecorder::Create, - &AccessibilityEventRecorderUia::CreateUia, + {"blink", &AccessibilityEventRecorder::Create}, + {"win", &AccessibilityEventRecorder::Create}, + {"uia", &AccessibilityEventRecorderUia::CreateUia}, }; }
diff --git a/content/browser/accessibility/accessibility_tree_formatter.cc b/content/browser/accessibility/accessibility_tree_formatter.cc index 8647fbe..2169274 100644 --- a/content/browser/accessibility/accessibility_tree_formatter.cc +++ b/content/browser/accessibility/accessibility_tree_formatter.cc
@@ -223,9 +223,6 @@ property_filters->push_back(PropertyFilter(base::ASCIIToUTF16(filter), type)); } -void AccessibilityTreeFormatter::SetUpCommandLineForTestPass( - base::CommandLine* command_line) {} - void AccessibilityTreeFormatter::AddDefaultFilters( std::vector<PropertyFilter>* property_filters) {} } // namespace content
diff --git a/content/browser/accessibility/accessibility_tree_formatter.h b/content/browser/accessibility/accessibility_tree_formatter.h index d13c39aa..45d934c 100644 --- a/content/browser/accessibility/accessibility_tree_formatter.h +++ b/content/browser/accessibility/accessibility_tree_formatter.h
@@ -71,10 +71,13 @@ // Get a set of factory methods to create tree-formatters, one for each test // pass; see |DumpAccessibilityTestBase|. using FormatterFactory = std::unique_ptr<AccessibilityTreeFormatter> (*)(); - static std::vector<FormatterFactory> GetTestPasses(); - - // Called to allow each test pass to alter the command-line - virtual void SetUpCommandLineForTestPass(base::CommandLine* command_line); + using CommandLineHelper = void (*)(base::CommandLine* command_line); + struct TestPass { + const char* name; + FormatterFactory create_formatter; + CommandLineHelper set_up_command_line; + }; + static std::vector<TestPass> GetTestPasses(); virtual void AddDefaultFilters(std::vector<PropertyFilter>* property_filters);
diff --git a/content/browser/accessibility/accessibility_tree_formatter_android.cc b/content/browser/accessibility/accessibility_tree_formatter_android.cc index 3ac10a8..9c7856ee 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_android.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_android.cc
@@ -91,12 +91,12 @@ } // static -std::vector<AccessibilityTreeFormatter::FormatterFactory> +std::vector<AccessibilityTreeFormatter::TestPass> AccessibilityTreeFormatter::GetTestPasses() { // Note: Android doesn't do a "blink" pass; the blink tree is different on // Android because we exclude inline text boxes, for performance. return { - &AccessibilityTreeFormatter::Create, + {"android", &AccessibilityTreeFormatter::Create}, }; }
diff --git a/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc b/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc index 7dbee99..5c0013aa 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
@@ -67,11 +67,11 @@ } // static -std::vector<AccessibilityTreeFormatter::FormatterFactory> +std::vector<AccessibilityTreeFormatter::TestPass> AccessibilityTreeFormatter::GetTestPasses() { return { - &AccessibilityTreeFormatterBlink::CreateBlink, - &AccessibilityTreeFormatter::Create, + {"blink", &AccessibilityTreeFormatterBlink::CreateBlink}, + {"linux", &AccessibilityTreeFormatter::Create}, }; }
diff --git a/content/browser/accessibility/accessibility_tree_formatter_mac.mm b/content/browser/accessibility/accessibility_tree_formatter_mac.mm index e2ce770..8a4fbbc 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_mac.mm +++ b/content/browser/accessibility/accessibility_tree_formatter_mac.mm
@@ -244,11 +244,11 @@ } // static -std::vector<AccessibilityTreeFormatter::FormatterFactory> +std::vector<AccessibilityTreeFormatter::TestPass> AccessibilityTreeFormatter::GetTestPasses() { return { - &AccessibilityTreeFormatterBlink::CreateBlink, - &AccessibilityTreeFormatter::Create, + {"blink", &AccessibilityTreeFormatterBlink::CreateBlink}, + {"mac", &AccessibilityTreeFormatter::Create}, }; }
diff --git a/content/browser/accessibility/accessibility_tree_formatter_stub.cc b/content/browser/accessibility/accessibility_tree_formatter_stub.cc index 580db24a..4e174b58 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_stub.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_stub.cc
@@ -35,11 +35,11 @@ } // static -std::vector<AccessibilityTreeFormatter::FormatterFactory> +std::vector<AccessibilityTreeFormatter::TestPass> AccessibilityTreeFormatter::GetTestPasses() { return { - &AccessibilityTreeFormatterBlink::CreateBlink, - &AccessibilityTreeFormatter::Create, + {"blink", &AccessibilityTreeFormatterBlink::CreateBlink}, + {"native", &AccessibilityTreeFormatter::Create}, }; } #endif
diff --git a/content/browser/accessibility/accessibility_tree_formatter_uia_win.cc b/content/browser/accessibility/accessibility_tree_formatter_uia_win.cc index 0bae7f8..b8e78ee 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_uia_win.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_uia_win.cc
@@ -242,10 +242,11 @@ AddPropertyFilter(property_filters, "IsDataValidForForm=true"); AddPropertyFilter(property_filters, "IsRequiredForForm=true"); } + +// static void AccessibilityTreeFormatterUia::SetUpCommandLineForTestPass( base::CommandLine* command_line) { - base::CommandLine::ForCurrentProcess()->AppendSwitch( - ::switches::kEnableExperimentalUIAutomation); + command_line->AppendSwitch(::switches::kEnableExperimentalUIAutomation); } std::unique_ptr<base::DictionaryValue>
diff --git a/content/browser/accessibility/accessibility_tree_formatter_uia_win.h b/content/browser/accessibility/accessibility_tree_formatter_uia_win.h index 04913df..544d8b5a 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_uia_win.h +++ b/content/browser/accessibility/accessibility_tree_formatter_uia_win.h
@@ -27,7 +27,7 @@ void AddDefaultFilters( std::vector<PropertyFilter>* property_filters) override; - void SetUpCommandLineForTestPass(base::CommandLine* command_line) override; + static void SetUpCommandLineForTestPass(base::CommandLine* command_line); const base::FilePath::StringType GetExpectedFileSuffix() override;
diff --git a/content/browser/accessibility/accessibility_tree_formatter_win.cc b/content/browser/accessibility/accessibility_tree_formatter_win.cc index 18e24c7..077eb10 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_win.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_win.cc
@@ -55,7 +55,7 @@ LONG window_x = 0, LONG window_y = 0); - void SetUpCommandLineForTestPass(base::CommandLine* command_line) override; + static void SetUpCommandLineForTestPass(base::CommandLine* command_line); void AddDefaultFilters( std::vector<PropertyFilter>* property_filters) override; @@ -108,21 +108,22 @@ } // static -std::vector<AccessibilityTreeFormatter::FormatterFactory> +std::vector<AccessibilityTreeFormatter::TestPass> AccessibilityTreeFormatter::GetTestPasses() { // In addition to the 'Blink' pass, Windows includes two accessibility APIs // that need to be tested independently (MSAA & UIA). return { - &AccessibilityTreeFormatterBlink::CreateBlink, - &AccessibilityTreeFormatter::Create, - &AccessibilityTreeFormatterUia::CreateUia, + {"blink", &AccessibilityTreeFormatterBlink::CreateBlink, nullptr}, + {"win", &AccessibilityTreeFormatter::Create, + &AccessibilityTreeFormatterWin::SetUpCommandLineForTestPass}, + {"uia", &AccessibilityTreeFormatterUia::CreateUia, + &AccessibilityTreeFormatterUia::SetUpCommandLineForTestPass}, }; } void AccessibilityTreeFormatterWin::SetUpCommandLineForTestPass( base::CommandLine* command_line) { - base::CommandLine::ForCurrentProcess()->RemoveSwitch( - ::switches::kEnableExperimentalUIAutomation); + command_line->RemoveSwitch(::switches::kEnableExperimentalUIAutomation); } void AccessibilityTreeFormatterWin::AddDefaultFilters(
diff --git a/content/browser/accessibility/dump_accessibility_browsertest_base.cc b/content/browser/accessibility/dump_accessibility_browsertest_base.cc index bb43d97a..8fd4f5b 100644 --- a/content/browser/accessibility/dump_accessibility_browsertest_base.cc +++ b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
@@ -90,6 +90,13 @@ void DumpAccessibilityTestBase::SetUpCommandLine( base::CommandLine* command_line) { IsolateAllSitesForTesting(command_line); + + // Each test pass might require custom command-line setup + auto passes = AccessibilityTreeFormatter::GetTestPasses(); + size_t current_pass = GetParam(); + CHECK_LT(current_pass, passes.size()); + if (passes[current_pass].set_up_command_line) + passes[current_pass].set_up_command_line(command_line); } void DumpAccessibilityTestBase::SetUpOnMainThread() { @@ -201,14 +208,19 @@ // Get all the tree formatters; the test is run independently on each one. auto formatters = AccessibilityTreeFormatter::GetTestPasses(); auto event_recorders = AccessibilityEventRecorder::GetTestPasses(); - DCHECK(event_recorders.size() == formatters.size()); + CHECK(event_recorders.size() == formatters.size()); - int pass_count = formatters.size(); - for (int pass = 0; pass < pass_count; ++pass) { - formatter_factory_ = formatters[pass]; - event_recorder_factory_ = event_recorders[pass]; - RunTestForPlatform(file_path, file_dir); - } + // The current test number is supplied as a test parameter. + size_t current_pass = GetParam(); + CHECK_LT(current_pass, formatters.size()); + CHECK_EQ(std::string(formatters[current_pass].name), + std::string(event_recorders[current_pass].name)); + + formatter_factory_ = formatters[current_pass].create_formatter; + event_recorder_factory_ = event_recorders[current_pass].create_recorder; + + RunTestForPlatform(file_path, file_dir); + formatter_factory_ = nullptr; event_recorder_factory_ = nullptr; } @@ -218,10 +230,6 @@ const char* file_dir) { formatter_ = formatter_factory_(); - base::test::ScopedCommandLine scoped_command_line; - formatter_->SetUpCommandLineForTestPass( - scoped_command_line.GetProcessCommandLine()); - // Disable the "hot tracked" state (set when the mouse is hovering over // an object) because it makes test output change based on the mouse position. BrowserAccessibilityStateImpl::GetInstance()
diff --git a/content/browser/accessibility/dump_accessibility_browsertest_base.h b/content/browser/accessibility/dump_accessibility_browsertest_base.h index 135fc57..1241435 100644 --- a/content/browser/accessibility/dump_accessibility_browsertest_base.h +++ b/content/browser/accessibility/dump_accessibility_browsertest_base.h
@@ -26,7 +26,8 @@ // testing accessibility in Chromium. // // See content/test/data/accessibility/readme.md for an overview. -class DumpAccessibilityTestBase : public ContentBrowserTest { +class DumpAccessibilityTestBase : public ContentBrowserTest, + public ::testing::WithParamInterface<size_t> { public: DumpAccessibilityTestBase(); ~DumpAccessibilityTestBase() override;
diff --git a/content/browser/accessibility/dump_accessibility_events_browsertest.cc b/content/browser/accessibility/dump_accessibility_events_browsertest.cc index cb0b5f8a..228f418 100644 --- a/content/browser/accessibility/dump_accessibility_events_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_events_browsertest.cc
@@ -71,6 +71,9 @@ property_filters->push_back( PropertyFilter(base::ASCIIToUTF16("EVENT_OBJECT_FOCUS*DOCUMENT*"), PropertyFilter::DENY)); + property_filters->push_back( + PropertyFilter(base::ASCIIToUTF16("AutomationFocusChanged*document*"), + PropertyFilter::DENY)); } std::vector<std::string> Dump(std::vector<std::string>& run_until) override; @@ -206,291 +209,307 @@ RunTest(event_file, "accessibility/event"); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +// Parameterize the tests so that each test-pass is run independently. +struct DumpAccessibilityEventsTestPassToString { + std::string operator()(const ::testing::TestParamInfo<size_t>& i) const { + auto passes = AccessibilityEventRecorder::GetTestPasses(); + CHECK_LT(i.param, passes.size()); + return passes[i.param].name; + } +}; + +INSTANTIATE_TEST_SUITE_P( + , + DumpAccessibilityEventsTest, + ::testing::Range(size_t{0}, + AccessibilityEventRecorder::GetTestPasses().size()), + DumpAccessibilityEventsTestPassToString()); + +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaBusyChanged) { RunEventTest(FILE_PATH_LITERAL("aria-busy-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaComboBoxCollapse) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-collapse.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaComboBoxExpand) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-expand.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaTreeCollapse) { RunEventTest(FILE_PATH_LITERAL("aria-tree-collapse.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaTreeExpand) { RunEventTest(FILE_PATH_LITERAL("aria-tree-expand.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaTreeItemFocus) { RunEventTest(FILE_PATH_LITERAL("aria-treeitem-focus.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaComboBoxFocus) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-focus.html")); } // TODO(aboxhall): Fix flaky test -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsAriaComboBoxDelayAddList) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-delay-add-list.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaComboBoxDelayShowList) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-delay-show-list.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaComboBoxNext) { RunEventTest(FILE_PATH_LITERAL("aria-combo-box-next.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSliderValueBothChange) { RunEventTest(FILE_PATH_LITERAL("aria-slider-value-both-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSliderValueChange) { RunEventTest(FILE_PATH_LITERAL("aria-slider-value-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSliderValueTextChange) { RunEventTest(FILE_PATH_LITERAL("aria-slider-valuetext-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSpinButtonValueBothChange) { RunEventTest(FILE_PATH_LITERAL("aria-spinbutton-value-both-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSpinButtonValueChange) { RunEventTest(FILE_PATH_LITERAL("aria-spinbutton-value-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaSpinButtonValueTextChange) { RunEventTest(FILE_PATH_LITERAL("aria-spinbutton-valuetext-change.html")); } // https://crbug.com/941919 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsAddAlert) { RunEventTest(FILE_PATH_LITERAL("add-alert.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAddChildOfBody) { RunEventTest(FILE_PATH_LITERAL("add-child-of-body.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAddHiddenAttribute) { RunEventTest(FILE_PATH_LITERAL("add-hidden-attribute.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAddHiddenAttributeSubtree) { RunEventTest(FILE_PATH_LITERAL("add-hidden-attribute-subtree.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAddSubtree) { RunEventTest(FILE_PATH_LITERAL("add-subtree.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsCheckedStateChanged) { RunEventTest(FILE_PATH_LITERAL("checked-state-changed.html")); } // http:/crbug.com/889013 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsCaretHide) { RunEventTest(FILE_PATH_LITERAL("caret-hide.html")); } // http:/crbug.com/889013 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsCaretMove) { RunEventTest(FILE_PATH_LITERAL("caret-move.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsCheckboxValidity) { RunEventTest(FILE_PATH_LITERAL("checkbox-validity.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsCSSDisplay) { RunEventTest(FILE_PATH_LITERAL("css-display.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsCSSVisibility) { RunEventTest(FILE_PATH_LITERAL("css-visibility.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsDescriptionChange) { RunEventTest(FILE_PATH_LITERAL("description-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsDescriptionChangeIndirect) { RunEventTest(FILE_PATH_LITERAL("description-change-indirect.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsDisabledStateChanged) { RunEventTest(FILE_PATH_LITERAL("disabled-state-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsExpandedChange) { RunEventTest(FILE_PATH_LITERAL("expanded-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsFormRequiredChanged) { RunEventTest(FILE_PATH_LITERAL("form-required-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsInnerHtmlChange) { RunEventTest(FILE_PATH_LITERAL("inner-html-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsInputTypeTextValueChanged) { RunEventTest(FILE_PATH_LITERAL("input-type-text-value-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsInvalidStatusChange) { RunEventTest(FILE_PATH_LITERAL("invalid-status-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsListboxFocus) { RunEventTest(FILE_PATH_LITERAL("listbox-focus.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsListboxNext) { RunEventTest(FILE_PATH_LITERAL("listbox-next.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionAdd) { RunEventTest(FILE_PATH_LITERAL("live-region-add.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionAddLiveAttribute) { RunEventTest(FILE_PATH_LITERAL("live-region-add-live-attribute.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionChange) { RunEventTest(FILE_PATH_LITERAL("live-region-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionCreate) { RunEventTest(FILE_PATH_LITERAL("live-region-create.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionOff) { RunEventTest(FILE_PATH_LITERAL("live-region-off.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsLiveRegionElemReparent) { RunEventTest(FILE_PATH_LITERAL("live-region-elem-reparent.html")); } // TODO(aboxhall): Fix flakiness. -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsLiveRegionIgnoresClick) { RunEventTest(FILE_PATH_LITERAL("live-region-ignores-click.html")); } // http:/crbug.com/786848 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsLiveRegionRemove) { RunEventTest(FILE_PATH_LITERAL("live-region-remove.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsMenuListCollapse) { RunEventTest(FILE_PATH_LITERAL("menulist-collapse.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsMenuListCollapseNext) { RunEventTest(FILE_PATH_LITERAL("menulist-collapse-next.html")); } // https://crbug.com/719030 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsMenuListExpand) { RunEventTest(FILE_PATH_LITERAL("menulist-expand.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsMenuListFocus) { RunEventTest(FILE_PATH_LITERAL("menulist-focus.html")); } // https://crbug.com/719030 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsMenuListNext) { RunEventTest(FILE_PATH_LITERAL("menulist-next.html")); } // http://crbug.com/719030 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, DISABLED_AccessibilityEventsMenuListPopup) { RunEventTest(FILE_PATH_LITERAL("menulist-popup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsNameChange) { RunEventTest(FILE_PATH_LITERAL("name-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsNameChangeIndirect) { RunEventTest(FILE_PATH_LITERAL("name-change-indirect.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsDocumentTitleChange) { RunEventTest(FILE_PATH_LITERAL("document-title-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsRemoveChild) { RunEventTest(FILE_PATH_LITERAL("remove-child.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsRemoveHiddenAttribute) { RunEventTest(FILE_PATH_LITERAL("remove-hidden-attribute.html")); } @@ -503,88 +522,88 @@ #define MAYBE_AccessibilityEventsReportValidityInvalidField \ AccessibilityEventsReportValidityInvalidField #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, MAYBE_AccessibilityEventsReportValidityInvalidField) { RunEventTest(FILE_PATH_LITERAL("report-validity-invalid-field.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsRemoveHiddenAttributeSubtree) { RunEventTest(FILE_PATH_LITERAL("remove-hidden-attribute-subtree.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsScrollHorizontalScrollPercentChange) { RunEventTest( FILE_PATH_LITERAL("scroll-horizontal-scroll-percent-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsScrollVerticalScrollPercentChange) { RunEventTest(FILE_PATH_LITERAL("scroll-vertical-scroll-percent-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTabindexAddedOnPlainDiv) { RunEventTest(FILE_PATH_LITERAL("tabindex-added-on-plain-div.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTabindexAddedOnAriaHidden) { RunEventTest(FILE_PATH_LITERAL("tabindex-added-on-aria-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTabindexRemovedOnPlainDiv) { RunEventTest(FILE_PATH_LITERAL("tabindex-removed-on-plain-div.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTabindexRemovedOnAriaHidden) { RunEventTest(FILE_PATH_LITERAL("tabindex-removed-on-aria-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTableColumnHidden) { RunEventTest(FILE_PATH_LITERAL("table-column-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTextChanged) { RunEventTest(FILE_PATH_LITERAL("text-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaCheckedChanged) { RunEventTest(FILE_PATH_LITERAL("aria-checked-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaMultiselectableChanged) { RunEventTest(FILE_PATH_LITERAL("aria-multiselectable-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaRequiredChanged) { RunEventTest(FILE_PATH_LITERAL("aria-required-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsAriaPressedChanged) { RunEventTest(FILE_PATH_LITERAL("aria-pressed-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTheadFocus) { RunEventTest(FILE_PATH_LITERAL("thead-focus.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTfootFocus) { RunEventTest(FILE_PATH_LITERAL("tfoot-focus.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsTbodyFocus) { RunEventTest(FILE_PATH_LITERAL("tbody-focus.html")); } @@ -599,46 +618,46 @@ #define MAYBE_AccessibilityEventsAriaSelectedChanged \ AccessibilityEventsAriaSelectedChanged #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, MAYBE_AccessibilityEventsAriaSelectedChanged) { RunEventTest(FILE_PATH_LITERAL("aria-selected-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsButtonClick) { RunEventTest(FILE_PATH_LITERAL("button-click.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, RangeValueIsReadonlyChanged) { RunEventTest(FILE_PATH_LITERAL("range-value-is-readonly-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, RangeValueMaximumChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, RangeValueMaximumChanged) { RunEventTest(FILE_PATH_LITERAL("range-value-maximum-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, RangeValueMinimumChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, RangeValueMinimumChanged) { RunEventTest(FILE_PATH_LITERAL("range-value-minimum-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, RangeValueStepChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, RangeValueStepChanged) { RunEventTest(FILE_PATH_LITERAL("range-value-step-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, RangeValueValueChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, RangeValueValueChanged) { RunEventTest(FILE_PATH_LITERAL("range-value-value-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, ValueIsReadOnlyChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, ValueIsReadOnlyChanged) { RunEventTest(FILE_PATH_LITERAL("value-is-readonly-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, ValueValueChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, ValueValueChanged) { RunEventTest(FILE_PATH_LITERAL("value-value-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityEventsTest, AccessibilityEventsMenuOpenedClosed) { RunEventTest(FILE_PATH_LITERAL("menu-opened-closed.html")); }
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index 0bc3c0f..c31a4ee 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -196,932 +196,948 @@ AddPropertyFilter(property_filters, "name=*", PropertyFilter::ALLOW_EMPTY); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCSSColor) { +// Parameterize the tests so that each test-pass is run independently. +struct DumpAccessibilityTreeTestPassToString { + std::string operator()(const ::testing::TestParamInfo<size_t>& i) const { + auto passes = AccessibilityTreeFormatter::GetTestPasses(); + CHECK_LT(i.param, passes.size()); + return passes[i.param].name; + } +}; + +INSTANTIATE_TEST_SUITE_P( + , + DumpAccessibilityTreeTest, + ::testing::Range(size_t{0}, + AccessibilityTreeFormatter::GetTestPasses().size()), + DumpAccessibilityTreeTestPassToString()); + +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSColor) { RunCSSTest(FILE_PATH_LITERAL("color.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCSSFontStyle) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSFontStyle) { RunCSSTest(FILE_PATH_LITERAL("font-style.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCSSFontFamily) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSFontFamily) { RunCSSTest(FILE_PATH_LITERAL("font-family.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSDisplayToInline) { RunCSSTest(FILE_PATH_LITERAL("display-to-inline.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSDisplayToBlock) { RunCSSTest(FILE_PATH_LITERAL("display-to-block.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSInlinePositionRelative) { RunCSSTest(FILE_PATH_LITERAL("inline-position-relative.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCSSLanguage) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSLanguage) { RunCSSTest(FILE_PATH_LITERAL("language.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSTableIncomplete) { RunCSSTest(FILE_PATH_LITERAL("table-incomplete.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCSSTransform) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCSSTransform) { RunCSSTest(FILE_PATH_LITERAL("transform.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityA) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityA) { RunHtmlTest(FILE_PATH_LITERAL("a.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAbbr) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAbbr) { RunHtmlTest(FILE_PATH_LITERAL("abbr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAbsoluteOffscreen) { RunHtmlTest(FILE_PATH_LITERAL("absolute-offscreen.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityActionVerbs) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityActionVerbs) { RunHtmlTest(FILE_PATH_LITERAL("action-verbs.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityActions) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityActions) { RunHtmlTest(FILE_PATH_LITERAL("actions.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAddClickListener) { RunHtmlTest(FILE_PATH_LITERAL("add-click-listener.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAddress) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAddress) { RunHtmlTest(FILE_PATH_LITERAL("address.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityArea) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityArea) { RunHtmlTest(FILE_PATH_LITERAL("area.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAName) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAName) { RunHtmlTest(FILE_PATH_LITERAL("a-name.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityANameCalc) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityANameCalc) { RunHtmlTest(FILE_PATH_LITERAL("a-name-calc.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityANoText) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityANoText) { RunHtmlTest(FILE_PATH_LITERAL("a-no-text.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAOnclick) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAOnclick) { RunHtmlTest(FILE_PATH_LITERAL("a-onclick.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAIsInteresting) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAIsInteresting) { RunHtmlTest(FILE_PATH_LITERAL("isInteresting.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityClickableAncestor) { RunHtmlTest(FILE_PATH_LITERAL("clickable-ancestor.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAomBusy) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAomBusy) { RunAomTest(FILE_PATH_LITERAL("aom-busy.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAomChecked) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAomChecked) { RunAomTest(FILE_PATH_LITERAL("aom-checked.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaActivedescendant) { RunAriaTest(FILE_PATH_LITERAL("aria-activedescendant.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaAlert) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaAlert) { RunAriaTest(FILE_PATH_LITERAL("aria-alert.html")); } #if defined(OS_WIN) -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityAriaAlertDialog) { RunAriaTest(FILE_PATH_LITERAL("aria-alertdialog.html")); } #else -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaAlertDialog) { RunAriaTest(FILE_PATH_LITERAL("aria-alertdialog.html")); } #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaAnyUnignored) { RunAriaTest(FILE_PATH_LITERAL("aria-any-unignored.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaApplication) { RunAriaTest(FILE_PATH_LITERAL("aria-application.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaArticle) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaArticle) { RunAriaTest(FILE_PATH_LITERAL("aria-article.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaAtomic) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaAtomic) { RunAriaTest(FILE_PATH_LITERAL("aria-atomic.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaAutocomplete) { RunAriaTest(FILE_PATH_LITERAL("aria-autocomplete.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBanner) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaBanner) { RunAriaTest(FILE_PATH_LITERAL("aria-banner.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBlockquote) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaBlockquote) { RunAriaTest(FILE_PATH_LITERAL("aria-blockquote.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBusy) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaBusy) { RunAriaTest(FILE_PATH_LITERAL("aria-busy.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaButton) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaButton) { RunAriaTest(FILE_PATH_LITERAL("aria-button.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCaption) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaCaption) { RunAriaTest(FILE_PATH_LITERAL("aria-caption.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCell) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaCell) { RunAriaTest(FILE_PATH_LITERAL("aria-cell.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) { RunAriaTest(FILE_PATH_LITERAL("aria-checkbox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaChecked) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaChecked) { RunAriaTest(FILE_PATH_LITERAL("aria-checked.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaColAttr) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaColAttr) { RunAriaTest(FILE_PATH_LITERAL("aria-col-attr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaColumnHeader) { RunAriaTest(FILE_PATH_LITERAL("aria-columnheader.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCombobox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaCombobox) { RunAriaTest(FILE_PATH_LITERAL("aria-combobox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaOnePointOneCombobox) { RunAriaTest(FILE_PATH_LITERAL("aria1.1-combobox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaComplementary) { RunAriaTest(FILE_PATH_LITERAL("aria-complementary.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaContentInfo) { RunAriaTest(FILE_PATH_LITERAL("aria-contentinfo.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaControls) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaControls) { RunAriaTest(FILE_PATH_LITERAL("aria-controls.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCurrent) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaCurrent) { RunAriaTest(FILE_PATH_LITERAL("aria-current.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDefinition) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDefinition) { RunAriaTest(FILE_PATH_LITERAL("aria-definition.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDescribedBy) { RunAriaTest(FILE_PATH_LITERAL("aria-describedby.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDescribedByUpdates) { RunAriaTest(FILE_PATH_LITERAL("aria-describedby-updates.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDetails) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDetails) { RunAriaTest(FILE_PATH_LITERAL("aria-details.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDialog) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDialog) { RunAriaTest(FILE_PATH_LITERAL("aria-dialog.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDirectory) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDirectory) { RunAriaTest(FILE_PATH_LITERAL("aria-directory.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDisabled) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDisabled) { RunAriaTest(FILE_PATH_LITERAL("aria-disabled.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDocument) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDocument) { RunAriaTest(FILE_PATH_LITERAL("aria-document.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaDropEffect) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaDropEffect) { RunAriaTest(FILE_PATH_LITERAL("aria-dropeffect.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaEditable) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaEditable) { RunAriaTest(FILE_PATH_LITERAL("aria-editable.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaErrorMessage) { RunAriaTest(FILE_PATH_LITERAL("aria-errormessage.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaExpanded) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaExpanded) { RunAriaTest(FILE_PATH_LITERAL("aria-expanded.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaFeed) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaFeed) { RunAriaTest(FILE_PATH_LITERAL("aria-feed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaFigure) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaFigure) { RunAriaTest(FILE_PATH_LITERAL("aria-figure.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHasPopup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHasPopup) { RunAriaTest(FILE_PATH_LITERAL("aria-haspopup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHeading) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHeading) { RunAriaTest(FILE_PATH_LITERAL("aria-heading.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaHidden) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHidden) { RunAriaTest(FILE_PATH_LITERAL("aria-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHiddenDescendants) { RunAriaTest(FILE_PATH_LITERAL("aria-hidden-descendants.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHiddenDescendantTabindexChange) { RunAriaTest(FILE_PATH_LITERAL("aria-hidden-descendant-tabindex-change.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaHiddenIframeBody) { RunAriaTest(FILE_PATH_LITERAL("aria-hidden-iframe-body.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE(AccessibilityAriaFlowto)) { RunAriaTest(FILE_PATH_LITERAL("aria-flowto.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE(AccessibilityAriaFlowtoMultiple)) { RunAriaTest(FILE_PATH_LITERAL("aria-flowto-multiple.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaForm) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaForm) { RunAriaTest(FILE_PATH_LITERAL("aria-form.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaGrabbed) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGrabbed) { RunAriaTest(FILE_PATH_LITERAL("aria-grabbed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaGrid) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGrid) { RunAriaTest(FILE_PATH_LITERAL("aria-grid.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGridDynamicAddRow) { RunAriaTest(FILE_PATH_LITERAL("aria-grid-dynamic-add-row.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGridExtraWrapElems) { RunAriaTest(FILE_PATH_LITERAL("aria-grid-extra-wrap-elems.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaGridCell) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGridCell) { RunAriaTest(FILE_PATH_LITERAL("aria-gridcell.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaGroup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaGroup) { RunAriaTest(FILE_PATH_LITERAL("aria-group.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaIllegalVal) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaIllegalVal) { RunAriaTest(FILE_PATH_LITERAL("aria-illegal-val.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaImg) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaImg) { RunAriaTest(FILE_PATH_LITERAL("aria-img.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaInsertionDeletion) { RunAriaTest(FILE_PATH_LITERAL("aria-insertion-deletion.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaInvalid) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaInvalid) { RunAriaTest(FILE_PATH_LITERAL("aria-invalid.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaKeyShortcuts) { RunAriaTest(FILE_PATH_LITERAL("aria-keyshortcuts.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLabel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLabel) { RunAriaTest(FILE_PATH_LITERAL("aria-label.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLabelledByHeading) { RunAriaTest(FILE_PATH_LITERAL("aria-labelledby-heading.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLabelledByUpdates) { RunAriaTest(FILE_PATH_LITERAL("aria-labelledby-updates.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLevel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLevel) { RunAriaTest(FILE_PATH_LITERAL("aria-level.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLink) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLink) { RunAriaTest(FILE_PATH_LITERAL("aria-link.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaList) { RunAriaTest(FILE_PATH_LITERAL("aria-list.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaListBox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaListBox) { RunAriaTest(FILE_PATH_LITERAL("aria-listbox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaListBoxActiveDescendant) { RunAriaTest(FILE_PATH_LITERAL("aria-listbox-activedescendant.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaListBoxAriaSelected) { RunAriaTest(FILE_PATH_LITERAL("aria-listbox-aria-selected.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaListBoxChildFocus) { RunAriaTest(FILE_PATH_LITERAL("aria-listbox-childfocus.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaListItem) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaListItem) { RunAriaTest(FILE_PATH_LITERAL("aria-listitem.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLive) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLive) { RunAriaTest(FILE_PATH_LITERAL("aria-live.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLiveNested) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLiveNested) { RunAriaTest(FILE_PATH_LITERAL("aria-live-nested.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLiveWithContent) { RunAriaTest(FILE_PATH_LITERAL("aria-live-with-content.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLog) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaLog) { RunAriaTest(FILE_PATH_LITERAL("aria-log.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMain) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMain) { RunAriaTest(FILE_PATH_LITERAL("aria-main.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMarquee) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMarquee) { RunAriaTest(FILE_PATH_LITERAL("aria-marquee.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenu) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMenu) { RunAriaTest(FILE_PATH_LITERAL("aria-menu.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenuBar) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMenuBar) { RunAriaTest(FILE_PATH_LITERAL("aria-menubar.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenuItem) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMenuItem) { RunAriaTest(FILE_PATH_LITERAL("aria-menuitem.html")); } // crbug.com/442278 will stop creating new text elements representing title. // Re-baseline after the Blink change goes in -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMenuItemCheckBox) { RunAriaTest(FILE_PATH_LITERAL("aria-menuitemcheckbox.html")); } // crbug.com/442278 will stop creating new text elements representing title. // Re-baseline after the Blink change goes in -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMenuItemRadio) { RunAriaTest(FILE_PATH_LITERAL("aria-menuitemradio.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMismatchedTableAttr) { RunHtmlTest(FILE_PATH_LITERAL("aria-mismatched-table-attr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaModal) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaModal) { RunAriaTest(FILE_PATH_LITERAL("aria-modal.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMultiline) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMultiline) { RunAriaTest(FILE_PATH_LITERAL("aria-multiline.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMultiselectable) { RunAriaTest(FILE_PATH_LITERAL("aria-multiselectable.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaNavigation) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaNavigation) { RunAriaTest(FILE_PATH_LITERAL("aria-navigation.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaNote) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaNote) { RunAriaTest(FILE_PATH_LITERAL("aria-note.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaOrientation) { RunAriaTest(FILE_PATH_LITERAL("aria-orientation.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaOwns) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaOwns) { RunAriaTest(FILE_PATH_LITERAL("aria-owns.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaOwnsList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaOwnsList) { RunAriaTest(FILE_PATH_LITERAL("aria-owns-list.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMath) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaMath) { RunAriaTest(FILE_PATH_LITERAL("aria-math.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaNone) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaNone) { RunAriaTest(FILE_PATH_LITERAL("aria-none.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaOption) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaOption) { RunAriaTest(FILE_PATH_LITERAL("aria-option.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaParagraph) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaParagraph) { RunAriaTest(FILE_PATH_LITERAL("aria-paragraph.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaPosinset) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaPosinset) { RunAriaTest(FILE_PATH_LITERAL("aria-posinset.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaArticlePosInSetSetSize) { RunAriaTest(FILE_PATH_LITERAL("aria-article-posinset-setsize.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaPresentation) { RunAriaTest(FILE_PATH_LITERAL("aria-presentation.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaPressed) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaPressed) { RunAriaTest(FILE_PATH_LITERAL("aria-pressed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaProgressbar) { RunAriaTest(FILE_PATH_LITERAL("aria-progressbar.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRadio) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRadio) { RunAriaTest(FILE_PATH_LITERAL("aria-radio.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRadiogroup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRadiogroup) { RunAriaTest(FILE_PATH_LITERAL("aria-radiogroup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaReadonly) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaReadonly) { RunAriaTest(FILE_PATH_LITERAL("aria-readonly.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRegion) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRegion) { RunAriaTest(FILE_PATH_LITERAL("aria-region.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRelevant) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRelevant) { RunAriaTest(FILE_PATH_LITERAL("aria-relevant.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRequired) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRequired) { RunAriaTest(FILE_PATH_LITERAL("aria-required.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRoleDescription) { RunAriaTest(FILE_PATH_LITERAL("aria-roledescription.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRow) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRow) { RunAriaTest(FILE_PATH_LITERAL("aria-row.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRowAttr) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRowAttr) { RunAriaTest(FILE_PATH_LITERAL("aria-row-attr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRowGroup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRowGroup) { RunAriaTest(FILE_PATH_LITERAL("aria-rowgroup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRowHeader) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRowHeader) { RunAriaTest(FILE_PATH_LITERAL("aria-rowheader.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaRowText) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaRowText) { RunAriaTest(FILE_PATH_LITERAL("aria-rowtext.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaScrollbar) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaScrollbar) { RunAriaTest(FILE_PATH_LITERAL("aria-scrollbar.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSearch) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSearch) { RunAriaTest(FILE_PATH_LITERAL("aria-search.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSearchbox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSearchbox) { RunAriaTest(FILE_PATH_LITERAL("aria-searchbox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityAriaSearchboxWithSelection) { RunAriaTest(FILE_PATH_LITERAL("aria-searchbox-with-selection.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSelected) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSelected) { RunAriaTest(FILE_PATH_LITERAL("aria-selected.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSeparator) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSeparator) { RunAriaTest(FILE_PATH_LITERAL("aria-separator.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSetsize) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSetsize) { RunAriaTest(FILE_PATH_LITERAL("aria-setsize.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSetCountsWithHiddenItems) { RunAriaTest(FILE_PATH_LITERAL("aria-set-counts-with-hidden-items.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSlider) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSlider) { RunAriaTest(FILE_PATH_LITERAL("aria-slider.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSortOnAriaGrid) { RunAriaTest(FILE_PATH_LITERAL("aria-sort-aria-grid.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSetCountsWithTreeLevels) { RunAriaTest(FILE_PATH_LITERAL("aria-set-counts-with-tree-levels.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSortOnHtmlTable) { RunAriaTest(FILE_PATH_LITERAL("aria-sort-html-table.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSpinButton) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSpinButton) { RunAriaTest(FILE_PATH_LITERAL("aria-spinbutton.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaStatus) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaStatus) { RunAriaTest(FILE_PATH_LITERAL("aria-status.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaSwitch) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaSwitch) { RunAriaTest(FILE_PATH_LITERAL("aria-switch.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTab) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTab) { RunAriaTest(FILE_PATH_LITERAL("aria-tab.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTable) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTable) { RunAriaTest(FILE_PATH_LITERAL("aria-table.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTabList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTabList) { RunAriaTest(FILE_PATH_LITERAL("aria-tablist.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTabPanel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTabPanel) { RunAriaTest(FILE_PATH_LITERAL("aria-tabpanel.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTerm) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTerm) { RunAriaTest(FILE_PATH_LITERAL("aria-term.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTextbox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTextbox) { RunAriaTest(FILE_PATH_LITERAL("aria-textbox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTextboxWithRichText) { RunAriaTest(FILE_PATH_LITERAL("aria-textbox-with-rich-text.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityAriaTextboxWithSelection) { RunAriaTest(FILE_PATH_LITERAL("aria-textbox-with-selection.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTimer) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTimer) { RunAriaTest(FILE_PATH_LITERAL("aria-timer.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaToggleButton) { RunAriaTest(FILE_PATH_LITERAL("aria-togglebutton.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaToolbar) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaToolbar) { RunAriaTest(FILE_PATH_LITERAL("aria-toolbar.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTooltip) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTooltip) { RunAriaTest(FILE_PATH_LITERAL("aria-tooltip.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTree) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTree) { RunAriaTest(FILE_PATH_LITERAL("aria-tree.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaTreeGrid) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTreeGrid) { RunAriaTest(FILE_PATH_LITERAL("aria-treegrid.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaUndefined) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaUndefined) { RunAriaTest(FILE_PATH_LITERAL("aria-undefined.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaUndefinedLiteral) { RunAriaTest(FILE_PATH_LITERAL("aria-undefined-literal.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaEmptyString) { RunAriaTest(FILE_PATH_LITERAL("aria-empty-string.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueMin) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaValueMin) { RunAriaTest(FILE_PATH_LITERAL("aria-valuemin.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueMax) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaValueMax) { RunAriaTest(FILE_PATH_LITERAL("aria-valuemax.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueNow) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaValueNow) { RunAriaTest(FILE_PATH_LITERAL("aria-valuenow.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaValueText) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaValueText) { RunAriaTest(FILE_PATH_LITERAL("aria-valuetext.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextARIAPlaceholder) { RunAriaTest(FILE_PATH_LITERAL("input-text-aria-placeholder.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableColumnHidden) { RunAriaTest(FILE_PATH_LITERAL("table-column-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLabelWithSelectedAriaOption) { RunAriaTest(FILE_PATH_LITERAL("label-with-selected-option.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityArticle) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityArticle) { RunHtmlTest(FILE_PATH_LITERAL("article.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAside) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAside) { RunHtmlTest(FILE_PATH_LITERAL("aside.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAudio) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAudio) { // https://crbug.com/923993 // Super flaky with NetworkService. if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) RunHtmlTest(FILE_PATH_LITERAL("audio.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAWithImg) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAWithImg) { RunHtmlTest(FILE_PATH_LITERAL("a-with-img.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityB) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityB) { RunHtmlTest(FILE_PATH_LITERAL("b.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBase) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBase) { RunHtmlTest(FILE_PATH_LITERAL("base.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBdo) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBdo) { RunHtmlTest(FILE_PATH_LITERAL("bdo.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBlockquote) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBlockquote) { RunHtmlTest(FILE_PATH_LITERAL("blockquote.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBlockquoteLevels) { RunHtmlTest(FILE_PATH_LITERAL("blockquote-levels.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBody) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBody) { RunHtmlTest(FILE_PATH_LITERAL("body.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBodyTabIndex) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBodyTabIndex) { RunHtmlTest(FILE_PATH_LITERAL("body-tabindex.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBoundsInherits) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBoundsInherits) { RunHtmlTest(FILE_PATH_LITERAL("bounds-inherits.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBoundsClips) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBoundsClips) { RunHtmlTest(FILE_PATH_LITERAL("bounds-clips.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBoundsAbsolute) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBoundsAbsolute) { RunHtmlTest(FILE_PATH_LITERAL("bounds-absolute.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessiblitiyBoundsFixed) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessiblitiyBoundsFixed) { RunHtmlTest(FILE_PATH_LITERAL("bounds-fixed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityBR) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityBR) { RunHtmlTest(FILE_PATH_LITERAL("br.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButton) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityButton) { RunHtmlTest(FILE_PATH_LITERAL("button.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButtonSubmit) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityButtonSubmit) { RunHtmlTest(FILE_PATH_LITERAL("button-submit.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityButtonAltChanged) { RunHtmlTest(FILE_PATH_LITERAL("button-alt-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityButtonContentChanged) { RunHtmlTest(FILE_PATH_LITERAL("button-content-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityButtonNameCalc) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityButtonNameCalc) { RunHtmlTest(FILE_PATH_LITERAL("button-name-calc.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCanvas) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCanvas) { RunHtmlTest(FILE_PATH_LITERAL("canvas.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCaption) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCaption) { RunHtmlTest(FILE_PATH_LITERAL("caption.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCharacterLocations) { RunHtmlTest(FILE_PATH_LITERAL("character-locations.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCheckboxNameCalc) { RunHtmlTest(FILE_PATH_LITERAL("checkbox-name-calc.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCite) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCite) { RunHtmlTest(FILE_PATH_LITERAL("cite.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCode) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCode) { RunHtmlTest(FILE_PATH_LITERAL("code.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityCol) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityCol) { RunHtmlTest(FILE_PATH_LITERAL("col.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityColgroup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityColgroup) { RunHtmlTest(FILE_PATH_LITERAL("colgroup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDd) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDd) { RunHtmlTest(FILE_PATH_LITERAL("dd.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDel) { RunHtmlTest(FILE_PATH_LITERAL("del.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDetails) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDetails) { RunHtmlTest(FILE_PATH_LITERAL("details.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDfn) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDfn) { RunHtmlTest(FILE_PATH_LITERAL("dfn.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDialog) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDialog) { RunHtmlTest(FILE_PATH_LITERAL("dialog.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDisabled) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDisabled) { RunHtmlTest(FILE_PATH_LITERAL("disabled.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDiv) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDiv) { RunHtmlTest(FILE_PATH_LITERAL("div.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDl) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDl) { RunHtmlTest(FILE_PATH_LITERAL("dl.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDt) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDt) { RunHtmlTest(FILE_PATH_LITERAL("dt.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityDpubRoles) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityDpubRoles) { RunAriaTest(FILE_PATH_LITERAL("dpub-roles.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityGraphicsRoles) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityGraphicsRoles) { RunAriaTest(FILE_PATH_LITERAL("graphics-roles.html")); } @@ -1134,12 +1150,12 @@ #define MAYBE_AccessibilityContenteditableDescendants \ AccessibilityContenteditableDescendants #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE_AccessibilityContenteditableDescendants) { RunHtmlTest(FILE_PATH_LITERAL("contenteditable-descendants.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityElementClassIdSrcAttr) { RunHtmlTest(FILE_PATH_LITERAL("element-class-id-src-attr.html")); } @@ -1153,7 +1169,7 @@ #define MAYBE_AccessibilityContenteditableDescendantsWithSelection \ AccessibilityContenteditableDescendantsWithSelection #endif -IN_PROC_BROWSER_TEST_F( +IN_PROC_BROWSER_TEST_P( DumpAccessibilityTreeTest, MAYBE_AccessibilityContenteditableDescendantsWithSelection) { RunHtmlTest( @@ -1168,575 +1184,575 @@ #define MAYBE_AccessibilityContenteditableWithEmbeddedContenteditables \ AccessibilityContenteditableWithEmbeddedContenteditables #endif -IN_PROC_BROWSER_TEST_F( +IN_PROC_BROWSER_TEST_P( DumpAccessibilityTreeTest, MAYBE_AccessibilityContenteditableWithEmbeddedContenteditables) { RunHtmlTest( FILE_PATH_LITERAL("contenteditable-with-embedded-contenteditables.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityContenteditableWithNoDescendants) { RunHtmlTest(FILE_PATH_LITERAL("contenteditable-with-no-descendants.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityEm) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityEm) { RunHtmlTest(FILE_PATH_LITERAL("em.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityEmbed) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityEmbed) { RunHtmlTest(FILE_PATH_LITERAL("embed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFieldset) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFieldset) { RunHtmlTest(FILE_PATH_LITERAL("fieldset.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFigcaption) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFigcaption) { RunHtmlTest(FILE_PATH_LITERAL("figcaption.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFigure) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFigure) { RunHtmlTest(FILE_PATH_LITERAL("figure.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFooter) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFooter) { RunHtmlTest(FILE_PATH_LITERAL("footer.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFooterInsideOtherSection) { RunHtmlTest(FILE_PATH_LITERAL("footer-inside-other-section.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityForm) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityForm) { RunHtmlTest(FILE_PATH_LITERAL("form.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFormValidationMessage) { RunHtmlTest(FILE_PATH_LITERAL("form-validation-message.html")); } // https://crbug.com/944519 -IN_PROC_BROWSER_TEST_F( +IN_PROC_BROWSER_TEST_P( DumpAccessibilityTreeTest, DISABLED_AccessibilityFormValidationMessageRemovedAfterErrorCorrected) { RunHtmlTest(FILE_PATH_LITERAL( "form-validation-message-removed-after-error-corrected.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFormValidationMessageAfterHideTimeout) { RunHtmlTest( FILE_PATH_LITERAL("form-validation-message-after-hide-timeout.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFrameset) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFrameset) { RunHtmlTest(FILE_PATH_LITERAL("frameset.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityFramesetPostEnable) { enable_accessibility_after_navigating_ = true; RunHtmlTest(FILE_PATH_LITERAL("frameset.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHead) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHead) { RunHtmlTest(FILE_PATH_LITERAL("head.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeader) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHeader) { RunHtmlTest(FILE_PATH_LITERAL("header.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHeaderInsideOtherSection) { RunHtmlTest(FILE_PATH_LITERAL("header-inside-other-section.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHeading) { RunHtmlTest(FILE_PATH_LITERAL("heading.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHR) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHR) { RunHtmlTest(FILE_PATH_LITERAL("hr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHTML) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityHTML) { RunHtmlTest(FILE_PATH_LITERAL("html.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityI) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityI) { RunHtmlTest(FILE_PATH_LITERAL("i.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityIframe) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframe) { RunHtmlTest(FILE_PATH_LITERAL("iframe.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframePostEnable) { enable_accessibility_after_navigating_ = true; RunHtmlTest(FILE_PATH_LITERAL("iframe.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeCrossProcess) { RunHtmlTest(FILE_PATH_LITERAL("iframe-cross-process.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeCoordinates) { RunHtmlTest(FILE_PATH_LITERAL("iframe-coordinates.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeCoordinatesCrossProcess) { RunHtmlTest(FILE_PATH_LITERAL("iframe-coordinates-cross-process.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityIframePadding) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframePadding) { RunHtmlTest(FILE_PATH_LITERAL("iframe-padding.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframePresentational) { RunHtmlTest(FILE_PATH_LITERAL("iframe-presentational.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeTransform) { RunHtmlTest(FILE_PATH_LITERAL("iframe-transform.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeTransformCrossProcess) { RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-cross-process.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeTransformNested) { RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-nested.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeTransformNestedCrossProcess) { RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-nested-cross-process.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIframeTransformScrolled) { RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-scrolled.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityImg) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityImg) { RunHtmlTest(FILE_PATH_LITERAL("img.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityImgEmptyAlt) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityImgEmptyAlt) { RunHtmlTest(FILE_PATH_LITERAL("img-empty-alt.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityImgLinkEmptyAlt) { RunHtmlTest(FILE_PATH_LITERAL("img-link-empty-alt.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInPageLinks) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInPageLinks) { RunHtmlTest(FILE_PATH_LITERAL("in-page-links.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputButton) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputButton) { RunHtmlTest(FILE_PATH_LITERAL("input-button.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputButtonInMenu) { RunHtmlTest(FILE_PATH_LITERAL("input-button-in-menu.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputCheckBox) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputCheckBox) { RunHtmlTest(FILE_PATH_LITERAL("input-checkbox.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputCheckBoxInMenu) { RunHtmlTest(FILE_PATH_LITERAL("input-checkbox-in-menu.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputCheckBoxLabel) { RunHtmlTest(FILE_PATH_LITERAL("input-checkbox-label.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputColor) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputColor) { RunHtmlTest(FILE_PATH_LITERAL("input-color.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputDate) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputDate) { RunHtmlTest(FILE_PATH_LITERAL("input-date.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputDateTime) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputDateTime) { RunHtmlTest(FILE_PATH_LITERAL("input-datetime.html")); } // Fails on OS X 10.9 and higher <https://crbug.com/430622>. #if !defined(OS_MACOSX) -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputDateTimeLocal) { RunHtmlTest(FILE_PATH_LITERAL("input-datetime-local.html")); } #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputEmail) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputEmail) { RunHtmlTest(FILE_PATH_LITERAL("input-email.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputFile) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputFile) { RunHtmlTest(FILE_PATH_LITERAL("input-file.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputHidden) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputHidden) { RunHtmlTest(FILE_PATH_LITERAL("input-hidden.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputImage) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputImage) { RunHtmlTest(FILE_PATH_LITERAL("input-image.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputImageButtonInMenu) { RunHtmlTest(FILE_PATH_LITERAL("input-image-button-in-menu.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputList) { RunHtmlTest(FILE_PATH_LITERAL("input-list.html")); } // crbug.com/423675 - AX tree is different for Win7 and Win8. #if defined(OS_WIN) -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityInputMonth) { RunHtmlTest(FILE_PATH_LITERAL("input-month.html")); } #else -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputMonth) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputMonth) { RunHtmlTest(FILE_PATH_LITERAL("input-month.html")); } #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputNumber) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputNumber) { RunHtmlTest(FILE_PATH_LITERAL("input-number.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputPassword) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputPassword) { RunHtmlTest(FILE_PATH_LITERAL("input-password.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputRadio) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputRadio) { RunHtmlTest(FILE_PATH_LITERAL("input-radio.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputRadioInMenu) { RunHtmlTest(FILE_PATH_LITERAL("input-radio-in-menu.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputRange) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputRange) { RunHtmlTest(FILE_PATH_LITERAL("input-range.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputReset) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputReset) { RunHtmlTest(FILE_PATH_LITERAL("input-reset.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputSearch) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputSearch) { RunHtmlTest(FILE_PATH_LITERAL("input-search.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityScrollableInput) { RunHtmlTest(FILE_PATH_LITERAL("scrollable-input.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityScrollableOverflow) { RunHtmlTest(FILE_PATH_LITERAL("scrollable-overflow.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityScrollableTextarea) { RunHtmlTest(FILE_PATH_LITERAL("scrollable-textarea.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySmall) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySmall) { RunHtmlTest(FILE_PATH_LITERAL("small.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputSubmit) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputSubmit) { RunHtmlTest(FILE_PATH_LITERAL("input-submit.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputSuggestionsSourceElement) { RunHtmlTest(FILE_PATH_LITERAL("input-suggestions-source-element.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTel) { RunHtmlTest(FILE_PATH_LITERAL("input-tel.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputText) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputText) { RunHtmlTest(FILE_PATH_LITERAL("input-text.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextReadOnly) { RunHtmlTest(FILE_PATH_LITERAL("input-text-read-only.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextNameCalc) { RunHtmlTest(FILE_PATH_LITERAL("input-text-name-calc.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTextValue) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextValue) { RunHtmlTest(FILE_PATH_LITERAL("input-text-value.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextValueChanged) { RunHtmlTest(FILE_PATH_LITERAL("input-text-value-changed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTextWithSelection) { RunHtmlTest(FILE_PATH_LITERAL("input-text-with-selection.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTime) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTime) { RunHtmlTest(FILE_PATH_LITERAL("input-time.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputTypes) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputTypes) { RunHtmlTest(FILE_PATH_LITERAL("input-types.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputUrl) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputUrl) { RunHtmlTest(FILE_PATH_LITERAL("input-url.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityInputWeek) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputWeek) { RunHtmlTest(FILE_PATH_LITERAL("input-week.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityId) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityId) { RunHtmlTest(FILE_PATH_LITERAL("id.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityIns) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityIns) { RunHtmlTest(FILE_PATH_LITERAL("ins.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLabel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLabel) { RunHtmlTest(FILE_PATH_LITERAL("label.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLabelUpdates) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLabelUpdates) { RunHtmlTest(FILE_PATH_LITERAL("label-updates.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLandmark) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLandmark) { RunHtmlTest(FILE_PATH_LITERAL("landmark.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLayoutTableInButton) { RunHtmlTest(FILE_PATH_LITERAL("layout-table-in-button.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLegend) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLegend) { RunHtmlTest(FILE_PATH_LITERAL("legend.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLi) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLi) { RunHtmlTest(FILE_PATH_LITERAL("li.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLink) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLink) { RunHtmlTest(FILE_PATH_LITERAL("link.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLinkInsideHeading) { RunHtmlTest(FILE_PATH_LITERAL("link-inside-heading.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityList) { RunHtmlTest(FILE_PATH_LITERAL("list.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityListMarkers) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityListMarkers) { RunHtmlTest(FILE_PATH_LITERAL("list-markers.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityLongText) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLongText) { RunHtmlTest(FILE_PATH_LITERAL("long-text.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMain) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMain) { RunHtmlTest(FILE_PATH_LITERAL("main.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMark) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMark) { RunHtmlTest(FILE_PATH_LITERAL("mark.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMath) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMath) { RunHtmlTest(FILE_PATH_LITERAL("math.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMenutypecontext) { RunHtmlTest(FILE_PATH_LITERAL("menu-type-context.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMeta) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMeta) { RunHtmlTest(FILE_PATH_LITERAL("meta.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityMeter) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityMeter) { RunHtmlTest(FILE_PATH_LITERAL("meter.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityModalDialogClosed) { RunHtmlTest(FILE_PATH_LITERAL("modal-dialog-closed.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityModalDialogOpened) { RunHtmlTest(FILE_PATH_LITERAL("modal-dialog-opened.html")); } // http://crbug.com/738497 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityModalDialogInIframeClosed) { RunHtmlTest(FILE_PATH_LITERAL("modal-dialog-in-iframe-closed.html")); } // Disabled because it is flaky in several platforms /* -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityModalDialogInIframeOpened) { RunHtmlTest(FILE_PATH_LITERAL("modal-dialog-in-iframe-opened.html")); } */ -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityModalDialogStack) { RunHtmlTest(FILE_PATH_LITERAL("modal-dialog-stack.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityNavigation) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityNavigation) { RunHtmlTest(FILE_PATH_LITERAL("navigation.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityNoscript) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityNoscript) { RunHtmlTest(FILE_PATH_LITERAL("noscript.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityOl) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOl) { RunHtmlTest(FILE_PATH_LITERAL("ol.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityObject) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityObject) { RunHtmlTest(FILE_PATH_LITERAL("object.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityOffscreen) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOffscreen) { RunHtmlTest(FILE_PATH_LITERAL("offscreen.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOffscreenIframe) { RunHtmlTest(FILE_PATH_LITERAL("offscreen-iframe.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOffscreenScroll) { RunHtmlTest(FILE_PATH_LITERAL("offscreen-scroll.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOffscreenSelect) { RunHtmlTest(FILE_PATH_LITERAL("offscreen-select.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityOptgroup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOptgroup) { RunHtmlTest(FILE_PATH_LITERAL("optgroup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityOptionindatalist) { RunHtmlTest(FILE_PATH_LITERAL("option-in-datalist.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityOutput) { RunHtmlTest(FILE_PATH_LITERAL("output.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityP) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityP) { RunHtmlTest(FILE_PATH_LITERAL("p.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityParam) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityParam) { RunHtmlTest(FILE_PATH_LITERAL("param.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityPre) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityPre) { RunHtmlTest(FILE_PATH_LITERAL("pre.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityProgress) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityProgress) { RunHtmlTest(FILE_PATH_LITERAL("progress.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityQ) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityQ) { RunHtmlTest(FILE_PATH_LITERAL("q.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityReparentCrash) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityReparentCrash) { RunHtmlTest(FILE_PATH_LITERAL("reparent-crash.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityReplaceData) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityReplaceData) { RunHtmlTest(FILE_PATH_LITERAL("replace-data.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityRuby) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityRuby) { RunHtmlTest(FILE_PATH_LITERAL("ruby.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityS) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityS) { RunHtmlTest(FILE_PATH_LITERAL("s.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySamp) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySamp) { RunHtmlTest(FILE_PATH_LITERAL("samp.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityScript) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityScript) { RunHtmlTest(FILE_PATH_LITERAL("script.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySection) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySection) { RunHtmlTest(FILE_PATH_LITERAL("section.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySelect) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySelect) { RunHtmlTest(FILE_PATH_LITERAL("select.html")); } @@ -1745,117 +1761,117 @@ #else #define MAYBE_AccessibilitySource AccessibilitySource #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, MAYBE_AccessibilitySource) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE_AccessibilitySource) { RunHtmlTest(FILE_PATH_LITERAL("source.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySpan) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySpan) { RunHtmlTest(FILE_PATH_LITERAL("span.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySpanLineBreak) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySpanLineBreak) { RunHtmlTest(FILE_PATH_LITERAL("span-line-break.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityStrong) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityStrong) { RunHtmlTest(FILE_PATH_LITERAL("strong.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityStyle) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityStyle) { RunHtmlTest(FILE_PATH_LITERAL("style.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySub) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySub) { RunHtmlTest(FILE_PATH_LITERAL("sub.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySup) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySup) { RunHtmlTest(FILE_PATH_LITERAL("sup.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySummary) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySummary) { RunHtmlTest(FILE_PATH_LITERAL("summary.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilitySvg) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySvg) { RunHtmlTest(FILE_PATH_LITERAL("svg.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSimple) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableSimple) { RunHtmlTest(FILE_PATH_LITERAL("table-simple.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableLayout) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableLayout) { RunHtmlTest(FILE_PATH_LITERAL("table-layout.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTablePresentation) { RunHtmlTest(FILE_PATH_LITERAL("table-presentation.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableThColHeader) { RunHtmlTest(FILE_PATH_LITERAL("table-th-colheader.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableThRowHeader) { RunHtmlTest(FILE_PATH_LITERAL("table-th-rowheader.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableTbodyTfoot) { RunHtmlTest(FILE_PATH_LITERAL("table-thead-tbody-tfoot.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableFocusableSections) { RunHtmlTest(FILE_PATH_LITERAL("table-focusable-sections.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTableSpans) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableSpans) { RunHtmlTest(FILE_PATH_LITERAL("table-spans.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableHeadersEmptyFirstCell) { RunHtmlTest(FILE_PATH_LITERAL("table-headers-empty-first-cell.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableHeadersOnAllSides) { RunHtmlTest(FILE_PATH_LITERAL("table-headers-on-all-sides.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableMultipleRowAndColumnHeaders) { RunHtmlTest(FILE_PATH_LITERAL("table-multiple-row-and-column-headers.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTextarea) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTextarea) { RunHtmlTest(FILE_PATH_LITERAL("textarea.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTextareaReadOnly) { RunHtmlTest(FILE_PATH_LITERAL("textarea-read-only.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTextareaWithSelection) { RunHtmlTest(FILE_PATH_LITERAL("textarea-with-selection.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTime) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTime) { RunHtmlTest(FILE_PATH_LITERAL("time.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTitle) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTitle) { RunHtmlTest(FILE_PATH_LITERAL("title.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTitleChanged) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTitleChanged) { RunHtmlTest(FILE_PATH_LITERAL("title-changed.html")); } @@ -1865,70 +1881,70 @@ #else #define MAYBE_AccessibilityTransition AccessibilityTransition #endif -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE_AccessibilityTransition) { RunHtmlTest(FILE_PATH_LITERAL("transition.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityTruncateLabel) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTruncateLabel) { RunHtmlTest(FILE_PATH_LITERAL("truncate-label.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityUl) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityUl) { RunHtmlTest(FILE_PATH_LITERAL("ul.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityVar) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityVar) { RunHtmlTest(FILE_PATH_LITERAL("var.html")); } // crbug.com/281952 -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityVideo) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityVideo) { RunHtmlTest(FILE_PATH_LITERAL("video.html")); } // TODO(crbug.com/916003): Fix race condition. -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityNoSourceVideo) { RunHtmlTest(FILE_PATH_LITERAL("no-source-video.html")); } // TODO(crbug.com/916003): Fix race condition. -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DISABLED_AccessibilityVideoControls) { RunHtmlTest(FILE_PATH_LITERAL("video-controls.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityWbr) { RunHtmlTest(FILE_PATH_LITERAL("wbr.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityWindowCropsItems) { RunHtmlTest(FILE_PATH_LITERAL("window-crops-items.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputInsideLabel) { RunHtmlTest(FILE_PATH_LITERAL("input-inside-label.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityInputImageWithTitle) { RunHtmlTest(FILE_PATH_LITERAL("input-image-with-title.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLabelWithSelectedOption) { RunHtmlTest(FILE_PATH_LITERAL("label-with-selected-option.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityLabelWithPresentationalChild) { RunHtmlTest(FILE_PATH_LITERAL("label-with-presentational-child.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityNestedList) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityNestedList) { RunHtmlTest(FILE_PATH_LITERAL("nestedlist.html")); } @@ -1938,26 +1954,26 @@ // in the past. // -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, XmlInIframeCrash) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, XmlInIframeCrash) { RunRegressionTest(FILE_PATH_LITERAL("xml-in-iframe-crash.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, LanguageDetectionLangAttribute) { RunLanguageDetectionTest(FILE_PATH_LITERAL("lang-attribute.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, LanguageDetectionLangAttributeNested) { RunLanguageDetectionTest(FILE_PATH_LITERAL("lang-attribute-nested.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, LanguageDetectionLangAttributeSwitching) { RunLanguageDetectionTest(FILE_PATH_LITERAL("lang-attribute-switching.html")); } -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, LanguageDetectionLangDetectionBasic) { RunLanguageDetectionTest(FILE_PATH_LITERAL("basic.html")); } @@ -1966,7 +1982,7 @@ // These tests cover features of the testing infrastructure itself. // -IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DenyNode) { +IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, DenyNode) { RunTestHarnessTest(FILE_PATH_LITERAL("deny-node.html")); }
diff --git a/content/browser/indexed_db/indexed_db_factory_impl.cc b/content/browser/indexed_db/indexed_db_factory_impl.cc index 3673d230..daec254 100644 --- a/content/browser/indexed_db/indexed_db_factory_impl.cc +++ b/content/browser/indexed_db/indexed_db_factory_impl.cc
@@ -132,24 +132,6 @@ IndexedDBFactoryImpl::~IndexedDBFactoryImpl() { } -void IndexedDBFactoryImpl::RemoveDatabaseFromMaps( - const IndexedDBDatabase::Identifier& identifier) { - auto it = database_map_.find(identifier); - DCHECK(it != database_map_.end()); - IndexedDBDatabase* database = it->second; - database_map_.erase(it); - - std::pair<OriginDBMap::iterator, OriginDBMap::iterator> range = - origin_dbs_.equal_range(database->identifier().first); - DCHECK(range.first != range.second); - for (auto it2 = range.first; it2 != range.second; ++it2) { - if (it2->second == database) { - origin_dbs_.erase(it2); - break; - } - } -} - void IndexedDBFactoryImpl::ReleaseDatabase( const IndexedDBDatabase::Identifier& identifier, bool forced_close) { @@ -163,252 +145,6 @@ ReleaseBackingStore(identifier.first, forced_close); } -void IndexedDBFactoryImpl::ReleaseBackingStore(const Origin& origin, - bool immediate) { - if (!base::ContainsKey(backing_store_map_, origin)) - return; - if (immediate) { - auto it = backing_stores_with_active_blobs_.find(origin); - if (it != backing_stores_with_active_blobs_.end()) { - it->second->active_blob_registry()->ForceShutdown(); - backing_stores_with_active_blobs_.erase(it); - } - } - - // Only close if this is the last reference. - if (!HasLastBackingStoreReference(origin)) - return; - - // If this factory does hold the last reference to the backing store, it can - // be closed - but unless requested to close it immediately, keep it around - // for a short period so that a re-open is fast. - if (immediate) { - CloseBackingStore(origin); - return; - } - - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - kIDBCloseImmediatelySwitch)) { - MaybeCloseBackingStore(origin); - return; - } - - // Start a timer to close the backing store, unless something else opens it - // in the mean time. - DCHECK(!backing_store_map_[origin]->close_timer()->IsRunning()); - backing_store_map_[origin]->close_timer()->Start( - FROM_HERE, base::TimeDelta::FromSeconds(kBackingStoreGracePeriodSeconds), - base::BindOnce(&IndexedDBFactoryImpl::MaybeStartPreCloseTasks, this, - origin)); -} - -void IndexedDBFactoryImpl::MaybeStartPreCloseTasks(const Origin& origin) { - if (!base::ContainsKey(backing_store_map_, origin)) - return; - // Another reference may have been created since the maybe-close was posted, - // so it is necessary to check again. - if (!HasLastBackingStoreReference(origin)) - return; - - base::ScopedClosureRunner maybe_close_backing_store_runner( - base::BindOnce(&IndexedDBFactoryImpl::MaybeCloseBackingStore, - base::Unretained(this), origin)); - - base::Time now = clock_->Now(); - - // Check that the last sweep hasn't run too recently. - if (earliest_sweep_ > now) - return; - - bool tombstone_stats_enabled = - base::FeatureList::IsEnabled(kIDBTombstoneStatistics); - bool tombstone_deletion_enabled = - base::FeatureList::IsEnabled(kIDBTombstoneDeletion); - - // After this check, exactly one of the flags must be true. - if (tombstone_stats_enabled == tombstone_deletion_enabled) - return; - - scoped_refptr<IndexedDBBackingStore> store = backing_store_map_[origin]; - - base::Time origin_earliest_sweep; - leveldb::Status s = - indexed_db::GetEarliestSweepTime(store->db(), &origin_earliest_sweep); - // TODO(dmurph): Log this or report to UMA. - if (!s.ok()) - return; - - // This origin hasn't been swept too recently. - if (origin_earliest_sweep > now) - return; - - // A sweep will happen now, so reset the sweep timers. - earliest_sweep_ = GenerateNextGlobalSweepTime(now); - scoped_refptr<LevelDBTransaction> txn = - IndexedDBClassFactory::Get()->CreateLevelDBTransaction(store->db()); - indexed_db::SetEarliestSweepTime(txn.get(), GenerateNextOriginSweepTime(now)); - s = txn->Commit(); - - // TODO(dmurph): Log this or report to UMA. - if (!s.ok()) - return; - - std::list<std::unique_ptr<PreCloseTask>> tasks; - IndexedDBTombstoneSweeper::Mode mode = - tombstone_stats_enabled ? IndexedDBTombstoneSweeper::Mode::STATISTICS - : IndexedDBTombstoneSweeper::Mode::DELETION; - tasks.push_back(std::make_unique<IndexedDBTombstoneSweeper>( - mode, kTombstoneSweeperRoundIterations, kTombstoneSweeperMaxIterations, - store->db()->db())); - // TODO(dmurph): Add compaction task that compacts all indexes if we have - // more than X deletions. - - store->SetPreCloseTaskList(std::make_unique<IndexedDBPreCloseTaskQueue>( - std::move(tasks), maybe_close_backing_store_runner.Release(), - base::TimeDelta::FromSeconds(kPreCloseTasksMaxRunPeriodSeconds), - std::make_unique<base::OneShotTimer>())); - store->StartPreCloseTasks(); -} - -void IndexedDBFactoryImpl::MaybeCloseBackingStore(const Origin& origin) { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) - return; - - IndexedDBBackingStore* backing_store = it->second.get(); - backing_store->SetPreCloseTaskList(nullptr); - // Another reference may have opened since the maybe-close was posted, so it - // is necessary to check again. - if (HasLastBackingStoreReference(origin)) - CloseBackingStore(origin); -} - -void IndexedDBFactoryImpl::CloseBackingStore(const Origin& origin) { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) - return; - // Stop the timer and pre close tasks (if they are running) - this may happen - // if the timer was started and then a forced close occurs. - IndexedDBBackingStore* backing_store = it->second.get(); - backing_store->close_timer()->Stop(); - backing_store->SetPreCloseTaskList(nullptr); - - if (backing_store->IsBlobCleanupPending()) - backing_store->ForceRunBlobCleanup(); - - backing_store_map_.erase(it); -} - -bool IndexedDBFactoryImpl::HasLastBackingStoreReference( - const Origin& origin) const { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) - return false; - return it->second->HasOneRef(); -} - -leveldb::Status IndexedDBFactoryImpl::AbortTransactions(const Origin& origin) { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) { - return leveldb::Status::IOError( - "Internal error opening backing store for " - "indexedDB.abortTransactions."); - } - IndexedDBBackingStore* backing_store = it->second.get(); - - leveldb::Status get_names_status; - IndexedDBMetadataCoding metadata_coding; - std::vector<base::string16> db_names; - get_names_status = metadata_coding.ReadDatabaseNames( - backing_store->db(), backing_store->origin_identifier(), &db_names); - if (!get_names_status.ok()) { - return leveldb::Status::IOError( - "Internal error getting origin database names for " - "indexedDB.abortTransactions."); - } - - for (base::string16& name : db_names) { - const scoped_refptr<IndexedDBDatabase>& db = - database_map_[std::make_pair(origin, name)]; - db->AbortAllTransactionsForConnections(); - } - - return leveldb::Status::OK(); -} - -void IndexedDBFactoryImpl::ForceClose(const Origin& origin, - bool delete_in_memory_store) { - OriginDBs range = GetOpenDatabasesForOrigin(origin); - - while (range.first != range.second) { - IndexedDBDatabase* db = range.first->second; - ++range.first; - db->ForceClose(); - } - - auto it = backing_store_map_.find(origin); - if (it != backing_store_map_.end()) { - if (delete_in_memory_store) - in_memory_backing_stores_.erase(it->second); - - ReleaseBackingStore(origin, true /* immediate */); - } -} - -void IndexedDBFactoryImpl::ForceSchemaDowngrade(const Origin& origin) { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) - return; - - IndexedDBBackingStore* backing_store = it->second.get(); - leveldb::Status s = backing_store->RevertSchemaToV2(); - DLOG_IF(ERROR, !s.ok()) << "Unable to force downgrade: " << s.ToString(); -} - -V2SchemaCorruptionStatus IndexedDBFactoryImpl::HasV2SchemaCorruption( - const Origin& origin) { - auto it = backing_store_map_.find(origin); - if (it == backing_store_map_.end()) - return V2SchemaCorruptionStatus::kUnknown; - - IndexedDBBackingStore* backing_store = it->second.get(); - return backing_store->HasV2SchemaCorruption(); -} - -void IndexedDBFactoryImpl::ContextDestroyed() { - // Timers on backing stores hold a reference to this factory. When the - // context (which nominally owns this factory) is destroyed during thread - // termination the timers must be stopped so that this factory and the - // stores can be disposed of. - for (const auto& origin_backing_store_pair : backing_store_map_) { - origin_backing_store_pair.second->close_timer()->Stop(); - origin_backing_store_pair.second->SetPreCloseTaskList(nullptr); - } - backing_store_map_.clear(); - backing_stores_with_active_blobs_.clear(); - context_ = nullptr; -} - -void IndexedDBFactoryImpl::ReportOutstandingBlobs(const Origin& origin, - bool blobs_outstanding) { - if (!context_) - return; - if (blobs_outstanding) { - DCHECK(!backing_stores_with_active_blobs_.count(origin)); - auto it = backing_store_map_.find(origin); - if (it != backing_store_map_.end()) - backing_stores_with_active_blobs_.insert(*it); - else - DCHECK(false); - } else { - auto it = backing_stores_with_active_blobs_.find(origin); - if (it != backing_stores_with_active_blobs_.end()) { - backing_stores_with_active_blobs_.erase(it); - ReleaseBackingStore(origin, false /* immediate */); - } - } -} - void IndexedDBFactoryImpl::GetDatabaseInfo( scoped_refptr<IndexedDBCallbacks> callbacks, const Origin& origin, @@ -496,6 +232,68 @@ ReleaseBackingStore(origin, false /* immediate */); } +void IndexedDBFactoryImpl::Open( + const base::string16& name, + std::unique_ptr<IndexedDBPendingConnection> connection, + const Origin& origin, + const base::FilePath& data_directory) { + IDB_TRACE("IndexedDBFactoryImpl::Open"); + IndexedDBDatabase::Identifier unique_identifier(origin, name); + auto it = database_map_.find(unique_identifier); + if (it != database_map_.end()) { + it->second->OpenConnection(std::move(connection)); + return; + } + leveldb::Status s; + scoped_refptr<IndexedDBBackingStore> backing_store; + bool disk_full; + std::tie(backing_store, s, connection->data_loss_info, disk_full) = + OpenBackingStore(origin, data_directory); + if (!backing_store) { + if (disk_full) { + connection->callbacks->OnError(IndexedDBDatabaseError( + blink::kWebIDBDatabaseExceptionQuotaError, + ASCIIToUTF16("Encountered full disk while opening " + "backing store for indexedDB.open."))); + return; + } + IndexedDBDatabaseError error( + blink::kWebIDBDatabaseExceptionUnknownError, + ASCIIToUTF16("Internal error opening backing store" + " for indexedDB.open.")); + connection->callbacks->OnError(error); + if (s.IsCorruption()) { + HandleBackingStoreCorruption(origin, error); + } + return; + } + + scoped_refptr<IndexedDBDatabase> database; + std::tie(database, s) = IndexedDBDatabase::Create( + name, backing_store.get(), this, + std::make_unique<IndexedDBMetadataCoding>(), unique_identifier, + backing_store->lock_manager()); + if (!database.get()) { + DLOG(ERROR) << "Unable to create the database"; + IndexedDBDatabaseError error(blink::kWebIDBDatabaseExceptionUnknownError, + ASCIIToUTF16("Internal error creating " + "database backend for " + "indexedDB.open.")); + connection->callbacks->OnError(error); + if (s.IsCorruption()) { + backing_store = nullptr; // Closes the LevelDB so that it can be deleted + HandleBackingStoreCorruption(origin, error); + } + return; + } + + database->OpenConnection(std::move(connection)); + if (database->ConnectionCount() > 0) { + database_map_[unique_identifier] = database.get(); + origin_dbs_.insert(std::make_pair(origin, database.get())); + } +} + void IndexedDBFactoryImpl::DeleteDatabase( const base::string16& name, scoped_refptr<IndexedDBCallbacks> callbacks, @@ -581,21 +379,6 @@ ReleaseBackingStore(origin, false /* immediate */); } -void IndexedDBFactoryImpl::DatabaseDeleted( - const IndexedDBDatabase::Identifier& identifier) { - // NULL after ContextDestroyed() called, and in some unit tests. - if (!context_) - return; - context_->DatabaseDeleted(identifier.first); -} - -void IndexedDBFactoryImpl::BlobFilesCleaned(const url::Origin& origin) { - // NULL after ContextDestroyed() called, and in some unit tests. - if (!context_) - return; - context_->BlobFilesCleaned(origin); -} - void IndexedDBFactoryImpl::AbortTransactionsAndCompactDatabase( base::OnceCallback<void(leveldb::Status)> callback, const Origin& origin) { @@ -663,23 +446,143 @@ leveldb_env::LEVELDB_STATUS_MAX); } -bool IndexedDBFactoryImpl::IsDatabaseOpen(const Origin& origin, - const base::string16& name) const { - return base::ContainsKey(database_map_, - IndexedDBDatabase::Identifier(origin, name)); +std::pair<IndexedDBFactoryImpl::OriginDBMapIterator, + IndexedDBFactoryImpl::OriginDBMapIterator> +IndexedDBFactoryImpl::GetOpenDatabasesForOrigin(const Origin& origin) const { + return origin_dbs_.equal_range(origin); } -bool IndexedDBFactoryImpl::IsBackingStoreOpen(const Origin& origin) const { - return base::ContainsKey(backing_store_map_, origin); +void IndexedDBFactoryImpl::ForceClose(const Origin& origin, + bool delete_in_memory_store) { + OriginDBs range = GetOpenDatabasesForOrigin(origin); + + while (range.first != range.second) { + IndexedDBDatabase* db = range.first->second; + ++range.first; + db->ForceClose(); + } + + auto it = backing_store_map_.find(origin); + if (it != backing_store_map_.end()) { + if (delete_in_memory_store) + in_memory_backing_stores_.erase(it->second); + + ReleaseBackingStore(origin, true /* immediate */); + } } -bool IndexedDBFactoryImpl::IsBackingStorePendingClose( - const Origin& origin) const { +void IndexedDBFactoryImpl::ForceSchemaDowngrade(const Origin& origin) { auto it = backing_store_map_.find(origin); if (it == backing_store_map_.end()) - return false; - return it->second->close_timer()->IsRunning() || - it->second->pre_close_task_queue(); + return; + + IndexedDBBackingStore* backing_store = it->second.get(); + leveldb::Status s = backing_store->RevertSchemaToV2(); + DLOG_IF(ERROR, !s.ok()) << "Unable to force downgrade: " << s.ToString(); +} + +V2SchemaCorruptionStatus IndexedDBFactoryImpl::HasV2SchemaCorruption( + const Origin& origin) { + auto it = backing_store_map_.find(origin); + if (it == backing_store_map_.end()) + return V2SchemaCorruptionStatus::kUnknown; + + IndexedDBBackingStore* backing_store = it->second.get(); + return backing_store->HasV2SchemaCorruption(); +} + +void IndexedDBFactoryImpl::ContextDestroyed() { + // Timers on backing stores hold a reference to this factory. When the + // context (which nominally owns this factory) is destroyed during thread + // termination the timers must be stopped so that this factory and the + // stores can be disposed of. + for (const auto& origin_backing_store_pair : backing_store_map_) { + origin_backing_store_pair.second->close_timer()->Stop(); + origin_backing_store_pair.second->SetPreCloseTaskList(nullptr); + } + backing_store_map_.clear(); + backing_stores_with_active_blobs_.clear(); + context_ = nullptr; +} + +void IndexedDBFactoryImpl::ReportOutstandingBlobs(const Origin& origin, + bool blobs_outstanding) { + if (!context_) + return; + if (blobs_outstanding) { + DCHECK(!backing_stores_with_active_blobs_.count(origin)); + auto it = backing_store_map_.find(origin); + if (it != backing_store_map_.end()) + backing_stores_with_active_blobs_.insert(*it); + else + DCHECK(false); + } else { + auto it = backing_stores_with_active_blobs_.find(origin); + if (it != backing_stores_with_active_blobs_.end()) { + backing_stores_with_active_blobs_.erase(it); + ReleaseBackingStore(origin, false /* immediate */); + } + } +} + +void IndexedDBFactoryImpl::DatabaseDeleted( + const IndexedDBDatabase::Identifier& identifier) { + // NULL after ContextDestroyed() called, and in some unit tests. + if (!context_) + return; + context_->DatabaseDeleted(identifier.first); +} + +void IndexedDBFactoryImpl::BlobFilesCleaned(const url::Origin& origin) { + // NULL after ContextDestroyed() called, and in some unit tests. + if (!context_) + return; + context_->BlobFilesCleaned(origin); +} + +size_t IndexedDBFactoryImpl::GetConnectionCount(const Origin& origin) const { + size_t count(0); + + OriginDBs range = GetOpenDatabasesForOrigin(origin); + for (auto it = range.first; it != range.second; ++it) + count += it->second->ConnectionCount(); + + return count; +} + +void IndexedDBFactoryImpl::NotifyIndexedDBContentChanged( + const url::Origin& origin, + const base::string16& database_name, + const base::string16& object_store_name) { + if (!context_) + return; + context_->NotifyIndexedDBContentChanged(origin, database_name, + object_store_name); +} + +int64_t IndexedDBFactoryImpl::GetInMemoryDBSize(const Origin& origin) const { + auto it = backing_store_map_.find(origin); + // Origin won't be present in map if it has been deleted. + if (it == backing_store_map_.end()) + return 0; + + IndexedDBBackingStore* backing_store = it->second.get(); + int64_t level_db_size = 0; + leveldb::Status s = + GetDBSizeFromEnv(backing_store->db()->env(), "/", &level_db_size); + if (!s.ok()) + LOG(ERROR) << "Failed to GetDBSizeFromEnv: " << s.ToString(); + + return backing_store->GetInMemoryBlobSize() + level_db_size; +} + +base::Time IndexedDBFactoryImpl::GetLastModified( + const url::Origin& origin) const { + auto it = backing_store_map_.find(origin); + if (it == backing_store_map_.end()) + return base::Time(); + IndexedDBBackingStore* backing_store = it->second.get(); + return backing_store->db()->LastModified(); } std::tuple<scoped_refptr<IndexedDBBackingStore>, @@ -760,117 +663,214 @@ backing_store_mode, this, origin, blob_path, std::move(db), task_runner); } -void IndexedDBFactoryImpl::Open( - const base::string16& name, - std::unique_ptr<IndexedDBPendingConnection> connection, - const Origin& origin, - const base::FilePath& data_directory) { - IDB_TRACE("IndexedDBFactoryImpl::Open"); - IndexedDBDatabase::Identifier unique_identifier(origin, name); - auto it = database_map_.find(unique_identifier); - if (it != database_map_.end()) { - it->second->OpenConnection(std::move(connection)); +void IndexedDBFactoryImpl::ReleaseBackingStore(const Origin& origin, + bool immediate) { + if (!base::ContainsKey(backing_store_map_, origin)) return; + if (immediate) { + auto it = backing_stores_with_active_blobs_.find(origin); + if (it != backing_stores_with_active_blobs_.end()) { + it->second->active_blob_registry()->ForceShutdown(); + backing_stores_with_active_blobs_.erase(it); + } } - leveldb::Status s; - scoped_refptr<IndexedDBBackingStore> backing_store; - bool disk_full; - std::tie(backing_store, s, connection->data_loss_info, disk_full) = - OpenBackingStore(origin, data_directory); - if (!backing_store) { - if (disk_full) { - connection->callbacks->OnError(IndexedDBDatabaseError( - blink::kWebIDBDatabaseExceptionQuotaError, - ASCIIToUTF16("Encountered full disk while opening " - "backing store for indexedDB.open."))); - return; - } - IndexedDBDatabaseError error( - blink::kWebIDBDatabaseExceptionUnknownError, - ASCIIToUTF16("Internal error opening backing store" - " for indexedDB.open.")); - connection->callbacks->OnError(error); - if (s.IsCorruption()) { - HandleBackingStoreCorruption(origin, error); - } + + // Only close if this is the last reference. + if (!HasLastBackingStoreReference(origin)) + return; + + // If this factory does hold the last reference to the backing store, it can + // be closed - but unless requested to close it immediately, keep it around + // for a short period so that a re-open is fast. + if (immediate) { + CloseBackingStore(origin); return; } - scoped_refptr<IndexedDBDatabase> database; - std::tie(database, s) = IndexedDBDatabase::Create( - name, backing_store.get(), this, - std::make_unique<IndexedDBMetadataCoding>(), unique_identifier, - backing_store->lock_manager()); - if (!database.get()) { - DLOG(ERROR) << "Unable to create the database"; - IndexedDBDatabaseError error(blink::kWebIDBDatabaseExceptionUnknownError, - ASCIIToUTF16("Internal error creating " - "database backend for " - "indexedDB.open.")); - connection->callbacks->OnError(error); - if (s.IsCorruption()) { - backing_store = nullptr; // Closes the LevelDB so that it can be deleted - HandleBackingStoreCorruption(origin, error); - } + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + kIDBCloseImmediatelySwitch)) { + MaybeCloseBackingStore(origin); return; } - database->OpenConnection(std::move(connection)); - if (database->ConnectionCount() > 0) { - database_map_[unique_identifier] = database.get(); - origin_dbs_.insert(std::make_pair(origin, database.get())); - } + // Start a timer to close the backing store, unless something else opens it + // in the mean time. + DCHECK(!backing_store_map_[origin]->close_timer()->IsRunning()); + backing_store_map_[origin]->close_timer()->Start( + FROM_HERE, base::TimeDelta::FromSeconds(kBackingStoreGracePeriodSeconds), + base::BindOnce(&IndexedDBFactoryImpl::MaybeStartPreCloseTasks, this, + origin)); } -std::pair<IndexedDBFactoryImpl::OriginDBMapIterator, - IndexedDBFactoryImpl::OriginDBMapIterator> -IndexedDBFactoryImpl::GetOpenDatabasesForOrigin(const Origin& origin) const { - return origin_dbs_.equal_range(origin); -} - -size_t IndexedDBFactoryImpl::GetConnectionCount(const Origin& origin) const { - size_t count(0); - - OriginDBs range = GetOpenDatabasesForOrigin(origin); - for (auto it = range.first; it != range.second; ++it) - count += it->second->ConnectionCount(); - - return count; -} - -int64_t IndexedDBFactoryImpl::GetInMemoryDBSize(const Origin& origin) const { +void IndexedDBFactoryImpl::CloseBackingStore(const Origin& origin) { auto it = backing_store_map_.find(origin); - // Origin won't be present in map if it has been deleted. if (it == backing_store_map_.end()) - return 0; - + return; + // Stop the timer and pre close tasks (if they are running) - this may happen + // if the timer was started and then a forced close occurs. IndexedDBBackingStore* backing_store = it->second.get(); - int64_t level_db_size = 0; + backing_store->close_timer()->Stop(); + backing_store->SetPreCloseTaskList(nullptr); + + if (backing_store->IsBlobCleanupPending()) + backing_store->ForceRunBlobCleanup(); + + backing_store_map_.erase(it); +} + +leveldb::Status IndexedDBFactoryImpl::AbortTransactions(const Origin& origin) { + auto it = backing_store_map_.find(origin); + if (it == backing_store_map_.end()) { + return leveldb::Status::IOError( + "Internal error opening backing store for " + "indexedDB.abortTransactions."); + } + IndexedDBBackingStore* backing_store = it->second.get(); + + leveldb::Status get_names_status; + IndexedDBMetadataCoding metadata_coding; + std::vector<base::string16> db_names; + get_names_status = metadata_coding.ReadDatabaseNames( + backing_store->db(), backing_store->origin_identifier(), &db_names); + if (!get_names_status.ok()) { + return leveldb::Status::IOError( + "Internal error getting origin database names for " + "indexedDB.abortTransactions."); + } + + for (base::string16& name : db_names) { + const scoped_refptr<IndexedDBDatabase>& db = + database_map_[std::make_pair(origin, name)]; + db->AbortAllTransactionsForConnections(); + } + + return leveldb::Status::OK(); +} + +void IndexedDBFactoryImpl::MaybeStartPreCloseTasks(const Origin& origin) { + if (!base::ContainsKey(backing_store_map_, origin)) + return; + // Another reference may have been created since the maybe-close was posted, + // so it is necessary to check again. + if (!HasLastBackingStoreReference(origin)) + return; + + base::ScopedClosureRunner maybe_close_backing_store_runner( + base::BindOnce(&IndexedDBFactoryImpl::MaybeCloseBackingStore, + base::Unretained(this), origin)); + + base::Time now = clock_->Now(); + + // Check that the last sweep hasn't run too recently. + if (earliest_sweep_ > now) + return; + + bool tombstone_stats_enabled = + base::FeatureList::IsEnabled(kIDBTombstoneStatistics); + bool tombstone_deletion_enabled = + base::FeatureList::IsEnabled(kIDBTombstoneDeletion); + + // After this check, exactly one of the flags must be true. + if (tombstone_stats_enabled == tombstone_deletion_enabled) + return; + + scoped_refptr<IndexedDBBackingStore> store = backing_store_map_[origin]; + + base::Time origin_earliest_sweep; leveldb::Status s = - GetDBSizeFromEnv(backing_store->db()->env(), "/", &level_db_size); + indexed_db::GetEarliestSweepTime(store->db(), &origin_earliest_sweep); + // TODO(dmurph): Log this or report to UMA. if (!s.ok()) - LOG(ERROR) << "Failed to GetDBSizeFromEnv: " << s.ToString(); + return; - return backing_store->GetInMemoryBlobSize() + level_db_size; + // This origin hasn't been swept too recently. + if (origin_earliest_sweep > now) + return; + + // A sweep will happen now, so reset the sweep timers. + earliest_sweep_ = GenerateNextGlobalSweepTime(now); + scoped_refptr<LevelDBTransaction> txn = + IndexedDBClassFactory::Get()->CreateLevelDBTransaction(store->db()); + indexed_db::SetEarliestSweepTime(txn.get(), GenerateNextOriginSweepTime(now)); + s = txn->Commit(); + + // TODO(dmurph): Log this or report to UMA. + if (!s.ok()) + return; + + std::list<std::unique_ptr<PreCloseTask>> tasks; + IndexedDBTombstoneSweeper::Mode mode = + tombstone_stats_enabled ? IndexedDBTombstoneSweeper::Mode::STATISTICS + : IndexedDBTombstoneSweeper::Mode::DELETION; + tasks.push_back(std::make_unique<IndexedDBTombstoneSweeper>( + mode, kTombstoneSweeperRoundIterations, kTombstoneSweeperMaxIterations, + store->db()->db())); + // TODO(dmurph): Add compaction task that compacts all indexes if we have + // more than X deletions. + + store->SetPreCloseTaskList(std::make_unique<IndexedDBPreCloseTaskQueue>( + std::move(tasks), maybe_close_backing_store_runner.Release(), + base::TimeDelta::FromSeconds(kPreCloseTasksMaxRunPeriodSeconds), + std::make_unique<base::OneShotTimer>())); + store->StartPreCloseTasks(); } -base::Time IndexedDBFactoryImpl::GetLastModified( - const url::Origin& origin) const { +void IndexedDBFactoryImpl::MaybeCloseBackingStore(const Origin& origin) { auto it = backing_store_map_.find(origin); if (it == backing_store_map_.end()) - return base::Time(); + return; + IndexedDBBackingStore* backing_store = it->second.get(); - return backing_store->db()->LastModified(); + backing_store->SetPreCloseTaskList(nullptr); + // Another reference may have opened since the maybe-close was posted, so it + // is necessary to check again. + if (HasLastBackingStoreReference(origin)) + CloseBackingStore(origin); } -void IndexedDBFactoryImpl::NotifyIndexedDBContentChanged( - const url::Origin& origin, - const base::string16& database_name, - const base::string16& object_store_name) { - if (!context_) - return; - context_->NotifyIndexedDBContentChanged(origin, database_name, - object_store_name); +bool IndexedDBFactoryImpl::HasLastBackingStoreReference( + const Origin& origin) const { + auto it = backing_store_map_.find(origin); + if (it == backing_store_map_.end()) + return false; + return it->second->HasOneRef(); +} + +bool IndexedDBFactoryImpl::IsDatabaseOpen(const Origin& origin, + const base::string16& name) const { + return base::ContainsKey(database_map_, + IndexedDBDatabase::Identifier(origin, name)); +} + +bool IndexedDBFactoryImpl::IsBackingStoreOpen(const Origin& origin) const { + return base::ContainsKey(backing_store_map_, origin); +} + +bool IndexedDBFactoryImpl::IsBackingStorePendingClose( + const Origin& origin) const { + auto it = backing_store_map_.find(origin); + if (it == backing_store_map_.end()) + return false; + return it->second->close_timer()->IsRunning() || + it->second->pre_close_task_queue(); +} + +void IndexedDBFactoryImpl::RemoveDatabaseFromMaps( + const IndexedDBDatabase::Identifier& identifier) { + auto it = database_map_.find(identifier); + DCHECK(it != database_map_.end()); + IndexedDBDatabase* database = it->second; + database_map_.erase(it); + + std::pair<OriginDBMap::iterator, OriginDBMap::iterator> range = + origin_dbs_.equal_range(database->identifier().first); + DCHECK(range.first != range.second); + for (auto it2 = range.first; it2 != range.second; ++it2) { + if (it2->second == database) { + origin_dbs_.erase(it2); + break; + } + } } } // namespace content
diff --git a/content/browser/media/capture/aura_window_video_capture_device.cc b/content/browser/media/capture/aura_window_video_capture_device.cc index 0677f269..3013322 100644 --- a/content/browser/media/capture/aura_window_video_capture_device.cc +++ b/content/browser/media/capture/aura_window_video_capture_device.cc
@@ -11,6 +11,7 @@ #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" +#include "base/optional.h" #include "base/task/post_task.h" #include "base/threading/thread_task_runner_handle.h" #include "content/browser/media/capture/mouse_cursor_overlay_controller.h" @@ -21,6 +22,7 @@ #include "mojo/public/cpp/bindings/strong_binding.h" #include "ui/aura/window.h" #include "ui/aura/window_observer.h" +#include "ui/aura/window_occlusion_tracker.h" #if defined(OS_CHROMEOS) #include "content/browser/media/capture/lame_window_capturer_chromeos.h" @@ -86,6 +88,9 @@ target_window_->GetFrameSinkId().is_valid() && #endif true) { +#if defined(OS_CHROMEOS) + force_visible_.emplace(target_window_); +#endif target_window_->AddObserver(this); device_task_runner_->PostTask( FROM_HERE, @@ -111,6 +116,9 @@ target_window_->RemoveObserver(this); target_window_ = nullptr; +#if defined(OS_CHROMEOS) + force_visible_.reset(); +#endif device_task_runner_->PostTask( FROM_HERE, @@ -132,6 +140,10 @@ const DesktopMediaID::Type target_type_; aura::Window* target_window_ = nullptr; +#if defined(OS_CHROMEOS) + base::Optional<aura::WindowOcclusionTracker::ScopedForceVisible> + force_visible_; +#endif DISALLOW_COPY_AND_ASSIGN(WindowTracker); };
diff --git a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc index 41beb72..f8757b5 100644 --- a/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc +++ b/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
@@ -311,6 +311,34 @@ StopAndDeAllocate(); } +#if defined(OS_CHROMEOS) +// On ChromeOS, another window may occlude a window that is being captured. +// Make sure the visibility is set to visible during capture if it's occluded. +IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest, + CapturesOccludedWindows) { + // TODO(crbug.com/877172): CopyOutputRequests not allowed. + if (features::IsSingleProcessMash()) + return; + NavigateToInitialDocument(); + AllocateAndStartAndWaitForFirstFrame(); + + ASSERT_EQ(aura::Window::OcclusionState::VISIBLE, + shell()->web_contents()->GetNativeView()->occlusion_state()); + // Create a window on top of the window being captured with same size so that + // it is occluded. + auto window = std::make_unique<aura::Window>(nullptr); + window->Init(ui::LAYER_TEXTURED); + shell()->window()->GetRootWindow()->AddChild(window.get()); + window->SetBounds(shell()->window()->bounds()); + window->Show(); + EXPECT_EQ(aura::Window::OcclusionState::VISIBLE, + shell()->web_contents()->GetNativeView()->occlusion_state()); + + window.reset(); + StopAndDeAllocate(); +} +#endif // defined(OS_CHROMEOS) + class AuraWindowVideoCaptureDeviceBrowserTestP : public AuraWindowVideoCaptureDeviceBrowserTest, public testing::WithParamInterface<std::tuple<bool, bool>> {
diff --git a/content/browser/service_worker/service_worker_context_unittest.cc b/content/browser/service_worker/service_worker_context_unittest.cc index 1edfe58..c3e6232 100644 --- a/content/browser/service_worker/service_worker_context_unittest.cc +++ b/content/browser/service_worker/service_worker_context_unittest.cc
@@ -26,6 +26,7 @@ #include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/mojom/service_worker/service_worker_event_status.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h" @@ -872,7 +873,7 @@ kRenderProcessId2, true /* is_parent_frame_secure */, version.get(), context()->AsWeakPtr(), &remote_endpoints.back()); const int host4_provider_id = host4->provider_id(); - EXPECT_NE(host4_provider_id, kInvalidServiceWorkerProviderId); + EXPECT_NE(host4_provider_id, blink::kInvalidServiceWorkerProviderId); ServiceWorkerProviderHost* host1_raw = host1.get(); ServiceWorkerProviderHost* host2_raw = host2.get();
diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc index 1908a81..fc645321 100644 --- a/content/browser/service_worker/service_worker_job_unittest.cc +++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -824,9 +824,11 @@ registration.get(), script_url, blink::mojom::ScriptType::kClassic, 1L, helper_->context()->AsWeakPtr()); base::Optional<blink::ServiceWorkerStatusCode> status; - version->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); version->set_fetch_handler_existence(
diff --git a/content/browser/service_worker/service_worker_navigation_loader_unittest.cc b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc index 0747983f..a1c4a98 100644 --- a/content/browser/service_worker/service_worker_navigation_loader_unittest.cc +++ b/content/browser/service_worker/service_worker_navigation_loader_unittest.cc
@@ -366,9 +366,11 @@ // Make the registration findable via storage functions. registration_->set_last_update_check(base::Time::Now()); base::Optional<blink::ServiceWorkerStatusCode> status; - storage()->StoreRegistration(registration_.get(), version_.get(), - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + storage()->StoreRegistration( + registration_.get(), version_.get(), + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); // Set up custom fakes to let tests customize how to respond to fetch
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 785bf8b..c2a4954 100644 --- a/content/browser/service_worker/service_worker_object_host_unittest.cc +++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
@@ -134,10 +134,11 @@ // Make the registration findable via storage functions. base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; helper_->context()->storage()->StoreRegistration( registration_.get(), version_.get(), - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); }
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc index cf41e035..cf00736 100644 --- a/content/browser/service_worker/service_worker_provider_host.cc +++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -223,7 +223,7 @@ true /* is_parent_frame_secure */, mojo::MakeRequest(&((*out_provider_info)->host_ptr_info)), std::move(client_ptr_info), context)); - host->render_process_id_ = process_id; + host->SetRenderProcessId(process_id); (*out_provider_info)->provider_id = host->provider_id(); auto weak_ptr = host->AsWeakPtr(); @@ -696,7 +696,7 @@ DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id); - render_process_id_ = render_process_id; + SetRenderProcessId(render_process_id); DCHECK_EQ(MSG_ROUTING_NONE, frame_id_); DCHECK_NE(MSG_ROUTING_NONE, render_frame_id); @@ -718,7 +718,7 @@ DCHECK_EQ(provider_info->provider_id, provider_id()); DCHECK_NE(ChildProcessHost::kInvalidUniqueID, process_id); - render_process_id_ = process_id; + SetRenderProcessId(process_id); network::mojom::URLLoaderFactoryAssociatedPtrInfo script_loader_factory_ptr_info; @@ -1371,4 +1371,10 @@ client_phase_ = new_phase; } +void ServiceWorkerProviderHost::SetRenderProcessId(int process_id) { + render_process_id_ = process_id; + if (controller_) + controller_->UpdateForegroundPriority(); +} + } // namespace content
diff --git a/content/browser/service_worker/service_worker_provider_host.h b/content/browser/service_worker/service_worker_provider_host.h index 5e0b84a..af9cffc6 100644 --- a/content/browser/service_worker/service_worker_provider_host.h +++ b/content/browser/service_worker/service_worker_provider_host.h
@@ -615,6 +615,8 @@ void TransitionToClientPhase(ClientPhase new_phase); + void SetRenderProcessId(int process_id); + // Unique among all provider hosts. const int provider_id_;
diff --git a/content/browser/service_worker/service_worker_registration_unittest.cc b/content/browser/service_worker/service_worker_registration_unittest.cc index 07a587f8..a7a8098 100644 --- a/content/browser/service_worker/service_worker_registration_unittest.cc +++ b/content/browser/service_worker/service_worker_registration_unittest.cc
@@ -401,10 +401,11 @@ version_1->SetMainScriptHttpResponseInfo( EmbeddedWorkerTestHelper::CreateHttpResponseInfo()); base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; context()->storage()->StoreRegistration( registration_.get(), version_1.get(), - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); // Give the active version a controllee.
diff --git a/content/browser/service_worker/service_worker_test_utils.cc b/content/browser/service_worker/service_worker_test_utils.cc index c4e7b54f..83df82a 100644 --- a/content/browser/service_worker/service_worker_test_utils.cc +++ b/content/browser/service_worker/service_worker_test_utils.cc
@@ -249,6 +249,19 @@ return host; } +base::OnceCallback<void(blink::ServiceWorkerStatusCode)> +ReceiveServiceWorkerStatus(base::Optional<blink::ServiceWorkerStatusCode>* out, + base::OnceClosure quit_closure) { + return base::BindOnce( + [](base::OnceClosure quit_closure, + base::Optional<blink::ServiceWorkerStatusCode>* out, + blink::ServiceWorkerStatusCode result) { + *out = result; + std::move(quit_closure).Run(); + }, + std::move(quit_closure), out); +} + base::WeakPtr<ServiceWorkerProviderHost> CreateProviderHostForServiceWorkerContext( int process_id,
diff --git a/content/browser/service_worker/service_worker_test_utils.h b/content/browser/service_worker/service_worker_test_utils.h index 91bc4f4e..d7c2d05c 100644 --- a/content/browser/service_worker/service_worker_test_utils.h +++ b/content/browser/service_worker/service_worker_test_utils.h
@@ -54,15 +54,9 @@ out); } -template <typename Arg> -base::OnceCallback<void(Arg)> CreateReceiverOnCurrentThread( - base::Optional<Arg>* out, - base::OnceClosure quit = base::OnceClosure()) { - BrowserThread::ID id; - bool ret = BrowserThread::GetCurrentThreadIdentifier(&id); - DCHECK(ret); - return CreateReceiver(id, std::move(quit), out); -} +base::OnceCallback<void(blink::ServiceWorkerStatusCode)> +ReceiveServiceWorkerStatus(base::Optional<blink::ServiceWorkerStatusCode>* out, + base::OnceClosure quit_closure); // Container for keeping the Mojo connection to the service worker provider on // the renderer alive.
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index aa630b716..f77b37f 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc
@@ -2131,6 +2131,10 @@ return false; } +void ServiceWorkerVersion::UpdateForegroundPriority() { + embedded_worker_->UpdateForegroundPriority(); +} + void ServiceWorkerVersion::InitializeGlobalScope() { DCHECK(service_worker_host_); scoped_refptr<ServiceWorkerRegistration> registration =
diff --git a/content/browser/service_worker/service_worker_version.h b/content/browser/service_worker/service_worker_version.h index fae9d148..800ac889 100644 --- a/content/browser/service_worker/service_worker_version.h +++ b/content/browser/service_worker/service_worker_version.h
@@ -520,6 +520,10 @@ // should be kept at foreground priority. bool ShouldRequireForegroundPriority(int worker_process_id) const; + // Called when a controlled client's state changes in a way that might effect + // whether the service worker should be kept at foreground priority. + void UpdateForegroundPriority(); + private: friend class base::RefCounted<ServiceWorkerVersion>; friend class EmbeddedWorkerInstanceTest;
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc index d3b88fd4..0c49e59 100644 --- a/content/browser/service_worker/service_worker_version_unittest.cc +++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -42,8 +42,16 @@ namespace content { namespace service_worker_version_unittest { -void VerifyCalled(bool* called) { - *called = true; +base::OnceCallback<void()> VerifyCalled( + bool* called, + base::OnceClosure quit_closure = base::OnceClosure()) { + return base::BindOnce( + [](bool* called, base::OnceClosure quit_closure) { + *called = true; + if (!quit_closure.is_null()) + std::move(quit_closure).Run(); + }, + called, std::move(quit_closure)); } void ObserveStatusChanges(ServiceWorkerVersion* version, @@ -95,9 +103,11 @@ void StartWorker(ServiceWorkerVersion* version, ServiceWorkerMetrics::EventType purpose) { base::Optional<blink::ServiceWorkerStatusCode> status; - version->StartWorker(purpose, CreateReceiverOnCurrentThread(&status)); + base::RunLoop run_loop; + version->StartWorker( + purpose, ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version->running_status()); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version->running_status()); } @@ -155,11 +165,11 @@ // Make the registration findable via storage functions. base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; helper_->context()->storage()->StoreRegistration( - registration_.get(), - version_.get(), - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + registration_.get(), version_.get(), + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); } @@ -183,23 +193,22 @@ void SimulateDispatchEvent(ServiceWorkerMetrics::EventType event_type) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; // Make sure worker is running. - version_->RunAfterStartWorker(event_type, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + version_->RunAfterStartWorker( + event_type, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); // Start request, as if an event is being dispatched. - int request_id = version_->StartRequest( - event_type, CreateReceiverOnCurrentThread(&status)); + int request_id = version_->StartRequest(event_type, base::DoNothing()); base::RunLoop().RunUntilIdle(); // And finish request, as if a response to the event was received. EXPECT_TRUE(version_->FinishRequest(request_id, true /* was_handled */)); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); } void SetTickClockForTesting(base::SimpleTestTickClock* tick_clock) { @@ -257,19 +266,28 @@ base::Optional<blink::ServiceWorkerStatusCode> status1; base::Optional<blink::ServiceWorkerStatusCode> status2; base::Optional<blink::ServiceWorkerStatusCode> status3; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status1)); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status2)); + base::RunLoop run_loop_1; + base::RunLoop run_loop_2; + base::RunLoop run_loop_3; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status1, run_loop_1.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status2, run_loop_2.QuitClosure())); base::RunLoop().RunUntilIdle(); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); // Call StartWorker() after it's started. - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status3)); - base::RunLoop().RunUntilIdle(); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status3, run_loop_3.QuitClosure())); + + run_loop_1.Run(); + run_loop_2.Run(); + run_loop_3.Run(); // All should just succeed. EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status1.value()); @@ -280,11 +298,15 @@ // Call StopWorker() multiple times. bool has_stopped1 = false; bool has_stopped2 = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped1)); - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped2)); + base::RunLoop run_loop_1; + base::RunLoop run_loop_2; + + version_->StopWorker(VerifyCalled(&has_stopped1, run_loop_1.QuitClosure())); + version_->StopWorker(VerifyCalled(&has_stopped2, run_loop_2.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); - base::RunLoop().RunUntilIdle(); + run_loop_1.Run(); + run_loop_2.Run(); EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); // All StopWorker should just succeed. @@ -296,24 +318,29 @@ status1.reset(); status2.reset(); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status1)); + base::RunLoop run_loop_4; + base::RunLoop run_loop_5; + + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status1, run_loop_4.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); - base::RunLoop().RunUntilIdle(); + run_loop_4.Run(); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); { // Call StopWorker() bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + version_->StopWorker(VerifyCalled(&has_stopped)); // And try calling StartWorker while StopWorker is in queue. - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status2)); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status2, run_loop_5.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); - base::RunLoop().RunUntilIdle(); + run_loop_5.Run(); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); // All should just succeed. @@ -342,7 +369,7 @@ // Stop the worker, and then dispatch an event immediately after that. bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + version_->StopWorker(VerifyCalled(&has_stopped)); SimulateDispatchEvent(ServiceWorkerMetrics::EventType::INSTALL); EXPECT_TRUE(has_stopped); @@ -363,20 +390,24 @@ // Delete the registration. base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; helper_->context()->storage()->DeleteRegistration( registration_->id(), registration_->scope().GetOrigin(), - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); // The live registration is marked as deleted, but still exists. ASSERT_TRUE(registration_->is_deleted()); - // Stop the worker. - bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); - base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(has_stopped); + { + // Stop the worker. + bool has_stopped = false; + base::RunLoop run_loop; + version_->StopWorker(VerifyCalled(&has_stopped, run_loop.QuitClosure())); + run_loop.Run(); + EXPECT_TRUE(has_stopped); + } // Dispatch an event on the unregistered and stopped but still live worker. SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); @@ -390,8 +421,7 @@ // Wait for the completion. bool status_change_called = false; - version_->RegisterStatusChangeCallback( - base::BindOnce(&VerifyCalled, &status_change_called)); + version_->RegisterStatusChangeCallback(VerifyCalled(&status_change_called)); // Dispatch an install event. SimulateDispatchEvent(ServiceWorkerMetrics::EventType::INSTALL); @@ -411,8 +441,7 @@ // Wait for the completion. bool status_change_called = false; - version_->RegisterStatusChangeCallback( - base::BindOnce(&VerifyCalled, &status_change_called)); + version_->RegisterStatusChangeCallback(VerifyCalled(&status_change_called)); // Dispatch an activate event. SimulateDispatchEvent(ServiceWorkerMetrics::EventType::ACTIVATE); @@ -469,8 +498,10 @@ TEST_F(ServiceWorkerVersionTest, SetDevToolsAttached) { base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); ASSERT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); @@ -492,7 +523,7 @@ EXPECT_FALSE(version_->start_time_.is_null()); EXPECT_TRUE(version_->skip_recording_startup_time_); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); } @@ -531,8 +562,9 @@ // Update is actually scheduled after the worker stops. bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StopWorker(VerifyCalled(&has_stopped, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_TRUE(has_stopped); EXPECT_TRUE(version_->stale_time_.is_null()); EXPECT_TRUE(version_->update_timer_.IsRunning()); @@ -669,26 +701,35 @@ StartWorker(version_.get(), ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); version_->SetStatus(ServiceWorkerVersion::ACTIVATED); + bool has_stopped = false; - base::Optional<blink::ServiceWorkerStatusCode> event_status; - version_->StartRequest(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&event_status)); + base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; + version_->StartRequest( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); // Restart the worker. The inflight event should have been failed. - bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + version_->StopWorker(VerifyCalled(&has_stopped)); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); - base::Optional<blink::ServiceWorkerStatusCode> start_status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&start_status)); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); - // All inflight events should have been aborted. - EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorFailed, event_status.value()); + { + base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); + + // The worker should have been successfully re-started after stopped. + EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); + } + // The worker should have been stopped. EXPECT_TRUE(has_stopped); - // The worker should have been successfully re-started after stopped. - EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, start_status.value()); + // All inflight events should have been aborted. + EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorFailed, status.value()); EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status()); // SetAllRequestExpirations() after restarting should not crash since all @@ -738,15 +779,16 @@ helper_->AddNewPendingServiceWorker<DelayMessageWorker>(helper_.get()); base::Optional<blink::ServiceWorkerStatusCode> error_status; + base::RunLoop run_loop; version_->SetStatus(ServiceWorkerVersion::ACTIVATED); client->UnblockStartWorker(); StartWorker(version_.get(), ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); // Create a request. - int request_id = - version_->StartRequest(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&error_status)); + int request_id = version_->StartRequest( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&error_status, run_loop.QuitClosure())); // Dispatch a dummy event. version_->endpoint()->DispatchExtendableMessageEvent( @@ -784,19 +826,20 @@ TEST_F(ServiceWorkerVersionTest, RequestNowTimeout) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; version_->SetStatus(ServiceWorkerVersion::ACTIVATED); StartWorker(version_.get(), ServiceWorkerMetrics::EventType::SYNC); // Create a request that should expire Now(). int request_id = version_->StartRequestWithCustomTimeout( ServiceWorkerMetrics::EventType::SYNC, - CreateReceiverOnCurrentThread(&status), base::TimeDelta(), - ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()), + base::TimeDelta(), ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); base::RunLoop().RunUntilIdle(); EXPECT_TRUE(version_->timeout_timer_.IsRunning()); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, status.value()); EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */)); @@ -807,30 +850,35 @@ TEST_F(ServiceWorkerVersionTest, RequestNowTimeoutKill) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; version_->SetStatus(ServiceWorkerVersion::ACTIVATED); StartWorker(version_.get(), ServiceWorkerMetrics::EventType::SYNC); // Create a request that should expire Now(). int request_id = version_->StartRequestWithCustomTimeout( ServiceWorkerMetrics::EventType::SYNC, - CreateReceiverOnCurrentThread(&status), base::TimeDelta(), - ServiceWorkerVersion::KILL_ON_TIMEOUT); + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure()), + base::TimeDelta(), ServiceWorkerVersion::KILL_ON_TIMEOUT); base::RunLoop().RunUntilIdle(); EXPECT_TRUE(version_->timeout_timer_.IsRunning()); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, status.value()); EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */)); // KILL_ON_TIMEOUT timeouts should stop the service worker. + base::RunLoop().RunUntilIdle(); EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); } TEST_F(ServiceWorkerVersionTest, RequestCustomizedTimeout) { base::Optional<blink::ServiceWorkerStatusCode> first_status; base::Optional<blink::ServiceWorkerStatusCode> second_status; + base::RunLoop first_run_loop; + base::RunLoop second_run_loop; + version_->SetStatus(ServiceWorkerVersion::ACTIVATED); StartWorker(version_.get(), ServiceWorkerMetrics::EventType::SYNC); @@ -841,13 +889,13 @@ int timeout_seconds = 10; int first_request_id = version_->StartRequestWithCustomTimeout( ServiceWorkerMetrics::EventType::SYNC, - CreateReceiverOnCurrentThread(&first_status), + ReceiveServiceWorkerStatus(&first_status, first_run_loop.QuitClosure()), base::TimeDelta::FromSeconds(2 * timeout_seconds), ServiceWorkerVersion::KILL_ON_TIMEOUT); int second_request_id = version_->StartRequestWithCustomTimeout( ServiceWorkerMetrics::EventType::SYNC, - CreateReceiverOnCurrentThread(&second_status), + ReceiveServiceWorkerStatus(&second_status, second_run_loop.QuitClosure()), base::TimeDelta::FromSeconds(timeout_seconds), ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); @@ -862,7 +910,7 @@ // Now advance time until the second task timeout should expire. tick_clock.Advance(base::TimeDelta::FromSeconds(timeout_seconds + 1)); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + second_run_loop.Run(); EXPECT_FALSE(first_status); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, second_status.value()); @@ -873,7 +921,7 @@ // Now advance time until both tasks should be expired. tick_clock.Advance(base::TimeDelta::FromSeconds(timeout_seconds + 1)); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + first_run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, first_status.value()); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, @@ -884,6 +932,7 @@ EXPECT_FALSE( version_->FinishRequest(second_request_id, true /* was_handled */)); + base::RunLoop().RunUntilIdle(); // KILL_ON_TIMEOUT timeouts should stop the service worker. EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); @@ -892,26 +941,29 @@ TEST_F(ServiceWorkerVersionTest, MixedRequestTimeouts) { base::Optional<blink::ServiceWorkerStatusCode> sync_status; base::Optional<blink::ServiceWorkerStatusCode> fetch_status; + base::RunLoop sync_run_loop; + base::RunLoop fetch_run_loop; + version_->SetStatus(ServiceWorkerVersion::ACTIVATED); StartWorker(version_.get(), ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); // Create a fetch request that should expire sometime later. - int fetch_request_id = - version_->StartRequest(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&fetch_status)); + int fetch_request_id = version_->StartRequest( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&fetch_status, fetch_run_loop.QuitClosure())); // Create a request that should expire Now(). int sync_request_id = version_->StartRequestWithCustomTimeout( ServiceWorkerMetrics::EventType::SYNC, - CreateReceiverOnCurrentThread(&sync_status), base::TimeDelta(), - ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); + ReceiveServiceWorkerStatus(&sync_status, sync_run_loop.QuitClosure()), + base::TimeDelta(), ServiceWorkerVersion::CONTINUE_ON_TIMEOUT); base::RunLoop().RunUntilIdle(); EXPECT_FALSE(sync_status); // Verify the sync has timed out but not the fetch. EXPECT_TRUE(version_->timeout_timer_.IsRunning()); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + sync_run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, sync_status.value()); EXPECT_FALSE(fetch_status); @@ -925,13 +977,14 @@ // Verify that the fetch times out later. version_->SetAllRequestExpirations(base::TimeTicks::Now()); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + fetch_run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, fetch_status.value()); // Fetch request should no longer exist. EXPECT_FALSE( version_->FinishRequest(fetch_request_id, true /* was_handled */)); + base::RunLoop().RunUntilIdle(); // Other timeouts do stop the service worker. EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); @@ -939,10 +992,12 @@ TEST_F(ServiceWorkerVersionTest, FailToStart_RendererCrash) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; auto* client = helper_->AddNewPendingInstanceClient< DelayedFakeEmbeddedWorkerInstanceClient>(helper_.get()); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); base::RunLoop().RunUntilIdle(); // Callback has not completed yet. @@ -952,8 +1007,7 @@ // Simulate renderer crash: break EmbeddedWorkerInstance's Mojo connection to // the renderer-side client. client->Disconnect(); - base::RunLoop().RunUntilIdle(); - + run_loop.Run(); // Callback completed. EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorStartWorkerFailed, status.value()); @@ -962,13 +1016,15 @@ TEST_F(ServiceWorkerVersionTest, FailToStart_Timeout) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; // Start starting the worker. auto* client = helper_->AddNewPendingInstanceClient< DelayedFakeEmbeddedWorkerInstanceClient>(helper_.get()); client->UnblockStopWorker(); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); base::RunLoop().RunUntilIdle(); // Callback has not completed yet. @@ -981,8 +1037,9 @@ ServiceWorkerVersion::kStartNewWorkerTimeout - base::TimeDelta::FromMinutes(1); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorTimeout, status.value()); + base::RunLoop().RunUntilIdle(); EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); } @@ -997,7 +1054,8 @@ // Try to stop the worker. bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + base::RunLoop run_loop; + version_->StopWorker(VerifyCalled(&has_stopped, run_loop.QuitClosure())); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); base::RunLoop().RunUntilIdle(); @@ -1011,7 +1069,7 @@ ServiceWorkerVersion::kStopWorkerTimeout - base::TimeDelta::FromSeconds(1); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_TRUE(has_stopped); EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); @@ -1035,13 +1093,15 @@ // Try to stop the worker. bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + version_->StopWorker(VerifyCalled(&has_stopped)); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); // Worker is now stalled in stopping. Add a start worker request. base::Optional<blink::ServiceWorkerStatusCode> start_status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&start_status)); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&start_status, run_loop.QuitClosure())); // Simulate timeout. The worker should stop and get restarted. EXPECT_TRUE(version_->timeout_timer_.IsRunning()); @@ -1049,7 +1109,7 @@ ServiceWorkerVersion::kStopWorkerTimeout - base::TimeDelta::FromSeconds(1); version_->timeout_timer_.user_task().Run(); - base::RunLoop().RunUntilIdle(); + run_loop.Run(); EXPECT_TRUE(has_stopped); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, start_status.value()); } @@ -1116,9 +1176,11 @@ helper_->context()->storage()->NewVersionId(), helper_->context()->AsWeakPtr()); base::Optional<blink::ServiceWorkerStatusCode> status; - version->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorDisallowed, status.value()); } @@ -1129,9 +1191,11 @@ // Start the worker before we have a controllee. base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ( 0, @@ -1165,9 +1229,11 @@ // Start the worker before we have a controllee. base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ( 0, @@ -1185,6 +1251,60 @@ } TEST_F(ServiceWorkerVersionTest, + ForegroundServiceWorkerCountUpdatedByControlleeProcessIdChange) { + base::test::ScopedFeatureList scoped_list; + scoped_list.InitAndEnableFeature(features::kServiceWorkerForegroundPriority); + + // Start the worker before we have a controllee. + base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); + EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); + EXPECT_EQ( + 0, + helper_->mock_render_process_host()->foreground_service_worker_count()); + + // Add a controllee, but don't begin the navigation commit yet. This will + // cause the client to have an invalid process id like we see in real + // navigations. + version_->SetStatus(ServiceWorkerVersion::ACTIVATED); + registration_->SetActiveVersion(version_); + ServiceWorkerRemoteProviderEndpoint remote_endpoint; + auto provider_info = blink::mojom::ServiceWorkerProviderInfoForWindow::New(); + base::WeakPtr<ServiceWorkerProviderHost> host = + ServiceWorkerProviderHost::PreCreateNavigationHost( + helper_->context()->AsWeakPtr(), true /* is_parent_frame_secure */, + base::NullCallback(), &provider_info); + remote_endpoint.BindForWindow(std::move(provider_info)); + host->UpdateUrls(registration_->scope(), registration_->scope()); + host->SetControllerRegistration(registration_, + false /* notify_controllerchange */); + EXPECT_TRUE(version_->HasControllee()); + EXPECT_TRUE(host->controller()); + + // RenderProcessHost should be notified of foreground worker. + base::RunLoop().RunUntilIdle(); + EXPECT_EQ( + 1, + helper_->mock_render_process_host()->foreground_service_worker_count()); + + // Now begin the navigation commit with the same process id used by the + // worker. This should cause the worker to stop being considered foreground + // priority. + host->OnBeginNavigationCommit(version_->embedded_worker()->process_id(), + /* render_frame_id = */ 1); + + // RenderProcessHost should be notified of foreground worker. + base::RunLoop().RunUntilIdle(); + EXPECT_EQ( + 0, + helper_->mock_render_process_host()->foreground_service_worker_count()); +} + +TEST_F(ServiceWorkerVersionTest, ForegroundServiceWorkerCountUpdatedByWorkerStatus) { base::test::ScopedFeatureList scoped_list; scoped_list.InitAndEnableFeature(features::kServiceWorkerForegroundPriority); @@ -1202,9 +1322,11 @@ // Starting the worker should notify the RenderProcessHost of the foreground // worker. base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ( 1, @@ -1234,9 +1356,11 @@ // Start the worker before we have a controllee. base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ( 0, @@ -1255,27 +1379,36 @@ TEST_F(ServiceWorkerVersionTest, FailToStart_UseNewRendererProcess) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop_1; ServiceWorkerContextCore* context = helper_->context(); int64_t id = version_->version_id(); version_->SetStatus(ServiceWorkerVersion::ACTIVATED); // Start once. It should choose the "existing process". - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop_1.QuitClosure())); + run_loop_1.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(helper_->mock_render_process_id(), version_->embedded_worker()->process_id()); - version_->StopWorker(base::DoNothing()); - base::RunLoop().RunUntilIdle(); + { + bool has_stopped = false; + base::RunLoop run_loop; + version_->StopWorker(VerifyCalled(&has_stopped, run_loop.QuitClosure())); + run_loop.Run(); + EXPECT_TRUE(has_stopped); + } // Fail once. status.reset(); helper_->AddPendingInstanceClient( std::make_unique<FailStartInstanceClient>(helper_.get())); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_2; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop_2.QuitClosure())); + run_loop_2.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorStartWorkerFailed, status.value()); EXPECT_EQ(1, context->GetVersionFailureCount(id)); @@ -1284,18 +1417,22 @@ status.reset(); helper_->AddPendingInstanceClient( std::make_unique<FailStartInstanceClient>(helper_.get())); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_3; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop_3.QuitClosure())); + run_loop_3.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kErrorStartWorkerFailed, status.value()); EXPECT_EQ(2, context->GetVersionFailureCount(id)); // Succeed. It should choose the "new process". status.reset(); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_4; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop_4.QuitClosure())); + run_loop_4.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(helper_->new_render_process_id(), version_->embedded_worker()->process_id()); @@ -1306,9 +1443,11 @@ // Start again. It should choose the "existing process" again as we no longer // force creation of a new process. status.reset(); - version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, - CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_5; + version_->StartWorker( + ServiceWorkerMetrics::EventType::UNKNOWN, + ReceiveServiceWorkerStatus(&status, run_loop_5.QuitClosure())); + run_loop_5.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_EQ(helper_->mock_render_process_id(), version_->embedded_worker()->process_id()); @@ -1318,12 +1457,15 @@ TEST_F(ServiceWorkerVersionTest, FailToStart_RestartStalledWorker) { base::Optional<blink::ServiceWorkerStatusCode> status; + base::RunLoop run_loop; // Stall in starting. auto* client = helper_->AddNewPendingInstanceClient< DelayedFakeEmbeddedWorkerInstanceClient>(helper_.get()); client->UnblockStopWorker(); - version_->StartWorker(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&status)); + version_->StartWorker( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + base::RunLoop().RunUntilIdle(); EXPECT_FALSE(status); @@ -1332,8 +1474,8 @@ // was already consumed, so a default fake instance client will be created, // which starts normally. bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); - base::RunLoop().RunUntilIdle(); + version_->StopWorker(VerifyCalled(&has_stopped)); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); EXPECT_TRUE(has_stopped); @@ -1346,15 +1488,18 @@ void StartWorker(ServiceWorkerMetrics::EventType purpose) { base::Optional<blink::ServiceWorkerStatusCode> status; - version_->StartWorker(purpose, CreateReceiverOnCurrentThread(&status)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StartWorker( + purpose, ReceiveServiceWorkerStatus(&status, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status.value()); } void StopWorker() { bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop; + version_->StopWorker(VerifyCalled(&has_stopped, run_loop.QuitClosure())); + run_loop.Run(); EXPECT_TRUE(has_stopped); } @@ -1399,11 +1544,16 @@ version_->SetStatus(ServiceWorkerVersion::ACTIVATED); base::Optional<blink::ServiceWorkerStatusCode> status1; base::Optional<blink::ServiceWorkerStatusCode> status2; - version_->StartWorker(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&status1)); - version_->StartWorker(ServiceWorkerMetrics::EventType::NAVIGATION_HINT, - CreateReceiverOnCurrentThread(&status2)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_1; + base::RunLoop run_loop_2; + version_->StartWorker( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&status1, run_loop_1.QuitClosure())); + version_->StartWorker( + ServiceWorkerMetrics::EventType::NAVIGATION_HINT, + ReceiveServiceWorkerStatus(&status2, run_loop_2.QuitClosure())); + run_loop_1.Run(); + run_loop_2.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status1.value()); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status2.value()); StopWorker(); @@ -1412,11 +1562,16 @@ status1.reset(); status2.reset(); - version_->StartWorker(ServiceWorkerMetrics::EventType::NAVIGATION_HINT, - CreateReceiverOnCurrentThread(&status2)); - version_->StartWorker(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, - CreateReceiverOnCurrentThread(&status1)); - base::RunLoop().RunUntilIdle(); + base::RunLoop run_loop_3; + base::RunLoop run_loop_4; + version_->StartWorker( + ServiceWorkerMetrics::EventType::NAVIGATION_HINT, + ReceiveServiceWorkerStatus(&status2, run_loop_4.QuitClosure())); + version_->StartWorker( + ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME, + ReceiveServiceWorkerStatus(&status1, run_loop_3.QuitClosure())); + run_loop_4.Run(); + run_loop_3.Run(); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status1.value()); EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status2.value()); SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); @@ -1430,7 +1585,7 @@ TEST_F(ServiceWorkerNavigationHintUMATest, StartWhileStopping) { StartWorker(ServiceWorkerMetrics::EventType::NAVIGATION_HINT); bool has_stopped = false; - version_->StopWorker(base::BindOnce(&VerifyCalled, &has_stopped)); + version_->StopWorker(VerifyCalled(&has_stopped)); EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, version_->running_status()); histogram_tester_.ExpectTotalCount(kStartHintPrecision, 0);
diff --git a/content/browser/site_per_process_hit_test_browsertest.cc b/content/browser/site_per_process_hit_test_browsertest.cc index 3f7bf8fb..35f83add22 100644 --- a/content/browser/site_per_process_hit_test_browsertest.cc +++ b/content/browser/site_per_process_hit_test_browsertest.cc
@@ -2559,15 +2559,22 @@ SurfaceHitTestTestHelper(shell(), embedded_test_server()); } +// TODO(https://crbug.com/948372): tests are flaky on ChromeOS and often +// timeout. +#if defined(OS_CHROMEOS) +#define MAYBE_NestedSurfaceHitTestTest DISABLED_NestedSurfaceHitTestTest +#else +#define MAYBE_NestedSurfaceHitTestTest NestedSurfaceHitTestTest +#endif // Test that mouse events are being routed to the correct RenderWidgetHostView // when there are nested out-of-process iframes. IN_PROC_BROWSER_TEST_P(SitePerProcessHitTestBrowserTest, - NestedSurfaceHitTestTest) { + MAYBE_NestedSurfaceHitTestTest) { NestedSurfaceHitTestTestHelper(shell(), embedded_test_server()); } IN_PROC_BROWSER_TEST_P(SitePerProcessHighDPIHitTestBrowserTest, - NestedSurfaceHitTestTest) { + MAYBE_NestedSurfaceHitTestTest) { NestedSurfaceHitTestTestHelper(shell(), embedded_test_server()); } @@ -5982,7 +5989,7 @@ } IN_PROC_BROWSER_TEST_P(SitePerProcessNonIntegerScaleFactorHitTestBrowserTest, - NestedSurfaceHitTestTest) { + MAYBE_NestedSurfaceHitTestTest) { NestedSurfaceHitTestTestHelper(shell(), embedded_test_server()); }
diff --git a/content/common/common_param_traits_unittest.cc b/content/common/common_param_traits_unittest.cc index f7bc924..d1c49e82d 100644 --- a/content/common/common_param_traits_unittest.cc +++ b/content/common/common_param_traits_unittest.cc
@@ -172,7 +172,6 @@ in.is_issued_by_known_root = true; in.pkp_bypassed = true; in.client_cert_sent = true; - in.channel_id_sent = true; in.handshake_type = net::SSLInfo::HANDSHAKE_FULL; const net::SHA256HashValue kCertPublicKeyHashValue = {{0x01, 0x02}}; in.public_key_hashes.push_back(net::HashValue(kCertPublicKeyHashValue)); @@ -215,7 +214,6 @@ ASSERT_EQ(in.is_issued_by_known_root, out.is_issued_by_known_root); ASSERT_EQ(in.pkp_bypassed, out.pkp_bypassed); ASSERT_EQ(in.client_cert_sent, out.client_cert_sent); - ASSERT_EQ(in.channel_id_sent, out.channel_id_sent); ASSERT_EQ(in.handshake_type, out.handshake_type); ASSERT_EQ(in.public_key_hashes, out.public_key_hashes); ASSERT_EQ(in.pinning_failure_log, out.pinning_failure_log);
diff --git a/content/common/service_worker/service_worker_types.h b/content/common/service_worker/service_worker_types.h index 04f5ec5..a279ed1 100644 --- a/content/common/service_worker/service_worker_types.h +++ b/content/common/service_worker/service_worker_types.h
@@ -54,7 +54,6 @@ // Constants for invalid identifiers. static const int kInvalidEmbeddedWorkerThreadId = -1; -static const int kInvalidServiceWorkerProviderId = -1; static const int64_t kInvalidServiceWorkerResourceId = -1; // The HTTP cache is bypassed for Service Worker scripts if the last network
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc index f9d422a..b077a21e 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc
@@ -76,11 +76,10 @@ return false; } -void WebContentsDelegate::CanDownload( - const GURL& url, - const std::string& request_method, - const base::Callback<void(bool)>& callback) { - callback.Run(true); +void WebContentsDelegate::CanDownload(const GURL& url, + const std::string& request_method, + base::OnceCallback<void(bool)> callback) { + std::move(callback).Run(true); } bool WebContentsDelegate::HandleContextMenu(RenderFrameHost* render_frame_host,
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h index 64edf04..3789137 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h
@@ -243,7 +243,7 @@ // Invoking the |callback| synchronously is OK. virtual void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback); + base::OnceCallback<void(bool)> callback); // Returns true if the context menu operation was handled by the delegate. virtual bool HandleContextMenu(RenderFrameHost* render_frame_host,
diff --git a/content/public/common/common_param_traits_macros.h b/content/public/common/common_param_traits_macros.h index 0886144..24bded9 100644 --- a/content/public/common/common_param_traits_macros.h +++ b/content/public/common/common_param_traits_macros.h
@@ -234,8 +234,8 @@ IPC_STRUCT_TRAITS_MEMBER(immersive_mode_enabled) IPC_STRUCT_TRAITS_MEMBER(css_hex_alpha_color_enabled) IPC_STRUCT_TRAITS_MEMBER(scroll_top_left_interop_enabled) - IPC_STRUCT_TRAITS_MEMBER(force_dark_mode_enabled) #endif // defined(OS_ANDROID) + IPC_STRUCT_TRAITS_MEMBER(force_dark_mode_enabled) IPC_STRUCT_TRAITS_MEMBER(default_minimum_page_scale_factor) IPC_STRUCT_TRAITS_MEMBER(default_maximum_page_scale_factor) IPC_STRUCT_TRAITS_MEMBER(hide_download_ui)
diff --git a/content/public/common/web_preferences.h b/content/public/common/web_preferences.h index 2e7285fa..a83015f3 100644 --- a/content/public/common/web_preferences.h +++ b/content/public/common/web_preferences.h
@@ -270,12 +270,13 @@ // WebView sets this to false to retain old documentElement behaviour // (http://crbug.com/761016). bool scroll_top_left_interop_enabled; - // Enable forcibly modifying content rendering to result in a light on dark - // colour scheme. - bool force_dark_mode_enabled = false; #else // defined(OS_ANDROID) #endif // defined(OS_ANDROID) + // Enable forcibly modifying content rendering to result in a light on dark + // color scheme. + bool force_dark_mode_enabled = false; + // Default (used if the page or UA doesn't override these) values for page // scale limits. These are set directly on the WebView so there's no analogue // in WebSettings.
diff --git a/content/public/renderer/resource_dispatcher_delegate.h b/content/public/renderer/resource_dispatcher_delegate.h index 3f192e7..565d2006 100644 --- a/content/public/renderer/resource_dispatcher_delegate.h +++ b/content/public/renderer/resource_dispatcher_delegate.h
@@ -26,7 +26,6 @@ virtual std::unique_ptr<RequestPeer> OnRequestComplete( std::unique_ptr<RequestPeer> current_peer, - ResourceType resource_type, int error_code) = 0; // Note that |url|, |referrer| and |method| are the final values (e.g. after
diff --git a/content/renderer/loader/request_extra_data.h b/content/renderer/loader/request_extra_data.h index 38c20dd..c649fcf 100644 --- a/content/renderer/loader/request_extra_data.h +++ b/content/renderer/loader/request_extra_data.h
@@ -17,7 +17,6 @@ #include "content/renderer/loader/web_url_loader_impl.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url_request.h" -#include "ui/base/page_transition_types.h" namespace network { struct ResourceRequest; @@ -33,34 +32,6 @@ RequestExtraData(); ~RequestExtraData() override; - void set_is_preprerendering(bool is_prerendering) { - is_prerendering_ = is_prerendering; - } - void set_render_frame_id(int render_frame_id) { - render_frame_id_ = render_frame_id; - } - void set_is_main_frame(bool is_main_frame) { - is_main_frame_ = is_main_frame; - } - void set_allow_download(bool allow_download) { - allow_download_ = allow_download; - } - ui::PageTransition transition_type() const { return transition_type_; } - void set_transition_type(ui::PageTransition transition_type) { - transition_type_ = transition_type; - } - int service_worker_provider_id() const { - return service_worker_provider_id_; - } - void set_service_worker_provider_id( - int service_worker_provider_id) { - service_worker_provider_id_ = service_worker_provider_id; - } - // true if the request originated from within a service worker e.g. due to - // a fetch() in the service worker script. - void set_originated_from_service_worker(bool originated_from_service_worker) { - originated_from_service_worker_ = originated_from_service_worker; - } // |custom_user_agent| is used to communicate an overriding custom user agent // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no // override and an empty string to indicate that there should be no user @@ -84,10 +55,6 @@ navigation_response_override_ = std::move(response_override); } - void set_initiated_in_secure_context(bool secure) { - initiated_in_secure_context_ = secure; - } - // The request is for a prefetch-only client (i.e. running NoStatePrefetch) // and should use LOAD_PREFETCH network flags. bool is_for_no_state_prefetch() const { return is_for_no_state_prefetch_; } @@ -103,14 +70,6 @@ void set_block_mixed_plugin_content(bool block_mixed_plugin_content) { block_mixed_plugin_content_ = block_mixed_plugin_content; } - - // Determines whether SameSite cookies will be attached to the request - // even when the request looks cross-site. - bool attach_same_site_cookies() const { return attach_same_site_cookies_; } - void set_attach_same_site_cookies(bool attach) { - attach_same_site_cookies_ = attach; - } - std::vector<std::unique_ptr<URLLoaderThrottle>> TakeURLLoaderThrottles() { return std::move(url_loader_throttles_); } @@ -118,12 +77,10 @@ std::vector<std::unique_ptr<URLLoaderThrottle>> throttles) { url_loader_throttles_ = std::move(throttles); } - void set_frame_request_blocker( scoped_refptr<FrameRequestBlocker> frame_request_blocker) { frame_request_blocker_ = frame_request_blocker; } - scoped_refptr<FrameRequestBlocker> frame_request_blocker() { return frame_request_blocker_; } @@ -131,20 +88,11 @@ void CopyToResourceRequest(network::ResourceRequest* request) const; private: - bool is_prerendering_ = false; - int render_frame_id_ = MSG_ROUTING_NONE; - bool is_main_frame_ = false; - bool allow_download_ = true; - ui::PageTransition transition_type_ = ui::PAGE_TRANSITION_LINK; - int service_worker_provider_id_ = kInvalidServiceWorkerProviderId; - bool originated_from_service_worker_ = false; blink::WebString custom_user_agent_; std::unique_ptr<NavigationResponseOverrideParameters> navigation_response_override_; - bool initiated_in_secure_context_ = false; bool is_for_no_state_prefetch_ = false; bool block_mixed_plugin_content_ = false; - bool attach_same_site_cookies_ = false; std::vector<std::unique_ptr<URLLoaderThrottle>> url_loader_throttles_; scoped_refptr<FrameRequestBlocker> frame_request_blocker_;
diff --git a/content/renderer/loader/resource_dispatcher.cc b/content/renderer/loader/resource_dispatcher.cc index 147d24c..b1f361c9 100644 --- a/content/renderer/loader/resource_dispatcher.cc +++ b/content/renderer/loader/resource_dispatcher.cc
@@ -284,8 +284,7 @@ if (delegate_) { std::unique_ptr<RequestPeer> new_peer = delegate_->OnRequestComplete( - std::move(request_info->peer), request_info->resource_type, - status.error_code); + std::move(request_info->peer), status.error_code); DCHECK(new_peer); request_info->peer = std::move(new_peer); }
diff --git a/content/renderer/loader/resource_dispatcher_unittest.cc b/content/renderer/loader/resource_dispatcher_unittest.cc index 75e8c99..4a6ccc7 100644 --- a/content/renderer/loader/resource_dispatcher_unittest.cc +++ b/content/renderer/loader/resource_dispatcher_unittest.cc
@@ -182,7 +182,6 @@ std::unique_ptr<RequestPeer> OnRequestComplete( std::unique_ptr<RequestPeer> current_peer, - ResourceType resource_type, int error_code) override { return current_peer; }
diff --git a/content/renderer/loader/web_worker_fetch_context_impl.cc b/content/renderer/loader/web_worker_fetch_context_impl.cc index 55222251..8e2748f2 100644 --- a/content/renderer/loader/web_worker_fetch_context_impl.cc +++ b/content/renderer/loader/web_worker_fetch_context_impl.cc
@@ -34,6 +34,7 @@ #include "services/network/public/cpp/wrapper_shared_url_loader_factory.h" #include "services/service_manager/public/cpp/connector.h" #include "third_party/blink/public/common/features.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h" #include "third_party/blink/public/platform/web_security_origin.h" @@ -197,7 +198,7 @@ worker_fetch_context->set_client_id(provider_context->client_id()); } else { worker_fetch_context->set_service_worker_provider_id( - kInvalidServiceWorkerProviderId); + blink::kInvalidServiceWorkerProviderId); worker_fetch_context->set_is_controlled_by_service_worker( blink::mojom::ControllerServiceWorkerMode::kNoController); }
diff --git a/content/renderer/loader/web_worker_fetch_context_impl.h b/content/renderer/loader/web_worker_fetch_context_impl.h index fda5ed8..f49055e 100644 --- a/content/renderer/loader/web_worker_fetch_context_impl.h +++ b/content/renderer/loader/web_worker_fetch_context_impl.h
@@ -16,6 +16,7 @@ #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" #include "services/service_manager/public/cpp/connector.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/mojom/appcache/appcache.mojom.h" #include "third_party/blink/public/mojom/blob/blob_registry.mojom.h" #include "third_party/blink/public/mojom/renderer_preference_watcher.mojom.h" @@ -200,7 +201,7 @@ // Consumed on the worker thread to create |fallback_factory_|. std::unique_ptr<network::SharedURLLoaderFactoryInfo> fallback_factory_info_; - int service_worker_provider_id_ = kInvalidServiceWorkerProviderId; + int service_worker_provider_id_ = blink::kInvalidServiceWorkerProviderId; blink::mojom::ControllerServiceWorkerMode is_controlled_by_service_worker_ = blink::mojom::ControllerServiceWorkerMode::kNoController;
diff --git a/content/renderer/media/stream/webmediaplayer_ms.cc b/content/renderer/media/stream/webmediaplayer_ms.cc index f4176200..9e4d209 100644 --- a/content/renderer/media/stream/webmediaplayer_ms.cc +++ b/content/renderer/media/stream/webmediaplayer_ms.cc
@@ -658,11 +658,11 @@ void WebMediaPlayerMS::SetSinkId( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callback) { + blink::WebSetSinkIdCompleteCallback completion_callback) { DVLOG(1) << __func__; DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); media::OutputDeviceStatusCB callback = - media::ConvertToOutputDeviceStatusCB(std::move(web_callback)); + media::ConvertToOutputDeviceStatusCB(std::move(completion_callback)); if (audio_renderer_) { audio_renderer_->SwitchOutputDevice(sink_id.Utf8(), std::move(callback)); } else {
diff --git a/content/renderer/media/stream/webmediaplayer_ms.h b/content/renderer/media/stream/webmediaplayer_ms.h index 5ae51d0..3bdda35 100644 --- a/content/renderer/media/stream/webmediaplayer_ms.h +++ b/content/renderer/media/stream/webmediaplayer_ms.h
@@ -119,7 +119,7 @@ void OnRequestPictureInPicture() override; void SetSinkId( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callback) override; + blink::WebSetSinkIdCompleteCallback completion_callback) override; void SetPreload(blink::WebMediaPlayer::Preload preload) override; blink::WebTimeRanges Buffered() const override; blink::WebTimeRanges Seekable() const override;
diff --git a/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc b/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc index ebfe1f9..69e3a4a6 100644 --- a/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc +++ b/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc
@@ -58,7 +58,7 @@ return blink::WebTimeRanges(); } void SetSinkId(const blink::WebString& sinkId, - std::unique_ptr<blink::WebSetSinkIdCallbacks>) override {} + blink::WebSetSinkIdCompleteCallback) override {} bool HasVideo() const override { return true; } bool HasAudio() const override { return false; } blink::WebSize NaturalSize() const override { return blink::WebSize(16, 10); }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 8c53dcd0..cacbf98 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -7308,8 +7308,9 @@ void RenderFrameImpl::CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> callbacks) { - std::move(media::ConvertToOutputDeviceStatusCB(std::move(callbacks))) + blink::WebSetSinkIdCompleteCallback completion_callback) { + std::move( + media::ConvertToOutputDeviceStatusCB(std::move(completion_callback))) .Run(AudioDeviceFactory::GetOutputDeviceInfo( GetRoutingID(), media::AudioSinkParameters(0, sink_id.Utf8())) .device_status());
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index f1b29f2..d252198 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -859,7 +859,7 @@ const blink::WebURL& url) override; void CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> callbacks) override; + blink::WebSetSinkIdCompleteCallback callback) override; std::unique_ptr<blink::WebURLLoaderFactory> CreateURLLoaderFactory() override; void DraggableRegionsChanged() override; // |rect_to_scroll| is with respect to this frame's origin. |rect_to_scroll|
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 3744426..7a450ad 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -895,9 +895,10 @@ WebRuntimeFeatures::EnableCSSHexAlphaColor(prefs.css_hex_alpha_color_enabled); WebRuntimeFeatures::EnableScrollTopLeftInterop( prefs.scroll_top_left_interop_enabled); - settings->SetForceDarkModeEnabled(prefs.force_dark_mode_enabled); #endif // defined(OS_ANDROID) + settings->SetForceDarkModeEnabled(prefs.force_dark_mode_enabled); + switch (prefs.autoplay_policy) { case AutoplayPolicy::kNoUserGestureRequired: settings->SetAutoplayPolicy(
diff --git a/content/renderer/service_worker/service_worker_network_provider_for_frame.cc b/content/renderer/service_worker/service_worker_network_provider_for_frame.cc index a416fde..09c025ea 100644 --- a/content/renderer/service_worker/service_worker_network_provider_for_frame.cc +++ b/content/renderer/service_worker/service_worker_network_provider_for_frame.cc
@@ -14,6 +14,7 @@ #include "content/renderer/render_thread_impl.h" #include "content/renderer/service_worker/service_worker_provider_context.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/common/service_worker/service_worker_utils.h" #include "third_party/blink/public/web/web_local_frame.h" @@ -184,7 +185,7 @@ int ServiceWorkerNetworkProviderForFrame::provider_id() const { if (!context_) - return kInvalidServiceWorkerProviderId; + return blink::kInvalidServiceWorkerProviderId; return context_->provider_id(); }
diff --git a/content/renderer/worker/service_worker_network_provider_for_worker.cc b/content/renderer/worker/service_worker_network_provider_for_worker.cc index f2cffab..d3baa45 100644 --- a/content/renderer/worker/service_worker_network_provider_for_worker.cc +++ b/content/renderer/worker/service_worker_network_provider_for_worker.cc
@@ -15,6 +15,7 @@ #include "content/renderer/service_worker/service_worker_provider_context.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/common/service_worker/service_worker_utils.h" #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h" @@ -114,7 +115,7 @@ int ServiceWorkerNetworkProviderForWorker::provider_id() const { if (!context_) - return kInvalidServiceWorkerProviderId; + return blink::kInvalidServiceWorkerProviderId; return context_->provider_id(); }
diff --git a/content/shell/test_runner/web_frame_test_client.cc b/content/shell/test_runner/web_frame_test_client.cc index 3adfc50..1b5dbb1c 100644 --- a/content/shell/test_runner/web_frame_test_client.cc +++ b/content/shell/test_runner/web_frame_test_client.cc
@@ -589,14 +589,15 @@ void WebFrameTestClient::CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callbacks) { + blink::WebSetSinkIdCompleteCallback completion_callback) { std::string device_id = sink_id.Utf8(); if (device_id == "valid" || device_id.empty()) - web_callbacks->OnSuccess(); + std::move(completion_callback).Run(/*error =*/base::nullopt); else if (device_id == "unauthorized") - web_callbacks->OnError(blink::WebSetSinkIdError::kNotAuthorized); + std::move(completion_callback) + .Run(blink::WebSetSinkIdError::kNotAuthorized); else - web_callbacks->OnError(blink::WebSetSinkIdError::kNotFound); + std::move(completion_callback).Run(blink::WebSetSinkIdError::kNotFound); } void WebFrameTestClient::DidClearWindowObject() {
diff --git a/content/shell/test_runner/web_frame_test_client.h b/content/shell/test_runner/web_frame_test_client.h index e63022eb..509f0bd 100644 --- a/content/shell/test_runner/web_frame_test_client.h +++ b/content/shell/test_runner/web_frame_test_client.h
@@ -73,7 +73,7 @@ void DidReceiveResponse(const blink::WebURLResponse& response) override; void CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callbacks) override; + blink::WebSetSinkIdCompleteCallback completion_callback) override; void DidClearWindowObject() override; blink::WebEffectiveConnectionType GetEffectiveConnectionType() override;
diff --git a/content/shell/test_runner/web_frame_test_proxy.cc b/content/shell/test_runner/web_frame_test_proxy.cc index 1ce1b59..9efceb0 100644 --- a/content/shell/test_runner/web_frame_test_proxy.cc +++ b/content/shell/test_runner/web_frame_test_proxy.cc
@@ -286,9 +286,9 @@ void WebFrameTestProxy::CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callbacks) { - test_client_->CheckIfAudioSinkExistsAndIsAuthorized(sink_id, - std::move(web_callbacks)); + blink::WebSetSinkIdCompleteCallback completion_callback) { + test_client_->CheckIfAudioSinkExistsAndIsAuthorized( + sink_id, std::move(completion_callback)); } void WebFrameTestProxy::DidClearWindowObject() {
diff --git a/content/shell/test_runner/web_frame_test_proxy.h b/content/shell/test_runner/web_frame_test_proxy.h index 9a03b7b..765525e 100644 --- a/content/shell/test_runner/web_frame_test_proxy.h +++ b/content/shell/test_runner/web_frame_test_proxy.h
@@ -79,7 +79,7 @@ bool subtree) override; void CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callbacks) override; + blink::WebSetSinkIdCompleteCallback completion_callback) override; void DidClearWindowObject() override; private:
diff --git a/content/test/data/accessibility/event/menu-opened-closed-expected-uia-win.txt b/content/test/data/accessibility/event/menu-opened-closed-expected-uia-win.txt index a68a48f..d0a082b 100644 --- a/content/test/data/accessibility/event/menu-opened-closed-expected-uia-win.txt +++ b/content/test/data/accessibility/event/menu-opened-closed-expected-uia-win.txt
@@ -1,15 +1,10 @@ -AutomationFocusChanged on role=menu, name=menu MenuOpened on role=menu, name=menu === Start Continuation === -AutomationFocusChanged on role=menu, name=submenu1 MenuClosed on role=menu, name=menu MenuOpened on role=menu, name=submenu1 === Start Continuation === -AutomationFocusChanged on role=document MenuClosed on role=menu, name=submenu1 === Start Continuation === -AutomationFocusChanged on role=menu, name=submenu2 MenuOpened on role=menu, name=submenu2 === Start Continuation === -AutomationFocusChanged on role=menuitem, name=option MenuClosed on role=menu, name=submenu2
diff --git a/content/test/data/accessibility/event/menu-opened-closed.html b/content/test/data/accessibility/event/menu-opened-closed.html index f8bcc29..580128f 100644 --- a/content/test/data/accessibility/event/menu-opened-closed.html +++ b/content/test/data/accessibility/event/menu-opened-closed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <div tabindex="1" id="menu" aria-label="menu" role="menu"> <div tabindex="2" id="submenu1" aria-label="submenu1" role="menu"></div>
diff --git a/content/test/data/accessibility/event/range-value-is-readonly-changed.html b/content/test/data/accessibility/event/range-value-is-readonly-changed.html index cf91737..41c6eaa0 100644 --- a/content/test/data/accessibility/event/range-value-is-readonly-changed.html +++ b/content/test/data/accessibility/event/range-value-is-readonly-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="range" type="range" min="0" max="10" value="5">
diff --git a/content/test/data/accessibility/event/range-value-maximum-changed.html b/content/test/data/accessibility/event/range-value-maximum-changed.html index 20ebdb7..333e0b9 100644 --- a/content/test/data/accessibility/event/range-value-maximum-changed.html +++ b/content/test/data/accessibility/event/range-value-maximum-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="max" type="range" min="0" max="10" value="5"> <script>
diff --git a/content/test/data/accessibility/event/range-value-minimum-changed.html b/content/test/data/accessibility/event/range-value-minimum-changed.html index dfa70b2..9aca2ea6 100644 --- a/content/test/data/accessibility/event/range-value-minimum-changed.html +++ b/content/test/data/accessibility/event/range-value-minimum-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="min" type="range" min="0" max="10" value="5"> <script>
diff --git a/content/test/data/accessibility/event/range-value-step-changed.html b/content/test/data/accessibility/event/range-value-step-changed.html index 8f998e3..9c39d502 100644 --- a/content/test/data/accessibility/event/range-value-step-changed.html +++ b/content/test/data/accessibility/event/range-value-step-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="step" type="range" min="0" max="10" value="4" step="4"> <script>
diff --git a/content/test/data/accessibility/event/range-value-value-changed.html b/content/test/data/accessibility/event/range-value-value-changed.html index ed9cc6a..48a90b6f 100644 --- a/content/test/data/accessibility/event/range-value-value-changed.html +++ b/content/test/data/accessibility/event/range-value-value-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="value" type="range" min="0" max="10" value="1"> <script>
diff --git a/content/test/data/accessibility/event/text-changed-expected-auralinux.txt b/content/test/data/accessibility/event/text-changed-expected-auralinux.txt new file mode 100644 index 0000000..6e87438 --- /dev/null +++ b/content/test/data/accessibility/event/text-changed-expected-auralinux.txt
@@ -0,0 +1,10 @@ +NAME-CHANGED:Modified Heading role=ROLE_TEXT name='Modified Heading' ENABLED,SENSITIVE,SHOWING,VISIBLE +NAME-CHANGED:Text modified role=ROLE_TEXT name='Text modified' ENABLED,SENSITIVE,SHOWING,VISIBLE +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +STATE-CHANGE:DEFUNCT:TRUE role=ROLE_INVALID name='(null)' DEFUNCT +
diff --git a/content/test/data/accessibility/event/value-is-readonly-changed.html b/content/test/data/accessibility/event/value-is-readonly-changed.html index b28432a..cddd644 100644 --- a/content/test/data/accessibility/event/value-is-readonly-changed.html +++ b/content/test/data/accessibility/event/value-is-readonly-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="text" type="text">
diff --git a/content/test/data/accessibility/event/value-value-changed.html b/content/test/data/accessibility/event/value-value-changed.html index 3a0f7192..e83d32c7 100644 --- a/content/test/data/accessibility/event/value-value-changed.html +++ b/content/test/data/accessibility/event/value-value-changed.html
@@ -1,3 +1,7 @@ +<!-- +@WIN-DENY:EVENT_OBJECT_FOCUS* +@UIA-WIN-DENY:AutomationFocusChanged* +--> <!DOCTYPE html> <input id="value" type="text" value="something"> <script>
diff --git a/content/test/data/accessibility/readme.md b/content/test/data/accessibility/readme.md index 0383f3e..a521df7 100644 --- a/content/test/data/accessibility/readme.md +++ b/content/test/data/accessibility/readme.md
@@ -2,9 +2,16 @@ Both sets of tests use a similar format for files. -DumpAccessibilityTree tests load an HTML file, wait for it to load, then -dump the accessibility tree in the "blink" format (the internal data), -and again in a platform-specific format. +`DumpAccessibilityTree` tests load an HTML file, wait for it to load, then +dump the accessibility tree. + +Each test is parameterized to run multiple times. Most platforms dump in the +"blink" format (the internal data), and again in a "native" (platform-specific) +format. The Windows platform has a second native format, "uia", so it runs a +third time. The test name indicates which test pass was run, e.g., +`DumpAccessibilityTreeTest.TestName/blink`. (Note: for easier identification, +the Windows, Mac, Linux, and Android platforms rename the "native" pass to +"win", "mac", "linux" and "android", respectively.) The test output is a compact text representation of the accessibility tree for that format, and it should be familiar if you're familiar with the @@ -20,47 +27,49 @@ expectation file is present, the test passes. Most tests don't have expectations on all platforms. -DumpAccessibilityEvent tests use a similar format but dump events fired after +`DumpAccessibilityEvent` tests use a similar format but dump events fired after the document finishes loading. See more on this below. -Compiling and running the tests: +## Compiling and running the tests: +``` ninja -C out/Debug content_browsertests out/Debug/content_browsertests --gtest_filter="DumpAccessibility*" +``` -Files used: +## Files used: -* foo.html -- a file to be tested -* foo-expected-android.txt -- expected Android AccessibilityNodeInfo output -* foo-expected-auralinux.txt -- expected Linux ATK output -* foo-expected-blink.txt -- representation of internal accessibility tree -* foo-expected-mac.txt -- expected Mac NSAccessibility output -* foo-expected-win.txt -- expected Win IAccessible/IAccessible2 output -* foo-expected-uia-win.txt -- expected Win UIA output -* foo-expected-uia-win7.txt -- expected Win7 UIA output (Version Specific +* `foo.html` -- a file to be tested +* `foo-expected-android.txt` -- expected Android AccessibilityNodeInfo output +* `foo-expected-auralinux.txt` -- expected Linux ATK output +* `foo-expected-blink.txt` -- representation of internal accessibility tree +* `foo-expected-mac.txt` -- expected Mac NSAccessibility output +* `foo-expected-win.txt` -- expected Win IAccessible/IAccessible2 output +* `foo-expected-uia-win.txt` -- expected Win UIA output +* `foo-expected-uia-win7.txt` -- expected Win7 UIA output (Version Specific Expected File) -Format for expected files: +## Format for expected files: -* Blank lines and lines beginning with # are ignored -* Skipped files: if first line of file begins with #<skip then the +* Blank lines and lines beginning with `#` are ignored +* Skipped files: if first line of file begins with `#<skip` then the test passes. This can be used to indicate desired output with a link to a bug, or as a way to temporarily disable a test during refactoring. * Use 2 plus signs for indent to show hierarchy -### Version Specific Expected Files +## Version Specific Expected Files -UIA sometimes differs between windows 7 and later versions of +UIA sometimes differs between windows 7 and later versions of Windows. To account for these differences, the UIA accessibility tree formatter will look for a version specific expected file first: -`foo-expected-uia-win7.txt`. If the version specific expected file +`foo-expected-uia-win7.txt`. If the version specific expected file does not exist, the normal expected file will be used instead: -"`foo-expected-uia-win.txt`". There is no concept of version +"`foo-expected-uia-win.txt`". There is no concept of version specific filters. -Filters: +## Filters: * By default only some attributes of nodes in the accessibility tree, or - events fired (when running DumpAccessibilityEvents), are output. + events fired (when running `DumpAccessibilityEvents`), are output. This is to keep the tests robust and not prone to failure when unrelated changes affect the accessibility tree in unimportant ways. * Filters contained in the HTML file can be used to control what is output. @@ -76,22 +85,21 @@ @AURALINUX- ``` * To dump all attributes while writing or debugging a test, add this filter: - @WIN-ALLOW:* - (and similarly for other platforms). + `@WIN-ALLOW:*` (and similarly for other platforms). * Once you know what you want to output, you can use filters to match the attributes and attribute values you want included in the output. An - ALLOW filter means to include the attribute, and a DENY filter means to - exclude it. Filters can contain simple wildcards ('*') only, they're not + `ALLOW` filter means to include the attribute, and a `DENY` filter means to + exclude it. Filters can contain simple wildcards (`*`) only, they're not regular expressions. Examples: -``` - - @WIN-ALLOW:name* - this will output the name attribute on Windows - - @WIN-ALLOW:name='Foo' - this will only output the name attribute if it - exactly matches 'Foo'. - - @WIN-DENY:name='X* - this will skip outputting any name that begins with - the letter X. -``` + + - `@WIN-ALLOW:name*` - this will output the name attribute on Windows + - `@WIN-ALLOW:name='Foo'` - this will only output the name attribute if it + exactly matches 'Foo'. + - `@WIN-DENY:name='X*` - this will skip outputting any name that begins with + the letter X. + * By default empty attributes are skipped. To output the value of an attribute - even if it's empty, use @WIN-ALLOW-EMPTY:name, for example, and similarly + even if it's empty, use `@WIN-ALLOW-EMPTY:name`, for example, and similarly for other platforms. @@ -102,71 +110,71 @@ Occasionally you may need to write a dump tree test that makes some changes to the document before it runs the test. In that case you can use a special -@WAIT-FOR: directive. It should be in an HTML comment, just like -@ALLOW-WIN: directives. The WAIT-FOR directive just specifies a text substring -that should be present in the dump when the document is ready. The system -will keep blocking until that text appears. +`@WAIT-FOR:` directive. It should be in an HTML comment, just like +`@ALLOW-WIN:` directives. The `WAIT-FOR` directive just specifies a text +substring that should be present in the dump when the document is ready. The +system will keep blocking until that text appears. -You can add as many @WAIT-FOR: directives as you want, the test won't finish +You can add as many `@WAIT-FOR:` directives as you want, the test won't finish until all strings appear. Or, you may need to write an event test that keeps dumping events until a -specific event line. In this case, use @RUN-UNTIL-EVENT with a substring that -should occur in the event log, e.g. @RUN-UNTIL-EVENT:IA2_EVENT_TEXT_CARET_MOVED. -Note that @RUN-UNTIL-EVENT is only used in dump events tests, and not used in -dump tree tests. +specific event line. In this case, use `@RUN-UNTIL-EVENT` with a substring that +should occur in the event log, e.g., +`@RUN-UNTIL-EVENT:IA2_EVENT_TEXT_CARET_MOVED`. Note that `@RUN-UNTIL-EVENT` is +only used in dump events tests, and not used in dump tree tests. -If you add multiple @RUN-UNTIL-EVENT directives, the test will finish once any +If you add multiple `@RUN-UNTIL-EVENT` directives, the test will finish once any of them are satisfied. Note that any other events that come along with the last event will also be logged. To skip dumping a particular element, make its accessible name equal to -@NO_DUMP, for example <div aria-label="@NO_DUMP"></div>. +`@NO_DUMP`, for example `<div aria-label="@NO_DUMP"></div>`. To skip dumping all children of a particular element, make its accessible -name equal to @NO_CHILDREN_DUMP, for example -<div aria-label="@NO_CHILDREN_DUMP"></div>. +name equal to `@NO_CHILDREN_DUMP`, for example +`<div aria-label="@NO_CHILDREN_DUMP"></div>`. To load an iframe from a different site, forcing it into a different process, -use /cross-site/HOSTNAME/ in the url, for example: - <iframe src="cross-site/1.com/accessibility/html/frame.html"></iframe> +use `/cross-site/HOSTNAME/` in the url, for example: +`<iframe src="cross-site/1.com/accessibility/html/frame.html"></iframe>` ## Generating expectations and rebaselining: If you want to populate the expectation file directly rather than typing it or copying-and-pasting it, first make sure the file exists (it can be empty), -then run the test with the --generate-accessibility-test-expectations +then run the test with the `--generate-accessibility-test-expectations` argument, for example: - +``` out/Debug/content_browsertests \ --generate-accessibility-test-expectations - --gtest_filter="DumpAccessibilityTreeTest.AccessibilityAriaAtomic" - -This will replace the -expected-*.txt file with the current output. It's + --gtest_filter="DumpAccessibilityTreeTest.AccessibilityAriaAtomic/*" +``` +This will replace the `-expected-*.txt` file with the current output. It's a great way to rebaseline a bunch of tests after making a change. Please manually check the diff, of course! ## Adding a new test: -If you are adding a new test file remember to add a corresponding test case in -content/browser/accessibility/dump_accessibility_events_browsertest.cc -or -content/browser/accessibility/dump_accessibility_tree_browsertest.cc +If you are adding a new test file remember to add a corresponding test case in: +* `content/browser/accessibility/dump_accessibility_events_browsertest.cc`; or +* `content/browser/accessibility/dump_accessibility_tree_browsertest.cc` -More details on DumpAccessibilityEvents tests: +## More details on DumpAccessibilityEvents tests: -These tests are similar to DumpAccessibilityTree tests in that they first +These tests are similar to `DumpAccessibilityTree` tests in that they first load an HTML document, then dump something, then compare the output to an expectation file. The difference is that what's dumped is accessibility events that are fired. To write a test for accessibility events, your document must contain a -JavaScript function called go(). This function will be called when the document -is loaded (or when the @WAIT_FOR directive passes), and any subsequent -events will be dumped. Filters apply to events just like in tree dumps. +JavaScript function called `go()`. This function will be called when the +document is loaded (or when the `@WAIT_FOR` directive passes), and any +subsequent events will be dumped. Filters apply to events just like in tree +dumps. -After calling go(), the system asks the page to generate a sentinel +After calling `go()`, the system asks the page to generate a sentinel accessibility event - one you're unlikely to generate in your test. It uses that event to know when to "stop" dumping events. There isn't currently a way to test events that occur after some delay, just ones that happen as -a direct result of calling go(). +a direct result of calling `go()`.
diff --git a/content/test/gpu/gpu_tests/gpu_process_expectations.py b/content/test/gpu/gpu_tests/gpu_process_expectations.py deleted file mode 100644 index 4540c4a5..0000000 --- a/content/test/gpu/gpu_tests/gpu_process_expectations.py +++ /dev/null
@@ -1,14 +0,0 @@ -# Copyright 2013 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from gpu_tests.gpu_test_expectations import GpuTestExpectations - -# See the GpuTestExpectations class for documentation. - -class GpuProcessExpectations(GpuTestExpectations): - def SetExpectations(self): - self.Fail('GpuProcess_video', ['linux'], bug=257109) - - # Seems to have become flaky on Windows recently. - self.Flaky('GpuProcess_one_extra_workaround', ['win'], bug=700522)
diff --git a/content/test/gpu/gpu_tests/gpu_process_integration_test.py b/content/test/gpu/gpu_tests/gpu_process_integration_test.py index c832d31..dafdb88 100644 --- a/content/test/gpu/gpu_tests/gpu_process_integration_test.py +++ b/content/test/gpu/gpu_tests/gpu_process_integration_test.py
@@ -6,7 +6,6 @@ import sys from gpu_tests import gpu_integration_test -from gpu_tests import gpu_process_expectations from gpu_tests import path_util data_path = os.path.join( @@ -61,7 +60,7 @@ @classmethod def _CreateExpectations(cls): - return gpu_process_expectations.GpuProcessExpectations() + raise NotImplementedError @classmethod def GenerateGpuTests(cls, options): @@ -487,6 +486,13 @@ ]) self._NavigateAndWait(test_path) + @classmethod + def ExpectationsFiles(cls): + return [ + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'test_expectations', + 'gpu_process_expectations.txt')] + def load_tests(loader, tests, pattern): del loader, tests, pattern # Unused. return gpu_integration_test.LoadAllTestsInModule(sys.modules[__name__])
diff --git a/content/test/gpu/gpu_tests/hardware_accelerated_feature_expectations.py b/content/test/gpu/gpu_tests/hardware_accelerated_feature_expectations.py deleted file mode 100644 index 14df8e7f..0000000 --- a/content/test/gpu/gpu_tests/hardware_accelerated_feature_expectations.py +++ /dev/null
@@ -1,15 +0,0 @@ -# Copyright 2013 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from gpu_tests.gpu_test_expectations import GpuTestExpectations - -# See the GpuTestExpectations class for documentation. - -class HardwareAcceleratedFeatureExpectations(GpuTestExpectations): - def SetExpectations(self): - # Accelerated 2D canvas is not available on Linux due to driver instability - self.Fail('HardwareAcceleratedFeature_canvas_accelerated', - ['linux'], bug=254724) - self.Fail('HardwareAcceleratedFeature_canvas_accelerated', - ['highsierra', 'nvidia'], bug=777590)
diff --git a/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py b/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py index 3452432..f9977c4 100644 --- a/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py +++ b/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py
@@ -3,9 +3,9 @@ # found in the LICENSE file. import sys +import os from gpu_tests import gpu_integration_test -import gpu_tests.hardware_accelerated_feature_expectations as hw_expectations test_harness_script = r""" function VerifyHardwareAccelerated(feature) { @@ -45,7 +45,7 @@ @classmethod def _CreateExpectations(cls): - return hw_expectations.HardwareAcceleratedFeatureExpectations() + raise NotImplementedError def _Navigate(self, url): # It's crucial to use the action_runner, rather than the tab's @@ -74,6 +74,13 @@ print tab.EvaluateJavaScript('document.body.innerHTML') self.fail('%s not hardware accelerated' % feature) + @classmethod + def ExpectationsFiles(cls): + return [ + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'test_expectations', + 'hardware_accelerated_feature_expectations.txt')] + def load_tests(loader, tests, pattern): del loader, tests, pattern # Unused. return gpu_integration_test.LoadAllTestsInModule(sys.modules[__name__])
diff --git a/content/test/gpu/gpu_tests/screenshot_sync_expectations.py b/content/test/gpu/gpu_tests/screenshot_sync_expectations.py deleted file mode 100644 index ef03913b..0000000 --- a/content/test/gpu/gpu_tests/screenshot_sync_expectations.py +++ /dev/null
@@ -1,23 +0,0 @@ -# Copyright 2014 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from gpu_tests.gpu_test_expectations import GpuTestExpectations - -# See the GpuTestExpectations class for documentation. - -class ScreenshotSyncExpectations(GpuTestExpectations): - def __init__(self, *args, **kwargs): - super(ScreenshotSyncExpectations, self).__init__(*args, **kwargs) - - def SetExpectations(self): - self.Flaky('ScreenshotSync_GPURasterWithCanvas', ['win', 'amd'], - bug=599776) - self.Flaky('ScreenshotSync_GPURasterWithCanvas', ['mac', 'intel'], - bug=599776) - self.Flaky('ScreenshotSync_GPURasterWithDivs', ['mac', 'intel'], - bug=599776) - self.Fail('ScreenshotSync_GPURasterWithDivs', ['win', ('amd', 0x6613)], - bug=639489) - # TODO(kbr): flakily timing out on this configuration. - self.Flaky('*', ['linux', 'intel', 'debug'], bug=648369)
diff --git a/content/test/gpu/gpu_tests/screenshot_sync_integration_test.py b/content/test/gpu/gpu_tests/screenshot_sync_integration_test.py index ddc8941..100412f 100644 --- a/content/test/gpu/gpu_tests/screenshot_sync_integration_test.py +++ b/content/test/gpu/gpu_tests/screenshot_sync_integration_test.py
@@ -10,7 +10,6 @@ from gpu_tests import color_profile_manager from gpu_tests import gpu_integration_test from gpu_tests import path_util -from gpu_tests import screenshot_sync_expectations from telemetry.util import image_util from telemetry.util import rgba_color @@ -74,7 +73,7 @@ @classmethod def _CreateExpectations(cls): - return screenshot_sync_expectations.ScreenshotSyncExpectations() + raise NotImplementedError @classmethod def GenerateGpuTests(cls, options): @@ -145,6 +144,13 @@ for _ in range(0, repetitions): self._CheckScreenshot() + @classmethod + def ExpectationsFiles(cls): + return [ + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'test_expectations', + 'screenshot_sync_expectations.txt')] + def load_tests(loader, tests, pattern): del loader, tests, pattern # Unused. return gpu_integration_test.LoadAllTestsInModule(sys.modules[__name__])
diff --git a/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt new file mode 100644 index 0000000..15e4736 --- /dev/null +++ b/content/test/gpu/gpu_tests/test_expectations/gpu_process_expectations.txt
@@ -0,0 +1,7 @@ +# tags: [ linux win ] + +crbug.com/257109 [ linux ] GpuProcess_video [ Failure ] + +# Seems to have become flaky on Windows recently. +crbug.com/700522 [ win ] GpuProcess_one_extra_workaround [ RetryOnFailure ] +
diff --git a/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt new file mode 100644 index 0000000..78d9321 --- /dev/null +++ b/content/test/gpu/gpu_tests/test_expectations/hardware_accelerated_feature_expectations.txt
@@ -0,0 +1,8 @@ +# tags: [ highsierra linux ] +# tags: [ nvidia ] + +# Accelerated 2D canvas is not available on Linux due to driver instability +crbug.com/254724 [ linux ] HardwareAcceleratedFeature_canvas_accelerated [ Failure ] + +crbug.com/777590 [ highsierra nvidia ] HardwareAcceleratedFeature_canvas_accelerated [ Failure ] +
diff --git a/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt new file mode 100644 index 0000000..0ca4369 --- /dev/null +++ b/content/test/gpu/gpu_tests/test_expectations/screenshot_sync_expectations.txt
@@ -0,0 +1,11 @@ +# tags: [ linux mac win ] +# tags: [ debug ] +# tags: [ amd amd-0x6613 intel ] + +crbug.com/599776 [ win amd ] ScreenshotSync_GPURasterWithCanvas [ RetryOnFailure ] +crbug.com/599776 [ mac intel ] ScreenshotSync_GPURasterWithCanvas [ RetryOnFailure ] +crbug.com/599776 [ mac intel ] ScreenshotSync_GPURasterWithDivs [ RetryOnFailure ] +crbug.com/639489 [ win amd-0x6613 ] ScreenshotSync_GPURasterWithDivs [ Failure ] + +# TODO(kbr): flakily timing out on this configuration. +crbug.com/648369 [ linux debug intel ] * [ RetryOnFailure ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt new file mode 100644 index 0000000..6e8c2e8 --- /dev/null +++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -0,0 +1,32 @@ +# tags: [ android chromeos linux mac win win10 win7 ] +# tags: [ debug ] +# tags: [ intel nvidia ] + + # TODO(kbr): flakily timing out on this configuration. +crbug.com/648369 [ linux debug intel ] TraceTest_* [ RetryOnFailure ] + +# Device traces are not supported on all machines. +DeviceTraceTest_* [ Skip ] + +# We do not have software H.264 decoding on Android, so it can't survive a +# context loss which results in hardware decoder loss. +crbug.com/580386 [ android ] TraceTest_Video_Context_Loss_MP4 [ Skip ] +crbug.com/580386 [ android ] DeviceTraceTest_Video_Context_Loss_MP4 [ Skip ] + +# Skip on platforms where DirectComposition isn't supported +crbug.com/867136 [ mac ] VideoPathTraceTest_* [ Skip ] +crbug.com/867136 [ linux ] VideoPathTraceTest_* [ Skip ] +crbug.com/867136 [ android ] VideoPathTraceTest_* [ Skip ] +crbug.com/867136 [ chromeos ] VideoPathTraceTest_* [ Skip ] +crbug.com/867136 [ win7 ] VideoPathTraceTest_* [ Skip ] +crbug.com/867136 [ mac ] OverlayModeTraceTest_* [ Skip ] +crbug.com/867136 [ linux ] OverlayModeTraceTest_* [ Skip ] +crbug.com/867136 [ android ] OverlayModeTraceTest_* [ Skip ] +crbug.com/867136 [ chromeos ] OverlayModeTraceTest_* [ Skip ] +crbug.com/867136 [ win7 ] OverlayModeTraceTest_* [ Skip ] + +# VP9 videos fail to trigger zero copy video presentation path. +crbug.com/930343 [ win intel ] VideoPathTraceTest_DirectComposition_Video_VP9_Fullsize [ Failure ] + +# Complex overlays test is flaky on Nvidia probably due to its small size. +crbug.com/937545 [ win10 nvidia ] VideoPathTraceTest_DirectComposition_ComplexOverlays [ RetryOnFailure ]
diff --git a/content/test/gpu/gpu_tests/trace_integration_test.py b/content/test/gpu/gpu_tests/trace_integration_test.py index 440d7a9..24824658 100644 --- a/content/test/gpu/gpu_tests/trace_integration_test.py +++ b/content/test/gpu/gpu_tests/trace_integration_test.py
@@ -8,7 +8,6 @@ from gpu_tests import gpu_integration_test from gpu_tests import path_util from gpu_tests import pixel_test_pages -from gpu_tests import trace_test_expectations from telemetry.timeline import model as model_module from telemetry.timeline import tracing_config @@ -185,7 +184,7 @@ @classmethod def _CreateExpectations(cls): - return trace_test_expectations.TraceTestExpectations() + raise NotImplementedError @classmethod def SetUpProcess(cls): @@ -376,6 +375,13 @@ TraceIntegrationTest._SwapChainPresentationModeListToStr( presentation_mode_history)) + @classmethod + def ExpectationsFiles(cls): + return [ + os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'test_expectations', + 'trace_test_expectations.txt')] + def load_tests(loader, tests, pattern): del loader, tests, pattern # Unused.
diff --git a/content/test/gpu/gpu_tests/trace_test_expectations.py b/content/test/gpu/gpu_tests/trace_test_expectations.py deleted file mode 100644 index 4d7129dd..0000000 --- a/content/test/gpu/gpu_tests/trace_test_expectations.py +++ /dev/null
@@ -1,37 +0,0 @@ -# Copyright 2015 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from gpu_tests.gpu_test_expectations import GpuTestExpectations - -# See the GpuTestExpectations class for documentation. - -class TraceTestExpectations(GpuTestExpectations): - def SetExpectations(self): - # Sample Usage: - # self.Fail('trace_test.Canvas2DRedBox', - # ['mac', 'amd', ('nvidia', 0x1234)], bug=123) - # TODO(kbr): flakily timing out on this configuration. - self.Flaky('TraceTest_*', ['linux', 'intel', 'debug'], bug=648369) - - # Device traces are not supported on all machines. - self.Skip('DeviceTraceTest_*') - - # We do not have software H.264 decoding on Android, so it can't survive a - # context loss which results in hardware decoder loss. - self.Skip('*_Video_Context_Loss_MP4', ['android'], bug=580386) - - # Skip on platforms where DirectComposition isn't supported - self.Skip('VideoPathTraceTest_*', - ['mac', 'linux', 'android', 'chromeos', 'win7'], bug=867136) - self.Skip('OverlayModeTraceTest_*', - ['mac', 'linux', 'android', 'chromeos', 'win7'], bug=867136) - - # VP9 videos fail to trigger zero copy video presentation path. - self.Fail('VideoPathTraceTest_DirectComposition_Video_VP9_Fullsize', - ['win', 'intel'], bug=930343) - - # Complex overlays test is flaky on Nvidia probably due to its small size. - self.Flaky('VideoPathTraceTest_DirectComposition_ComplexOverlays', - ['win10', 'nvidia'], bug=937545) -
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py b/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py index f779417..bd14ab3 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py
@@ -171,6 +171,7 @@ 'WEBGL_lose_context', 'WEBGL_multi_draw', 'WEBGL_multi_draw_instanced', + 'WEBGL_video_texture', ] else: return [ @@ -192,6 +193,7 @@ 'WEBGL_multi_draw', 'WEBGL_multi_draw_instanced', 'WEBGL_multiview', + 'WEBGL_video_texture', ] def RunActualGpuTest(self, test_path, *args):
diff --git a/device/vr/windows/compositor_base.cc b/device/vr/windows/compositor_base.cc index 1a714ab0..d4e0807 100644 --- a/device/vr/windows/compositor_base.cc +++ b/device/vr/windows/compositor_base.cc
@@ -64,10 +64,6 @@ // frame, we allow the renderer to receive poses. std::move(delayed_get_frame_data_callback_).Run(); } - - if (delayed_overlay_get_frame_data_callback_ && overlay_visible_) { - std::move(delayed_overlay_get_frame_data_callback_).Run(); - } } void XRCompositorCommon::SubmitFrameMissing(int16_t frame_index, @@ -250,7 +246,6 @@ // Kill outstanding overlays: overlay_visible_ = false; - delayed_overlay_get_frame_data_callback_.Reset(); overlay_binding_.Close(); texture_helper_.SetSourceAndOverlayVisible(false, false); @@ -402,16 +397,6 @@ DCHECK(overlay_visible_); TRACE_EVENT_INSTANT0("xr", "RequestOverlayPose", TRACE_EVENT_SCOPE_THREAD); - // If we've already given out a pose for the current frame delay giving out a - // pose until the next frame we are visible. - if (pending_frame_ && pending_frame_->overlay_has_pose_) { - DCHECK(!delayed_overlay_get_frame_data_callback_); - delayed_overlay_get_frame_data_callback_ = - base::BindOnce(&XRCompositorCommon::RequestNextOverlayPose, - base::Unretained(this), std::move(callback)); - return; - } - // Ensure we have a pending frame. StartPendingFrame(); pending_frame_->overlay_has_pose_ = true;
diff --git a/device/vr/windows/compositor_base.h b/device/vr/windows/compositor_base.h index 49fa920..e19a071b 100644 --- a/device/vr/windows/compositor_base.h +++ b/device/vr/windows/compositor_base.h
@@ -150,7 +150,6 @@ bool webxr_visible_ = true; // The browser may hide a presenting session. bool overlay_visible_ = false; base::OnceCallback<void()> delayed_get_frame_data_callback_; - base::OnceCallback<void()> delayed_overlay_get_frame_data_callback_; gfx::RectF left_webxr_bounds_; gfx::RectF right_webxr_bounds_;
diff --git a/device/vr/windows_mixed_reality/mixed_reality_renderloop.cc b/device/vr/windows_mixed_reality/mixed_reality_renderloop.cc index a2f1dc1..2fb65b26 100644 --- a/device/vr/windows_mixed_reality/mixed_reality_renderloop.cc +++ b/device/vr/windows_mixed_reality/mixed_reality_renderloop.cc
@@ -271,6 +271,8 @@ holographic_space_ = nullptr; origin_ = nullptr; stage_origin_ = nullptr; + last_origin_from_attached_ = base::nullopt; + attached_ = nullptr; holographic_frame_ = nullptr; timestamp_ = nullptr; @@ -309,6 +311,12 @@ if (FAILED(hr)) return; + if (!attached_) { + hr = locator->CreateAttachedFrameOfReferenceAtCurrentHeading(&attached_); + if (FAILED(hr)) + return; + } + ComPtr<ISpatialStationaryFrameOfReference> stationary_frame; hr = locator->CreateStationaryFrameOfReferenceAtCurrentLocation( &stationary_frame); @@ -320,9 +328,6 @@ hr = stationary_frame->get_CoordinateSystem(&origin_); if (FAILED(hr)) return; - - // TODO(billorr): Consider adding support for using an attached frame for - // orientation-only experiences. } void MixedRealityRenderLoop::InitializeStageOrigin() { @@ -353,6 +358,8 @@ void MixedRealityRenderLoop::OnSessionStart() { // Each session should start with new origins. origin_ = nullptr; + attached_ = nullptr; + last_origin_from_attached_ = base::nullopt; InitializeOrigin(); stage_origin_ = nullptr; @@ -717,7 +724,7 @@ mojom::XRFrameDataPtr ret = CreateDefaultFrameData(timestamp_, next_frame_id_); - if (!origin_ || !pose_) { + if ((!attached_ && !origin_) || !pose_) { TRACE_EVENT_INSTANT0("xr", "No origin or no pose", TRACE_EVENT_SCOPE_THREAD); // If we don't have an origin or pose for this frame, we can still give out @@ -725,23 +732,44 @@ return ret; } + ComPtr<ISpatialCoordinateSystem> attached_coordinates; + HRESULT hr = attached_->GetStationaryCoordinateSystemAtTimestamp( + timestamp_.Get(), &attached_coordinates); + if (FAILED(hr)) + return ret; + Microsoft::WRL::ComPtr<ABI::Windows::Foundation::IReference< ABI::Windows::Graphics::Holographic::HolographicStereoTransform>> view_ref; - HRESULT hr = pose_->TryGetViewTransform(origin_.Get(), &view_ref); - if (FAILED(hr) || !view_ref) { - // If we can't locate origin_, throw it away and try to get a new origin - // next frame. - // TODO(billorr): Try to keep the origin working over multiple frames, doing - // some transform work. - TRACE_EVENT_INSTANT0("xr", "Failed to locate origin", - TRACE_EVENT_SCOPE_THREAD); - origin_ = nullptr; - - // TODO(https://crbug.com/945408): Determine whether StageOrigin should only - // be nulled out when we get the changed event. - stage_origin_ = nullptr; - return ret; + if (origin_ && + SUCCEEDED(pose_->TryGetViewTransform(origin_.Get(), &view_ref)) && + view_ref) { + // TODO(http://crbug.com/931393): Send down emulated_position_, and report + // reset events when this changes. + emulated_position_ = false; + ComPtr<IReference<ABI::Windows::Foundation::Numerics::Matrix4x4>> + attached_to_origin_ref; + hr = attached_coordinates->TryGetTransformTo(origin_.Get(), + &attached_to_origin_ref); + if (SUCCEEDED(hr) && attached_to_origin_ref) { + ABI::Windows::Foundation::Numerics::Matrix4x4 transform; + hr = attached_to_origin_ref->get_Value(&transform); + DCHECK(SUCCEEDED(hr)); + last_origin_from_attached_ = gfx::Transform( + transform.M11, transform.M21, transform.M31, transform.M41, + transform.M12, transform.M22, transform.M32, transform.M42, + transform.M13, transform.M23, transform.M33, transform.M43, + transform.M14, transform.M24, transform.M34, transform.M44); + } + } else { + emulated_position_ = true; + if (FAILED(pose_->TryGetViewTransform(attached_coordinates.Get(), + &view_ref)) || + !view_ref) { + TRACE_EVENT_INSTANT0("xr", "Failed to locate origin", + TRACE_EVENT_SCOPE_THREAD); + return ret; + } } ABI::Windows::Graphics::Holographic::HolographicStereoTransform view; @@ -802,6 +830,33 @@ ret->pose->input_state = input_helper_->GetInputState(origin_, timestamp_); + if (emulated_position_ && last_origin_from_attached_) { + gfx::DecomposedTransform attached_from_view_decomp; + attached_from_view_decomp.quaternion = gfx::Quaternion( + (*ret->pose->orientation)[0], (*ret->pose->orientation)[1], + (*ret->pose->orientation)[2], (*ret->pose->orientation)[3]); + for (int i = 0; i < 3; ++i) { + attached_from_view_decomp.translate[i] = (*ret->pose->position)[i]; + } + gfx::Transform attached_from_view = + gfx::ComposeTransform(attached_from_view_decomp); + gfx::Transform origin_from_view = + (*last_origin_from_attached_) * attached_from_view; + gfx::DecomposedTransform origin_from_view_decomposed; + bool success = + gfx::DecomposeTransform(&origin_from_view_decomposed, origin_from_view); + DCHECK(success); + ret->pose->orientation = std::vector<float>{ + static_cast<float>(origin_from_view_decomposed.quaternion.x()), + static_cast<float>(origin_from_view_decomposed.quaternion.y()), + static_cast<float>(origin_from_view_decomposed.quaternion.z()), + static_cast<float>(origin_from_view_decomposed.quaternion.w())}; + ret->pose->position = std::vector<float>{ + static_cast<float>(origin_from_view_decomposed.translate[0]), + static_cast<float>(origin_from_view_decomposed.translate[1]), + static_cast<float>(origin_from_view_decomposed.translate[2])}; + } + return ret; }
diff --git a/device/vr/windows_mixed_reality/mixed_reality_renderloop.h b/device/vr/windows_mixed_reality/mixed_reality_renderloop.h index 2d7d30c..9eb8dd5 100644 --- a/device/vr/windows_mixed_reality/mixed_reality_renderloop.h +++ b/device/vr/windows_mixed_reality/mixed_reality_renderloop.h
@@ -78,6 +78,12 @@ ABI::Windows::Perception::Spatial::ISpatialCoordinateSystem> stage_origin_; bool stage_transform_needs_updating_ = false; + Microsoft::WRL::ComPtr<ABI::Windows::Perception::Spatial:: + ISpatialLocatorAttachedFrameOfReference> + attached_; + bool emulated_position_ = false; + base::Optional<gfx::Transform> last_origin_from_attached_; + std::unique_ptr<MixedRealityWindow> window_; mojom::VRDisplayInfoPtr current_display_info_; base::RepeatingCallback<void(mojom::VRDisplayInfoPtr)>
diff --git a/docs/media/gpu/vdatest_usage.md b/docs/media/gpu/vdatest_usage.md index f067fa7..ce5cb19 100644 --- a/docs/media/gpu/vdatest_usage.md +++ b/docs/media/gpu/vdatest_usage.md
@@ -129,10 +129,8 @@ ### How to generate md5 values of decoded frames for a new video stream It is necessary to generate md5 values of decoded frames for new test streams. -For this purpose, run VDATest with `--gtest_filter=VideoDecodeAcceleratorTest.DISABLED_GenMD5 --gtest_also_run_disabled_tests`. -The md5 values of decoded frames are written in `*.frames.md5`. For instance, -`test-25fps.h264.frames.md5` for `test-25fps.h264`. Note that if there is already -the `.frames.md5` file, this overwrites the file. +ffmpeg with `-f framemd5` can be used for this purpose. For instance, +`ffmpeg -i test-25fps.h264 -f framemd5 test-25fps.frames.md5` ## Basic VEA usage
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc index 976f975..7ea3351 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
@@ -1051,11 +1051,11 @@ render_frame_host, security_origin, type); } -void WebViewGuest::CanDownload( - const GURL& url, - const std::string& request_method, - const base::Callback<void(bool)>& callback) { - web_view_permission_helper_->CanDownload(url, request_method, callback); +void WebViewGuest::CanDownload(const GURL& url, + const std::string& request_method, + base::OnceCallback<void(bool)> callback) { + web_view_permission_helper_->CanDownload(url, request_method, + std::move(callback)); } void WebViewGuest::RequestPointerLockPermission(
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.h b/extensions/browser/guest_view/web_view/web_view_guest.h index f155d67..032cbed4 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.h +++ b/extensions/browser/guest_view/web_view/web_view_guest.h
@@ -238,7 +238,7 @@ blink::MediaStreamType type) final; void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) final; + base::OnceCallback<void(bool)> callback) final; content::JavaScriptDialogManager* GetJavaScriptDialogManager( content::WebContents* source) final; void AddNewContents(content::WebContents* source,
diff --git a/extensions/browser/guest_view/web_view/web_view_permission_helper.cc b/extensions/browser/guest_view/web_view/web_view_permission_helper.cc index 72f2e18..a5320d16 100644 --- a/extensions/browser/guest_view/web_view/web_view_permission_helper.cc +++ b/extensions/browser/guest_view/web_view/web_view_permission_helper.cc
@@ -247,9 +247,9 @@ void WebViewPermissionHelper::CanDownload( const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback) { + base::OnceCallback<void(bool)> callback) { web_view_permission_helper_delegate_->CanDownload(url, request_method, - callback); + std::move(callback)); } void WebViewPermissionHelper::RequestPointerLockPermission(
diff --git a/extensions/browser/guest_view/web_view/web_view_permission_helper.h b/extensions/browser/guest_view/web_view/web_view_permission_helper.h index 4ccbeb07..2400bbfe 100644 --- a/extensions/browser/guest_view/web_view/web_view_permission_helper.h +++ b/extensions/browser/guest_view/web_view/web_view_permission_helper.h
@@ -68,7 +68,7 @@ blink::MediaStreamType type); void CanDownload(const GURL& url, const std::string& request_method, - const base::Callback<void(bool)>& callback); + base::OnceCallback<void(bool)> callback); void RequestPointerLockPermission(bool user_gesture, bool last_unlocked_by_target, const base::Callback<void(bool)>& callback);
diff --git a/extensions/browser/guest_view/web_view/web_view_permission_helper_delegate.h b/extensions/browser/guest_view/web_view/web_view_permission_helper_delegate.h index 59f1052..5f712de3 100644 --- a/extensions/browser/guest_view/web_view/web_view_permission_helper_delegate.h +++ b/extensions/browser/guest_view/web_view/web_view_permission_helper_delegate.h
@@ -21,10 +21,9 @@ WebViewPermissionHelper* web_view_permission_helper); ~WebViewPermissionHelperDelegate() override; - virtual void CanDownload( - const GURL& url, - const std::string& request_method, - const base::Callback<void(bool)>& callback) {} + virtual void CanDownload(const GURL& url, + const std::string& request_method, + base::OnceCallback<void(bool)> callback) {} virtual void RequestPointerLockPermission( bool user_gesture,
diff --git a/extensions/browser/url_loader_factory_manager.cc b/extensions/browser/url_loader_factory_manager.cc index bcad617..b06d0d07 100644 --- a/extensions/browser/url_loader_factory_manager.cc +++ b/extensions/browser/url_loader_factory_manager.cc
@@ -98,6 +98,7 @@ "34FB670464B5F16EF5ABD6CD53E26030E97C26B3", "360D8A88545D0C21CBDE2B55EA9E4E4285282B4C", "37AC33A3A46D271CCE57DD6CB3FACE6B01F5A347", + "38B4D1CC339580F506BC86D4027A49721AFB4BB9", "3BC834B48C2C13765147FBAD710F792F026378D8", "3CD98763C80D86E00CB1C4CAA56CEA8F3B0BA4F1", "3EB17C39F8B6B28FAF34E2406E57A76013A2E066", @@ -106,6 +107,7 @@ "42C96DF87C997828C185DAD247F469940DAFC2CD", "43865F8D555C201FE452A5A40702EA96240E749C", "44943FADD66932EF56EE3D856A9FAAD4A8AF0FD9", + "4633828B42F673E0E62475059526DC2C24091690", "47ADBB376050C083FFC54CC28CD3D1F54BF0BFED", "4913450195D177430217CAB64B356DC6F6B0F483", "49FFDF2212E50090963E33159DBF853B5C475340", @@ -125,6 +127,7 @@ "6357533CAFFB94A9EA5268ED110079E15561E469", "65C20C06ED10E6F39EED527AC736D87B0390DE70", "67528F9B47BE454EC46809C33D24F2C199BE408D", + "68F43E671577CF03AE901A5780DC07879331A3A9", "6A113D4E2F96997D9BA4B391B90ED51058B37EFF", "6AE81EF3B13B15080A2DDB23A205A24C65CCC10B", "6BA5F75FFF75B69507BC4B09B7094926EF93DBD2", @@ -165,6 +168,7 @@ "99E06C364BBB2D1F82A9D20BC1645BF21E478259", "9C6A186F8D3C5FD0CC8DCF49682FA726BD8A7705", "A04F08A772F1C83B7A14ED29788ACA4F000BBE05", + "A059797AECB77D24DEB248C3413D99B0D3BF9A8C", "A07DA0EDB967D027E3B220208AD085FDC44C3231", "A30E526CF62131BFBFD7CD9B56253A8F3F171777", "A3660FA31A0DBF07C9F80D5342FF215DBC962719",
diff --git a/gpu/command_buffer/PRESUBMIT.py b/gpu/command_buffer/PRESUBMIT.py new file mode 100644 index 0000000..cb5d3b3 --- /dev/null +++ b/gpu/command_buffer/PRESUBMIT.py
@@ -0,0 +1,70 @@ +# Copyright 2019 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Enforces command buffer autogen matches script output. + +See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts +for more details on the presubmit API built into depot_tools. +""" + +import os.path + + +def CommonChecks(input_api, output_api): + gles2_cmd_buffer_files = input_api.AffectedFiles( + file_filter=lambda x: os.path.basename(x.LocalPath()) in [ + 'build_cmd_buffer_lib.py', 'build_gles2_cmd_buffer.py', + 'gles2_cmd_buffer_functions.txt']) + raster_cmd_buffer_files = input_api.AffectedFiles( + file_filter=lambda x: os.path.basename(x.LocalPath()) in [ + 'build_cmd_buffer_lib.py', 'build_raster_cmd_buffer.py', + 'raster_cmd_buffer_functions.txt']) + webgpu_cmd_buffer_files = input_api.AffectedFiles( + file_filter=lambda x: os.path.basename(x.LocalPath()) in [ + 'build_cmd_buffer_lib.py', 'build_webgpu_cmd_buffer.py', + 'webgpu_cmd_buffer_functions.txt']) + autogen_files = input_api.AffectedFiles( + file_filter=lambda x: x.LocalPath().endswith('_autogen.h')) + + messages = [] + + if (len(autogen_files) > 0 and len(gles2_cmd_buffer_files) == 0 and + len(raster_cmd_buffer_files) == 0 and len(webgpu_cmd_buffer_files) == 0): + long_text = 'Changed files:\n' + for file in autogen_files: + long_text += file.LocalPath() + '\n' + long_text += '\n' + messages.append(output_api.PresubmitError( + 'Command buffer autogenerated files changed but generators did not.', + long_text=long_text)) + + with input_api.temporary_directory() as temp_dir: + commands = [] + if len(gles2_cmd_buffer_files) > 0: + commands.append(input_api.Command(name='build_gles2_cmd_buffer', + cmd=[input_api.python_executable, 'build_gles2_cmd_buffer.py', + '--check', '--output-dir=' + temp_dir], + kwargs={}, message=output_api.PresubmitError)) + if len(raster_cmd_buffer_files) > 0: + commands.append(input_api.Command(name='build_raster_cmd_buffer', + cmd=[input_api.python_executable, 'build_raster_cmd_buffer.py', + '--check', '--output-dir=' + temp_dir], + kwargs={}, message=output_api.PresubmitError)) + if len(webgpu_cmd_buffer_files) > 0: + commands.append(input_api.Command(name='build_webgpu_cmd_buffer', + cmd=[input_api.python_executable, 'build_webgpu_cmd_buffer.py', + '--check', '--output-dir=' + temp_dir], + kwargs={}, message=output_api.PresubmitError)) + if len(commands) > 0: + messages.extend(input_api.RunTests(commands)) + + return messages + + +def CheckChangeOnUpload(input_api, output_api): + return CommonChecks(input_api, output_api) + + +def CheckChangeOnCommit(input_api, output_api): + return CommonChecks(input_api, output_api)
diff --git a/gpu/command_buffer/build_cmd_buffer_lib.py b/gpu/command_buffer/build_cmd_buffer_lib.py index a389cee..65915b7b 100644 --- a/gpu/command_buffer/build_cmd_buffer_lib.py +++ b/gpu/command_buffer/build_cmd_buffer_lib.py
@@ -3,7 +3,9 @@ # found in the LICENSE file. """Common code generator for command buffers.""" +import errno import itertools +import os import os.path import re import platform @@ -881,9 +883,14 @@ """ def __init__(self, filename, year): self.filename = filename - self._file = open(filename, 'wb') self._ENTER_MSG = _LICENSE % year + _DO_NOT_EDIT_WARNING % _lower_prefix self._EXIT_MSG = "" + try: + os.makedirs(os.path.dirname(filename)) + except OSError as e: + if e.errno == errno.EEXIST: + pass + self._file = open(filename, 'wb') def __enter__(self): self._file.write(self._ENTER_MSG) @@ -912,13 +919,8 @@ def _get_guard(self): non_alnum_re = re.compile(r'[^a-zA-Z0-9]') - base = os.path.abspath(self.filename) - while os.path.basename(base) != 'src': - new_base = os.path.dirname(base) - assert new_base != base # Prevent infinite loop. - base = new_base - hpath = os.path.relpath(self.filename, base) - return non_alnum_re.sub('_', hpath).upper() + '_' + assert self.filename.startswith("gpu/") + return non_alnum_re.sub('_', self.filename).upper() + '_' class TypeHandler(object): @@ -6339,9 +6341,11 @@ _comment_re = re.compile(r'^//.*$') _function_re = re.compile(r'^GL_APICALL(.*?)GL_APIENTRY (.*?) \((.*?)\);$') - def __init__(self, verbose, year, function_info, named_type_info): + def __init__(self, verbose, year, function_info, named_type_info, + chromium_root_dir): self.original_functions = [] self.functions = [] + self.chromium_root_dir = chromium_root_dir self.verbose = verbose self.year = year self.errors = 0 @@ -6411,6 +6415,7 @@ def ParseGLH(self, filename): """Parses the cmd_buffer_functions.txt file and extracts the functions""" + filename = os.path.join(self.chromium_root_dir, filename) with open(filename, "r") as f: functions = f.read() for line in functions.splitlines(): @@ -7384,6 +7389,7 @@ 'third_party/khronos/GLES3/gl31.h', 'gpu/GLES2/gl2chromium.h', 'gpu/GLES2/gl2extchromium.h']: + fname = os.path.join(self.chromium_root_dir, fname) lines = open(fname).readlines() for line in lines: m = enum_re.match(line) @@ -7615,9 +7621,13 @@ self.generated_cpp_filenames.append(filename) -def Format(generated_files): +def Format(generated_files, output_dir, chromium_root_dir): + """Format generated_files relative to output_dir using clang-format.""" formatter = "third_party/depot_tools/clang-format" if platform.system() == "Windows": formatter = "third_party\\depot_tools\\clang-format.bat" + formatter = os.path.join(chromium_root_dir, formatter) + generated_files = map(lambda filename: os.path.join(output_dir, filename), + generated_files) for filename in generated_files: - call([formatter, "-i", "-style=chromium", filename]) + call([formatter, "-i", "-style=chromium", filename], cwd=chromium_root_dir)
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 4032b249..7c637d3 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -4,6 +4,7 @@ # found in the LICENSE file. """code generator for GLES2 command buffers.""" +import filecmp import os import os.path import sys @@ -4338,11 +4339,14 @@ parser = OptionParser() parser.add_option( "--output-dir", - help="base directory for resulting files, under chrome/src. default is " - "empty. Use this if you want the result stored under gen.") + help="Output directory for generated files. Defaults to chromium root " + "directory.") parser.add_option( - "-v", "--verbose", action="store_true", - help="prints more output.") + "-v", "--verbose", action="store_true", help="Verbose logging output.") + parser.add_option( + "-c", "--check", action="store_true", + help="Check if output files match generated files in chromium root " + "directory. Use this in PRESUBMIT scripts with --output-dir.") (options, _) = parser.parse_args(args=argv) @@ -4374,24 +4378,30 @@ if not valid_value in gl_state_valid: gl_state_valid.append(valid_value) - # This script lives under gpu/command_buffer, cd to base directory. - os.chdir(os.path.dirname(__file__) + "/../..") - base_dir = os.getcwd() - build_cmd_buffer_lib.InitializePrefix("GLES2") - gen = build_cmd_buffer_lib.GLGenerator(options.verbose, "2014", - _FUNCTION_INFO, _NAMED_TYPE_INFO) - gen.ParseGLH("gpu/command_buffer/gles2_cmd_buffer_functions.txt") + # This script lives under src/gpu/command_buffer. + script_dir = os.path.dirname(os.path.abspath(__file__)) + assert script_dir.endswith(os.path.normpath("src/gpu/command_buffer")) + # os.path.join doesn't do the right thing with relative paths. + chromium_root_dir = os.path.abspath(script_dir + "/../..") - # Support generating files under gen/ - if options.output_dir != None: - os.chdir(options.output_dir) + # Support generating files under gen/ and for PRESUBMIT. + if options.output_dir: + output_dir = options.output_dir + else: + output_dir = chromium_root_dir + os.chdir(output_dir) + + build_cmd_buffer_lib.InitializePrefix("GLES2") + gen = build_cmd_buffer_lib.GLGenerator( + options.verbose, "2014", _FUNCTION_INFO, _NAMED_TYPE_INFO, + chromium_root_dir) + gen.ParseGLH("gpu/command_buffer/gles2_cmd_buffer_functions.txt") gen.WritePepperGLES2Interface("ppapi/api/ppb_opengles2.idl", False) gen.WritePepperGLES2Interface("ppapi/api/dev/ppb_opengles2ext_dev.idl", True) gen.WriteGLES2ToPPAPIBridge("ppapi/lib/gl/gles2/gles2.c") gen.WritePepperGLES2Implementation( "ppapi/shared_impl/ppb_opengles2_shared.cc") - os.chdir(base_dir) gen.WriteCommandIds("gpu/command_buffer/common/gles2_cmd_ids_autogen.h") gen.WriteFormat("gpu/command_buffer/common/gles2_cmd_format_autogen.h") gen.WriteFormatTest( @@ -4445,11 +4455,27 @@ "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h") gen.WriteGLES2Header("gpu/GLES2/gl2chromium_autogen.h") - build_cmd_buffer_lib.Format(gen.generated_cpp_filenames) + build_cmd_buffer_lib.Format(gen.generated_cpp_filenames, output_dir, + chromium_root_dir) if gen.errors > 0: - print "%d errors" % gen.errors + print "build_gles2_cmd_buffer.py: Failed with %d errors" % gen.errors return 1 + + check_failed_filenames = [] + if options.check: + for filename in gen.generated_cpp_filenames: + if not filecmp.cmp(os.path.join(output_dir, filename), + os.path.join(chromium_root_dir, filename)): + check_failed_filenames.append(filename) + + if len(check_failed_filenames) > 0: + print 'Please run gpu/command_buffer/build_gles2_cmd_buffer.py' + print 'Failed check on autogenerated command buffer files:' + for filename in check_failed_filenames: + print filename + return 1 + return 0
diff --git a/gpu/command_buffer/build_raster_cmd_buffer.py b/gpu/command_buffer/build_raster_cmd_buffer.py index 662b926..bd59f96 100755 --- a/gpu/command_buffer/build_raster_cmd_buffer.py +++ b/gpu/command_buffer/build_raster_cmd_buffer.py
@@ -4,6 +4,7 @@ # found in the LICENSE file. """code generator for raster command buffers.""" +import filecmp import os import os.path import sys @@ -364,28 +365,36 @@ parser = OptionParser() parser.add_option( "--output-dir", - help="base directory for resulting files, under chrome/src. default is " - "empty. Use this if you want the result stored under gen.") + help="Output directory for generated files. Defaults to chromium root " + "directory.") parser.add_option( - "-v", "--verbose", action="store_true", - help="prints more output.") + "-v", "--verbose", action="store_true", help="Verbose logging output.") + parser.add_option( + "-c", "--check", action="store_true", + help="Check if output files match generated files in chromium root " + "directory. Use this in PRESUBMIT scripts with --output-dir.") (options, _) = parser.parse_args(args=argv) - # This script lives under gpu/command_buffer, cd to base directory. - os.chdir(os.path.dirname(__file__) + "/../..") - base_dir = os.getcwd() + # This script lives under src/gpu/command_buffer. + script_dir = os.path.dirname(os.path.abspath(__file__)) + assert script_dir.endswith(os.path.normpath("src/gpu/command_buffer")) + # os.path.join doesn't do the right thing with relative paths. + chromium_root_dir = os.path.abspath(script_dir + "/../..") + + # Support generating files under gen/ and for PRESUBMIT. + if options.output_dir: + output_dir = options.output_dir + else: + output_dir = chromium_root_dir + os.chdir(output_dir) + build_cmd_buffer_lib.InitializePrefix("Raster") - gen = build_cmd_buffer_lib.GLGenerator(options.verbose, "2018", - _FUNCTION_INFO, _NAMED_TYPE_INFO) + gen = build_cmd_buffer_lib.GLGenerator( + options.verbose, "2018", _FUNCTION_INFO, _NAMED_TYPE_INFO, + chromium_root_dir) gen.ParseGLH("gpu/command_buffer/raster_cmd_buffer_functions.txt") - # Support generating files under gen/ - if options.output_dir != None: - os.chdir(options.output_dir) - - os.chdir(base_dir) - gen.WriteCommandIds("gpu/command_buffer/common/raster_cmd_ids_autogen.h") gen.WriteFormat("gpu/command_buffer/common/raster_cmd_format_autogen.h") gen.WriteFormatTest( @@ -410,11 +419,27 @@ "gpu/command_buffer/service/" "raster_cmd_validation_implementation_autogen.h") - build_cmd_buffer_lib.Format(gen.generated_cpp_filenames) + build_cmd_buffer_lib.Format(gen.generated_cpp_filenames, output_dir, + chromium_root_dir) if gen.errors > 0: - print "%d errors" % gen.errors + print "build_raster_cmd_buffer.py: Failed with %d errors" % gen.errors return 1 + + check_failed_filenames = [] + if options.check: + for filename in gen.generated_cpp_filenames: + if not filecmp.cmp(os.path.join(output_dir, filename), + os.path.join(chromium_root_dir, filename)): + check_failed_filenames.append(filename) + + if len(check_failed_filenames) > 0: + print 'Please run gpu/command_buffer/build_raster_cmd_buffer.py' + print 'Failed check on autogenerated command buffer files:' + for filename in check_failed_filenames: + print filename + return 1 + return 0
diff --git a/gpu/command_buffer/build_webgpu_cmd_buffer.py b/gpu/command_buffer/build_webgpu_cmd_buffer.py index 89e5ff7..4e79f1d 100755 --- a/gpu/command_buffer/build_webgpu_cmd_buffer.py +++ b/gpu/command_buffer/build_webgpu_cmd_buffer.py
@@ -4,6 +4,7 @@ # found in the LICENSE file. """code generator for webgpu command buffers.""" +import filecmp import os import os.path import sys @@ -52,28 +53,37 @@ parser = OptionParser() parser.add_option( "--output-dir", - help="base directory for resulting files, under chrome/src. default is " - "empty. Use this if you want the result stored under gen.") + help="Output directory for generated files. Defaults to chromium root " + "directory.") parser.add_option( - "-v", "--verbose", action="store_true", - help="prints more output.") + "-v", "--verbose", action="store_true", help="Verbose logging output.") + parser.add_option( + "-c", "--check", action="store_true", + help="Check if output files match generated files in chromium root " + "directory. Use this in PRESUBMIT scripts with --output-dir.") (options, _) = parser.parse_args(args=argv) + # This script lives under src/gpu/command_buffer. + script_dir = os.path.dirname(os.path.abspath(__file__)) + assert script_dir.endswith(os.path.normpath("src/gpu/command_buffer")) + # os.path.join doesn't do the right thing with relative paths. + chromium_root_dir = os.path.abspath(script_dir + "/../..") + + # Support generating files under gen/ and for PRESUBMIT. + if options.output_dir: + output_dir = options.output_dir + else: + output_dir = chromium_root_dir + os.chdir(output_dir) + # This script lives under gpu/command_buffer, cd to base directory. - os.chdir(os.path.dirname(__file__) + "/../..") - base_dir = os.getcwd() build_cmd_buffer_lib.InitializePrefix("WebGPU") - gen = build_cmd_buffer_lib.GLGenerator(options.verbose, "2018", - _FUNCTION_INFO, _NAMED_TYPE_INFO) + gen = build_cmd_buffer_lib.GLGenerator( + options.verbose, "2018", _FUNCTION_INFO, _NAMED_TYPE_INFO, + chromium_root_dir) gen.ParseGLH("gpu/command_buffer/webgpu_cmd_buffer_functions.txt") - # Support generating files under gen/ - if options.output_dir != None: - os.chdir(options.output_dir) - - os.chdir(base_dir) - gen.WriteCommandIds("gpu/command_buffer/common/webgpu_cmd_ids_autogen.h") gen.WriteFormat("gpu/command_buffer/common/webgpu_cmd_format_autogen.h") gen.WriteFormatTest( @@ -96,11 +106,27 @@ "gpu/command_buffer/service/" "webgpu_cmd_validation_implementation_autogen.h") - build_cmd_buffer_lib.Format(gen.generated_cpp_filenames) + build_cmd_buffer_lib.Format(gen.generated_cpp_filenames, output_dir, + chromium_root_dir) if gen.errors > 0: - print "%d errors" % gen.errors + print "build_webgpu_cmd_buffer.py: Failed with %d errors" % gen.errors return 1 + + check_failed_filenames = [] + if options.check: + for filename in gen.generated_cpp_filenames: + if not filecmp.cmp(os.path.join(output_dir, filename), + os.path.join(chromium_root_dir, filename)): + check_failed_filenames.append(filename) + + if len(check_failed_filenames) > 0: + print 'Please run gpu/command_buffer/build_webgpu_cmd_buffer.py' + print 'Failed check on autogenerated command buffer files:' + for filename in check_failed_filenames: + print filename + return 1 + return 0
diff --git a/gpu/command_buffer/service/external_vk_image_backing.cc b/gpu/command_buffer/service/external_vk_image_backing.cc index 8459bed..83710320 100644 --- a/gpu/command_buffer/service/external_vk_image_backing.cc +++ b/gpu/command_buffer/service/external_vk_image_backing.cc
@@ -45,28 +45,6 @@ // Destroy() will do any necessary cleanup. } -VkSemaphore ExternalVkImageBacking::CreateExternalVkSemaphore() { - VkExportSemaphoreCreateInfo export_info; - export_info.sType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO; - export_info.pNext = nullptr; - export_info.handleTypes = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT; - - VkSemaphoreCreateInfo sem_info; - sem_info.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; - sem_info.pNext = &export_info; - sem_info.flags = 0; - - VkSemaphore semaphore = VK_NULL_HANDLE; - VkResult result = vkCreateSemaphore(device(), &sem_info, nullptr, &semaphore); - - if (result != VK_SUCCESS) { - LOG(ERROR) << "Failed to create VkSemaphore: " << result; - return VK_NULL_HANDLE; - } - - return semaphore; -} - bool ExternalVkImageBacking::BeginAccess( bool readonly, std::vector<SemaphoreHandle>* semaphore_handles) { @@ -218,11 +196,14 @@ } std::unique_ptr<SharedImageRepresentationSkia> -ExternalVkImageBacking::ProduceSkia(SharedImageManager* manager, - MemoryTypeTracker* tracker) { +ExternalVkImageBacking::ProduceSkia( + SharedImageManager* manager, + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) { // This backing type is only used when vulkan is enabled, so SkiaRenderer // should also be using Vulkan. - DCHECK(context_state_->use_vulkan_gr_context()); + DCHECK_EQ(context_state_, context_state.get()); + DCHECK(context_state->use_vulkan_gr_context()); return std::make_unique<ExternalVkImageSkiaRepresentation>(manager, this, tracker); }
diff --git a/gpu/command_buffer/service/external_vk_image_backing.h b/gpu/command_buffer/service/external_vk_image_backing.h index b740065..84982d3d 100644 --- a/gpu/command_buffer/service/external_vk_image_backing.h +++ b/gpu/command_buffer/service/external_vk_image_backing.h
@@ -8,6 +8,7 @@ #include <memory> #include <vector> +#include "base/memory/scoped_refptr.h" #include "components/viz/common/gpu/vulkan_context_provider.h" #include "gpu/command_buffer/service/shared_context_state.h" #include "gpu/command_buffer/service/shared_image_backing.h" @@ -43,8 +44,6 @@ } using SharedImageBacking::have_context; - VkSemaphore CreateExternalVkSemaphore(); - // Notifies the backing that an access will start. Return false if there is // currently any other conflict access in progress. Otherwise, returns true // and semaphore handles which will be waited on before accessing. @@ -73,7 +72,8 @@ MemoryTypeTracker* tracker) override; std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override; + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override; private: SharedContextState* const context_state_;
diff --git a/gpu/command_buffer/service/external_vk_image_factory.cc b/gpu/command_buffer/service/external_vk_image_factory.cc index 751e1ce..3122a53 100644 --- a/gpu/command_buffer/service/external_vk_image_factory.cc +++ b/gpu/command_buffer/service/external_vk_image_factory.cc
@@ -178,9 +178,11 @@ SkPixmap pixmap(ii, pixel_data.data(), row_bytes); surface->writePixels(pixmap, 0, 0); - VkSemaphore semaphore = vk_backing->CreateExternalVkSemaphore(); auto* vk_implementation = context_state_->vk_context_provider()->GetVulkanImplementation(); + + VkSemaphore semaphore = + vk_implementation->CreateExternalSemaphore(vk_backing->device()); VkDevice device = context_state_->vk_context_provider() ->GetDeviceQueue() ->GetVulkanDevice();
diff --git a/gpu/command_buffer/service/external_vk_image_gl_representation.cc b/gpu/command_buffer/service/external_vk_image_gl_representation.cc index addff9d..e8b5f20d 100644 --- a/gpu/command_buffer/service/external_vk_image_gl_representation.cc +++ b/gpu/command_buffer/service/external_vk_image_gl_representation.cc
@@ -81,7 +81,8 @@ (current_access_mode_ == GL_SHARED_IMAGE_ACCESS_MODE_READ_CHROMIUM); current_access_mode_ = 0; - VkSemaphore semaphore = backing_impl()->CreateExternalVkSemaphore(); + VkSemaphore semaphore = + vk_implementation()->CreateExternalSemaphore(backing_impl()->device()); if (semaphore == VK_NULL_HANDLE) { // TODO(crbug.com/933452): We should be able to handle this failure more // gracefully rather than shutting down the whole process. @@ -125,6 +126,12 @@ SemaphoreHandle handle) { if (!handle.is_valid()) return 0; + if (handle.vk_handle_type() != + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) { + DLOG(ERROR) << "Importing semaphore handle of unexpected type:" + << handle.vk_handle_type(); + return 0; + } base::ScopedFD fd = handle.TakeHandle(); gl::GLApi* api = gl::g_current_gl_context; GLuint gl_semaphore;
diff --git a/gpu/command_buffer/service/external_vk_image_skia_representation.cc b/gpu/command_buffer/service/external_vk_image_skia_representation.cc index 34b802d2..74666a3 100644 --- a/gpu/command_buffer/service/external_vk_image_skia_representation.cc +++ b/gpu/command_buffer/service/external_vk_image_skia_representation.cc
@@ -133,7 +133,8 @@ // Cleanup resources for previous accessing. DestroySemaphore(end_access_semaphore_, end_access_fence_); - end_access_semaphore_ = backing_impl()->CreateExternalVkSemaphore(); + end_access_semaphore_ = + vk_implementation()->CreateExternalSemaphore(backing_impl()->device()); // Submit wait semaphore to the queue. Note that Skia uses the same queue // exposed by vk_queue(), so this will work due to Vulkan queue ordering. if (!vk_implementation()->SubmitSignalSemaphore(
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc index 66478fdd..3f37ecd9 100644 --- a/gpu/command_buffer/service/raster_decoder.cc +++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -2014,7 +2014,8 @@ "generated by ProduceTextureCHROMIUM."; DCHECK(!shared_image_); - shared_image_ = shared_image_representation_factory_.ProduceSkia(mailbox); + shared_image_ = shared_image_representation_factory_.ProduceSkia( + mailbox, shared_context_state_.get()); if (!shared_image_) { LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glBeginRasterCHROMIUM", "passed invalid mailbox.");
diff --git a/gpu/command_buffer/service/shared_image_backing.cc b/gpu/command_buffer/service/shared_image_backing.cc index ffee3bb5..3f9fc61 100644 --- a/gpu/command_buffer/service/shared_image_backing.cc +++ b/gpu/command_buffer/service/shared_image_backing.cc
@@ -5,6 +5,7 @@ #include "gpu/command_buffer/service/shared_image_backing.h" #include "gpu/command_buffer/service/memory_tracking.h" +#include "gpu/command_buffer/service/shared_context_state.h" #include "gpu/command_buffer/service/shared_image_representation.h" namespace gpu { @@ -54,7 +55,8 @@ std::unique_ptr<SharedImageRepresentationSkia> SharedImageBacking::ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) { return nullptr; }
diff --git a/gpu/command_buffer/service/shared_image_backing.h b/gpu/command_buffer/service/shared_image_backing.h index 6a2c10ab..3fbdf72 100644 --- a/gpu/command_buffer/service/shared_image_backing.h +++ b/gpu/command_buffer/service/shared_image_backing.h
@@ -6,6 +6,7 @@ #define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_BACKING_H_ #include "base/containers/flat_map.h" +#include "base/memory/scoped_refptr.h" #include "base/optional.h" #include "base/synchronization/lock.h" #include "components/viz/common/resources/resource_format.h" @@ -23,6 +24,7 @@ namespace gpu { class MailboxManager; +class SharedContextState; class SharedImageManager; class SharedImageRepresentation; class SharedImageRepresentationGLTexture; @@ -96,7 +98,8 @@ MemoryTypeTracker* tracker); virtual std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker); + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state); // Used by subclasses in Destroy. bool have_context() const;
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.cc b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.cc index 0dbdf0da..ec73cbb9 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.cc +++ b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.cc
@@ -16,6 +16,7 @@ #include "base/android/scoped_hardware_buffer_handle.h" #include "base/containers/flat_set.h" #include "base/logging.h" +#include "base/memory/scoped_refptr.h" #include "components/viz/common/gpu/vulkan_context_provider.h" #include "components/viz/common/resources/resource_format_utils.h" #include "components/viz/common/resources/resource_sizes.h" @@ -190,7 +191,6 @@ uint32_t usage, base::android::ScopedHardwareBufferHandle handle, size_t estimated_size, - SharedContextState* context_state, bool is_thread_safe); ~SharedImageBackingAHB() override; @@ -200,7 +200,6 @@ void Update() override; bool ProduceLegacyMailbox(MailboxManager* mailbox_manager) override; void Destroy() override; - SharedContextState* GetContextState() const; base::android::ScopedHardwareBufferHandle GetAhbHandle() const; bool BeginWrite(std::vector<base::ScopedFD>* fds_to_wait_on); @@ -217,7 +216,8 @@ std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override; + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override; private: gles2::Texture* GenGLTexture(); @@ -226,7 +226,6 @@ gles2::Texture* legacy_texture_ = nullptr; bool is_cleared_ = false; - SharedContextState* const context_state_ = nullptr; // All reads and writes must wait for exiting writes to complete. base::ScopedFD write_sync_fd_; @@ -452,13 +451,15 @@ class SharedImageRepresentationSkiaVkAHB : public SharedImageRepresentationSkia { public: - SharedImageRepresentationSkiaVkAHB(SharedImageManager* manager, - SharedImageBacking* backing) - : SharedImageRepresentationSkia(manager, backing, nullptr) { + SharedImageRepresentationSkiaVkAHB( + SharedImageManager* manager, + SharedImageBacking* backing, + scoped_refptr<SharedContextState> context_state) + : SharedImageRepresentationSkia(manager, backing, nullptr), + context_state_(context_state) { SharedImageBackingAHB* ahb_backing = static_cast<SharedImageBackingAHB*>(backing); DCHECK(ahb_backing); - context_state_ = ahb_backing->GetContextState(); DCHECK(context_state_); DCHECK(context_state_->vk_context_provider()); } @@ -656,7 +657,7 @@ sk_sp<SkPromiseImageTexture> promise_texture_; RepresentationAccessMode mode_ = RepresentationAccessMode::kNone; SkSurface* surface_ = nullptr; - SharedContextState* context_state_ = nullptr; + scoped_refptr<SharedContextState> context_state_ = nullptr; }; SharedImageBackingAHB::SharedImageBackingAHB( @@ -667,7 +668,6 @@ uint32_t usage, base::android::ScopedHardwareBufferHandle handle, size_t estimated_size, - SharedContextState* context_state, bool is_thread_safe) : SharedImageBacking(mailbox, format, @@ -676,8 +676,7 @@ usage, estimated_size, is_thread_safe), - hardware_buffer_handle_(std::move(handle)), - context_state_(context_state) { + hardware_buffer_handle_(std::move(handle)) { DCHECK(hardware_buffer_handle_.is_valid()); } @@ -728,10 +727,6 @@ hardware_buffer_handle_.reset(); } -SharedContextState* SharedImageBackingAHB::GetContextState() const { - return context_state_; -} - base::android::ScopedHardwareBufferHandle SharedImageBackingAHB::GetAhbHandle() const { AutoLock auto_lock(this); @@ -753,14 +748,18 @@ } std::unique_ptr<SharedImageRepresentationSkia> -SharedImageBackingAHB::ProduceSkia(SharedImageManager* manager, - MemoryTypeTracker* tracker) { - DCHECK(context_state_); +SharedImageBackingAHB::ProduceSkia( + SharedImageManager* manager, + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) { + DCHECK(context_state); // Check whether we are in Vulkan mode OR GL mode and accordingly create // Skia representation. - if (context_state_->use_vulkan_gr_context()) - return std::make_unique<SharedImageRepresentationSkiaVkAHB>(manager, this); + if (context_state->use_vulkan_gr_context()) { + return std::make_unique<SharedImageRepresentationSkiaVkAHB>(manager, this, + context_state); + } auto* texture = GenGLTexture(); if (!texture) @@ -921,9 +920,7 @@ SharedImageBackingFactoryAHB::SharedImageBackingFactoryAHB( const GpuDriverBugWorkarounds& workarounds, - const GpuFeatureInfo& gpu_feature_info, - SharedContextState* context_state) - : context_state_(context_state) { + const GpuFeatureInfo& gpu_feature_info) { scoped_refptr<gles2::FeatureInfo> feature_info = new gles2::FeatureInfo(workarounds, gpu_feature_info); feature_info->Initialize(ContextType::CONTEXT_TYPE_OPENGLES2, false, @@ -1086,7 +1083,7 @@ auto backing = std::make_unique<SharedImageBackingAHB>( mailbox, format, size, color_space, usage, base::android::ScopedHardwareBufferHandle::Adopt(buffer), estimated_size, - context_state_, is_thread_safe); + is_thread_safe); return backing; }
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.h b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.h index 76923bd..a1cec359 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.h +++ b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.h
@@ -17,7 +17,6 @@ } // namespace gfx namespace gpu { -class SharedContextState; class SharedImageBacking; class GpuDriverBugWorkarounds; struct GpuFeatureInfo; @@ -29,8 +28,7 @@ : public SharedImageBackingFactory { public: SharedImageBackingFactoryAHB(const GpuDriverBugWorkarounds& workarounds, - const GpuFeatureInfo& gpu_feature_info, - SharedContextState* context_state); + const GpuFeatureInfo& gpu_feature_info); ~SharedImageBackingFactoryAHB() override; // SharedImageBackingFactory implementation. @@ -80,7 +78,6 @@ // Used to limit the max size of AHardwareBuffer. int32_t max_gl_texture_size_ = 0; - SharedContextState* context_state_ = nullptr; DISALLOW_COPY_AND_ASSIGN(SharedImageBackingFactoryAHB); };
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer_unittest.cc b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer_unittest.cc index 8770d56..a899c7f 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer_unittest.cc +++ b/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer_unittest.cc
@@ -62,7 +62,7 @@ context_state_->InitializeGL(GpuPreferences(), std::move(feature_info)); backing_factory_ = std::make_unique<SharedImageBackingFactoryAHB>( - workarounds, GpuFeatureInfo(), context_state_.get()); + workarounds, GpuFeatureInfo()); memory_type_tracker_ = std::make_unique<MemoryTypeTracker>(nullptr); shared_image_representation_factory_ = @@ -118,7 +118,7 @@ // Finally, validate a SharedImageRepresentationSkia. auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); EXPECT_TRUE(skia_representation); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry)); @@ -184,8 +184,8 @@ gl_representation.reset(); // Next create a SharedImageRepresentationSkia to read back the texture data. - auto skia_representation = - shared_image_representation_factory_->ProduceSkia(mailbox); + auto skia_representation = shared_image_representation_factory_->ProduceSkia( + mailbox, context_state_.get()); EXPECT_TRUE(skia_representation); auto promise_texture = skia_representation->BeginReadAccess(nullptr); EXPECT_TRUE(promise_texture); @@ -294,7 +294,7 @@ memory_type_tracker_.get(), shared_image_representation_factory_.get()}; auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry)); @@ -316,9 +316,9 @@ memory_type_tracker_.get(), shared_image_representation_factory_.get()}; auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); auto skia_representation2 = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); sk_sp<SkSurface> surface = SkSurface::MakeNull(gl_legacy_shared_image.size().width(), @@ -347,7 +347,7 @@ memory_type_tracker_.get(), shared_image_representation_factory_.get()}; auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); sk_sp<SkSurface> surface = SkSurface::MakeNull(gl_legacy_shared_image.size().width(), gl_legacy_shared_image.size().height()); @@ -372,7 +372,7 @@ memory_type_tracker_.get(), shared_image_representation_factory_.get()}; auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); sk_sp<SkSurface> surface = SkSurface::MakeNull(gl_legacy_shared_image.size().width(), gl_legacy_shared_image.size().height()); @@ -396,7 +396,7 @@ memory_type_tracker_.get(), shared_image_representation_factory_.get()}; auto skia_representation = shared_image_representation_factory_->ProduceSkia( - gl_legacy_shared_image.mailbox()); + gl_legacy_shared_image.mailbox(), context_state_.get()); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry));
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc index 7661c2d2..eb99b5b 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc +++ b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
@@ -20,6 +20,7 @@ #include "gpu/command_buffer/service/image_factory.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/command_buffer/service/service_utils.h" +#include "gpu/command_buffer/service/shared_context_state.h" #include "gpu/command_buffer/service/shared_image_backing.h" #include "gpu/command_buffer/service/shared_image_representation.h" #include "gpu/command_buffer/service/skia_utils.h" @@ -520,7 +521,8 @@ std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override { auto result = std::make_unique<SharedImageRepresentationSkiaImpl>( manager, this, cached_promise_texture_, tracker, texture_->target(), texture_->service_id()); @@ -628,7 +630,8 @@ } std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override { auto result = std::make_unique<SharedImageRepresentationSkiaImpl>( manager, this, cached_promise_texture_, tracker, texture_passthrough_->target(), texture_passthrough_->service_id());
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc index 2f1c355c..445ea21 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc +++ b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc
@@ -177,8 +177,8 @@ } // Finally, validate a SharedImageRepresentationSkia. - auto skia_representation = - shared_image_representation_factory_->ProduceSkia(mailbox); + auto skia_representation = shared_image_representation_factory_->ProduceSkia( + mailbox, context_state_.get()); EXPECT_TRUE(skia_representation); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry)); @@ -276,8 +276,8 @@ } // Finally, validate a SharedImageRepresentationSkia. - auto skia_representation = - shared_image_representation_factory_->ProduceSkia(mailbox); + auto skia_representation = shared_image_representation_factory_->ProduceSkia( + mailbox, context_state_.get()); EXPECT_TRUE(skia_representation); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry));
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_iosurface.mm b/gpu/command_buffer/service/shared_image_backing_factory_iosurface.mm index 909ae8e..2432ad9 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_iosurface.mm +++ b/gpu/command_buffer/service/shared_image_backing_factory_iosurface.mm
@@ -5,6 +5,7 @@ #include "gpu/command_buffer/service/shared_image_backing_factory_iosurface.h" #include "base/mac/scoped_cftyperef.h" +#include "base/memory/scoped_refptr.h" #include "components/viz/common/resources/resource_format_utils.h" #include "components/viz/common/resources/resource_sizes.h" #include "gpu/command_buffer/service/mailbox_manager.h" @@ -228,7 +229,8 @@ std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override { gles2::Texture* texture = GenGLTexture(); if (!texture) { return nullptr;
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc b/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc index e4ba81b..d37b3da0 100644 --- a/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc +++ b/gpu/command_buffer/service/shared_image_backing_factory_iosurface_unittest.cc
@@ -126,8 +126,8 @@ gl_representation.reset(); // Finally, validate a SharedImageRepresentationSkia. - auto skia_representation = - shared_image_representation_factory_->ProduceSkia(mailbox); + auto skia_representation = shared_image_representation_factory_->ProduceSkia( + mailbox, context_state_); EXPECT_TRUE(skia_representation); auto surface = skia_representation->BeginWriteAccess( gr_context(), 0, SkSurfaceProps(0, kUnknown_SkPixelGeometry)); @@ -193,8 +193,8 @@ gl_representation.reset(); // Next create a SharedImageRepresentationSkia to read back the texture data. - auto skia_representation = - shared_image_representation_factory_->ProduceSkia(mailbox); + auto skia_representation = shared_image_representation_factory_->ProduceSkia( + mailbox, context_state_); EXPECT_TRUE(skia_representation); auto promise_texture = skia_representation->BeginReadAccess(nullptr); EXPECT_TRUE(promise_texture);
diff --git a/gpu/command_buffer/service/shared_image_factory.cc b/gpu/command_buffer/service/shared_image_factory.cc index 8dcc10f..4613ef2 100644 --- a/gpu/command_buffer/service/shared_image_factory.cc +++ b/gpu/command_buffer/service/shared_image_factory.cc
@@ -78,7 +78,7 @@ #elif defined(OS_ANDROID) && BUILDFLAG(ENABLE_VULKAN) // For Android interop_backing_factory_ = std::make_unique<SharedImageBackingFactoryAHB>( - workarounds, gpu_feature_info, context_state); + workarounds, gpu_feature_info); #elif defined(OS_MACOSX) // OSX DCHECK(!using_vulkan_); @@ -295,8 +295,10 @@ } std::unique_ptr<SharedImageRepresentationSkia> -SharedImageRepresentationFactory::ProduceSkia(const Mailbox& mailbox) { - return manager_->ProduceSkia(mailbox, tracker_.get()); +SharedImageRepresentationFactory::ProduceSkia( + const Mailbox& mailbox, + scoped_refptr<SharedContextState> context_state) { + return manager_->ProduceSkia(mailbox, tracker_.get(), context_state); } } // namespace gpu
diff --git a/gpu/command_buffer/service/shared_image_factory.h b/gpu/command_buffer/service/shared_image_factory.h index b4251b1..261454a 100644 --- a/gpu/command_buffer/service/shared_image_factory.h +++ b/gpu/command_buffer/service/shared_image_factory.h
@@ -118,7 +118,8 @@ std::unique_ptr<SharedImageRepresentationGLTexturePassthrough> ProduceGLTexturePassthrough(const Mailbox& mailbox); std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( - const Mailbox& mailbox); + const Mailbox& mailbox, + scoped_refptr<SharedContextState> context_State); private: SharedImageManager* manager_;
diff --git a/gpu/command_buffer/service/shared_image_manager.cc b/gpu/command_buffer/service/shared_image_manager.cc index 7431bee0..9a9e991 100644 --- a/gpu/command_buffer/service/shared_image_manager.cc +++ b/gpu/command_buffer/service/shared_image_manager.cc
@@ -14,6 +14,7 @@ #include "base/trace_event/process_memory_dump.h" #include "base/trace_event/trace_event.h" #include "gpu/command_buffer/common/shared_image_trace_utils.h" +#include "gpu/command_buffer/service/shared_context_state.h" #include "gpu/command_buffer/service/shared_image_representation.h" #include "ui/gl/trace_util.h" @@ -175,7 +176,8 @@ std::unique_ptr<SharedImageRepresentationSkia> SharedImageManager::ProduceSkia( const Mailbox& mailbox, - MemoryTypeTracker* tracker) { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) { CALLED_ON_VALID_THREAD(); AutoLock autolock(this); @@ -186,7 +188,7 @@ return nullptr; } - auto representation = (*found)->ProduceSkia(this, tracker); + auto representation = (*found)->ProduceSkia(this, tracker, context_state); if (!representation) { LOG(ERROR) << "SharedImageManager::ProduceSkia: Trying to produce a " "Skia representation from an incompatible mailbox.";
diff --git a/gpu/command_buffer/service/shared_image_manager.h b/gpu/command_buffer/service/shared_image_manager.h index 043dc60..969f7b6 100644 --- a/gpu/command_buffer/service/shared_image_manager.h +++ b/gpu/command_buffer/service/shared_image_manager.h
@@ -6,6 +6,7 @@ #define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_MANAGER_H_ #include "base/containers/flat_set.h" +#include "base/memory/scoped_refptr.h" #include "base/optional.h" #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h" @@ -43,7 +44,8 @@ ProduceGLTexturePassthrough(const Mailbox& mailbox, MemoryTypeTracker* ref); std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( const Mailbox& mailbox, - MemoryTypeTracker* ref); + MemoryTypeTracker* ref, + scoped_refptr<SharedContextState> context_state); // Called by SharedImageRepresentation in the destructor. void OnRepresentationDestroyed(const Mailbox& mailbox,
diff --git a/gpu/command_buffer/service/wrapped_sk_image.cc b/gpu/command_buffer/service/wrapped_sk_image.cc index 53b343b..be608c9 100644 --- a/gpu/command_buffer/service/wrapped_sk_image.cc +++ b/gpu/command_buffer/service/wrapped_sk_image.cc
@@ -6,6 +6,7 @@ #include "base/hash/hash.h" #include "base/logging.h" +#include "base/memory/scoped_refptr.h" #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/process_memory_dump.h" #include "base/trace_event/trace_event.h" @@ -88,7 +89,8 @@ protected: std::unique_ptr<SharedImageRepresentationSkia> ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) override; + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) override; private: friend class gpu::raster::WrappedSkImageFactory; @@ -278,7 +280,9 @@ std::unique_ptr<SharedImageRepresentationSkia> WrappedSkImage::ProduceSkia( SharedImageManager* manager, - MemoryTypeTracker* tracker) { + MemoryTypeTracker* tracker, + scoped_refptr<SharedContextState> context_state) { + DCHECK_EQ(context_state_, context_state.get()); return std::make_unique<WrappedSkImageRepresentation>(manager, this, tracker); }
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc index 168f361..e597994 100644 --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc
@@ -52,7 +52,7 @@ // can be used even if there are controls on top of the video. It can be // enabled only when overlay is supported. const base::Feature kDirectCompositionUnderlays{ - "DirectCompositionUnderlays", base::FEATURE_DISABLED_BY_DEFAULT}; + "DirectCompositionUnderlays", base::FEATURE_ENABLED_BY_DEFAULT}; // Causes us to use the SharedImageManager, removing support for the old // mailbox system. Any consumers of the GPU process using the old mailbox
diff --git a/gpu/ipc/service/direct_composition_surface_win.cc b/gpu/ipc/service/direct_composition_surface_win.cc index 8733540..db4fb5e 100644 --- a/gpu/ipc/service/direct_composition_surface_win.cc +++ b/gpu/ipc/service/direct_composition_surface_win.cc
@@ -11,6 +11,8 @@ #include <utility> #include "base/containers/circular_deque.h" +#include "base/debug/alias.h" +#include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" @@ -1034,6 +1036,12 @@ DLOG(ERROR) << "CreateDecodeSwapChainForCompositionSurfaceHandle failed " "with error 0x" << std::hex << hr; + // TODO(sunnyps): Temporary for debugging decode swap chain failures. + base::debug::Alias(&hr); + D3D11_TEXTURE2D_DESC texture_desc = {}; + base::debug::Alias(&texture_desc); + image_dxgi->texture()->GetDesc(&texture_desc); + base::debug::DumpWithoutCrashing(); return false; } DCHECK(decode_swap_chain_);
diff --git a/gpu/vulkan/android/vulkan_implementation_android.cc b/gpu/vulkan/android/vulkan_implementation_android.cc index f532ab8..8d391a2 100644 --- a/gpu/vulkan/android/vulkan_implementation_android.cc +++ b/gpu/vulkan/android/vulkan_implementation_android.cc
@@ -107,6 +107,12 @@ return nullptr; } +VkSemaphore VulkanImplementationAndroid::CreateExternalSemaphore( + VkDevice vk_device) { + return VulkanImplementation::CreateExternalSemaphore( + vk_device, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT); +} + VkSemaphore VulkanImplementationAndroid::ImportSemaphoreHandle( VkDevice vk_device, SemaphoreHandle sync_handle) {
diff --git a/gpu/vulkan/android/vulkan_implementation_android.h b/gpu/vulkan/android/vulkan_implementation_android.h index a84adde..ede5312 100644 --- a/gpu/vulkan/android/vulkan_implementation_android.h +++ b/gpu/vulkan/android/vulkan_implementation_android.h
@@ -35,6 +35,7 @@ std::unique_ptr<gfx::GpuFence> ExportVkFenceToGpuFence( VkDevice vk_device, VkFence vk_fence) override; + VkSemaphore CreateExternalSemaphore(VkDevice vk_device) override; VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, SemaphoreHandle handle) override; SemaphoreHandle GetSemaphoreHandle(VkDevice vk_device,
diff --git a/gpu/vulkan/vulkan_implementation.cc b/gpu/vulkan/vulkan_implementation.cc index d47b8d5..8201f5d 100644 --- a/gpu/vulkan/vulkan_implementation.cc +++ b/gpu/vulkan/vulkan_implementation.cc
@@ -15,25 +15,6 @@ VulkanImplementation::~VulkanImplementation() {} -std::unique_ptr<VulkanDeviceQueue> CreateVulkanDeviceQueue( - VulkanImplementation* vulkan_implementation, - uint32_t option) { - auto device_queue = std::make_unique<VulkanDeviceQueue>( - vulkan_implementation->GetVulkanInstance()->vk_instance()); - auto callback = base::BindRepeating( - &VulkanImplementation::GetPhysicalDevicePresentationSupport, - base::Unretained(vulkan_implementation)); - std::vector<const char*> required_extensions = - vulkan_implementation->GetRequiredDeviceExtensions(); - if (!device_queue->Initialize(option, std::move(required_extensions), - callback)) { - device_queue->Destroy(); - return nullptr; - } - - return device_queue; -} - bool VulkanImplementation::SubmitSignalSemaphore(VkQueue vk_queue, VkSemaphore vk_semaphore, VkFence vk_fence) { @@ -66,4 +47,45 @@ return true; } +VkSemaphore VulkanImplementation::CreateExternalSemaphore( + VkDevice vk_device, + VkExternalSemaphoreHandleTypeFlags handle_types) { + VkExportSemaphoreCreateInfo export_info = { + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO}; + export_info.handleTypes = handle_types; + + VkSemaphoreCreateInfo sem_info = {VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, + &export_info}; + + VkSemaphore semaphore = VK_NULL_HANDLE; + VkResult result = + vkCreateSemaphore(vk_device, &sem_info, nullptr, &semaphore); + + if (result != VK_SUCCESS) { + DLOG(ERROR) << "Failed to create VkSemaphore: " << result; + return VK_NULL_HANDLE; + } + + return semaphore; +} + +std::unique_ptr<VulkanDeviceQueue> CreateVulkanDeviceQueue( + VulkanImplementation* vulkan_implementation, + uint32_t option) { + auto device_queue = std::make_unique<VulkanDeviceQueue>( + vulkan_implementation->GetVulkanInstance()->vk_instance()); + auto callback = base::BindRepeating( + &VulkanImplementation::GetPhysicalDevicePresentationSupport, + base::Unretained(vulkan_implementation)); + std::vector<const char*> required_extensions = + vulkan_implementation->GetRequiredDeviceExtensions(); + if (!device_queue->Initialize(option, std::move(required_extensions), + callback)) { + device_queue->Destroy(); + return nullptr; + } + + return device_queue; +} + } // namespace gpu
diff --git a/gpu/vulkan/vulkan_implementation.h b/gpu/vulkan/vulkan_implementation.h index 0d72db4..30684cf 100644 --- a/gpu/vulkan/vulkan_implementation.h +++ b/gpu/vulkan/vulkan_implementation.h
@@ -90,9 +90,18 @@ return SubmitWaitSemaphores(vk_queue, {vk_semaphore}, vk_fence); } + // Creates semaphore that can be exported to external handles of the specified + // |handle_types|. + VkSemaphore CreateExternalSemaphore( + VkDevice vk_device, + VkExternalSemaphoreHandleTypeFlags handle_types); + + // Creates a semaphore that can be exported using GetSemaphoreHandle(). + virtual VkSemaphore CreateExternalSemaphore(VkDevice vk_device) = 0; + // Import a VkSemaphore from a platform-specific handle. - // Handle types that don't allow permanent import are imported with temporary - // permanence (VK_SEMAPHORE_IMPORT_TEMPORARY_BIT). + // Handle types that don't allow permanent import are imported with + // temporary permanence (VK_SEMAPHORE_IMPORT_TEMPORARY_BIT). virtual VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, SemaphoreHandle handle) = 0;
diff --git a/gpu/vulkan/win32/vulkan_implementation_win32.cc b/gpu/vulkan/win32/vulkan_implementation_win32.cc index 85201d6..a9282d55 100644 --- a/gpu/vulkan/win32/vulkan_implementation_win32.cc +++ b/gpu/vulkan/win32/vulkan_implementation_win32.cc
@@ -105,6 +105,12 @@ return nullptr; } +VkSemaphore VulkanImplementationWin32::CreateExternalSemaphore( + VkDevice vk_device) { + NOTIMPLEMENTED(); + return VK_NULL_HANDLE; +} + VkSemaphore VulkanImplementationWin32::ImportSemaphoreHandle( VkDevice vk_device, SemaphoreHandle handle) {
diff --git a/gpu/vulkan/win32/vulkan_implementation_win32.h b/gpu/vulkan/win32/vulkan_implementation_win32.h index 9768fdbe..0cc0195 100644 --- a/gpu/vulkan/win32/vulkan_implementation_win32.h +++ b/gpu/vulkan/win32/vulkan_implementation_win32.h
@@ -33,6 +33,7 @@ std::unique_ptr<gfx::GpuFence> ExportVkFenceToGpuFence( VkDevice vk_device, VkFence vk_fence) override; + VkSemaphore CreateExternalSemaphore(VkDevice vk_device) override; VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, SemaphoreHandle handle) override; SemaphoreHandle GetSemaphoreHandle(VkDevice vk_device,
diff --git a/gpu/vulkan/x/vulkan_implementation_x11.cc b/gpu/vulkan/x/vulkan_implementation_x11.cc index be5a4523..282c7bb 100644 --- a/gpu/vulkan/x/vulkan_implementation_x11.cc +++ b/gpu/vulkan/x/vulkan_implementation_x11.cc
@@ -147,6 +147,12 @@ return nullptr; } +VkSemaphore VulkanImplementationX11::CreateExternalSemaphore( + VkDevice vk_device) { + return VulkanImplementation::CreateExternalSemaphore( + vk_device, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT); +} + VkSemaphore VulkanImplementationX11::ImportSemaphoreHandle( VkDevice vk_device, SemaphoreHandle sync_handle) {
diff --git a/gpu/vulkan/x/vulkan_implementation_x11.h b/gpu/vulkan/x/vulkan_implementation_x11.h index a252497..16475b8 100644 --- a/gpu/vulkan/x/vulkan_implementation_x11.h +++ b/gpu/vulkan/x/vulkan_implementation_x11.h
@@ -35,6 +35,7 @@ std::unique_ptr<gfx::GpuFence> ExportVkFenceToGpuFence( VkDevice vk_device, VkFence vk_fence) override; + VkSemaphore CreateExternalSemaphore(VkDevice vk_device) override; VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, SemaphoreHandle handle) override; SemaphoreHandle GetSemaphoreHandle(VkDevice vk_device,
diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg index d7e185a..842337c 100644 --- a/infra/config/cr-buildbucket.cfg +++ b/infra/config/cr-buildbucket.cfg
@@ -440,6 +440,12 @@ mixins: "linux" mixins: "gpu-fyi-ci" mixins: "gpu-slow-bot" + # Remove the cores dimensions for this mixin so that VMs of differing sizes + # can be used. + # This works here only because we use auto_builder_dimensions, + # so that only the bots that were earmarked for the builders + # will be allowed to use them anyways. + dimensions: "cores:" } builder_mixins { @@ -611,6 +617,12 @@ mixins: "win" mixins: "gpu-fyi-ci" mixins: "gpu-slow-bot" + # Remove the cores dimensions for this mixin so that VMs of differing sizes + # can be used. + # This works here only because we use auto_builder_dimensions, + # so that only the bots that were earmarked for the builders + # will be allowed to use them anyways. + dimensions: "cores:" } builder_mixins {
diff --git a/ios/web/web_state/web_state_observer_inttest.mm b/ios/web/web_state/web_state_observer_inttest.mm index bb4fcd7..dc2666a6 100644 --- a/ios/web/web_state/web_state_observer_inttest.mm +++ b/ios/web/web_state/web_state_observer_inttest.mm
@@ -2479,13 +2479,13 @@ // Tests callbacks for restoring session and subsequently going back to // about:blank. -TEST_P(WebStateObserverTest, RestoreSessionOnline) { -// TODO(crbug.com/944886): Remove once issue resolved. -#if !TARGET_IPHONE_SIMULATOR - UIUserInterfaceIdiom idiom = [[UIDevice currentDevice] userInterfaceIdiom]; - if (idiom == UIUserInterfaceIdiomPad) - return; +// TODO(crbug.com/944803): Test is flaky on iPhone and iPad devices. +#if TARGET_IPHONE_SIMULATOR +#define MAYBE_RestoreSessionOnline RestoreSessionOnline +#else +#define MAYBE_RestoreSessionOnline FLAKY_RestoreSessionOnline #endif +TEST_P(WebStateObserverTest, MAYBE_RestoreSessionOnline) { // LegacyNavigationManager doesn't trigger load in Restore. if (!GetWebClient()->IsSlimNavigationManagerEnabled()) { return;
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java index 0d9e444..e695617 100644 --- a/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java +++ b/media/base/android/java/src/org/chromium/media/MediaCodecUtil.java
@@ -15,6 +15,8 @@ import android.media.MediaCrypto; import android.media.MediaFormat; import android.os.Build; +import android.support.annotation.IntDef; +import android.support.annotation.Nullable; import org.chromium.base.Log; import org.chromium.base.annotations.CalledByNative; @@ -22,6 +24,8 @@ import org.chromium.base.annotations.MainDex; import org.chromium.base.compat.ApiHelperForN; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -495,46 +499,72 @@ } // List of supported HW encoders. - private static enum HWEncoderProperties { - QcomVp8(MimeTypes.VIDEO_VP8, "OMX.qcom.", Build.VERSION_CODES.KITKAT, - BitrateAdjuster.Type.NO_ADJUSTMENT), - QcomH264(MimeTypes.VIDEO_H264, "OMX.qcom.", Build.VERSION_CODES.KITKAT, - BitrateAdjuster.Type.NO_ADJUSTMENT), - ExynosVp8(MimeTypes.VIDEO_VP8, "OMX.Exynos.", Build.VERSION_CODES.M, - BitrateAdjuster.Type.NO_ADJUSTMENT), - ExynosH264(MimeTypes.VIDEO_H264, "OMX.Exynos.", Build.VERSION_CODES.LOLLIPOP, - BitrateAdjuster.Type.FRAMERATE_ADJUSTMENT), - MediatekH264(MimeTypes.VIDEO_H264, "OMX.MTK.", Build.VERSION_CODES.O_MR1, - BitrateAdjuster.Type.FRAMERATE_ADJUSTMENT); + @IntDef({HWEncoder.QcomVp8, HWEncoder.QcomH264, HWEncoder.ExynosVp8, HWEncoder.ExynosH264, + HWEncoder.MediatekH264}) + @Retention(RetentionPolicy.SOURCE) + public @interface HWEncoder { + int QcomVp8 = 0; + int QcomH264 = 1; + int ExynosVp8 = 2; + int ExynosH264 = 3; + int MediatekH264 = 4; + int NUM_ENTRIES = 5; + } - private final String mMime; - private final String mPrefix; - private final int mMinSDK; - private final @BitrateAdjuster.Type int mBitrateAdjuster; - - private HWEncoderProperties( - String mime, String prefix, int minSDK, @BitrateAdjuster.Type int bitrateAdjuster) { - this.mMime = mime; - this.mPrefix = prefix; - this.mMinSDK = minSDK; - this.mBitrateAdjuster = bitrateAdjuster; + private static String getMimeForHWEncoder(@HWEncoder int decoder) { + switch (decoder) { + case HWEncoder.QcomVp8: + case HWEncoder.ExynosVp8: + return MimeTypes.VIDEO_VP8; + case HWEncoder.QcomH264: + case HWEncoder.ExynosH264: + case HWEncoder.MediatekH264: + return MimeTypes.VIDEO_H264; } + return ""; + } - public String getMime() { - return mMime; + private static String getPrefixForHWEncoder(@HWEncoder int decoder) { + switch (decoder) { + case HWEncoder.QcomVp8: + case HWEncoder.QcomH264: + return "OMX.qcom."; + case HWEncoder.ExynosVp8: + case HWEncoder.ExynosH264: + return "OMX.Exynos."; + case HWEncoder.MediatekH264: + return "OMX.MTK."; } + return ""; + } - public String getPrefix() { - return mPrefix; + private static int getMinSDKForHWEncoder(@HWEncoder int decoder) { + switch (decoder) { + case HWEncoder.QcomVp8: + case HWEncoder.QcomH264: + return Build.VERSION_CODES.KITKAT; + case HWEncoder.ExynosVp8: + return Build.VERSION_CODES.M; + case HWEncoder.ExynosH264: + return Build.VERSION_CODES.LOLLIPOP; + case HWEncoder.MediatekH264: + return Build.VERSION_CODES.O_MR1; } + return -1; + } - public int getMinSDK() { - return mMinSDK; + private static @BitrateAdjuster.Type int getBitrateAdjusterTypeForHWEncoder( + @HWEncoder int decoder) { + switch (decoder) { + case HWEncoder.QcomVp8: + case HWEncoder.QcomH264: + case HWEncoder.ExynosVp8: + return BitrateAdjuster.Type.NO_ADJUSTMENT; + case HWEncoder.ExynosH264: + case HWEncoder.MediatekH264: + return BitrateAdjuster.Type.FRAMERATE_ADJUSTMENT; } - - public @BitrateAdjuster.Type int getBitrateAdjuster() { - return mBitrateAdjuster; - } + return -1; } // List of devices with poor H.264 encoder quality. @@ -553,15 +583,15 @@ // if we cannot create the codec. CodecCreationInfo result = new CodecCreationInfo(); - HWEncoderProperties encoderProperties = findHWEncoder(mime); - if (encoderProperties == null) { - return result; - } + @Nullable + @HWEncoder + Integer encoderProperties = findHWEncoder(mime); + if (encoderProperties == null) return result; try { result.mediaCodec = MediaCodec.createEncoderByType(mime); result.supportsAdaptivePlayback = false; - result.bitrateAdjuster = encoderProperties.getBitrateAdjuster(); + result.bitrateAdjuster = getBitrateAdjusterTypeForHWEncoder(encoderProperties); } catch (Exception e) { Log.e(TAG, "Failed to create MediaCodec: %s", mime, e); } @@ -591,11 +621,7 @@ } } - if (findHWEncoder(mime) == null) { - return false; - } - - return true; + return !(findHWEncoder(mime) == null); } /** @@ -616,9 +642,9 @@ /** * Find HW encoder with given MIME type. * @param mime MIME type of the media. - * @return HWEncoderProperties object. + * @return HWEncoder or null if not found. */ - private static HWEncoderProperties findHWEncoder(String mime) { + private static @Nullable @HWEncoder Integer findHWEncoder(String mime) { MediaCodecListHelper codecListHelper = new MediaCodecListHelper(); for (MediaCodecInfo info : codecListHelper) { if (!info.isEncoder() || isSoftwareCodec(info.getName())) continue; @@ -636,11 +662,12 @@ } // Check if this is supported HW encoder. - for (HWEncoderProperties codecProperties : HWEncoderProperties.values()) { - if (!mime.equalsIgnoreCase(codecProperties.getMime())) continue; + for (@HWEncoder int codecProperties = 0; codecProperties < HWEncoder.NUM_ENTRIES; + codecProperties++) { + if (!mime.equalsIgnoreCase(getMimeForHWEncoder(codecProperties))) continue; - if (encoderName.startsWith(codecProperties.getPrefix())) { - if (Build.VERSION.SDK_INT < codecProperties.getMinSDK()) { + if (encoderName.startsWith(getPrefixForHWEncoder(codecProperties))) { + if (Build.VERSION.SDK_INT < getMinSDKForHWEncoder(codecProperties)) { Log.w(TAG, "Codec " + encoderName + " is disabled due to SDK version " + Build.VERSION.SDK_INT); continue;
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc index 794290d..91ed9654 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -301,7 +301,11 @@ // If enabled, use SurfaceLayer instead of VideoLayer for all playbacks that // aren't MediaStream. const base::Feature kUseSurfaceLayerForVideo{"UseSurfaceLayerForVideo", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; + +// Enable VA-API hardware low power encoder for all codecs. +const base::Feature kVaapiLowPowerEncoder{"VaapiLowPowerEncoder", + base::FEATURE_DISABLED_BY_DEFAULT}; // Enable VA-API hardware encode acceleration for VP8. const base::Feature kVaapiVP8Encoder{"VaapiVP8Encoder",
diff --git a/media/base/media_switches.h b/media/base/media_switches.h index de8f2bc..533c17ed 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -133,6 +133,7 @@ MEDIA_EXPORT extern const base::Feature kUseNewMediaCache; MEDIA_EXPORT extern const base::Feature kUseR16Texture; MEDIA_EXPORT extern const base::Feature kUseSurfaceLayerForVideo; +MEDIA_EXPORT extern const base::Feature kVaapiLowPowerEncoder; MEDIA_EXPORT extern const base::Feature kVaapiVP8Encoder; MEDIA_EXPORT extern const base::Feature kVaapiVP9Encoder; MEDIA_EXPORT extern const base::Feature kVideoBlitColorAccuracy;
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index c026cce..3ccafd6 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc
@@ -924,12 +924,12 @@ void WebMediaPlayerImpl::SetSinkId( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callback) { + blink::WebSetSinkIdCompleteCallback completion_callback) { DCHECK(main_task_runner_->BelongsToCurrentThread()); DVLOG(1) << __func__; OutputDeviceStatusCB callback = - ConvertToOutputDeviceStatusCB(std::move(web_callback)); + ConvertToOutputDeviceStatusCB(std::move(completion_callback)); media_task_runner_->PostTask( FROM_HERE, base::BindOnce(&SetSinkIdOnMediaThread, audio_source_provider_, sink_id.Utf8(), std::move(callback))); @@ -1316,6 +1316,40 @@ internal_format, format, type, level, premultiply_alpha, flip_y); } +bool WebMediaPlayerImpl::PrepareVideoFrameForWebGL( + gpu::gles2::GLES2Interface* gl, + unsigned target, + unsigned texture, + int already_uploaded_id, + WebMediaPlayer::VideoFrameUploadMetadata* out_metadata) { + DCHECK(main_task_runner_->BelongsToCurrentThread()); + TRACE_EVENT0("media", "WebMediaPlayerImpl::PrepareVideoFrameForWebGL"); + + // TODO(crbug.com/776222): How to deal with protected frames. + scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor(); + if (!video_frame.get() || !video_frame->HasTextures()) { + return false; + } + if (out_metadata) { + // WebGL last-uploaded-frame-metadata API is enabled. + ComputeFrameUploadMetadata(video_frame.get(), already_uploaded_id, + out_metadata); + if (out_metadata->skipped) { + // Skip uploading this frame. + return true; + } + } + + Context3D context_3d; + if (context_provider_) { + context_3d = Context3D(context_provider_->ContextGL(), + context_provider_->GrContext()); + } + + return video_renderer_.PrepareVideoFrameForWebGL( + context_3d, gl, video_frame.get(), target, texture); +} + // static void WebMediaPlayerImpl::ComputeFrameUploadMetadata( VideoFrame* frame,
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h index 940c621..07773e2 100644 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h
@@ -123,7 +123,7 @@ void OnRequestPictureInPicture() override; void SetSinkId( const blink::WebString& sink_id, - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callback) override; + blink::WebSetSinkIdCompleteCallback completion_callback) override; void SetPoster(const blink::WebURL& poster) override; void SetPreload(blink::WebMediaPlayer::Preload preload) override; blink::WebTimeRanges Buffered() const override; @@ -195,6 +195,13 @@ int already_uploaded_id, VideoFrameUploadMetadata* out_metadata) override; + bool PrepareVideoFrameForWebGL( + gpu::gles2::GLES2Interface* gl, + unsigned target, + unsigned texture, + int already_uploaded_id, + WebMediaPlayer::VideoFrameUploadMetadata* out_metadata) override; + static void ComputeFrameUploadMetadata( VideoFrame* frame, int already_uploaded_id,
diff --git a/media/blink/webmediaplayer_impl_unittest.cc b/media/blink/webmediaplayer_impl_unittest.cc index a0c52fb15..8f55491 100644 --- a/media/blink/webmediaplayer_impl_unittest.cc +++ b/media/blink/webmediaplayer_impl_unittest.cc
@@ -861,6 +861,8 @@ const int64_t data_source_size = GetDataSourceMemoryUsage(); EXPECT_GT(data_source_size, 0); EXPECT_EQ(reported_memory_ - data_source_size, 0); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } // Verify that preload=metadata suspend video w/ poster uses zero video memory. @@ -892,6 +894,8 @@ const int64_t data_source_size = GetDataSourceMemoryUsage(); EXPECT_GT(data_source_size, 0); EXPECT_EQ(reported_memory_ - data_source_size, 0); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } // Verify that preload=metadata suspend is aborted if we know the element will @@ -1323,6 +1327,24 @@ TEST_F(WebMediaPlayerImplTest, Waiting_NoDecryptionKey) { InitializeWebMediaPlayerImpl(); + scoped_refptr<cc::Layer> layer = cc::Layer::Create(); + EXPECT_CALL(*surface_layer_bridge_ptr_, GetCcLayer()) + .WillRepeatedly(Return(layer.get())); + + if (base::FeatureList::IsEnabled(kUseSurfaceLayerForVideo)) { + EXPECT_CALL(*surface_layer_bridge_ptr_, CreateSurfaceLayer()); + EXPECT_CALL(client_, SetCcLayer(_)).Times(0); + EXPECT_CALL(*surface_layer_bridge_ptr_, GetSurfaceId()) + .WillOnce(ReturnRef(surface_id_)); + EXPECT_CALL(*surface_layer_bridge_ptr_, GetLocalSurfaceIdAllocationTime()) + .WillOnce(Return(base::TimeTicks())); + EXPECT_CALL(*compositor_, EnableSubmission(_, _, _, _)); + EXPECT_CALL(*surface_layer_bridge_ptr_, SetContentsOpaque(true)).Times(1); + EXPECT_CALL(*surface_layer_bridge_ptr_, SetContentsOpaque(false)).Times(1); + } else { + EXPECT_CALL(client_, SetCcLayer(NotNull())); + } + // Use non-encrypted file here since we don't have a CDM. Otherwise pipeline // initialization will stall waiting for a CDM to be set. LoadAndWaitForMetadata(kVideoOnlyTestFile); @@ -1331,6 +1353,8 @@ EXPECT_CALL(encrypted_client_, DidResumePlaybackBlockedForKey()); OnWaiting(WaitingReason::kNoDecryptionKey); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, VideoConfigChange) { @@ -1385,6 +1409,8 @@ OnVideoConfigChange(new_color_config); ASSERT_EQ(last_reporter, GetVideoStatsReporter()); ASSERT_EQ(VP8PROFILE_MIN, GetVideoStatsReporterCodecProfile()); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, NaturalSizeChange) { @@ -1425,6 +1451,8 @@ ASSERT_NE(orig_stats_reporter, GetVideoStatsReporter()); ASSERT_TRUE(GetVideoStatsReporter()->MatchesBucketedNaturalSize( gfx::Size(1920, 1080))); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, NaturalSizeChange_Rotated) { @@ -1466,6 +1494,8 @@ ASSERT_NE(orig_stats_reporter, GetVideoStatsReporter()); ASSERT_TRUE(GetVideoStatsReporter()->MatchesBucketedNaturalSize( gfx::Size(1080, 1920))); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, VideoLockedWhenPausedWhenHidden) { @@ -1522,6 +1552,8 @@ // Foregrounding the player unsets the lock. ForegroundPlayer(); EXPECT_FALSE(IsVideoLockedWhenPausedWhenHidden()); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, BackgroundIdlePauseTimerDependsOnAudio) { @@ -1581,6 +1613,8 @@ wmpi_->Pause(); EXPECT_EQ(0, wmpi_->CurrentTime()); EXPECT_EQ(base::TimeDelta(), GetCurrentTimeInternal()); + + EXPECT_CALL(*surface_layer_bridge_ptr_, ClearObserver()); } TEST_F(WebMediaPlayerImplTest, SetContentsLayerGetsWebLayerFromBridge) {
diff --git a/media/blink/webmediaplayer_util.cc b/media/blink/webmediaplayer_util.cc index cdd9092..3221d6d 100644 --- a/media/blink/webmediaplayer_util.cc +++ b/media/blink/webmediaplayer_util.cc
@@ -193,22 +193,21 @@ namespace { -void RunSetSinkIdCallback( - std::unique_ptr<blink::WebSetSinkIdCallbacks> web_callbacks, - OutputDeviceStatus result) { +void RunSetSinkIdCallback(blink::WebSetSinkIdCompleteCallback callback, + OutputDeviceStatus result) { switch (result) { case OUTPUT_DEVICE_STATUS_OK: - web_callbacks->OnSuccess(); + std::move(callback).Run(/*error =*/base::nullopt); break; case OUTPUT_DEVICE_STATUS_ERROR_NOT_FOUND: - web_callbacks->OnError(blink::WebSetSinkIdError::kNotFound); + std::move(callback).Run(blink::WebSetSinkIdError::kNotFound); break; case OUTPUT_DEVICE_STATUS_ERROR_NOT_AUTHORIZED: - web_callbacks->OnError(blink::WebSetSinkIdError::kNotAuthorized); + std::move(callback).Run(blink::WebSetSinkIdError::kNotAuthorized); break; case OUTPUT_DEVICE_STATUS_ERROR_TIMED_OUT: case OUTPUT_DEVICE_STATUS_ERROR_INTERNAL: - web_callbacks->OnError(blink::WebSetSinkIdError::kAborted); + std::move(callback).Run(blink::WebSetSinkIdError::kAborted); break; } } @@ -216,9 +215,9 @@ } // namespace OutputDeviceStatusCB ConvertToOutputDeviceStatusCB( - std::unique_ptr<blink::WebSetSinkIdCallbacks> callbacks) { + blink::WebSetSinkIdCompleteCallback callback) { return media::BindToCurrentLoop( - base::BindOnce(RunSetSinkIdCallback, std::move(callbacks))); + base::BindOnce(RunSetSinkIdCallback, std::move(callback))); } } // namespace media
diff --git a/media/blink/webmediaplayer_util.h b/media/blink/webmediaplayer_util.h index 38d754db..7b33ca2 100644 --- a/media/blink/webmediaplayer_util.h +++ b/media/blink/webmediaplayer_util.h
@@ -57,10 +57,10 @@ blink::WebEncryptedMediaInitDataType MEDIA_BLINK_EXPORT ConvertToWebInitDataType(EmeInitDataType init_data_type); -// Wraps a blink::WebSetSinkIdCallbacks into a media::OutputDeviceStatusCB -// and binds it to the current thread +// Wraps a blink::WebSetSinkIdCompleteCallback into a +// media::OutputDeviceStatusCB and binds it to the current thread OutputDeviceStatusCB MEDIA_BLINK_EXPORT ConvertToOutputDeviceStatusCB( - std::unique_ptr<blink::WebSetSinkIdCallbacks> callbacks); + blink::WebSetSinkIdCompleteCallback completion_callback); } // namespace media
diff --git a/media/gpu/test/video_frame_validator.cc b/media/gpu/test/video_frame_validator.cc index 88e627b2..efc731c 100644 --- a/media/gpu/test/video_frame_validator.cc +++ b/media/gpu/test/video_frame_validator.cc
@@ -75,10 +75,6 @@ DCHECK_EQ(0u, num_frames_validating_); } -const std::vector<std::string>& VideoFrameValidator::GetFrameChecksums() const { - return frame_checksums_; -} - std::vector<VideoFrameValidator::MismatchedFrameInfo> VideoFrameValidator::GetMismatchedFramesInfo() const { base::AutoLock auto_lock(frame_validator_lock_); @@ -140,7 +136,6 @@ std::string computed_md5 = ComputeMD5FromVideoFrame(validated_frame.get()); base::AutoLock auto_lock(frame_validator_lock_); - frame_checksums_.push_back(computed_md5); if (expected_frame_checksums_.size() > 0) { LOG_IF(FATAL, frame_index >= expected_frame_checksums_.size())
diff --git a/media/gpu/test/video_frame_validator.h b/media/gpu/test/video_frame_validator.h index 1fd3461..e51df3c 100644 --- a/media/gpu/test/video_frame_validator.h +++ b/media/gpu/test/video_frame_validator.h
@@ -54,9 +54,6 @@ ~VideoFrameValidator() override; - // Get the ordered list of calculated frame checksums. - const std::vector<std::string>& GetFrameChecksums() const; - // Returns information of frames that don't match golden md5 values. // If there is no mismatched frame, returns an empty vector. This function is // thread-safe. @@ -95,9 +92,6 @@ std::vector<MismatchedFrameInfo> mismatched_frames_ GUARDED_BY(frame_validator_lock_); - // The list of calculated MD5 frame checksums. - std::vector<std::string> frame_checksums_ GUARDED_BY(frame_validator_lock_); - // The list of expected MD5 frame checksums. const std::vector<std::string> expected_frame_checksums_;
diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc index 18e8f87..dc8eced 100644 --- a/media/gpu/vaapi/vaapi_wrapper.cc +++ b/media/gpu/vaapi/vaapi_wrapper.cc
@@ -1690,7 +1690,8 @@ std::vector<VAConfigAttrib> required_attribs = GetRequiredAttribs(mode, va_profile); - if ((mode == CodecMode::kEncode) && IsLowPowerEncSupported(va_profile)) { + if (mode == CodecMode::kEncode && IsLowPowerEncSupported(va_profile) && + base::FeatureList::IsEnabled(kVaapiLowPowerEncoder)) { entrypoint = VAEntrypointEncSliceLP; DVLOG(2) << "Enable VA-API Low-Power Encode Entrypoint"; }
diff --git a/media/gpu/video_decode_accelerator_unittest.cc b/media/gpu/video_decode_accelerator_unittest.cc index 871b04f..56b88d3 100644 --- a/media/gpu/video_decode_accelerator_unittest.cc +++ b/media/gpu/video_decode_accelerator_unittest.cc
@@ -1693,60 +1693,6 @@ WaitUntilDecodeFinish(notes_[0].get()); } -#if defined(OS_CHROMEOS) -// This is the case only for generating md5 values of video frames on stream. -// This is disabled by default. To run this, you should run this test with -// --gtest_filter=VideoDecodeAcceleratorTest.DISABLED_GenMD5 and -// --gtest_also_run_disabled_tests -TEST_F(VideoDecodeAcceleratorTest, DISABLED_GenMD5) { - g_validate_frames = false; - g_calculate_checksums = true; - g_test_import = true; - - ASSERT_EQ(test_video_files_.size(), 1u); - notes_.push_back( - std::make_unique<media::test::ClientStateNotification<ClientState>>()); - const TestVideoFile* video_file = test_video_files_[0].get(); - GLRenderingVDAClient::Config config; - config.frame_size = gfx::Size(video_file->width, video_file->height); - config.profile = video_file->profile; - config.fake_decoder = g_fake_decoder; - config.num_frames = video_file->num_frames; - auto video_frame_validator = - CreateAndInitializeVideoFrameValidator(video_file->file_name); - media::test::VideoFrameValidator* frame_validator = - video_frame_validator.get(); - clients_.push_back(std::make_unique<GLRenderingVDAClient>( - std::move(config), video_file->data_str, &rendering_helper_, - std::move(video_frame_validator), nullptr, notes_[0].get())); - RenderingHelperParams helper_params; - helper_params.num_windows = 1; - InitializeRenderingHelper(helper_params); - CreateAndStartDecoder(clients_[0].get(), notes_[0].get()); - ClientState last_state = WaitUntilDecodeFinish(notes_[0].get()); - EXPECT_NE(CS_ERROR, last_state); - - // Write out computed md5 values. - frame_validator->WaitUntilDone(); - const std::vector<std::string>& frame_checksums = - frame_validator->GetFrameChecksums(); - base::FilePath md5_file_path(video_file->file_name); - md5_file_path = md5_file_path.AddExtension(FILE_PATH_LITERAL(".frames.md5")); - base::File md5_file(md5_file_path, base::File::FLAG_CREATE_ALWAYS | - base::File::FLAG_WRITE | - base::File::FLAG_APPEND); - if (!md5_file.IsValid()) - LOG(ERROR) << "Failed to create md5 file to write " << md5_file_path; - - for (const std::string& frame_checksum : frame_checksums) { - md5_file.Write(0, frame_checksum.data(), frame_checksum.size()); - md5_file.Write(0, "\n", 1); - } - - g_test_import = false; -} -#endif - // TODO(fischman, vrk): add more tests! In particular: // - Test life-cycle: Seek/Stop/Pause/Play for a single decoder. // - Test alternate configurations
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index 527cfaf..8f829f1 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -83,10 +83,12 @@ DISALLOW_IMPLICIT_CONSTRUCTORS(SyncTokenClientImpl); }; -sk_sp<SkImage> YUVGrBackendTexturesToSkImage(GrContext* gr_context, - gfx::ColorSpace video_color_space, - VideoPixelFormat video_format, - GrBackendTexture* textures) { +sk_sp<SkImage> YUVGrBackendTexturesToSkImage( + GrContext* gr_context, + gfx::ColorSpace video_color_space, + VideoPixelFormat video_format, + GrBackendTexture* yuv_textures, + GrBackendTexture* result_texture = nullptr) { // TODO(hubbe): This should really default to rec709. // https://crbug.com/828599 SkYUVColorSpace color_space = kRec601_SkYUVColorSpace; @@ -94,34 +96,43 @@ switch (video_format) { case PIXEL_FORMAT_NV12: - return SkImage::MakeFromNV12TexturesCopy( - gr_context, color_space, textures, kTopLeft_GrSurfaceOrigin); + if (result_texture) { + return SkImage::MakeFromNV12TexturesCopyWithExternalBackend( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin, + result_texture[0]); + } else { + return SkImage::MakeFromNV12TexturesCopy( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin); + } case PIXEL_FORMAT_I420: - return SkImage::MakeFromYUVTexturesCopy(gr_context, color_space, textures, - kTopLeft_GrSurfaceOrigin); + if (result_texture) { + return SkImage::MakeFromYUVTexturesCopyWithExternalBackend( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin, + result_texture[0]); + } else { + return SkImage::MakeFromYUVTexturesCopy( + gr_context, color_space, yuv_textures, kTopLeft_GrSurfaceOrigin); + } default: NOTREACHED(); return nullptr; } } -sk_sp<SkImage> NewSkImageFromVideoFrameYUVTextures( - const VideoFrame* video_frame, - const Context3D& context_3d) { - DCHECK(video_frame->HasTextures()); - // TODO: We should compare the DCHECK vs when UpdateLastImage calls this - // function. (crbug.com/674185) - DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || - video_frame->format() == PIXEL_FORMAT_NV12); +static constexpr size_t kNumYUVPlanes = 3; +struct YUVPlaneTextureInfo { + GrGLTextureInfo texture = {0, 0}; + GLint minFilter = 0; + GLint magFilter = 0; +}; +using YUVTexturesInfo = std::array<YUVPlaneTextureInfo, kNumYUVPlanes>; + +YUVTexturesInfo GetYUVTexturesInfo(const VideoFrame* video_frame, + const Context3D& context_3d) { + YUVTexturesInfo yuv_textures_info; gpu::gles2::GLES2Interface* gl = context_3d.gl; DCHECK(gl); - gfx::Size ya_tex_size = video_frame->coded_size(); - gfx::Size uv_tex_size((ya_tex_size.width() + 1) / 2, - (ya_tex_size.height() + 1) / 2); - - GrGLTextureInfo source_textures[] = {{0, 0}, {0, 0}, {0, 0}}; - GLint min_mag_filter[][2] = {{0, 0}, {0, 0}, {0, 0}}; // TODO(bsalomon): Use GL_RGB8 once Skia supports it. // skbug.com/7533 GrGLenum skia_texture_format = @@ -135,16 +146,17 @@ << "Unsupported texture target " << std::hex << std::showbase << mailbox_holder.texture_target; gl->WaitSyncTokenCHROMIUM(mailbox_holder.sync_token.GetConstData()); - source_textures[i].fID = + yuv_textures_info[i].texture.fID = gl->CreateAndConsumeTextureCHROMIUM(mailbox_holder.mailbox.name); - source_textures[i].fTarget = mailbox_holder.texture_target; - source_textures[i].fFormat = skia_texture_format; + yuv_textures_info[i].texture.fTarget = mailbox_holder.texture_target; + yuv_textures_info[i].texture.fFormat = skia_texture_format; - gl->BindTexture(mailbox_holder.texture_target, source_textures[i].fID); + gl->BindTexture(mailbox_holder.texture_target, + yuv_textures_info[i].texture.fID); gl->GetTexParameteriv(mailbox_holder.texture_target, GL_TEXTURE_MIN_FILTER, - &min_mag_filter[i][0]); + &yuv_textures_info[i].minFilter); gl->GetTexParameteriv(mailbox_holder.texture_target, GL_TEXTURE_MAG_FILTER, - &min_mag_filter[i][1]); + &yuv_textures_info[i].magFilter); // TODO(dcastagna): avoid this copy once Skia supports native textures // with a GL_TEXTURE_RECTANGLE_ARB texture target. // crbug.com/505026 @@ -153,37 +165,113 @@ gl->GenTextures(1, &texture_copy); DCHECK(texture_copy); gl->BindTexture(GL_TEXTURE_2D, texture_copy); - gl->CopyTextureCHROMIUM(source_textures[i].fID, 0, GL_TEXTURE_2D, - texture_copy, 0, GL_RGB, GL_UNSIGNED_BYTE, false, - true, false); + gl->CopyTextureCHROMIUM(yuv_textures_info[i].texture.fID, 0, + GL_TEXTURE_2D, texture_copy, 0, GL_RGB, + GL_UNSIGNED_BYTE, false, true, false); - gl->DeleteTextures(1, &source_textures[i].fID); - source_textures[i].fID = texture_copy; - source_textures[i].fTarget = GL_TEXTURE_2D; + gl->DeleteTextures(1, &yuv_textures_info[i].texture.fID); + yuv_textures_info[i].texture.fID = texture_copy; + yuv_textures_info[i].texture.fTarget = GL_TEXTURE_2D; } } - GrBackendTexture textures[3] = { + + return yuv_textures_info; +} + +void DeleteYUVTextures(const VideoFrame* video_frame, + const Context3D& context_3d, + const YUVTexturesInfo& yuv_textures_info) { + gpu::gles2::GLES2Interface* gl = context_3d.gl; + DCHECK(gl); + + for (size_t i = 0; i < video_frame->NumTextures(); ++i) { + gl->BindTexture(yuv_textures_info[i].texture.fTarget, + yuv_textures_info[i].texture.fID); + gl->TexParameteri(yuv_textures_info[i].texture.fTarget, + GL_TEXTURE_MIN_FILTER, yuv_textures_info[i].minFilter); + gl->TexParameteri(yuv_textures_info[i].texture.fTarget, + GL_TEXTURE_MAG_FILTER, yuv_textures_info[i].magFilter); + gl->DeleteTextures(1, &yuv_textures_info[i].texture.fID); + } +} + +sk_sp<SkImage> NewSkImageFromVideoFrameYUVTextures( + const VideoFrame* video_frame, + const Context3D& context_3d) { + DCHECK(video_frame->HasTextures()); + // TODO: We should compare the DCHECK vs when UpdateLastImage calls this + // function. (crbug.com/674185) + DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || + video_frame->format() == PIXEL_FORMAT_NV12); + + gfx::Size ya_tex_size = video_frame->coded_size(); + gfx::Size uv_tex_size((ya_tex_size.width() + 1) / 2, + (ya_tex_size.height() + 1) / 2); + + YUVTexturesInfo yuv_textures_info = + GetYUVTexturesInfo(video_frame, context_3d); + + GrBackendTexture yuv_textures[3] = { GrBackendTexture(ya_tex_size.width(), ya_tex_size.height(), - GrMipMapped::kNo, source_textures[0]), + GrMipMapped::kNo, yuv_textures_info[0].texture), GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), - GrMipMapped::kNo, source_textures[1]), + GrMipMapped::kNo, yuv_textures_info[1].texture), GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), - GrMipMapped::kNo, source_textures[2]), + GrMipMapped::kNo, yuv_textures_info[2].texture), }; sk_sp<SkImage> img = YUVGrBackendTexturesToSkImage( context_3d.gr_context, video_frame->ColorSpace(), video_frame->format(), - textures); + yuv_textures); - for (size_t i = 0; i < video_frame->NumTextures(); ++i) { - gl->BindTexture(source_textures[i].fTarget, source_textures[i].fID); - gl->TexParameteri(source_textures[i].fTarget, GL_TEXTURE_MIN_FILTER, - min_mag_filter[i][0]); - gl->TexParameteri(source_textures[i].fTarget, GL_TEXTURE_MAG_FILTER, - min_mag_filter[i][1]); + DeleteYUVTextures(video_frame, context_3d, yuv_textures_info); - gl->DeleteTextures(1, &source_textures[i].fID); - } + return img; +} + +sk_sp<SkImage> NewSkImageFromVideoFrameYUVTexturesWithExternalBackend( + const VideoFrame* video_frame, + const Context3D& context_3d, + unsigned int texture_target, + unsigned int texture_id) { + DCHECK(video_frame->HasTextures()); + // TODO: We should compare the DCHECK vs when UpdateLastImage calls this + // function. (https://crbug.com/674185) + DCHECK(video_frame->format() == PIXEL_FORMAT_I420 || + video_frame->format() == PIXEL_FORMAT_NV12); + + gfx::Size ya_tex_size = video_frame->coded_size(); + gfx::Size uv_tex_size((ya_tex_size.width() + 1) / 2, + (ya_tex_size.height() + 1) / 2); + + GrGLTextureInfo backend_texture{}; + + YUVTexturesInfo yuv_textures_info = + GetYUVTexturesInfo(video_frame, context_3d); + + GrBackendTexture yuv_textures[3] = { + GrBackendTexture(ya_tex_size.width(), ya_tex_size.height(), + GrMipMapped::kNo, yuv_textures_info[0].texture), + GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), + GrMipMapped::kNo, yuv_textures_info[1].texture), + GrBackendTexture(uv_tex_size.width(), uv_tex_size.height(), + GrMipMapped::kNo, yuv_textures_info[2].texture), + }; + backend_texture.fID = texture_id; + backend_texture.fTarget = texture_target; + backend_texture.fFormat = GL_RGBA8; + GrBackendTexture result_texture[1] = { + GrBackendTexture(video_frame->coded_size().width(), + video_frame->coded_size().height(), GrMipMapped::kNo, + backend_texture), + }; + + sk_sp<SkImage> img = YUVGrBackendTexturesToSkImage( + context_3d.gr_context, video_frame->ColorSpace(), video_frame->format(), + yuv_textures, result_texture); + + DeleteYUVTextures(video_frame, context_3d, yuv_textures_info); + return img; } @@ -1063,6 +1151,79 @@ return true; } +bool PaintCanvasVideoRenderer::PrepareVideoFrameForWebGL( + const Context3D& context_3d, + gpu::gles2::GLES2Interface* destination_gl, + const scoped_refptr<VideoFrame>& video_frame, + unsigned int target, + unsigned int texture) { + DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK(video_frame); + DCHECK(video_frame->HasTextures()); + if (video_frame->NumTextures() == 1) { + if (target == GL_TEXTURE_EXTERNAL_OES) { + // We don't support Android now. + // TODO(crbug.com/776222): support Android. + return false; + } + // We don't support sharing single video frame texture now. + // TODO(crbug.com/776222): deal with single video frame texture. + return false; + } + + if (!context_3d.gr_context) + return false; + + // Take webgl video texture as 2D texture. Setting it as external render + // target backend for skia. + destination_gl->BindTexture(target, texture); + destination_gl->TexImage2D(target, 0, GL_RGBA, + video_frame->coded_size().width(), + video_frame->coded_size().height(), 0, GL_RGBA, + GL_UNSIGNED_BYTE, nullptr); + + gpu::gles2::GLES2Interface* source_gl = context_3d.gl; + gpu::MailboxHolder mailbox_holder; + mailbox_holder.texture_target = target; + destination_gl->ProduceTextureDirectCHROMIUM(texture, + mailbox_holder.mailbox.name); + + destination_gl->GenUnverifiedSyncTokenCHROMIUM( + mailbox_holder.sync_token.GetData()); + + source_gl->WaitSyncTokenCHROMIUM(mailbox_holder.sync_token.GetConstData()); + + uint32_t shared_texture = + source_gl->CreateAndConsumeTextureCHROMIUM(mailbox_holder.mailbox.name); + + if (!PrepareVideoFrame(video_frame, context_3d, target, shared_texture)) { + return false; + } + + // Warning : This approach has failed previously. The history is + // https://chromium-review.googlesource.com/c/chromium/src/+/1251321. + // It failed to execute texture copy on mac. + // The possible solution is here: + // https://chromium-review.googlesource.com/c/chromium/src/+/1258212 + // make a copy of the video texture in that case so that the copy + // could be done in |destination_gl|. + source_gl->ProduceTextureDirectCHROMIUM(shared_texture, + mailbox_holder.mailbox.name); + + // Wait for mailbox creation on canvas context before consuming it and + // copying from it on the consumer context. + source_gl->GenUnverifiedSyncTokenCHROMIUM( + mailbox_holder.sync_token.GetData()); + + destination_gl->WaitSyncTokenCHROMIUM( + mailbox_holder.sync_token.GetConstData()); + + SyncTokenClientImpl client(source_gl); + video_frame->UpdateReleaseSyncToken(&client); + + return true; +} + bool PaintCanvasVideoRenderer::CopyVideoFrameYUVDataToGLTexture( const Context3D& context_3d, gpu::gles2::GLES2Interface* destination_gl, @@ -1301,6 +1462,48 @@ return true; } +bool PaintCanvasVideoRenderer::PrepareVideoFrame( + const scoped_refptr<VideoFrame>& video_frame, + const Context3D& context_3d, + unsigned int textureTarget, + unsigned int texture) { + auto paint_image_builder = + cc::PaintImageBuilder::WithDefault() + .set_id(renderer_stable_id_) + .set_animation_type(cc::PaintImage::AnimationType::VIDEO) + .set_completion_state(cc::PaintImage::CompletionState::DONE); + + // Generate a new image. + // Note: Skia will hold onto |video_frame| via |video_generator| only when + // |video_frame| is software. + // Holding |video_frame| longer than this call when using GPUVideoDecoder + // could cause problems since the pool of VideoFrames has a fixed size. + if (video_frame->HasTextures()) { + DCHECK(context_3d.gr_context); + DCHECK(context_3d.gl); + if (video_frame->NumTextures() > 1) { + paint_image_builder.set_image( + NewSkImageFromVideoFrameYUVTexturesWithExternalBackend( + video_frame.get(), context_3d, textureTarget, texture), + cc::PaintImage::GetNextContentId()); + } else { + // We don't support Android now. + return false; + } + } else { + paint_image_builder.set_paint_image_generator( + sk_make_sp<VideoImageGenerator>(video_frame)); + } + last_image_ = paint_image_builder.TakePaintImage(); + CorrectLastImageDimensions(gfx::RectToSkIRect(video_frame->visible_rect())); + if (!last_image_) // Couldn't create the SkImage. + return false; + last_id_ = video_frame->unique_id(); + last_image_deleting_timer_.Reset(); + DCHECK(!!last_image_); + return true; +} + void PaintCanvasVideoRenderer::CorrectLastImageDimensions( const SkIRect& visible_rect) { last_image_dimensions_for_testing_ = visible_rect.size();
diff --git a/media/renderers/paint_canvas_video_renderer.h b/media/renderers/paint_canvas_video_renderer.h index d4752f3..795a992c 100644 --- a/media/renderers/paint_canvas_video_renderer.h +++ b/media/renderers/paint_canvas_video_renderer.h
@@ -104,6 +104,12 @@ bool premultiply_alpha, bool flip_y); + bool PrepareVideoFrameForWebGL(const Context3D& context_3d, + gpu::gles2::GLES2Interface* gl, + const scoped_refptr<VideoFrame>& video_frame, + unsigned int target, + unsigned int texture); + // Copy the CPU-side YUV contents of |video_frame| to texture |texture| in // context |destination_gl|. // |level|, |internal_format|, |type| specify target texture |texture|. @@ -181,6 +187,11 @@ void CorrectLastImageDimensions(const SkIRect& visible_rect); + bool PrepareVideoFrame(const scoped_refptr<VideoFrame>& video_frame, + const Context3D& context_3d, + unsigned int textureTarget, + unsigned int texture); + // Last image used to draw to the canvas. cc::PaintImage last_image_;
diff --git a/mojo/core/channel_mac.cc b/mojo/core/channel_mac.cc index b63ad651..1f51d2c1 100644 --- a/mojo/core/channel_mac.cc +++ b/mojo/core/channel_mac.cc
@@ -85,11 +85,20 @@ return; } + // If the channel is not fully established, queue pending messages. if (!handshake_done_) { pending_messages_.push_back(std::move(message)); return; } + // If messages are being queued, enqueue |message| and try to flush + // the queue. + if (send_buffer_contains_message_ || !pending_messages_.empty()) { + pending_messages_.push_back(std::move(message)); + SendPendingMessagesLocked(); + return; + } + SendMessageLocked(std::move(message)); } @@ -284,14 +293,40 @@ return true; } + void SendPendingMessages() { + base::AutoLock lock(write_lock_); + SendPendingMessagesLocked(); + } + void SendPendingMessagesLocked() { + // If a previous send failed due to the receiver's kernel message queue + // being full, attempt to send that failed message first. + if (send_buffer_contains_message_ && !reject_writes_) { + auto* header = + reinterpret_cast<mach_msg_header_t*>(send_buffer_.address()); + if (!MachMessageSendLocked(header)) { + // The send failed again. If the peer is still unable to receive, + // MachMessageSendLocked() will have arranged another attempt. If an + // error occurred, the channel will be shut down. + return; + } + } + + // Try and send any other pending messages that were queued. while (!pending_messages_.empty() && !reject_writes_) { - SendMessageLocked(std::move(pending_messages_.front())); + bool did_send = SendMessageLocked(std::move(pending_messages_.front())); + // If the message failed to send because the kernel message queue is + // full, the message will have been fully serialized and + // |send_buffer_contains_message_| will be set to true. The Mojo message + // object can be destroyed at this point. pending_messages_.pop_front(); + if (!did_send) + break; } } - void SendMessageLocked(MessagePtr message) { + bool SendMessageLocked(MessagePtr message) { + DCHECK(!send_buffer_contains_message_); base::BufferIterator<char> buffer( reinterpret_cast<char*>(send_buffer_.address()), send_buffer_.size()); @@ -351,7 +386,7 @@ if (kr != KERN_SUCCESS) { MACH_LOG(ERROR, kr) << "fileport_makeport"; OnWriteErrorLocked(Error::kDisconnected); - return; + return false; } descriptor->disposition = MACH_MSG_TYPE_MOVE_SEND; break; @@ -381,15 +416,35 @@ } header->msgh_size = round_msg(buffer.position()); + return MachMessageSendLocked(header); + } - kern_return_t kr = - mach_msg(header, MACH_SEND_MSG, header->msgh_size, 0, MACH_PORT_NULL, - MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + bool MachMessageSendLocked(mach_msg_header_t* header) { + kern_return_t kr = mach_msg(header, MACH_SEND_MSG | MACH_SEND_TIMEOUT, + header->msgh_size, 0, MACH_PORT_NULL, + /*timeout=*/0, MACH_PORT_NULL); if (kr != KERN_SUCCESS) { - MACH_LOG_IF(ERROR, kr != MACH_SEND_INVALID_DEST, kr) << "mach_msg send"; - mach_msg_destroy(header); - OnWriteErrorLocked(Error::kDisconnected); + if (kr == MACH_SEND_TIMED_OUT) { + // The kernel message queue for the peer's receive port is full, so the + // send timed out. Since the send buffer contains a fully serialized + // message, set a flag to indicate this condition and arrange to try + // sending it again. + send_buffer_contains_message_ = true; + io_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&ChannelMac::SendPendingMessages, this)); + } else { + // If the message failed to send for other reasons, destroy it and + // close the channel. + MACH_LOG_IF(ERROR, kr != MACH_SEND_INVALID_DEST, kr) << "mach_msg send"; + send_buffer_contains_message_ = false; + mach_msg_destroy(header); + OnWriteErrorLocked(Error::kDisconnected); + } + return false; } + + send_buffer_contains_message_ = false; + return true; } // base::MessageLoopCurrent::DestructionObserver: @@ -616,8 +671,13 @@ bool reject_writes_ = false; // IO buffer for sending Mach messages. base::mac::ScopedMachVM send_buffer_; - // When |handshake_done_| is false, messages are queued here. Once the - // handshake is complete, this queue is flushed and remains empty. + // If a message timed out during send in MachMessageSendLocked(), this will + // be true to indicate that |send_buffer_| contains a message that must + // be sent. If this is true, then other calls to Write() queue messages onto + // |pending_messages_|. + bool send_buffer_contains_message_ = false; + // When |handshake_done_| is false or |send_buffer_contains_message_| is true, + // calls to Write() will enqueue messages here. base::circular_deque<MessagePtr> pending_messages_; DISALLOW_COPY_AND_ASSIGN(ChannelMac);
diff --git a/mojo/core/channel_unittest.cc b/mojo/core/channel_unittest.cc index d5b37dc..14585e3 100644 --- a/mojo/core/channel_unittest.cc +++ b/mojo/core/channel_unittest.cc
@@ -4,6 +4,8 @@ #include "mojo/core/channel.h" +#include <atomic> + #include "base/bind.h" #include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" @@ -362,6 +364,127 @@ base::kNullProcessHandle)); } +class CountingChannelDelegate : public Channel::Delegate { + public: + explicit CountingChannelDelegate(base::OnceClosure on_final_message) + : on_final_message_(std::move(on_final_message)) {} + ~CountingChannelDelegate() override = default; + + void OnChannelMessage(const void* payload, + size_t payload_size, + std::vector<PlatformHandle> handles) override { + // If this is the special "final message", run the closure. + if (payload_size == 1) { + auto* payload_str = reinterpret_cast<const char*>(payload); + if (payload_str[0] == '!') { + std::move(on_final_message_).Run(); + return; + } + } + + ++message_count_; + } + + void OnChannelError(Channel::Error error) override { ++error_count_; } + + size_t message_count_ = 0; + size_t error_count_ = 0; + + private: + base::OnceClosure on_final_message_; +}; + +TEST(ChannelTest, PeerStressTest) { + constexpr size_t kLotsOfMessages = 1024; + + base::MessageLoop message_loop(base::MessageLoop::TYPE_IO); + base::RunLoop run_loop; + + // Both channels should receive all the messages that each is sent. When + // the count becomes 2 (indicating both channels have received the final + // message), quit the main test thread's run loop. + std::atomic_int count_channels_received_final_message(0); + auto quit_when_both_channels_received_final_message = base::BindRepeating( + [](std::atomic_int* count_channels_received_final_message, + base::OnceClosure quit_closure) { + if (++(*count_channels_received_final_message) == 2) { + std::move(quit_closure).Run(); + } + }, + base::Unretained(&count_channels_received_final_message), + run_loop.QuitClosure()); + + // Create a second IO thread for the peer channel. + base::Thread::Options thread_options; + thread_options.message_loop_type = base::MessageLoop::TYPE_IO; + base::Thread peer_thread("peer_b_io"); + peer_thread.StartWithOptions(thread_options); + + // Create two channels that run on separate threads. + PlatformChannel platform_channel; + + CountingChannelDelegate delegate_a( + quit_when_both_channels_received_final_message); + scoped_refptr<Channel> channel_a = Channel::Create( + &delegate_a, ConnectionParams(platform_channel.TakeLocalEndpoint()), + Channel::HandlePolicy::kRejectHandles, message_loop.task_runner()); + + CountingChannelDelegate delegate_b( + quit_when_both_channels_received_final_message); + scoped_refptr<Channel> channel_b = Channel::Create( + &delegate_b, ConnectionParams(platform_channel.TakeRemoteEndpoint()), + Channel::HandlePolicy::kRejectHandles, peer_thread.task_runner()); + + // Send a lot of messages, followed by a final terminating message. + auto send_lots_of_messages = [](scoped_refptr<Channel> channel) { + for (size_t i = 0; i < kLotsOfMessages; ++i) { + channel->Write(std::make_unique<Channel::Message>(0, 0)); + } + }; + auto send_final_message = [](scoped_refptr<Channel> channel) { + auto message = std::make_unique<Channel::Message>(1, 0); + auto* payload = static_cast<char*>(message->mutable_payload()); + payload[0] = '!'; + channel->Write(std::move(message)); + }; + + channel_a->Start(); + channel_b->Start(); + + send_lots_of_messages(channel_a); + send_lots_of_messages(channel_b); + + message_loop.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_lots_of_messages, channel_a)); + message_loop.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_lots_of_messages, channel_a)); + message_loop.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_final_message, channel_a)); + + peer_thread.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_lots_of_messages, channel_b)); + peer_thread.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_lots_of_messages, channel_b)); + peer_thread.task_runner()->PostTask( + FROM_HERE, base::BindOnce(send_final_message, channel_b)); + + // Run until quit_when_both_channels_received_final_message quits the loop. + run_loop.Run(); + + channel_a->ShutDown(); + channel_b->ShutDown(); + + peer_thread.StopSoon(); + + base::RunLoop().RunUntilIdle(); + + EXPECT_EQ(kLotsOfMessages * 3, delegate_a.message_count_); + EXPECT_EQ(kLotsOfMessages * 3, delegate_b.message_count_); + + EXPECT_EQ(0u, delegate_a.error_count_); + EXPECT_EQ(0u, delegate_b.error_count_); +} + } // namespace } // namespace core } // namespace mojo
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc index 6f989ff..b9744c8b 100644 --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc
@@ -1219,7 +1219,6 @@ ssl_info->connection_status = ssl_connection_status; ssl_info->client_cert_sent = false; - ssl_info->channel_id_sent = crypto_stream_->WasChannelIDSent(); ssl_info->handshake_type = SSLInfo::HANDSHAKE_FULL; ssl_info->pinning_failure_log = pinning_failure_log_; ssl_info->is_fatal_cert_error = is_fatal_cert_error_;
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc index 11b6c09f..6c0a8db 100644 --- a/net/quic/quic_chromium_client_session_test.cc +++ b/net/quic/quic_chromium_client_session_test.cc
@@ -72,26 +72,13 @@ const uint16_t kServerPort = 443; const size_t kMaxReadersPerQuicSession = 5; -// A subclass of QuicChromiumClientSession with GetSSLInfo overriden to allow -// forcing the value of SSLInfo::channel_id_sent to true. +// A subclass of QuicChromiumClientSession that allows OnPathDegrading to be +// mocked. class TestingQuicChromiumClientSession : public QuicChromiumClientSession { public: using QuicChromiumClientSession::QuicChromiumClientSession; - bool GetSSLInfo(SSLInfo* ssl_info) const override { - bool ret = QuicChromiumClientSession::GetSSLInfo(ssl_info); - if (ret) - ssl_info->channel_id_sent = - ssl_info->channel_id_sent || force_channel_id_sent_; - return ret; - } - - void OverrideChannelIDSent() { force_channel_id_sent_ = true; } - MOCK_METHOD0(OnPathDegrading, void()); - - private: - bool force_channel_id_sent_ = false; }; class QuicChromiumClientSessionTest @@ -1302,39 +1289,6 @@ session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED, SocketTag())); } -TEST_P(QuicChromiumClientSessionTest, ConnectionPooledWithTlsChannelId) { - MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; - std::unique_ptr<quic::QuicEncryptedPacket> settings_packet( - client_maker_.MakeInitialSettingsPacket(1, nullptr)); - MockWrite writes[] = { - MockWrite(ASYNC, settings_packet->data(), settings_packet->length(), 1)}; - socket_data_.reset(new SequencedSocketData(reads, writes)); - Initialize(); - // Load a cert that is valid for: - // www.example.org - // mail.example.org - // www.example.com - - ProofVerifyDetailsChromium details; - details.cert_verify_result.verified_cert = - ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); - ASSERT_TRUE(details.cert_verify_result.verified_cert.get()); - - CompleteCryptoHandshake(); - session_->OnProofVerifyDetailsAvailable(details); - QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); - session_->OverrideChannelIDSent(); - - EXPECT_TRUE( - session_->CanPool("www.example.org", PRIVACY_MODE_DISABLED, SocketTag())); - EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED, - SocketTag())); - EXPECT_FALSE(session_->CanPool("mail.example.com", PRIVACY_MODE_DISABLED, - SocketTag())); - EXPECT_FALSE( - session_->CanPool("mail.google.com", PRIVACY_MODE_DISABLED, SocketTag())); -} - TEST_P(QuicChromiumClientSessionTest, ConnectionNotPooledWithDifferentPin) { // Configure the TransportSecurityStateSource so that kPreloadedPKPHost will // have static PKP pins set. @@ -1371,7 +1325,6 @@ CompleteCryptoHandshake(); session_->OnProofVerifyDetailsAvailable(details); QuicChromiumClientSessionPeer::SetHostname(session_.get(), kNoPinsHost); - session_->OverrideChannelIDSent(); EXPECT_FALSE( session_->CanPool(kPreloadedPKPHost, PRIVACY_MODE_DISABLED, SocketTag())); @@ -1404,7 +1357,6 @@ CompleteCryptoHandshake(); session_->OnProofVerifyDetailsAvailable(details); QuicChromiumClientSessionPeer::SetHostname(session_.get(), "www.example.org"); - session_->OverrideChannelIDSent(); EXPECT_TRUE(session_->CanPool("mail.example.org", PRIVACY_MODE_DISABLED, SocketTag()));
diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc index 3868712..2542c0e 100644 --- a/net/quic/quic_http_stream.cc +++ b/net/quic/quic_http_stream.cc
@@ -199,17 +199,6 @@ CHECK(!callback.is_null()); CHECK(response); - // TODO(rch): remove this once we figure out why channel ID is not being - // sent when it should be. - HostPortPair origin = HostPortPair::FromURL(request_info_->url); - if (origin.Equals(HostPortPair("accounts.google.com", 443)) && - request_headers.HasHeader(HttpRequestHeaders::kCookie)) { - SSLInfo ssl_info; - GetSSLInfo(&ssl_info); - UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.CookieSentToAccountsOverChannelId", - ssl_info.channel_id_sent); - } - // In order to rendezvous with a push stream, the session still needs to be // available. Otherwise the stream needs to be available. if ((!found_promise_ && !stream_) || !quic_session()->IsConnected())
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc index 294f6aef9..a88cca7 100644 --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc
@@ -53,7 +53,6 @@ #include "net/spdy/spdy_log_util.h" #include "net/spdy/spdy_session_pool.h" #include "net/spdy/spdy_stream.h" -#include "net/ssl/channel_id_service.h" #include "net/ssl/ssl_cipher_suite_names.h" #include "net/ssl/ssl_connection_status_flags.h" #include "net/third_party/quiche/src/quic/core/http/spdy_utils.h" @@ -780,12 +779,6 @@ return false; } - if (ssl_info.channel_id_sent && - ChannelIDService::GetDomainForHost(new_hostname) != - ChannelIDService::GetDomainForHost(old_hostname)) { - return false; - } - if (!ssl_info.cert->VerifyNameMatch(new_hostname)) return false;
diff --git a/net/spdy/spdy_session_pool_unittest.cc b/net/spdy/spdy_session_pool_unittest.cc index 39d24c6..8601ac4 100644 --- a/net/spdy/spdy_session_pool_unittest.cc +++ b/net/spdy/spdy_session_pool_unittest.cc
@@ -737,14 +737,6 @@ RunIPPoolingDisabledTest(&ssl); } -// Verifies that an SSL connection with channel ID disables SPDY IP pooling. -TEST_F(SpdySessionPoolTest, IPPoolingChannelID) { - SSLSocketDataProvider ssl(ASYNC, OK); - ssl.ssl_info.channel_id_sent = true; - ssl.next_proto = kProtoHTTP2; - RunIPPoolingDisabledTest(&ssl); -} - // Construct a Pool with SpdySessions in various availability states. Simulate // an IP address change. Ensure sessions gracefully shut down. Regression test // for crbug.com/379469.
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc index f5b2fdc..05dd8a9 100644 --- a/net/spdy/spdy_session_unittest.cc +++ b/net/spdy/spdy_session_unittest.cc
@@ -2781,22 +2781,6 @@ EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.google.com")); } -TEST_F(SpdySessionTest, ConnectionPooledWithTlsChannelId) { - SequencedSocketData data; - session_deps_.socket_factory->AddSocketDataProvider(&data); - - ssl_.ssl_info.channel_id_sent = true; - AddSSLSocketData(); - - CreateNetworkSession(); - CreateSpdySession(); - - EXPECT_TRUE(session_->VerifyDomainAuthentication("www.example.org")); - EXPECT_TRUE(session_->VerifyDomainAuthentication("mail.example.org")); - EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.example.com")); - EXPECT_FALSE(session_->VerifyDomainAuthentication("mail.google.com")); -} - TEST_F(SpdySessionTest, CloseTwoStalledCreateStream) { // TODO(rtenneti): Define a helper class/methods and move the common code in // this file. @@ -6789,25 +6773,6 @@ "www.example.org", "mail.example.org")); } -TEST(CanPoolTest, CanNotPoolAcrossETLDsWithChannelID) { - // Load a cert that is valid for: - // www.example.org - // mail.example.org - // mail.example.com - - TransportSecurityState tss; - TestSSLConfigService ssl_config_service; - SSLInfo ssl_info; - ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), - "spdy_pooling.pem"); - ssl_info.channel_id_sent = true; - - EXPECT_TRUE(SpdySession::CanPool(&tss, ssl_info, ssl_config_service, - "www.example.org", "mail.example.org")); - EXPECT_FALSE(SpdySession::CanPool(&tss, ssl_info, ssl_config_service, - "www.example.org", "www.example.com")); -} - TEST(CanPoolTest, CanNotPoolWithBadPins) { TransportSecurityState tss; tss.EnableStaticPinsForTesting();
diff --git a/net/ssl/ssl_info.h b/net/ssl/ssl_info.h index d126ef1..f68ece8d 100644 --- a/net/ssl/ssl_info.h +++ b/net/ssl/ssl_info.h
@@ -98,9 +98,6 @@ // a Certificate message with no client certificate in it does not count. bool client_cert_sent = false; - // True if a channel ID was sent to the server. - bool channel_id_sent = false; - // True if data was received over early data on the server. This field is only // set for server sockets. bool early_data_received = false;
diff --git a/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java b/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java index 051b3f345..236ae63 100644 --- a/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java +++ b/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java
@@ -29,6 +29,10 @@ @GuardedBy("mLock") private boolean mUseHttps; + @GuardedBy("mLock") + @ServerCertificate + private int mCertificateType = ServerCertificate.CERT_OK; + @Override protected void finished(Description description) { super.finished(description); @@ -51,7 +55,7 @@ Context context = InstrumentationRegistry.getContext(); mServer = mUseHttps ? EmbeddedTestServer.createAndStartHTTPSServerWithPort( - context, ServerCertificate.CERT_OK, mServerPort) + context, mCertificateType, mServerPort) : EmbeddedTestServer.createAndStartServerWithPort(context, mServerPort); } catch (InterruptedException e) { throw new EmbeddedTestServer.EmbeddedTestServerFailure( @@ -86,4 +90,12 @@ mUseHttps = useHttps; } } + + /** Sets what type of certificate the server uses when running as an HTTPS server. */ + public void setCertificateType(@ServerCertificate int certificateType) { + synchronized (mLock) { + assert mServer == null; + mCertificateType = certificateType; + } + } }
diff --git a/remoting/test/BUILD.gn b/remoting/test/BUILD.gn index 93b5fbac..02f0f30 100644 --- a/remoting/test/BUILD.gn +++ b/remoting/test/BUILD.gn
@@ -12,6 +12,8 @@ "access_token_fetcher.h", "chromoting_test_driver_environment.cc", "chromoting_test_driver_environment.h", + "cli_util.cc", + "cli_util.h", "connection_setup_info.cc", "connection_setup_info.h", "connection_time_observer.cc", @@ -49,6 +51,8 @@ "scroll_frame_generator.h", "test_chromoting_client.cc", "test_chromoting_client.h", + "test_oauth_token_getter.cc", + "test_oauth_token_getter.h", "test_token_storage.cc", "test_token_storage.h", "test_video_renderer.cc", @@ -176,19 +180,16 @@ } } -# A binary for testing and fiddling the FTL signaling process. +# A binary for testing and fiddling FTL services. executable("ftl_services_playground") { testonly = true sources = [ "ftl_services_playground.cc", "ftl_services_playground.h", "ftl_services_playground_main.cc", - "test_oauth_token_factory.cc", - "test_oauth_token_factory.h", - "test_token_storage.cc", - "test_token_storage.h", ] deps = [ + ":test_support", "//google_apis", "//mojo/core/embedder", "//remoting/base",
diff --git a/remoting/test/cli_util.cc b/remoting/test/cli_util.cc new file mode 100644 index 0000000..6cdd81d --- /dev/null +++ b/remoting/test/cli_util.cc
@@ -0,0 +1,96 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/test/cli_util.h" + +#include <string.h> + +#include "base/command_line.h" +#include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" +#include "base/task/post_task.h" + +namespace { + +void PrintOption(int option_number, const std::string& option_name) { + printf(" %d. %s\n", option_number, option_name.c_str()); +} + +} // namespace + +namespace remoting { +namespace test { + +CommandOption::CommandOption() = default; +CommandOption::CommandOption(const CommandOption&) = default; +CommandOption::CommandOption(CommandOption&&) = default; +CommandOption::CommandOption( + const std::string name, + const base::RepeatingCallback<void(base::OnceClosure on_done)>& command) + : name(name), command(command) {} +CommandOption::~CommandOption() = default; +CommandOption& CommandOption::operator=(const CommandOption&) = default; +CommandOption& CommandOption::operator=(CommandOption&&) = default; + +void RunCommandOptionsLoop(const std::vector<CommandOption>& options) { + DCHECK_LT(0u, options.size()); + while (true) { + base::RunLoop run_loop; + + printf("\nOptions:\n"); + int print_option_number = 1; + for (const auto& option : options) { + PrintOption(print_option_number, option.name); + print_option_number++; + } + int quit_option_number = print_option_number; + PrintOption(quit_option_number, "Quit"); + + printf("\nYour choice [number]: "); + int choice = 0; + base::StringToInt(test::ReadString(), &choice); + if (choice < 1 || choice > quit_option_number) { + fprintf(stderr, "Unknown option\n"); + continue; + } + if (choice == quit_option_number) { + return; + } + auto& command = options[choice - 1].command; + command.Run(run_loop.QuitWhenIdleClosure()); + run_loop.Run(); + } +} + +std::string ReadString() { + const int kMaxLen = 1024; + std::string str(kMaxLen, 0); + char* result = fgets(&str[0], kMaxLen, stdin); + if (!result) + return std::string(); + size_t newline_index = str.find('\n'); + if (newline_index != std::string::npos) + str[newline_index] = '\0'; + str.resize(strlen(&str[0])); + return str; +} + +std::string ReadStringFromCommandLineOrStdin(const std::string& switch_name, + const std::string& read_prompt) { + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + if (command_line->HasSwitch(switch_name)) { + return command_line->GetSwitchValueASCII(switch_name); + } + printf("%s", read_prompt.c_str()); + return ReadString(); +} + +void WaitForEnterKey(base::OnceClosure on_done) { + base::PostTaskWithTraitsAndReply(FROM_HERE, {base::MayBlock()}, + base::BindOnce([]() { getchar(); }), + std::move(on_done)); +} + +} // namespace test +} // namespace remoting
diff --git a/remoting/test/cli_util.h b/remoting/test/cli_util.h new file mode 100644 index 0000000..e92b155 --- /dev/null +++ b/remoting/test/cli_util.h
@@ -0,0 +1,52 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_TEST_CLI_UTIL_H_ +#define REMOTING_TEST_CLI_UTIL_H_ + +#include <string> +#include <vector> + +#include "base/callback.h" + +namespace remoting { +namespace test { + +struct CommandOption { + CommandOption(); + CommandOption(const CommandOption&); + CommandOption(CommandOption&&); + CommandOption( + const std::string name, + const base::RepeatingCallback<void(base::OnceClosure on_done)>& command); + ~CommandOption(); + + CommandOption& operator=(const CommandOption&); + CommandOption& operator=(CommandOption&&); + + std::string name; + base::RepeatingCallback<void(base::OnceClosure on_done)> command; +}; + +// Shows a menu and keeps asking user to choose a command option. This will +// block until the user chooses "Quit" from the menu (which is added in addition +// to |options|). +void RunCommandOptionsLoop(const std::vector<CommandOption>& options); + +// Reads a newline-terminated string from stdin. +std::string ReadString(); + +// Read the value of |switch_name| from command line if it exists, otherwise +// read from stdin. +std::string ReadStringFromCommandLineOrStdin(const std::string& switch_name, + const std::string& read_prompt); + +// Wait for the user to press enter key on an anonymous sequence and calls +// |on_done| on current sequence once it is done. +void WaitForEnterKey(base::OnceClosure on_done); + +} // namespace test +} // namespace remoting + +#endif // REMOTING_TEST_CLI_UTIL_H_
diff --git a/remoting/test/fake_test_token_storage.cc b/remoting/test/fake_test_token_storage.cc index 4c1783a..5199cc7dd 100644 --- a/remoting/test/fake_test_token_storage.cc +++ b/remoting/test/fake_test_token_storage.cc
@@ -32,6 +32,16 @@ return refresh_token_write_succeeded_; } +std::string FakeTestTokenStorage::FetchUserEmail() { + NOTIMPLEMENTED(); + return ""; +} + +bool FakeTestTokenStorage::StoreUserEmail(const std::string& user_email) { + NOTIMPLEMENTED(); + return false; +} + std::string FakeTestTokenStorage::FetchAccessToken() { NOTIMPLEMENTED(); return "";
diff --git a/remoting/test/fake_test_token_storage.h b/remoting/test/fake_test_token_storage.h index f1a0deba7..b7763e9 100644 --- a/remoting/test/fake_test_token_storage.h +++ b/remoting/test/fake_test_token_storage.h
@@ -23,6 +23,8 @@ // TestTokenStorage interface. std::string FetchRefreshToken() override; bool StoreRefreshToken(const std::string& refresh_token) override; + std::string FetchUserEmail() override; + bool StoreUserEmail(const std::string& user_email) override; std::string FetchAccessToken() override; bool StoreAccessToken(const std::string& access_token) override; std::string FetchDeviceId() override;
diff --git a/remoting/test/ftl_services_playground.cc b/remoting/test/ftl_services_playground.cc index aa6bff7..8b7c2c1 100644 --- a/remoting/test/ftl_services_playground.cc +++ b/remoting/test/ftl_services_playground.cc
@@ -18,71 +18,28 @@ #include "base/logging.h" #include "base/path_service.h" #include "base/run_loop.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/stringprintf.h" #include "base/task/post_task.h" -#include "remoting/base/fake_oauth_token_getter.h" #include "remoting/base/oauth_token_getter_impl.h" #include "remoting/signaling/ftl_device_id_provider.h" #include "remoting/signaling/ftl_grpc_context.h" #include "remoting/signaling/ftl_services.grpc.pb.h" #include "remoting/signaling/grpc_support/grpc_async_unary_request.h" -#include "remoting/test/test_oauth_token_factory.h" +#include "remoting/test/cli_util.h" +#include "remoting/test/test_oauth_token_getter.h" #include "remoting/test/test_token_storage.h" namespace { constexpr char kSwitchNameHelp[] = "help"; -constexpr char kSwitchNameAuthCode[] = "code"; constexpr char kSwitchNameUsername[] = "username"; constexpr char kSwitchNameStoragePath[] = "storage-path"; constexpr char kSwitchNameNoAutoSignin[] = "no-auto-signin"; -// Reads a newline-terminated string from stdin. -std::string ReadString() { - const int kMaxLen = 1024; - std::string str(kMaxLen, 0); - char* result = fgets(&str[0], kMaxLen, stdin); - if (!result) - return std::string(); - size_t newline_index = str.find('\n'); - if (newline_index != std::string::npos) - str[newline_index] = '\0'; - str.resize(strlen(&str[0])); - return str; -} - -// Read the value of |switch_name| from command line if it exists, otherwise -// read from stdin. -std::string ReadStringFromCommandLineOrStdin(const std::string& switch_name, - const std::string& read_prompt) { - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switch_name)) { - return command_line->GetSwitchValueASCII(switch_name); - } - printf("%s", read_prompt.c_str()); - return ReadString(); -} - -// Wait for the user to press enter key on an anonymous thread and calls -// |on_done| once it is done. -void WaitForEnterKey(base::OnceClosure on_done) { - base::PostTaskWithTraitsAndReply(FROM_HERE, {base::MayBlock()}, - base::BindOnce([]() { getchar(); }), - std::move(on_done)); -} - bool NeedsManualSignin() { return base::CommandLine::ForCurrentProcess()->HasSwitch( kSwitchNameNoAutoSignin); } -struct CommandOption { - public: - std::string name; - base::RepeatingClosure callback; -}; - } // namespace namespace remoting { @@ -97,7 +54,7 @@ void FtlServicesPlayground::PrintHelp() { printf( - "Usage: %s [--no-auto-signin] [--code=<auth-code>] " + "Usage: %s [--no-auto-signin] [--auth-code=<auth-code>] " "[--storage-path=<storage-path>] [--username=<example@gmail.com>]\n", base::CommandLine::ForCurrentProcess() ->GetProgram() @@ -107,84 +64,46 @@ void FtlServicesPlayground::StartAndAuthenticate() { DCHECK(!storage_); - DCHECK(!token_getter_factory_); DCHECK(!token_getter_); DCHECK(!executor_); - token_getter_factory_ = std::make_unique<TestOAuthTokenGetterFactory>(); - base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); std::string username = cmd_line->GetSwitchValueASCII(kSwitchNameUsername); base::FilePath storage_path = cmd_line->GetSwitchValuePath(kSwitchNameStoragePath); storage_ = test::TestTokenStorage::OnDisk(username, storage_path); - std::string access_token = storage_->FetchAccessToken(); + token_getter_ = std::make_unique<test::TestOAuthTokenGetter>(storage_.get()); + base::RunLoop run_loop; - if (access_token.empty()) { - AuthenticateAndResetServices(run_loop.QuitClosure()); - } else { - VLOG(0) << "Reusing access token: " << access_token; - token_getter_ = std::make_unique<FakeOAuthTokenGetter>( - OAuthTokenGetter::Status::SUCCESS, "fake_email@gmail.com", - access_token); - ResetServices(run_loop.QuitClosure()); - } + token_getter_->Initialize( + base::BindOnce(&FtlServicesPlayground::ResetServices, + weak_factory_.GetWeakPtr(), run_loop.QuitClosure())); run_loop.Run(); StartLoop(); } void FtlServicesPlayground::StartLoop() { - while (true) { - base::RunLoop run_loop; - std::vector<CommandOption> options{ - {"GetIceServer", - base::BindRepeating(&FtlServicesPlayground::GetIceServer, - weak_factory_.GetWeakPtr(), - run_loop.QuitClosure())}, - {"PullMessages", - base::BindRepeating(&FtlServicesPlayground::PullMessages, - weak_factory_.GetWeakPtr(), - run_loop.QuitClosure())}, - {"ReceiveMessages", - base::BindRepeating(&FtlServicesPlayground::StartReceivingMessages, - weak_factory_.GetWeakPtr(), - run_loop.QuitWhenIdleClosure())}, - {"SendMessage", base::BindRepeating(&FtlServicesPlayground::SendMessage, - weak_factory_.GetWeakPtr(), - run_loop.QuitClosure())}, - {"Quit", base::NullCallback()}}; + std::vector<test::CommandOption> options{ + {"GetIceServer", base::BindRepeating(&FtlServicesPlayground::GetIceServer, + weak_factory_.GetWeakPtr())}, + {"PullMessages", base::BindRepeating(&FtlServicesPlayground::PullMessages, + weak_factory_.GetWeakPtr())}, + {"ReceiveMessages", + base::BindRepeating(&FtlServicesPlayground::StartReceivingMessages, + weak_factory_.GetWeakPtr())}, + {"SendMessage", base::BindRepeating(&FtlServicesPlayground::SendMessage, + weak_factory_.GetWeakPtr())}}; - if (NeedsManualSignin()) { - options.insert( - options.begin(), - {"SignInGaia", base::BindRepeating(&FtlServicesPlayground::SignInGaia, - weak_factory_.GetWeakPtr(), - run_loop.QuitClosure())}); - } - - printf("\nOptions:\n"); - int print_option_number = 1; - for (const auto& option : options) { - printf(" %d. %s\n", print_option_number, option.name.c_str()); - print_option_number++; - } - printf("\nYour choice [number]: "); - int choice = 0; - base::StringToInt(ReadString(), &choice); - if (choice < 1 || static_cast<size_t>(choice) > options.size()) { - fprintf(stderr, "Unknown option\n"); - continue; - } - auto& callback = options[choice - 1].callback; - if (callback.is_null()) { - // Quit - return; - } - callback.Run(); - run_loop.Run(); + if (NeedsManualSignin()) { + options.insert( + options.begin(), + {"SignInGaia", base::BindRepeating(&FtlServicesPlayground::SignInGaia, + weak_factory_.GetWeakPtr())}); } + + test::RunCommandOptionsLoop(options); } void FtlServicesPlayground::ResetServices(base::OnceClosure on_done) { @@ -209,44 +128,6 @@ } } -void FtlServicesPlayground::AuthenticateAndResetServices( - base::OnceClosure on_done) { - static const std::string read_auth_code_prompt = base::StringPrintf( - "Please authenticate at:\n\n" - " %s\n\n" - "Enter the auth code: ", - TestOAuthTokenGetterFactory::GetAuthorizationCodeUri().c_str()); - std::string auth_code = ReadStringFromCommandLineOrStdin( - kSwitchNameAuthCode, read_auth_code_prompt); - - // Make sure we don't try to reuse an auth code. - base::CommandLine::ForCurrentProcess()->RemoveSwitch(kSwitchNameAuthCode); - - // We can't get back the refresh token since we have first-party scope, so - // we are not trying to store it. - token_getter_ = token_getter_factory_->CreateFromIntermediateCredentials( - auth_code, - base::DoNothing::Repeatedly<const std::string&, const std::string&>()); - - // Get the access token so that we can reuse it for next time. - base::OnceClosure on_access_token_done = - base::BindOnce(&FtlServicesPlayground::ResetServices, - weak_factory_.GetWeakPtr(), std::move(on_done)); - token_getter_->CallWithToken(base::BindOnce( - &FtlServicesPlayground::OnAccessToken, weak_factory_.GetWeakPtr(), - std::move(on_access_token_done))); -} - -void FtlServicesPlayground::OnAccessToken(base::OnceClosure on_done, - OAuthTokenGetter::Status status, - const std::string& user_email, - const std::string& access_token) { - DCHECK(status == OAuthTokenGetter::Status::SUCCESS); - VLOG(0) << "Received access_token: " << access_token; - storage_->StoreAccessToken(access_token); - std::move(on_done).Run(); -} - void FtlServicesPlayground::GetIceServer(base::OnceClosure on_done) { DCHECK(peer_to_peer_stub_); VLOG(0) << "Running GetIceServer..."; @@ -334,10 +215,10 @@ VLOG(0) << "Running SendMessage..."; printf("Receiver ID: "); - std::string receiver_id = ReadString(); + std::string receiver_id = test::ReadString(); printf("Receiver registration ID (base64, optional): "); - std::string registration_id_base64 = ReadString(); + std::string registration_id_base64 = test::ReadString(); std::string registration_id; bool success = base::Base64Decode(registration_id_base64, ®istration_id); @@ -359,7 +240,7 @@ } printf("Message (enter nothing to quit): "); - std::string message = ReadString(); + std::string message = test::ReadString(); if (message.empty()) { std::move(on_done).Run(); @@ -424,9 +305,9 @@ return; } printf("Started receiving messages. Press enter to stop streaming...\n"); - WaitForEnterKey(base::BindOnce(&FtlServicesPlayground::StopReceivingMessages, - weak_factory_.GetWeakPtr(), - std::move(on_done))); + test::WaitForEnterKey( + base::BindOnce(&FtlServicesPlayground::StopReceivingMessages, + weak_factory_.GetWeakPtr(), std::move(on_done))); } void FtlServicesPlayground::HandleGrpcStatusError(base::OnceClosure on_done, @@ -438,7 +319,7 @@ "Request is unauthenticated. You should run SignInGaia first if " "you haven't done so, otherwise your OAuth token might be expired. \n" "Request for new OAuth token? [y/N]: "); - std::string result = ReadString(); + std::string result = test::ReadString(); if (result != "y" && result != "Y") { std::move(on_done).Run(); return; @@ -446,7 +327,9 @@ } VLOG(0) << "Grpc request failed to authenticate. " << "Trying to reauthenticate..."; - AuthenticateAndResetServices(std::move(on_done)); + token_getter_->ResetWithAuthenticationFlow( + base::BindOnce(&FtlServicesPlayground::ResetServices, + weak_factory_.GetWeakPtr(), std::move(on_done))); return; }
diff --git a/remoting/test/ftl_services_playground.h b/remoting/test/ftl_services_playground.h index d37c598..dd3634a 100644 --- a/remoting/test/ftl_services_playground.h +++ b/remoting/test/ftl_services_playground.h
@@ -19,10 +19,11 @@ namespace remoting { namespace test { -class TestTokenStorage; -} // namespace test -class TestOAuthTokenGetterFactory; +class TestOAuthTokenGetter; +class TestTokenStorage; + +} // namespace test class FtlServicesPlayground { public: @@ -41,11 +42,6 @@ void StartLoop(); void ResetServices(base::OnceClosure on_done); - void AuthenticateAndResetServices(base::OnceClosure on_done); - void OnAccessToken(base::OnceClosure on_done, - OAuthTokenGetter::Status status, - const std::string& user_email, - const std::string& access_token); void GetIceServer(base::OnceClosure on_done); void OnGetIceServerResponse(base::OnceClosure on_done, @@ -77,8 +73,7 @@ const grpc::Status& status); std::unique_ptr<test::TestTokenStorage> storage_; - std::unique_ptr<TestOAuthTokenGetterFactory> token_getter_factory_; - std::unique_ptr<OAuthTokenGetter> token_getter_; + std::unique_ptr<test::TestOAuthTokenGetter> token_getter_; std::unique_ptr<GrpcAuthenticatedExecutor> executor_; std::unique_ptr<FtlRegistrationManager> registration_manager_;
diff --git a/remoting/test/test_oauth_token_factory.cc b/remoting/test/test_oauth_token_factory.cc deleted file mode 100644 index c7253590..0000000 --- a/remoting/test/test_oauth_token_factory.cc +++ /dev/null
@@ -1,79 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "remoting/test/test_oauth_token_factory.h" - -#include <utility> - -#include "base/strings/stringprintf.h" -#include "base/threading/thread_task_runner_handle.h" -#include "google_apis/google_api_keys.h" -#include "net/base/escape.h" -#include "remoting/base/oauth_token_getter_impl.h" -#include "remoting/base/url_request_context_getter.h" -#include "services/network/public/cpp/shared_url_loader_factory.h" -#include "services/network/transitional_url_loader_factory_owner.h" - -namespace remoting { - -namespace { - -constexpr char kChromotingAuthScopeValues[] = - "https://www.googleapis.com/auth/chromoting " - "https://www.googleapis.com/auth/googletalk " - "https://www.googleapis.com/auth/userinfo.email " - "https://www.googleapis.com/auth/tachyon"; - -constexpr char kOauthRedirectUrl[] = - "https://chromoting-oauth.talkgadget." - "google.com/talkgadget/oauth/chrome-remote-desktop/dev"; - -} // namespace - -TestOAuthTokenGetterFactory::TestOAuthTokenGetterFactory() { - auto url_request_context_getter = - base::MakeRefCounted<URLRequestContextGetter>( - base::ThreadTaskRunnerHandle::Get()); - url_loader_factory_owner_ = - std::make_unique<network::TransitionalURLLoaderFactoryOwner>( - url_request_context_getter); -} - -TestOAuthTokenGetterFactory::~TestOAuthTokenGetterFactory() = default; - -// static -std::string TestOAuthTokenGetterFactory::GetAuthorizationCodeUri() { - // Replace space characters with a '+' sign when formatting. - bool use_plus = true; - return base::StringPrintf( - "https://accounts.google.com/o/oauth2/auth" - "?scope=%s" - "&redirect_uri=https://chromoting-oauth.talkgadget.google.com/" - "talkgadget/oauth/chrome-remote-desktop/dev" - "&response_type=code" - "&client_id=%s" - "&access_type=offline", - net::EscapeUrlEncodedData(kChromotingAuthScopeValues, use_plus).c_str(), - net::EscapeUrlEncodedData( - google_apis::GetOAuth2ClientID(google_apis::CLIENT_REMOTING), - use_plus) - .c_str()); -} - -std::unique_ptr<OAuthTokenGetter> -TestOAuthTokenGetterFactory::CreateFromIntermediateCredentials( - const std::string& auth_code, - const OAuthTokenGetter::CredentialsUpdatedCallback& on_credentials_update) { - auto oauth_credentials = - std::make_unique<OAuthTokenGetter::OAuthIntermediateCredentials>( - auth_code, /* is_service_account */ false); - oauth_credentials->oauth_redirect_uri = kOauthRedirectUrl; - - return std::make_unique<OAuthTokenGetterImpl>( - std::move(oauth_credentials), on_credentials_update, - url_loader_factory_owner_->GetURLLoaderFactory(), - /* auto_refresh */ true); -} - -} // namespace remoting
diff --git a/remoting/test/test_oauth_token_factory.h b/remoting/test/test_oauth_token_factory.h deleted file mode 100644 index 9e081b4..0000000 --- a/remoting/test/test_oauth_token_factory.h +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef REMOTING_TEST_TEST_OAUTH_TOKEN_FACTORY_H_ -#define REMOTING_TEST_TEST_OAUTH_TOKEN_FACTORY_H_ - -#include <memory> -#include <string> - -#include "base/macros.h" -#include "remoting/base/oauth_token_getter.h" - -namespace network { -class TransitionalURLLoaderFactoryOwner; -} // namespace network - -namespace remoting { - -// The factory object must outlive all OAuthTokenGetters it creates. -class TestOAuthTokenGetterFactory { - public: - TestOAuthTokenGetterFactory(); - ~TestOAuthTokenGetterFactory(); - - static std::string GetAuthorizationCodeUri(); - - std::unique_ptr<OAuthTokenGetter> CreateFromIntermediateCredentials( - const std::string& auth_code, - const OAuthTokenGetter::CredentialsUpdatedCallback& - on_credentials_update); - - private: - std::unique_ptr<network::TransitionalURLLoaderFactoryOwner> - url_loader_factory_owner_; - DISALLOW_COPY_AND_ASSIGN(TestOAuthTokenGetterFactory); -}; - -} // namespace remoting - -#endif // REMOTING_TEST_TEST_OAUTH_TOKEN_FACTORY_H_
diff --git a/remoting/test/test_oauth_token_getter.cc b/remoting/test/test_oauth_token_getter.cc new file mode 100644 index 0000000..05ce6a3 --- /dev/null +++ b/remoting/test/test_oauth_token_getter.cc
@@ -0,0 +1,154 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/test/test_oauth_token_getter.h" + +#include <utility> + +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "base/strings/stringprintf.h" +#include "base/threading/thread_task_runner_handle.h" +#include "google_apis/google_api_keys.h" +#include "net/base/escape.h" +#include "remoting/base/fake_oauth_token_getter.h" +#include "remoting/base/oauth_token_getter_impl.h" +#include "remoting/base/url_request_context_getter.h" +#include "remoting/test/cli_util.h" +#include "remoting/test/test_token_storage.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" +#include "services/network/transitional_url_loader_factory_owner.h" + +namespace remoting { +namespace test { + +namespace { + +constexpr char kChromotingAuthScopeValues[] = + "https://www.googleapis.com/auth/chromoting " + "https://www.googleapis.com/auth/googletalk " + "https://www.googleapis.com/auth/userinfo.email " + "https://www.googleapis.com/auth/tachyon"; + +constexpr char kOauthRedirectUrl[] = + "https://chromoting-oauth.talkgadget." + "google.com/talkgadget/oauth/chrome-remote-desktop/dev"; + +std::string GetAuthorizationCodeUri() { + // Replace space characters with a '+' sign when formatting. + bool use_plus = true; + return base::StringPrintf( + "https://accounts.google.com/o/oauth2/auth" + "?scope=%s" + "&redirect_uri=https://chromoting-oauth.talkgadget.google.com/" + "talkgadget/oauth/chrome-remote-desktop/dev" + "&response_type=code" + "&client_id=%s" + "&access_type=offline", + net::EscapeUrlEncodedData(kChromotingAuthScopeValues, use_plus).c_str(), + net::EscapeUrlEncodedData( + google_apis::GetOAuth2ClientID(google_apis::CLIENT_REMOTING), + use_plus) + .c_str()); +} + +} // namespace + +constexpr char TestOAuthTokenGetter::kSwitchNameAuthCode[]; + +TestOAuthTokenGetter::TestOAuthTokenGetter(TestTokenStorage* token_storage) + : weak_factory_(this) { + DCHECK(token_storage); + token_storage_ = token_storage; + auto url_request_context_getter = + base::MakeRefCounted<URLRequestContextGetter>( + base::ThreadTaskRunnerHandle::Get()); + url_loader_factory_owner_ = + std::make_unique<network::TransitionalURLLoaderFactoryOwner>( + url_request_context_getter); +} + +TestOAuthTokenGetter::~TestOAuthTokenGetter() = default; + +void TestOAuthTokenGetter::Initialize(base::OnceClosure on_done) { + std::string user_email = token_storage_->FetchUserEmail(); + std::string access_token = token_storage_->FetchAccessToken(); + if (user_email.empty() || access_token.empty()) { + ResetWithAuthenticationFlow(std::move(on_done)); + return; + } + VLOG(0) << "Reusing user_email: " << user_email << ", " + << "access_token: " << access_token; + token_getter_ = std::make_unique<FakeOAuthTokenGetter>( + OAuthTokenGetter::Status::SUCCESS, user_email, access_token); + std::move(on_done).Run(); +} + +void TestOAuthTokenGetter::ResetWithAuthenticationFlow( + base::OnceClosure on_done) { + static const std::string read_auth_code_prompt = base::StringPrintf( + "Please authenticate at:\n\n" + " %s\n\n" + "Enter the auth code: ", + GetAuthorizationCodeUri().c_str()); + std::string auth_code = test::ReadStringFromCommandLineOrStdin( + kSwitchNameAuthCode, read_auth_code_prompt); + + // Make sure we don't try to reuse an auth code. + base::CommandLine::ForCurrentProcess()->RemoveSwitch(kSwitchNameAuthCode); + + // We can't get back the refresh token since we have first-party scope, so + // we are not trying to store it. + token_getter_ = CreateFromIntermediateCredentials( + auth_code, + base::DoNothing::Repeatedly<const std::string&, const std::string&>()); + + // Get the access token so that we can reuse it for next time. + token_getter_->CallWithToken( + base::BindOnce(&TestOAuthTokenGetter::OnAccessToken, + weak_factory_.GetWeakPtr(), std::move(on_done))); +} + +void TestOAuthTokenGetter::CallWithToken(TokenCallback on_access_token) { + token_getter_->CallWithToken(std::move(on_access_token)); +} + +void TestOAuthTokenGetter::InvalidateCache() { + ResetWithAuthenticationFlow(base::DoNothing()); +} + +std::unique_ptr<OAuthTokenGetter> +TestOAuthTokenGetter::CreateFromIntermediateCredentials( + const std::string& auth_code, + const OAuthTokenGetter::CredentialsUpdatedCallback& on_credentials_update) { + auto oauth_credentials = + std::make_unique<OAuthTokenGetter::OAuthIntermediateCredentials>( + auth_code, /* is_service_account */ false); + oauth_credentials->oauth_redirect_uri = kOauthRedirectUrl; + + return std::make_unique<OAuthTokenGetterImpl>( + std::move(oauth_credentials), on_credentials_update, + url_loader_factory_owner_->GetURLLoaderFactory(), + /* auto_refresh */ true); +} + +void TestOAuthTokenGetter::OnAccessToken(base::OnceClosure on_done, + OAuthTokenGetter::Status status, + const std::string& user_email, + const std::string& access_token) { + if (status != OAuthTokenGetter::Status::SUCCESS) { + fprintf(stderr, + "Failed to authenticate. Please check if your access token is " + "correct.\n"); + ResetWithAuthenticationFlow(std::move(on_done)); + return; + } + VLOG(0) << "Received access_token: " << access_token; + token_storage_->StoreUserEmail(user_email); + token_storage_->StoreAccessToken(access_token); + std::move(on_done).Run(); +} + +} // namespace test +} // namespace remoting
diff --git a/remoting/test/test_oauth_token_getter.h b/remoting/test/test_oauth_token_getter.h new file mode 100644 index 0000000..4bbbfb06 --- /dev/null +++ b/remoting/test/test_oauth_token_getter.h
@@ -0,0 +1,69 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef REMOTING_TEST_TEST_OAUTH_TOKEN_GETTER_H_ +#define REMOTING_TEST_TEST_OAUTH_TOKEN_GETTER_H_ + +#include <memory> +#include <string> + +#include "base/callback_forward.h" +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "remoting/base/oauth_token_getter.h" + +namespace network { +class TransitionalURLLoaderFactoryOwner; +} // namespace network + +namespace remoting { +namespace test { +class TestTokenStorage; + +// An OAuthTokenGetter implementation for testing that runs the authentication +// flow on the console and caches the access token until it's no longer valid. +class TestOAuthTokenGetter final : public OAuthTokenGetter { + public: + static constexpr char kSwitchNameAuthCode[] = "auth-code"; + + // |token_storage| must outlive |this|. + explicit TestOAuthTokenGetter(TestTokenStorage* token_storage); + ~TestOAuthTokenGetter() override; + + // Initializes the token getter and runs the authentication flow on the + // console if necessary. + void Initialize(base::OnceClosure on_done); + + // Ignores auth token cache and runs the authentication flow on the console. + // Similar to InvalidateCache() but takes a callback. + void ResetWithAuthenticationFlow(base::OnceClosure on_done); + + // OAuthTokenGetter implementations + void CallWithToken(TokenCallback on_access_token) override; + void InvalidateCache() override; + + private: + std::unique_ptr<OAuthTokenGetter> CreateFromIntermediateCredentials( + const std::string& auth_code, + const OAuthTokenGetter::CredentialsUpdatedCallback& + on_credentials_update); + + void OnAccessToken(base::OnceClosure on_done, + OAuthTokenGetter::Status status, + const std::string& user_email, + const std::string& access_token); + + std::unique_ptr<network::TransitionalURLLoaderFactoryOwner> + url_loader_factory_owner_; + TestTokenStorage* token_storage_ = nullptr; + std::unique_ptr<OAuthTokenGetter> token_getter_; + + base::WeakPtrFactory<TestOAuthTokenGetter> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(TestOAuthTokenGetter); +}; + +} // namespace test +} // namespace remoting + +#endif // REMOTING_TEST_TEST_OAUTH_TOKEN_GETTER_H_
diff --git a/remoting/test/test_token_storage.cc b/remoting/test/test_token_storage.cc index cbf48fe..b0dc107 100644 --- a/remoting/test/test_token_storage.cc +++ b/remoting/test/test_token_storage.cc
@@ -22,6 +22,7 @@ FILE_PATH_LITERAL("token_store"); constexpr char kUnspecifiedUsername[] = "unspecified"; constexpr char kRefreshTokenKey[] = "refresh_token"; +constexpr char kUserEmailKey[] = "user_email"; constexpr char kAccessTokenKey[] = "access_token"; constexpr char kDeviceIdKey[] = "device_id"; } // namespace @@ -40,6 +41,8 @@ // TestTokenStorage interface. std::string FetchRefreshToken() override; bool StoreRefreshToken(const std::string& refresh_token) override; + std::string FetchUserEmail() override; + bool StoreUserEmail(const std::string& user_email) override; std::string FetchAccessToken() override; bool StoreAccessToken(const std::string& access_token) override; std::string FetchDeviceId() override; @@ -83,6 +86,14 @@ return StoreTokenForKey(kRefreshTokenKey, refresh_token); } +std::string TestTokenStorageOnDisk::FetchUserEmail() { + return FetchTokenFromKey(kUserEmailKey); +} + +bool TestTokenStorageOnDisk::StoreUserEmail(const std::string& user_email) { + return StoreTokenForKey(kUserEmailKey, user_email); +} + std::string TestTokenStorageOnDisk::FetchAccessToken() { return FetchTokenFromKey(kAccessTokenKey); }
diff --git a/remoting/test/test_token_storage.h b/remoting/test/test_token_storage.h index 481d83a..1ee3e05a 100644 --- a/remoting/test/test_token_storage.h +++ b/remoting/test/test_token_storage.h
@@ -27,6 +27,9 @@ virtual std::string FetchRefreshToken() = 0; virtual bool StoreRefreshToken(const std::string& refresh_token) = 0; + virtual std::string FetchUserEmail() = 0; + virtual bool StoreUserEmail(const std::string& user_email) = 0; + virtual std::string FetchAccessToken() = 0; virtual bool StoreAccessToken(const std::string& access_token) = 0;
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc index 697a90f6..8b52ae5 100644 --- a/services/network/network_context_unittest.cc +++ b/services/network/network_context_unittest.cc
@@ -4405,38 +4405,70 @@ public: class TestHeaderClient : public mojom::TrustedHeaderClient { public: - TestHeaderClient() : binding(this) {} + TestHeaderClient() : binding_(this) {} // network::mojom::TrustedHeaderClient: void OnBeforeSendHeaders(const net::HttpRequestHeaders& headers, OnBeforeSendHeadersCallback callback) override { auto new_headers = headers; new_headers.SetHeader("foo", "bar"); - std::move(callback).Run(on_before_send_headers_result, new_headers); + std::move(callback).Run(on_before_send_headers_result_, new_headers); } + void OnHeadersReceived(const std::string& headers, OnHeadersReceivedCallback callback) override { auto new_headers = base::MakeRefCounted<net::HttpResponseHeaders>(headers); new_headers->AddHeader("baz: qux"); - std::move(callback).Run(on_headers_received_result, + std::move(callback).Run(on_headers_received_result_, new_headers->raw_headers(), GURL()); } - int on_before_send_headers_result = net::OK; - int on_headers_received_result = net::OK; - mojo::Binding<mojom::TrustedHeaderClient> binding; + void set_on_before_send_headers_result(int result) { + on_before_send_headers_result_ = result; + } + + void set_on_headers_received_result(int result) { + on_headers_received_result_ = result; + } + + void Bind(network::mojom::TrustedHeaderClientRequest request) { + binding_.Close(); + binding_.Bind(std::move(request)); + } + + private: + int on_before_send_headers_result_ = net::OK; + int on_headers_received_result_ = net::OK; + mojo::Binding<mojom::TrustedHeaderClient> binding_; + + DISALLOW_COPY_AND_ASSIGN(TestHeaderClient); }; + explicit TestURLLoaderHeaderClient( + mojom::TrustedURLLoaderHeaderClientRequest request) + : binding_(this, std::move(request)) {} + // network::mojom::TrustedURLLoaderHeaderClient: void OnLoaderCreated( int32_t request_id, network::mojom::TrustedHeaderClientRequest request) override { - header_client.binding.Close(); - header_client.binding.Bind(std::move(request)); + header_client_.Bind(std::move(request)); } - TestHeaderClient header_client; + void set_on_before_send_headers_result(int result) { + header_client_.set_on_before_send_headers_result(result); + } + + void set_on_headers_received_result(int result) { + header_client_.set_on_headers_received_result(result); + } + + private: + TestHeaderClient header_client_; + mojo::Binding<mojom::TrustedURLLoaderHeaderClient> binding_; + + DISALLOW_COPY_AND_ASSIGN(TestURLLoaderHeaderClient); }; TEST_F(NetworkContextTest, HeaderClientModifiesHeaders) { @@ -4455,8 +4487,8 @@ mojom::URLLoaderFactoryParams::New(); params->process_id = mojom::kBrowserProcessId; params->is_corb_enabled = false; - mojo::MakeStrongBinding(std::make_unique<TestURLLoaderHeaderClient>(), - mojo::MakeRequest(¶ms->header_client)); + TestURLLoaderHeaderClient header_client( + mojo::MakeRequest(¶ms->header_client)); network_context->CreateURLLoaderFactory(mojo::MakeRequest(&loader_factory), std::move(params)); @@ -4517,23 +4549,19 @@ ResourceRequest request; request.url = test_server.GetURL("/echo"); - auto header_client = std::make_unique<TestURLLoaderHeaderClient>(); - auto* raw_header_client = header_client.get(); - mojom::URLLoaderFactoryPtr loader_factory; mojom::URLLoaderFactoryParamsPtr params = mojom::URLLoaderFactoryParams::New(); params->process_id = mojom::kBrowserProcessId; params->is_corb_enabled = false; - mojo::MakeStrongBinding(std::move(header_client), - mojo::MakeRequest(¶ms->header_client)); + TestURLLoaderHeaderClient header_client( + mojo::MakeRequest(¶ms->header_client)); network_context->CreateURLLoaderFactory(mojo::MakeRequest(&loader_factory), std::move(params)); // First, fail request on OnBeforeSendHeaders. { - raw_header_client->header_client.on_before_send_headers_result = - net::ERR_FAILED; + header_client.set_on_before_send_headers_result(net::ERR_FAILED); mojom::URLLoaderPtr loader; TestURLLoaderClient client; loader_factory->CreateLoaderAndStart( @@ -4548,9 +4576,8 @@ // Next, fail request on OnHeadersReceived. { - raw_header_client->header_client.on_before_send_headers_result = net::OK; - raw_header_client->header_client.on_headers_received_result = - net::ERR_FAILED; + header_client.set_on_before_send_headers_result(net::OK); + header_client.set_on_headers_received_result(net::ERR_FAILED); mojom::URLLoaderPtr loader; TestURLLoaderClient client; loader_factory->CreateLoaderAndStart( @@ -4609,7 +4636,7 @@ DISALLOW_COPY_AND_ASSIGN(TestHeaderClient); }; - HangingTestURLLoaderHeaderClient( + explicit HangingTestURLLoaderHeaderClient( mojom::TrustedURLLoaderHeaderClientRequest request) : binding_(this, std::move(request)) {}
diff --git a/services/network/public/cpp/net_ipc_param_traits.cc b/services/network/public/cpp/net_ipc_param_traits.cc index 7556baa..dc975f4 100644 --- a/services/network/public/cpp/net_ipc_param_traits.cc +++ b/services/network/public/cpp/net_ipc_param_traits.cc
@@ -374,7 +374,6 @@ WriteParam(m, p.is_issued_by_known_root); WriteParam(m, p.pkp_bypassed); WriteParam(m, p.client_cert_sent); - WriteParam(m, p.channel_id_sent); WriteParam(m, p.handshake_type); WriteParam(m, p.public_key_hashes); WriteParam(m, p.pinning_failure_log); @@ -401,7 +400,6 @@ ReadParam(m, iter, &r->is_issued_by_known_root) && ReadParam(m, iter, &r->pkp_bypassed) && ReadParam(m, iter, &r->client_cert_sent) && - ReadParam(m, iter, &r->channel_id_sent) && ReadParam(m, iter, &r->handshake_type) && ReadParam(m, iter, &r->public_key_hashes) && ReadParam(m, iter, &r->pinning_failure_log) &&
diff --git a/services/tracing/perfetto/consumer_host_unittest.cc b/services/tracing/perfetto/consumer_host_unittest.cc index eb3f0e8..160f8d8a 100644 --- a/services/tracing/perfetto/consumer_host_unittest.cc +++ b/services/tracing/perfetto/consumer_host_unittest.cc
@@ -17,6 +17,7 @@ #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" #include "base/task/post_task.h" +#include "base/test/bind_test_util.h" #include "base/test/scoped_task_environment.h" #include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/system/data_pipe.h" @@ -232,6 +233,18 @@ *tracing_enabled = tracing_enabled_; } + perfetto::DataSourceConfig GetProducerClientConfig() { + perfetto::DataSourceConfig config; + base::RunLoop wait_loop; + task_runner_->PostTaskAndReply( + FROM_HERE, base::BindLambdaForTesting([&]() { + config = producer_->producer_client()->data_source()->config(); + }), + wait_loop.QuitClosure()); + wait_loop.Run(); + return config; + } + private: scoped_refptr<base::SequencedTaskRunner> task_runner_; std::unique_ptr<PerfettoService> perfetto_service_; @@ -307,9 +320,17 @@ return trace_config; } - void EnableTracingWithDataSourceName(const std::string& data_source_name) { - threaded_service_->EnableTracingWithConfig( - GetDefaultTraceConfig(data_source_name)); + void EnableTracingWithDataSourceName(const std::string& data_source_name, + bool enable_privacy_filtering = false) { + perfetto::TraceConfig config = GetDefaultTraceConfig(data_source_name); + if (enable_privacy_filtering) { + for (auto& source : *config.mutable_data_sources()) { + source.mutable_config() + ->mutable_chrome_config() + ->set_privacy_filtering_enabled(true); + } + } + threaded_service_->EnableTracingWithConfig(config); } bool IsTracingEnabled() { @@ -510,4 +531,20 @@ EXPECT_TRUE(IsTracingEnabled()); } +TEST_F(TracingConsumerTest, PrivacyFilterConfig) { + EnableTracingWithDataSourceName(mojom::kTraceEventDataSourceName, + /* enable_privacy_filtering =*/true); + + base::RunLoop wait_for_tracing_start; + threaded_perfetto_service()->CreateProducer( + mojom::kTraceEventDataSourceName, 10u, + wait_for_tracing_start.QuitClosure()); + + wait_for_tracing_start.Run(); + EXPECT_TRUE(threaded_perfetto_service() + ->GetProducerClientConfig() + .chrome_config() + .privacy_filtering_enabled()); +} + } // namespace tracing
diff --git a/services/tracing/perfetto/test_utils.cc b/services/tracing/perfetto/test_utils.cc index 10f75bb..c5bc6fb 100644 --- a/services/tracing/perfetto/test_utils.cc +++ b/services/tracing/perfetto/test_utils.cc
@@ -30,7 +30,7 @@ payload.get()[kLargeMessageSize - 1] = 0; std::unique_ptr<perfetto::TraceWriter> writer = - producer_client_->CreateTraceWriter(target_buffer_); + producer_client_->CreateTraceWriter(config_.target_buffer()); CHECK(writer); writer->NewTracePacket()->set_for_testing()->set_str(payload.get(), @@ -41,11 +41,11 @@ ProducerClient* producer_client, const perfetto::DataSourceConfig& data_source_config) { producer_client_ = producer_client; - target_buffer_ = data_source_config.target_buffer(); + config_ = data_source_config; if (send_packet_count_ > 0) { std::unique_ptr<perfetto::TraceWriter> writer = - producer_client_->CreateTraceWriter(target_buffer_); + producer_client_->CreateTraceWriter(config_.target_buffer()); CHECK(writer); for (size_t i = 0; i < send_packet_count_; i++) {
diff --git a/services/tracing/perfetto/test_utils.h b/services/tracing/perfetto/test_utils.h index 5bc6d20..2e4486ef 100644 --- a/services/tracing/perfetto/test_utils.h +++ b/services/tracing/perfetto/test_utils.h
@@ -33,10 +33,12 @@ base::OnceClosure stop_complete_callback = base::OnceClosure()) override; void Flush(base::RepeatingClosure flush_complete_callback) override; + const perfetto::DataSourceConfig& config() { return config_; } + private: ProducerClient* producer_client_ = nullptr; const size_t send_packet_count_; - uint32_t target_buffer_ = 0; + perfetto::DataSourceConfig config_; }; class MockProducerClient : public ProducerClient { @@ -159,6 +161,8 @@ void WritePacketBigly(base::OnceClosure on_write_complete); + MockProducerClient* producer_client() { return producer_client_.get(); } + private: std::unique_ptr<MockProducerClient> producer_client_; std::unique_ptr<MockProducerHost> producer_host_;
diff --git a/services/tracing/public/mojom/chrome_config_mojom_traits.cc b/services/tracing/public/mojom/chrome_config_mojom_traits.cc index 50790115..428b71e 100644 --- a/services/tracing/public/mojom/chrome_config_mojom_traits.cc +++ b/services/tracing/public/mojom/chrome_config_mojom_traits.cc
@@ -17,6 +17,7 @@ return false; } out->set_trace_config(std::move(config)); + out->set_privacy_filtering_enabled(data.privacy_filtering_enabled()); return true; } } // namespace mojo
diff --git a/services/tracing/public/mojom/chrome_config_mojom_traits.h b/services/tracing/public/mojom/chrome_config_mojom_traits.h index e033a50..1deafb3 100644 --- a/services/tracing/public/mojom/chrome_config_mojom_traits.h +++ b/services/tracing/public/mojom/chrome_config_mojom_traits.h
@@ -23,6 +23,10 @@ return src.trace_config(); } + static bool privacy_filtering_enabled(const perfetto::ChromeConfig& src) { + return src.privacy_filtering_enabled(); + } + static bool Read(tracing::mojom::ChromeConfigDataView data, perfetto::ChromeConfig* out); };
diff --git a/services/tracing/public/mojom/perfetto_service.mojom b/services/tracing/public/mojom/perfetto_service.mojom index e6b16af4..a85ce30 100644 --- a/services/tracing/public/mojom/perfetto_service.mojom +++ b/services/tracing/public/mojom/perfetto_service.mojom
@@ -71,6 +71,10 @@ // base::trace_event::TraceConfig object rather then the json encoded string // used currently. string trace_config; + + // When enabled the data source is supposed to only emit fields in the output + // proto that are guaranteed to not contain any sensitive data. + bool privacy_filtering_enabled; }; struct DataSourceConfig {
diff --git a/sql/BUILD.gn b/sql/BUILD.gn index a03d51e7..489ebf2 100644 --- a/sql/BUILD.gn +++ b/sql/BUILD.gn
@@ -99,6 +99,8 @@ "sqlite_features_unittest.cc", "statement_id_unittest.cc", "statement_unittest.cc", + "test/database_test_peer.cc", + "test/database_test_peer.h", "test/paths.cc", "test/paths.h", "test/run_all_unittests.cc",
diff --git a/sql/database_unittest.cc b/sql/database_unittest.cc index 6a505da..a145faa6 100644 --- a/sql/database_unittest.cc +++ b/sql/database_unittest.cc
@@ -22,6 +22,7 @@ #include "sql/meta_table.h" #include "sql/sql_features.h" #include "sql/statement.h" +#include "sql/test/database_test_peer.h" #include "sql/test/error_callback_support.h" #include "sql/test/scoped_error_expecter.h" #include "sql/test/sql_test_base.h" @@ -31,19 +32,6 @@ namespace sql { -class DatabaseTestPeer { - public: - static bool AttachDatabase(Database* db, - const base::FilePath& other_db_path, - const char* attachment_point) { - return db->AttachDatabase(other_db_path, attachment_point, - InternalApiToken()); - } - static bool DetachDatabase(Database* db, const char* attachment_point) { - return db->DetachDatabase(attachment_point, InternalApiToken()); - } -}; - namespace { using sql::test::ExecuteWithResult;
diff --git a/sql/test/database_test_peer.cc b/sql/test/database_test_peer.cc new file mode 100644 index 0000000..957c1cd5 --- /dev/null +++ b/sql/test/database_test_peer.cc
@@ -0,0 +1,27 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "sql/test/database_test_peer.h" + +#include "base/files/file_path.h" +#include "sql/database.h" +#include "sql/internal_api_token.h" + +namespace sql { + +// static +bool DatabaseTestPeer::AttachDatabase(Database* db, + const base::FilePath& other_db_path, + const char* attachment_point) { + return db->AttachDatabase(other_db_path, attachment_point, + InternalApiToken()); +} + +// static +bool DatabaseTestPeer::DetachDatabase(Database* db, + const char* attachment_point) { + return db->DetachDatabase(attachment_point, InternalApiToken()); +} + +} // namespace sql
diff --git a/sql/test/database_test_peer.h b/sql/test/database_test_peer.h new file mode 100644 index 0000000..322727d --- /dev/null +++ b/sql/test/database_test_peer.h
@@ -0,0 +1,26 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SQL_TEST_DATABASE_TEST_PEER_H_ +#define SQL_TEST_DATABASE_TEST_PEER_H_ + +namespace base { +class FilePath; +} // namespace base + +namespace sql { + +class Database; + +class DatabaseTestPeer { + public: + static bool AttachDatabase(Database* db, + const base::FilePath& other_db_path, + const char* attachment_point); + static bool DetachDatabase(Database* db, const char* attachment_point); +}; + +} // namespace sql + +#endif // SQL_TEST_DATABASE_TEST_PEER_H_
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json index d0cd6860..5b594ea 100644 --- a/testing/buildbot/chromium.gpu.fyi.json +++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -4795,16 +4795,7 @@ ], "shards": 4 }, - "test": "dawn_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "dawn_end2end_tests" } ] }, @@ -4951,16 +4942,7 @@ ], "shards": 4 }, - "test": "angle_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_end2end_tests" }, { "args": [ @@ -4979,16 +4961,7 @@ } ] }, - "test": "angle_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_unittests" }, { "args": [ @@ -5005,16 +4978,7 @@ } ] }, - "test": "angle_white_box_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_white_box_tests" }, { "args": [ @@ -5032,16 +4996,7 @@ ], "shards": 4 }, - "test": "dawn_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "dawn_end2end_tests" }, { "args": [ @@ -5058,16 +5013,7 @@ } ] }, - "test": "gl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_tests" }, { "args": [ @@ -5084,16 +5030,7 @@ } ] }, - "test": "gl_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_unittests" }, { "args": [ @@ -5109,16 +5046,7 @@ } ] }, - "test": "gles2_conform_test", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gles2_conform_test" }, { "swarming": { @@ -5131,16 +5059,7 @@ } ] }, - "test": "swiftshader_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "swiftshader_unittests" } ], "isolated_scripts": [ @@ -5166,15 +5085,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5199,15 +5109,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5232,15 +5133,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5265,15 +5157,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5302,15 +5185,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5342,15 +5216,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5390,15 +5255,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5424,15 +5280,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5457,15 +5304,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5491,15 +5329,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -5525,15 +5354,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ] @@ -6598,16 +6418,7 @@ ], "shards": 4 }, - "test": "angle_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_end2end_tests" }, { "args": [ @@ -6626,16 +6437,7 @@ } ] }, - "test": "angle_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_unittests" }, { "args": [ @@ -6652,16 +6454,7 @@ } ] }, - "test": "angle_white_box_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_white_box_tests" }, { "args": [ @@ -6679,16 +6472,7 @@ ], "shards": 4 }, - "test": "dawn_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "dawn_end2end_tests" }, { "args": [ @@ -6705,16 +6489,7 @@ } ] }, - "test": "gl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_tests" }, { "args": [ @@ -6731,16 +6506,7 @@ } ] }, - "test": "gl_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_unittests" }, { "args": [ @@ -6756,16 +6522,7 @@ } ] }, - "test": "gles2_conform_test", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gles2_conform_test" }, { "swarming": { @@ -6778,16 +6535,7 @@ } ] }, - "test": "swiftshader_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "swiftshader_unittests" } ], "isolated_scripts": [ @@ -6814,15 +6562,6 @@ "pool": "Chrome-GPU" } ] - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ] @@ -7922,16 +7661,7 @@ ], "shards": 4 }, - "test": "angle_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_end2end_tests" }, { "args": [ @@ -7950,16 +7680,7 @@ } ] }, - "test": "angle_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_unittests" }, { "args": [ @@ -7976,16 +7697,7 @@ } ] }, - "test": "angle_white_box_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_white_box_tests" }, { "args": [ @@ -8006,16 +7718,7 @@ } ] }, - "test": "browser_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "browser_tests" }, { "args": [ @@ -8044,16 +7747,7 @@ } ] }, - "test": "content_browsertests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "content_browsertests" }, { "args": [ @@ -8071,16 +7765,7 @@ ], "shards": 4 }, - "test": "dawn_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "dawn_end2end_tests" }, { "args": [ @@ -8097,16 +7782,7 @@ } ] }, - "test": "gl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_tests" }, { "args": [ @@ -8123,16 +7799,7 @@ } ] }, - "test": "gl_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_unittests" }, { "args": [ @@ -8148,16 +7815,7 @@ } ] }, - "test": "gles2_conform_test", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gles2_conform_test" }, { "swarming": { @@ -8170,16 +7828,7 @@ } ] }, - "test": "swiftshader_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "swiftshader_unittests" } ], "isolated_scripts": [ @@ -8206,15 +7855,6 @@ "pool": "Chrome-GPU" } ] - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8239,15 +7879,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8272,15 +7903,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8305,15 +7927,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8338,15 +7951,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8375,15 +7979,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8415,15 +8010,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8472,15 +8058,6 @@ ], "idempotent": false, "service_account": "chrome-gpu-gold@chops-service-accounts.iam.gserviceaccount.com" - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8520,15 +8097,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8554,15 +8122,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8587,15 +8146,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8623,15 +8173,6 @@ ], "idempotent": false, "shards": 20 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8659,15 +8200,6 @@ ], "idempotent": false, "shards": 20 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8693,15 +8225,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -8727,15 +8250,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ] @@ -8784,16 +8298,7 @@ ], "shards": 4 }, - "test": "angle_deqp_egl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_deqp_egl_tests" }, { "args": [ @@ -8813,16 +8318,7 @@ ], "shards": 4 }, - "test": "angle_deqp_gles2_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_deqp_gles2_tests" }, { "args": [ @@ -8842,16 +8338,7 @@ ], "shards": 6 }, - "test": "angle_deqp_gles31_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_deqp_gles31_tests" }, { "args": [ @@ -8871,16 +8358,7 @@ ], "shards": 12 }, - "test": "angle_deqp_gles3_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_deqp_gles3_tests" } ] }, @@ -15941,16 +15419,7 @@ ], "shards": 4 }, - "test": "angle_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_end2end_tests" }, { "args": [ @@ -15967,16 +15436,7 @@ } ] }, - "test": "angle_white_box_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_white_box_tests" }, { "args": [ @@ -16005,16 +15465,7 @@ } ] }, - "test": "content_browsertests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "content_browsertests" }, { "args": [ @@ -16032,16 +15483,7 @@ ], "shards": 4 }, - "test": "dawn_end2end_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "dawn_end2end_tests" }, { "args": [ @@ -16057,16 +15499,7 @@ } ] }, - "test": "gles2_conform_test", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gles2_conform_test" }, { "swarming": { @@ -16079,16 +15512,7 @@ } ] }, - "test": "swiftshader_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "swiftshader_unittests" } ], "isolated_scripts": [ @@ -16115,15 +15539,6 @@ "pool": "Chrome-GPU" } ] - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -16152,15 +15567,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -16209,15 +15615,6 @@ ], "idempotent": false, "service_account": "chrome-gpu-gold@chops-service-accounts.iam.gserviceaccount.com" - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -16242,15 +15639,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -16278,15 +15666,6 @@ ], "idempotent": false, "shards": 20 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -16312,15 +15691,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ]
diff --git a/testing/buildbot/chromium.gpu.json b/testing/buildbot/chromium.gpu.json index 53edb0da..c60ee977 100644 --- a/testing/buildbot/chromium.gpu.json +++ b/testing/buildbot/chromium.gpu.json
@@ -299,16 +299,7 @@ } ] }, - "test": "angle_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_unittests" }, { "args": [ @@ -325,16 +316,7 @@ } ] }, - "test": "gl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_tests" }, { "args": [ @@ -351,16 +333,7 @@ } ] }, - "test": "gl_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_unittests" } ], "isolated_scripts": [ @@ -386,15 +359,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -419,15 +383,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -452,15 +407,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -485,15 +431,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -522,15 +459,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -562,15 +490,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -610,15 +529,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -644,15 +554,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -677,15 +578,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -711,15 +603,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ] @@ -743,16 +626,7 @@ } ] }, - "test": "angle_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "angle_unittests" }, { "args": [ @@ -773,16 +647,7 @@ } ] }, - "test": "browser_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "browser_tests" }, { "args": [ @@ -799,16 +664,7 @@ } ] }, - "test": "gl_tests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_tests" }, { "args": [ @@ -825,16 +681,7 @@ } ] }, - "test": "gl_unittests", - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" - } + "test": "gl_unittests" } ], "isolated_scripts": [ @@ -860,15 +707,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -893,15 +731,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -926,15 +755,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -959,15 +779,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -996,15 +807,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -1036,15 +838,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -1084,15 +877,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -1118,15 +902,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -1151,15 +926,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -1185,15 +951,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ]
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json index 61ab4319..4c954cfe 100644 --- a/testing/buildbot/chromium.perf.json +++ b/testing/buildbot/chromium.perf.json
@@ -246,7 +246,7 @@ "hard_timeout": 36000, "ignore_task_failure": false, "io_timeout": 1800, - "shards": 8 + "shards": 12 }, "trigger_script": { "args": [
diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json index 869bacb..5030000 100644 --- a/testing/buildbot/client.v8.fyi.json +++ b/testing/buildbot/client.v8.fyi.json
@@ -296,15 +296,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -329,15 +320,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -362,15 +344,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -395,15 +368,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -435,15 +399,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -483,15 +438,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -517,15 +463,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -550,15 +487,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -586,15 +514,6 @@ ], "idempotent": false, "shards": 20 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -620,15 +539,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ] @@ -657,15 +567,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -690,15 +591,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -723,15 +615,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -756,15 +639,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -796,15 +670,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -844,15 +709,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -878,15 +734,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -911,15 +758,6 @@ } ], "idempotent": false - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -947,15 +785,6 @@ ], "idempotent": false, "shards": 20 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } }, { @@ -981,15 +810,6 @@ ], "idempotent": false, "shards": 2 - }, - "trigger_script": { - "args": [ - "--multiple-trigger-configs", - "[{\"gpu\": \"nvidia-quadro-p400-ubuntu-stable\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}, {\"gpu\": \"10de:1cb3-410.78\", \"os\": \"Ubuntu\", \"pool\": \"Chrome-GPU\"}]", - "--multiple-dimension-script-verbose", - "True" - ], - "script": "//testing/trigger_scripts/trigger_multiple_dimensions.py" } } ]
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index 8611870..fafa070 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -1827,14 +1827,6 @@ 'gtest_tests': 'gpu_desktop_gtests', 'gpu_telemetry_tests': 'gpu_common_win_and_linux_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Linux Release (NVIDIA)': { 'browser_config': 'release', @@ -1846,14 +1838,6 @@ 'gtest_tests': 'gpu_desktop_gtests', 'gpu_telemetry_tests': 'gpu_common_win_and_linux_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Mac Debug (Intel)': { 'browser_config': 'debug', @@ -2242,14 +2226,6 @@ 'test_suites': { 'gtest_tests': 'gpu_dawn_end2end_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Dawn GPU Mac Release (Intel)': { 'os_type': 'mac', @@ -2325,14 +2301,6 @@ 'gtest_tests': 'gpu_fyi_linux_debug_gtests', 'gpu_telemetry_tests': 'gpu_fyi_win_and_linux_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Linux FYI Experimental Release (Intel HD 630)': { 'os_type': 'linux', @@ -2370,14 +2338,6 @@ 'gtest_tests': 'gpu_fyi_linux_debug_gtests', 'isolated_scripts': 'gpu_angle_perftests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Linux FYI Ozone (Intel)': { 'os_type': 'linux', @@ -2427,14 +2387,6 @@ 'isolated_scripts': 'gpu_angle_perftests', 'gpu_telemetry_tests': 'gpu_fyi_linux_intel_and_nvidia_release_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Linux FYI dEQP Release (Intel HD 630)': { 'os_type': 'linux', @@ -2455,14 +2407,6 @@ 'test_suites': { 'gtest_tests': 'gpu_angle_deqp_linux_nvidia_gtests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Mac FYI 10.14 Release (AMD)': { 'os_type': 'mac', @@ -2700,14 +2644,6 @@ 'isolated_scripts': 'gpu_angle_perftests', 'gpu_telemetry_tests': 'gpu_fyi_optional_linux_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Optional Mac Release (Intel)': { 'os_type': 'mac', @@ -3825,14 +3761,6 @@ 'test_suites': { 'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Linux V8 FYI Release - pointer compression (NVIDIA)': { 'os_type': 'linux', @@ -3843,14 +3771,6 @@ 'test_suites': { 'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests', }, - 'use_multi_dimension_trigger_script': True, - 'alternate_swarming_dimensions': [ - { - 'gpu': '10de:1cb3-410.78', - 'os': 'Ubuntu', - 'pool': 'Chrome-GPU', - }, - ], }, 'Mac V8 FYI Release (Intel)': { 'browser_config': 'release',
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index e59781c06..fd1e9afb7 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -36,6 +36,10 @@ const base::Feature kScriptStreaming{"ScriptStreaming", base::FEATURE_ENABLED_BY_DEFAULT}; +// Enables user level memory pressure signal generation on Android. +const base::Feature kUserLevelMemoryPressureSignal{ + "UserLevelMemoryPressureSignal", base::FEATURE_DISABLED_BY_DEFAULT}; + // Enable FCP++ by experiment. See https://crbug.com/869924 const base::Feature kFirstContentfulPaintPlusPlus{ "FirstContentfulPaintPlusPlus", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/third_party/blink/public/BUILD.gn b/third_party/blink/public/BUILD.gn index f099def2..b85cbda 100644 --- a/third_party/blink/public/BUILD.gn +++ b/third_party/blink/public/BUILD.gn
@@ -569,6 +569,7 @@ "//third_party/webrtc/rtc_base:rtc_base", "//third_party/webrtc/rtc_base:rtc_task_queue", "//third_party/webrtc_overrides:init_webrtc", + "//ui/base:base", "//v8:v8_headers", ] }
diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public/common/BUILD.gn index 24c4e4ab..a0c73031 100644 --- a/third_party/blink/public/common/BUILD.gn +++ b/third_party/blink/public/common/BUILD.gn
@@ -95,6 +95,7 @@ "screen_orientation/web_screen_orientation_type.h", "service_worker/service_worker_status_code.h", "service_worker/service_worker_type_converters.h", + "service_worker/service_worker_types.h", "service_worker/service_worker_utils.h", "user_agent/user_agent_metadata.h", ]
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 097f61eb..8522f6fc 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -19,6 +19,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kEnableGpuRasterizationViewportRestriction; BLINK_COMMON_EXPORT extern const base::Feature kScriptStreaming; +BLINK_COMMON_EXPORT extern const base::Feature kUserLevelMemoryPressureSignal; BLINK_COMMON_EXPORT extern const base::Feature kFirstContentfulPaintPlusPlus; BLINK_COMMON_EXPORT extern const base::Feature kFreezePurgeMemoryAllPagesFrozen; BLINK_COMMON_EXPORT extern const base::Feature kImplicitRootScroller;
diff --git a/third_party/blink/public/common/service_worker/service_worker_types.h b/third_party/blink/public/common/service_worker/service_worker_types.h new file mode 100644 index 0000000..13ee9645 --- /dev/null +++ b/third_party/blink/public/common/service_worker/service_worker_types.h
@@ -0,0 +1,15 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_SERVICE_WORKER_SERVICE_WORKER_TYPES_H_ +#define THIRD_PARTY_BLINK_PUBLIC_COMMON_SERVICE_WORKER_SERVICE_WORKER_TYPES_H_ + +namespace blink { + +// Constants for invalid identifiers. +static const int kInvalidServiceWorkerProviderId = -1; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_SERVICE_WORKER_SERVICE_WORKER_TYPES_H_
diff --git a/third_party/blink/public/platform/DEPS b/third_party/blink/public/platform/DEPS index f4dce06..78346615 100644 --- a/third_party/blink/public/platform/DEPS +++ b/third_party/blink/public/platform/DEPS
@@ -45,6 +45,7 @@ "-third_party/blink/public/web", "-third_party/blink/renderer/bindings", "+third_party/skia", + "+ui/base/page_transition_types.h", "+ui/gfx", "+url", "-web",
diff --git a/third_party/blink/public/platform/web_media_player.h b/third_party/blink/public/platform/web_media_player.h index fbbd030..edba9c5 100644 --- a/third_party/blink/public/platform/web_media_player.h +++ b/third_party/blink/public/platform/web_media_player.h
@@ -31,7 +31,6 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_PLAYER_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_MEDIA_PLAYER_H_ -#include "base/optional.h" #include "base/time/time.h" #include "components/viz/common/surfaces/surface_id.h" #include "third_party/blink/public/platform/web_callbacks.h" @@ -165,8 +164,8 @@ virtual WebTimeRanges Seekable() const = 0; // Attempts to switch the audio output device. - virtual void SetSinkId(const WebString& sink_id, - std::unique_ptr<WebSetSinkIdCallbacks>) = 0; + virtual void SetSinkId(const WebString& sing_id, + WebSetSinkIdCompleteCallback) = 0; // True if the loaded media has a playable video/audio track. virtual bool HasVideo() const = 0; @@ -326,6 +325,17 @@ return false; } + // Share video frame texture to |texture|. If the sharing is impossible or + // fails, it returns false. + virtual bool PrepareVideoFrameForWebGL( + gpu::gles2::GLES2Interface* gl, + unsigned target, + unsigned texture, + int already_uploaded_id = -1, + WebMediaPlayer::VideoFrameUploadMetadata* out_metadata = nullptr) { + return false; + } + virtual WebAudioSourceProvider* GetAudioSourceProvider() { return nullptr; } virtual void SetContentDecryptionModule(
diff --git a/third_party/blink/public/platform/web_set_sink_id_callbacks.h b/third_party/blink/public/platform/web_set_sink_id_callbacks.h index 1d9c9d25..0707f68 100644 --- a/third_party/blink/public/platform/web_set_sink_id_callbacks.h +++ b/third_party/blink/public/platform/web_set_sink_id_callbacks.h
@@ -5,7 +5,8 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SET_SINK_ID_CALLBACKS_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SET_SINK_ID_CALLBACKS_H_ -#include "third_party/blink/public/platform/web_callbacks.h" +#include "base/callback.h" +#include "base/optional.h" #include "third_party/blink/public/platform/web_string.h" namespace blink { @@ -18,7 +19,8 @@ kLast = kNotSupported }; -using WebSetSinkIdCallbacks = WebCallbacks<void, WebSetSinkIdError>; +using WebSetSinkIdCompleteCallback = + base::OnceCallback<void(base::Optional<WebSetSinkIdError> error)>; } // namespace blink
diff --git a/third_party/blink/public/platform/web_url_request.h b/third_party/blink/public/platform/web_url_request.h index c2adbb9..5349656 100644 --- a/third_party/blink/public/platform/web_url_request.h +++ b/third_party/blink/public/platform/web_url_request.h
@@ -36,8 +36,10 @@ #include "base/time/time.h" #include "base/unguessable_token.h" #include "services/network/public/mojom/referrer_policy.mojom-shared.h" +#include "third_party/blink/public/common/service_worker/service_worker_types.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-shared.h" #include "third_party/blink/public/platform/web_common.h" +#include "ui/base/page_transition_types.h" namespace network { namespace mojom { @@ -114,7 +116,58 @@ class ExtraData { public: + void set_is_preprerendering(bool is_prerendering) { + is_prerendering_ = is_prerendering; + } + void set_render_frame_id(int render_frame_id) { + render_frame_id_ = render_frame_id; + } + void set_is_main_frame(bool is_main_frame) { + is_main_frame_ = is_main_frame; + } + void set_allow_download(bool allow_download) { + allow_download_ = allow_download; + } + ui::PageTransition transition_type() const { return transition_type_; } + void set_transition_type(ui::PageTransition transition_type) { + transition_type_ = transition_type; + } + int service_worker_provider_id() const { + return service_worker_provider_id_; + } + void set_service_worker_provider_id(int service_worker_provider_id) { + service_worker_provider_id_ = service_worker_provider_id; + } + + // true if the request originated from within a service worker e.g. due to + // a fetch() in the service worker script. + void set_originated_from_service_worker( + bool originated_from_service_worker) { + originated_from_service_worker_ = originated_from_service_worker; + } + void set_initiated_in_secure_context(bool secure) { + initiated_in_secure_context_ = secure; + } + + // Determines whether SameSite cookies will be attached to the request + // even when the request looks cross-site. + bool attach_same_site_cookies() const { return attach_same_site_cookies_; } + void set_attach_same_site_cookies(bool attach) { + attach_same_site_cookies_ = attach; + } + virtual ~ExtraData() = default; + + protected: + bool is_prerendering_ = false; + int render_frame_id_ = MSG_ROUTING_NONE; + bool is_main_frame_ = false; + bool allow_download_ = true; + ui::PageTransition transition_type_ = ui::PAGE_TRANSITION_LINK; + int service_worker_provider_id_ = blink::kInvalidServiceWorkerProviderId; + bool originated_from_service_worker_ = false; + bool initiated_in_secure_context_ = false; + bool attach_same_site_cookies_ = false; }; BLINK_PLATFORM_EXPORT ~WebURLRequest();
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h index f01851d..55722e9 100644 --- a/third_party/blink/public/web/web_local_frame_client.h +++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -799,8 +799,8 @@ // provided via the callbacks. virtual void CheckIfAudioSinkExistsAndIsAuthorized( const WebString& sink_id, - std::unique_ptr<WebSetSinkIdCallbacks> callbacks) { - callbacks->OnError(WebSetSinkIdError::kNotSupported); + WebSetSinkIdCompleteCallback callback) { + std::move(callback).Run(WebSetSinkIdError::kNotSupported); } // Visibility ----------------------------------------------------------
diff --git a/third_party/blink/renderer/bindings/core/v8/custom/v8_message_channel_custom.cc b/third_party/blink/renderer/bindings/core/v8/custom/v8_message_channel_custom.cc index 1724ee5..f124d2b 100644 --- a/third_party/blink/renderer/bindings/core/v8/custom/v8_message_channel_custom.cc +++ b/third_party/blink/renderer/bindings/core/v8/custom/v8_message_channel_custom.cc
@@ -44,7 +44,7 @@ v8::Isolate* isolate = info.GetIsolate(); ExecutionContext* context = CurrentExecutionContext(isolate); - MessageChannel* channel = MessageChannel::Create(context); + auto* channel = MakeGarbageCollected<MessageChannel>(context); v8::Local<v8::Object> wrapper = info.Holder();
diff --git a/third_party/blink/renderer/bindings/core/v8/script_streamer.cc b/third_party/blink/renderer/bindings/core/v8/script_streamer.cc index 7cf42cf..de5a461 100644 --- a/third_party/blink/renderer/bindings/core/v8/script_streamer.cc +++ b/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
@@ -498,7 +498,7 @@ suppressed_reason_(kInvalid), compile_options_(compile_options), script_url_string_(script_resource->Url().Copy().GetString()), - script_resource_identifier_(script_resource->Identifier()), + script_resource_identifier_(script_resource->InspectorId()), // Unfortunately there's no dummy encoding value in the enum; let's use // one we don't stream. encoding_(v8::ScriptCompiler::StreamedSource::TWO_BYTE),
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc index 14df764..1a12b1e 100644 --- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc +++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
@@ -452,7 +452,7 @@ MessagePort* SerializedScriptValue::AddStreamChannel( ExecutionContext* execution_context) { mojo::MessagePipe pipe; - MessagePort* local_port = MessagePort::Create(*execution_context); + auto* local_port = MakeGarbageCollected<MessagePort>(*execution_context); local_port->Entangle(std::move(pipe.handle0)); stream_channels_.push_back(MessagePortChannel(std::move(pipe.handle1))); return local_port;
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_fuzzer.cc b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_fuzzer.cc index ade1761..531a29e 100644 --- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_fuzzer.cc +++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_fuzzer.cc
@@ -71,7 +71,8 @@ if (hash & kFuzzMessagePorts) { MessagePortArray* message_ports = MakeGarbageCollected<MessagePortArray>(3); std::generate(message_ports->begin(), message_ports->end(), []() { - MessagePort* port = MessagePort::Create(g_page_holder->GetDocument()); + auto* port = + MakeGarbageCollected<MessagePort>(g_page_holder->GetDocument()); port->Entangle(mojo::MessagePipe().handle0); return port; });
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.cc b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.cc index d506787..c866cf0 100644 --- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.cc
@@ -499,7 +499,7 @@ index >= serialized_script_value_->MojoHandles().size()) { return nullptr; } - return MojoHandle::Create( + return MakeGarbageCollected<MojoHandle>( std::move(serialized_script_value_->MojoHandles()[index])); } case kOffscreenCanvasTransferTag: {
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc index e071acf..f8b129f 100644 --- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc +++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
@@ -858,7 +858,7 @@ MessagePort* MakeMessagePort(ExecutionContext* execution_context, ::MojoHandle* unowned_handle_out = nullptr) { - MessagePort* port = MessagePort::Create(*execution_context); + auto* port = MakeGarbageCollected<MessagePort>(*execution_context); mojo::MessagePipe pipe; ::MojoHandle unowned_handle = pipe.handle0.get().value(); port->Entangle(std::move(pipe.handle0)); @@ -894,7 +894,7 @@ ExceptionState::kExecutionContext, "Window", "postMessage"); - MessagePort* port = MessagePort::Create(*scope.GetExecutionContext()); + auto* port = MakeGarbageCollected<MessagePort>(*scope.GetExecutionContext()); EXPECT_TRUE(port->IsNeutered()); v8::Local<v8::Value> wrapper = ToV8(port, scope.GetScriptState()); Transferables transferables; @@ -961,8 +961,8 @@ V8TestingScope scope; mojo::MessagePipe pipe; - MojoHandle* handle = - MojoHandle::Create(mojo::ScopedHandle::From(std::move(pipe.handle0))); + auto* handle = MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(pipe.handle0))); v8::Local<v8::Value> wrapper = ToV8(handle, scope.GetScriptState()); Transferables transferables; transferables.mojo_handles.push_back(handle); @@ -982,8 +982,8 @@ "postMessage"); mojo::MessagePipe pipe; - MojoHandle* handle = - MojoHandle::Create(mojo::ScopedHandle::From(std::move(pipe.handle0))); + auto* handle = MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(pipe.handle0))); v8::Local<v8::Value> wrapper = ToV8(handle, scope.GetScriptState()); Transferables transferables;
diff --git a/third_party/blink/renderer/controller/BUILD.gn b/third_party/blink/renderer/controller/BUILD.gn index 65c03e2a..10d082ea 100644 --- a/third_party/blink/renderer/controller/BUILD.gn +++ b/third_party/blink/renderer/controller/BUILD.gn
@@ -56,6 +56,8 @@ "memory_usage_monitor_android.h", "oom_intervention_impl.cc", "oom_intervention_impl.h", + "user_level_memory_pressure_signal_generator.cc", + "user_level_memory_pressure_signal_generator.h", ] } if (is_mac) { @@ -154,6 +156,7 @@ "memory_usage_monitor_android_test.cc", "memory_usage_monitor_test.cc", "oom_intervention_impl_test.cc", + "user_level_memory_pressure_signal_generator_test.cc", ] }
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc index 78dcd897..747405c 100644 --- a/third_party/blink/renderer/controller/blink_initializer.cc +++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -59,6 +59,7 @@ #if defined(OS_ANDROID) #include "third_party/blink/renderer/controller/crash_memory_metrics_reporter_impl.h" #include "third_party/blink/renderer/controller/oom_intervention_impl.h" +#include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h" #endif namespace blink { @@ -133,6 +134,9 @@ MemoryAblationExperiment::MaybeStartForRenderer(task_runner); #if defined(OS_ANDROID) + // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring. + UserLevelMemoryPressureSignalGenerator::Instance(); + // Initialize CrashMemoryMetricsReporterImpl in order to assure that memory // allocation does not happen in OnOOMCallback. CrashMemoryMetricsReporterImpl::Instance();
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor.h b/third_party/blink/renderer/controller/memory_usage_monitor.h index 7b8e120..68ebf79 100644 --- a/third_party/blink/renderer/controller/memory_usage_monitor.h +++ b/third_party/blink/renderer/controller/memory_usage_monitor.h
@@ -29,6 +29,7 @@ public: static MemoryUsageMonitor& Instance(); + static void SetInstanceForTesting(MemoryUsageMonitor*); class Observer : public base::CheckedObserver { public:
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_android.cc b/third_party/blink/renderer/controller/memory_usage_monitor_android.cc index beb9b1b..f82ce3c 100644 --- a/third_party/blink/renderer/controller/memory_usage_monitor_android.cc +++ b/third_party/blink/renderer/controller/memory_usage_monitor_android.cc
@@ -23,12 +23,19 @@ return true; } +static MemoryUsageMonitor* g_instance_for_testing = nullptr; + } // namespace // static MemoryUsageMonitor& MemoryUsageMonitor::Instance() { DEFINE_STATIC_LOCAL(MemoryUsageMonitorAndroid, monitor, ()); - return monitor; + return g_instance_for_testing ? *g_instance_for_testing : monitor; +} + +// static +void MemoryUsageMonitor::SetInstanceForTesting(MemoryUsageMonitor* instance) { + g_instance_for_testing = instance; } // Since the measurement is done every second in background, optimizations are
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc new file mode 100644 index 0000000..b5c8df3a --- /dev/null +++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc
@@ -0,0 +1,139 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h" + +#include <limits> +#include "base/memory/memory_pressure_listener.h" +#include "base/metrics/field_trial_params.h" +#include "base/metrics/histogram_macros.h" +#include "base/system/sys_info.h" +#include "third_party/blink/public/common/features.h" +#include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h" +#include "third_party/blink/renderer/platform/scheduler/public/thread.h" +#include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h" +#include "third_party/blink/renderer/platform/wtf/allocator/partitions.h" + +namespace blink { + +namespace { + +constexpr double kDefaultMemoryThresholdMB = + std::numeric_limits<double>::infinity(); + +constexpr base::FeatureParam<double> k512MBDeviceMemoryThresholdParam{ + &blink::features::kUserLevelMemoryPressureSignal, + "param_512mb_device_memory_threshold_mb", kDefaultMemoryThresholdMB}; + +constexpr base::FeatureParam<double> k1GBDeviceMemoryThresholdParam{ + &blink::features::kUserLevelMemoryPressureSignal, + "param_1gb_device_memory_threshold_mb", kDefaultMemoryThresholdMB}; + +constexpr base::FeatureParam<double> k2GBDeviceMemoryThresholdParam{ + &blink::features::kUserLevelMemoryPressureSignal, + "param_2gb_device_memory_threshold_mb", kDefaultMemoryThresholdMB}; + +constexpr base::FeatureParam<double> k3GBDeviceMemoryThresholdParam{ + &blink::features::kUserLevelMemoryPressureSignal, + "param_3gb_device_memory_threshold_mb", kDefaultMemoryThresholdMB}; + +constexpr base::FeatureParam<double> k4GBDeviceMemoryThresholdParam{ + &blink::features::kUserLevelMemoryPressureSignal, + "param_4gb_device_memory_threshold_mb", kDefaultMemoryThresholdMB}; + +// Minimum time interval between generated memory pressure signals. +constexpr double kDefaultMinimumIntervalSeconds = 10 * 60; + +constexpr base::FeatureParam<double> kMinimumIntervalSeconds{ + &blink::features::kUserLevelMemoryPressureSignal, "minimum_interval_s", + kDefaultMinimumIntervalSeconds}; + +} // namespace + +// static +UserLevelMemoryPressureSignalGenerator& +UserLevelMemoryPressureSignalGenerator::Instance() { + DEFINE_STATIC_LOCAL(UserLevelMemoryPressureSignalGenerator, generator, ()); + return generator; +} + +UserLevelMemoryPressureSignalGenerator::UserLevelMemoryPressureSignalGenerator() + : delayed_report_timer_( + Thread::MainThread()->GetTaskRunner(), + this, + &UserLevelMemoryPressureSignalGenerator::OnTimerFired) { + int64_t physical_memory = base::SysInfo::AmountOfPhysicalMemory(); + if (physical_memory > 3.1 * 1024 * 1024 * 1024) + memory_threshold_mb_ = k4GBDeviceMemoryThresholdParam.Get(); + else if (physical_memory > 2.1 * 1024 * 1024 * 1024) + memory_threshold_mb_ = k3GBDeviceMemoryThresholdParam.Get(); + else if (physical_memory > 1.1 * 1024 * 1024 * 1024) + memory_threshold_mb_ = k2GBDeviceMemoryThresholdParam.Get(); + else if (physical_memory > 600 * 1024 * 1024) + memory_threshold_mb_ = k1GBDeviceMemoryThresholdParam.Get(); + else + memory_threshold_mb_ = k512MBDeviceMemoryThresholdParam.Get(); + + minimum_interval_ = + WTF::TimeDelta::FromSeconds(kMinimumIntervalSeconds.Get()); + + // Can be disabled for certain device classes by setting the field param to an + // empty string. + bool enabled = base::FeatureList::IsEnabled( + blink::features::kUserLevelMemoryPressureSignal) && + !std::isinf(memory_threshold_mb_); + if (enabled) { + monitoring_ = true; + MemoryUsageMonitor::Instance().AddObserver(this); + ThreadScheduler::Current()->AddRAILModeObserver(this); + } +} + +UserLevelMemoryPressureSignalGenerator:: + ~UserLevelMemoryPressureSignalGenerator() { + MemoryUsageMonitor::Instance().RemoveObserver(this); + ThreadScheduler::Current()->RemoveRAILModeObserver(this); +} + +void UserLevelMemoryPressureSignalGenerator::OnRAILModeChanged( + RAILMode rail_mode) { + is_loading_ = rail_mode == RAILMode::kLoad; +} + +void UserLevelMemoryPressureSignalGenerator::OnMemoryPing(MemoryUsage usage) { + // Disabled during loading as we don't want to purge caches that has just been + // created. + if (is_loading_) + return; + if (usage.private_footprint_bytes / 1024 / 1024 < memory_threshold_mb_) + return; + base::TimeDelta elapsed = WTF::CurrentTimeTicks() - last_generated_; + if (elapsed >= WTF::TimeDelta::FromSeconds(kMinimumIntervalSeconds.Get())) + Generate(usage); +} + +void UserLevelMemoryPressureSignalGenerator::Generate(MemoryUsage usage) { + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.UserLevelMemoryPressureSignal." + "RendererPrivateMemoryFootprintBefore", + base::saturated_cast<base::Histogram::Sample>( + usage.private_footprint_bytes / 1024 / 1024)); + + base::MemoryPressureListener::NotifyMemoryPressure( + base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); + last_generated_ = WTF::CurrentTimeTicks(); + + delayed_report_timer_.StartOneShot(TimeDelta::FromSeconds(10), FROM_HERE); +} + +void UserLevelMemoryPressureSignalGenerator::OnTimerFired(TimerBase*) { + MemoryUsage usage = MemoryUsageMonitor::Instance().GetCurrentMemoryUsage(); + UMA_HISTOGRAM_MEMORY_LARGE_MB( + "Memory.Experimental.UserLevelMemoryPressureSignal." + "RendererPrivateMemoryFootprintAfter", + base::saturated_cast<base::Histogram::Sample>( + usage.private_footprint_bytes / 1024 / 1024)); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h new file mode 100644 index 0000000..91bd2c3 --- /dev/null +++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h
@@ -0,0 +1,59 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CONTROLLER_USER_LEVEL_MEMORY_PRESSURE_SIGNAL_GENERATOR_H_ +#define THIRD_PARTY_BLINK_RENDERER_CONTROLLER_USER_LEVEL_MEMORY_PRESSURE_SIGNAL_GENERATOR_H_ + +#include "third_party/blink/renderer/controller/controller_export.h" +#include "third_party/blink/renderer/controller/memory_usage_monitor.h" +#include "third_party/blink/renderer/platform/scheduler/public/rail_mode_observer.h" +#include "third_party/blink/renderer/platform/timer.h" +#include "third_party/blink/renderer/platform/wtf/allocator.h" + +namespace blink { + +// Generates extra memory pressure signals (on top of the OS generated ones) +// when the memory usage goes over a threshold. +class CONTROLLER_EXPORT UserLevelMemoryPressureSignalGenerator + : public RAILModeObserver, + public MemoryUsageMonitor::Observer { + USING_FAST_MALLOC(UserLevelMemoryPressureSignalGenerator); + + public: + // Returns the shared instance. + static UserLevelMemoryPressureSignalGenerator& Instance(); + + UserLevelMemoryPressureSignalGenerator(); + ~UserLevelMemoryPressureSignalGenerator() override; + + protected: + // This is only virtual to override in tests. + virtual void Generate(MemoryUsage); + + private: + FRIEND_TEST_ALL_PREFIXES(UserLevelMemoryPressureSignalGeneratorTest, + GeneratesWhenOverThreshold); + FRIEND_TEST_ALL_PREFIXES(UserLevelMemoryPressureSignalGeneratorTest, + GenerationPauses); + + // Called by delayed_report_timer_ to report metrics. + void OnTimerFired(TimerBase*); + + // RAILModeObserver: + void OnRAILModeChanged(RAILMode rail_mode) override; + + // MemoryUsageMonitor::Observer: + void OnMemoryPing(MemoryUsage) override; + + bool monitoring_ = false; + bool is_loading_ = false; + WTF::TimeTicks last_generated_; + double memory_threshold_mb_; + WTF::TimeDelta minimum_interval_; + TaskRunnerTimer<UserLevelMemoryPressureSignalGenerator> delayed_report_timer_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CONTROLLER_USER_LEVEL_MEMORY_PRESSURE_SIGNAL_GENERATOR_H_
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc new file mode 100644 index 0000000..b68f064a --- /dev/null +++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator_test.cc
@@ -0,0 +1,173 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h" + +#include "base/test/scoped_feature_list.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/features.h" +#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" +#include "third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h" + +namespace blink { + +using testing::_; + +namespace { + +// Mock that allows setting mock memory usage. +class MockMemoryUsageMonitor : public MemoryUsageMonitor { + public: + MockMemoryUsageMonitor() = default; + ~MockMemoryUsageMonitor() override = default; + + MemoryUsage GetCurrentMemoryUsage() override { return mock_memory_usage_; } + + // MemoryUsageMonitor will report the current memory usage as this value. + void SetMockMemoryUsage(MemoryUsage usage) { mock_memory_usage_ = usage; } + + private: + MemoryUsage mock_memory_usage_; +}; + +class MockUserLevelMemoryPressureSignalGenerator + : public UserLevelMemoryPressureSignalGenerator { + public: + MockUserLevelMemoryPressureSignalGenerator() { + ON_CALL(*this, Generate(_)) + .WillByDefault(testing::Invoke( + this, &MockUserLevelMemoryPressureSignalGenerator::RealGenerate)); + } + ~MockUserLevelMemoryPressureSignalGenerator() override = default; + + MOCK_METHOD1(Generate, void(MemoryUsage)); + + void RealGenerate(MemoryUsage usage) { + UserLevelMemoryPressureSignalGenerator::Generate(usage); + } +}; + +class ScopedMockMemoryUsageMonitor { + public: + ScopedMockMemoryUsageMonitor(MemoryUsageMonitor* monitor) { + MemoryUsageMonitor::SetInstanceForTesting(monitor); + } + ~ScopedMockMemoryUsageMonitor() { + MemoryUsageMonitor::SetInstanceForTesting(nullptr); + } +}; + +class UserLevelMemoryPressureSignalGeneratorTest : public testing::Test { + public: + UserLevelMemoryPressureSignalGeneratorTest() = default; + + void SetUp() override { + std::map<std::string, std::string> feature_parameters; + feature_parameters["param_512mb_device_memory_threshold_mb"] = "1024.0"; + feature_parameters["param_1gb_device_memory_threshold_mb"] = "1024.0"; + feature_parameters["param_2gb_device_memory_threshold_mb"] = "1024.0"; + feature_parameters["param_3gb_device_memory_threshold_mb"] = "1024.0"; + feature_parameters["param_4gb_device_memory_threshold_mb"] = "1024.0"; + feature_parameters["minimum_interval_s"] = "600.0"; + + scoped_feature_list_.InitAndEnableFeatureWithParameters( + blink::features::kUserLevelMemoryPressureSignal, feature_parameters); + } + + protected: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +constexpr double kMemoryThresholdBytes = 1024 * 1024 * 1024; + +} // namespace + +TEST_F(UserLevelMemoryPressureSignalGeneratorTest, GeneratesWhenOverThreshold) { + { + WTF::ScopedMockClock clock; + std::unique_ptr<MockMemoryUsageMonitor> mock_memory_usage_monitor = + std::make_unique<MockMemoryUsageMonitor>(); + ScopedMockMemoryUsageMonitor mock_memory_usage_scope( + mock_memory_usage_monitor.get()); + MockUserLevelMemoryPressureSignalGenerator generator; + { + EXPECT_CALL(generator, Generate(_)).Times(0); + MemoryUsage usage; + usage.v8_bytes = 0; + usage.blink_gc_bytes = 0; + usage.partition_alloc_bytes = 0; + usage.private_footprint_bytes = kMemoryThresholdBytes - 1024 * 1024; + usage.swap_bytes = 0; + usage.vm_size_bytes = 0; + mock_memory_usage_monitor->SetMockMemoryUsage(usage); + clock.Advance(TimeDelta::FromSeconds(1)); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + { + EXPECT_CALL(generator, Generate(_)).Times(1); + MemoryUsage usage; + usage.v8_bytes = 0; + usage.blink_gc_bytes = 0; + usage.partition_alloc_bytes = 0; + usage.private_footprint_bytes = kMemoryThresholdBytes + 1024 * 1024; + usage.swap_bytes = 0; + usage.vm_size_bytes = 0; + mock_memory_usage_monitor->SetMockMemoryUsage(usage); + clock.Advance(TimeDelta::FromMinutes(10)); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + } +} + +TEST_F(UserLevelMemoryPressureSignalGeneratorTest, GenerationPauses) { + { + WTF::ScopedMockClock clock; + std::unique_ptr<MockMemoryUsageMonitor> mock_memory_usage_monitor = + std::make_unique<MockMemoryUsageMonitor>(); + ScopedMockMemoryUsageMonitor mock_memory_usage_scope( + mock_memory_usage_monitor.get()); + MockUserLevelMemoryPressureSignalGenerator generator; + { + MemoryUsage usage; + usage.v8_bytes = 0; + usage.blink_gc_bytes = 0; + usage.partition_alloc_bytes = 0; + usage.private_footprint_bytes = kMemoryThresholdBytes + 1024 * 1024; + usage.swap_bytes = 0; + usage.vm_size_bytes = 0; + mock_memory_usage_monitor->SetMockMemoryUsage(usage); + clock.Advance(TimeDelta::FromMinutes(10)); + // Generated + { + EXPECT_CALL(generator, Generate(_)).Times(1); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + + clock.Advance(TimeDelta::FromMinutes(1)); + // Not generated because too soon + { + EXPECT_CALL(generator, Generate(_)).Times(0); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + + clock.Advance(TimeDelta::FromMinutes(10)); + generator.OnRAILModeChanged(RAILMode::kLoad); + // Not generated because loading + { + EXPECT_CALL(generator, Generate(_)).Times(0); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + + generator.OnRAILModeChanged(RAILMode::kAnimation); + // Generated + { + EXPECT_CALL(generator, Generate(_)).Times(1); + test::RunDelayedTasks(TimeDelta::FromSeconds(1)); + } + } + } +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/accessibility/ax_object_cache.h b/third_party/blink/renderer/core/accessibility/ax_object_cache.h index 721bb00..e689518 100644 --- a/third_party/blink/renderer/core/accessibility/ax_object_cache.h +++ b/third_party/blink/renderer/core/accessibility/ax_object_cache.h
@@ -133,6 +133,10 @@ virtual void HandleLayoutComplete(LayoutObject*) = 0; virtual void HandleScrolledToAnchor(const Node* anchor_node) = 0; + // Called when the frame rect changes, which can sometimes happen + // without producing any layout or other notifications. + virtual void HandleFrameRectsChanged(Document&) = 0; + virtual const AtomicString& ComputedRoleForNode(Node*) = 0; virtual String ComputedNameForNode(Node*) = 0;
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index 85f1033..90faefa 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -2050,10 +2050,6 @@ overflow_y = EOverflow::kAuto; if (overflow_anchor == EOverflowAnchor::kVisible) overflow_anchor = EOverflowAnchor::kAuto; - // Column-gap is (ab)used by the current paged overflow implementation (in - // lack of other ways to specify gaps between pages), so we have to - // propagate it too. - GapLength column_gap = overflow_style->ColumnGap(); cc::ScrollSnapType snap_type = overflow_style->GetScrollSnapType(); ScrollBehavior scroll_behavior = document_element_style->GetScrollBehavior(); @@ -2085,7 +2081,6 @@ viewport_style.OverflowAnchor() != overflow_anchor || viewport_style.OverflowX() != overflow_x || viewport_style.OverflowY() != overflow_y || - viewport_style.ColumnGap() != column_gap || viewport_style.GetScrollSnapType() != snap_type || viewport_style.GetScrollBehavior() != scroll_behavior || viewport_style.OverscrollBehaviorX() != overscroll_behavior_x || @@ -2106,7 +2101,6 @@ new_style->SetOverflowAnchor(overflow_anchor); new_style->SetOverflowX(overflow_x); new_style->SetOverflowY(overflow_y); - new_style->SetColumnGap(column_gap); new_style->SetScrollSnapType(snap_type); new_style->SetScrollBehavior(scroll_behavior); new_style->SetOverscrollBehaviorX(overscroll_behavior_x); @@ -6715,9 +6709,10 @@ IntersectionObserverController& Document::EnsureIntersectionObserverController() { - if (!intersection_observer_controller_) + if (!intersection_observer_controller_) { intersection_observer_controller_ = - IntersectionObserverController::Create(this); + MakeGarbageCollected<IntersectionObserverController>(this); + } return *intersection_observer_controller_; } @@ -7236,7 +7231,7 @@ TextAutosizer* Document::GetTextAutosizer() { if (!text_autosizer_) - text_autosizer_ = TextAutosizer::Create(this); + text_autosizer_ = MakeGarbageCollected<TextAutosizer>(this); return text_autosizer_.Get(); }
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index 020f5ca..b7acae9b 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -1419,8 +1419,8 @@ auto* activated_element_iterator = activated_elements.begin(); for (Element* ancestor : invisible_ancestors) { DCHECK(activated_element_iterator != activated_elements.end()); - ancestor->DispatchEvent( - *ActivateInvisibleEvent::Create(*activated_element_iterator)); + ancestor->DispatchEvent(*MakeGarbageCollected<ActivateInvisibleEvent>( + *activated_element_iterator)); ++activated_element_iterator; } }
diff --git a/third_party/blink/renderer/core/dom/first_letter_pseudo_element.cc b/third_party/blink/renderer/core/dom/first_letter_pseudo_element.cc index 6edb7703..9843488 100644 --- a/third_party/blink/renderer/core/dom/first_letter_pseudo_element.cc +++ b/third_party/blink/renderer/core/dom/first_letter_pseudo_element.cc
@@ -148,7 +148,8 @@ } else if (first_letter_text_layout_object->IsListMarker() || first_letter_text_layout_object == marker) { first_letter_text_layout_object = - first_letter_text_layout_object->NextSibling(); + first_letter_text_layout_object->NextInPreOrderAfterChildren( + parent_layout_object); } else if (first_letter_text_layout_object ->IsFloatingOrOutOfFlowPositioned()) { if (first_letter_text_layout_object->Style()->StyleType() ==
diff --git a/third_party/blink/renderer/core/editing/element_inner_text_test.cc b/third_party/blink/renderer/core/editing/element_inner_text_test.cc index 296fed3..efc058c 100644 --- a/third_party/blink/renderer/core/editing/element_inner_text_test.cc +++ b/third_party/blink/renderer/core/editing/element_inner_text_test.cc
@@ -47,4 +47,14 @@ EXPECT_EQ("abc", target.innerText()); } +// https://crbug.com/947422 +TEST_P(ElementInnerTest, OverflowingListItemWithFloatFirstLetter) { + InsertStyleElement( + "div { display: list-item; overflow: hidden; }" + "div::first-letter { float: right; }"); + SetBodyContent("<div id=target>foo</div>"); + Element& target = *GetDocument().getElementById("target"); + EXPECT_EQ("foo", target.innerText()); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_history_item.cc b/third_party/blink/renderer/core/exported/web_history_item.cc index 4d09abed..a65b11b 100644 --- a/third_party/blink/renderer/core/exported/web_history_item.cc +++ b/third_party/blink/renderer/core/exported/web_history_item.cc
@@ -45,7 +45,7 @@ namespace blink { void WebHistoryItem::Initialize() { - private_ = HistoryItem::Create(); + private_ = MakeGarbageCollected<HistoryItem>(); } void WebHistoryItem::Reset() {
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc index 8dbaa0bd..ab8e2cbd 100644 --- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc +++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -286,7 +286,7 @@ ProvideContextFeaturesTo(*page_, std::make_unique<PagePopupFeaturesClient>()); DEFINE_STATIC_LOCAL(Persistent<LocalFrameClient>, empty_local_frame_client, - (EmptyLocalFrameClient::Create())); + (MakeGarbageCollected<EmptyLocalFrameClient>())); LocalFrame* frame = LocalFrame::Create(empty_local_frame_client, *page_, nullptr); frame->SetPagePopupOwner(popup_client_->OwnerElement());
diff --git a/third_party/blink/renderer/core/frame/frame.cc b/third_party/blink/renderer/core/frame/frame.cc index b97e74d8..b877f4f 100644 --- a/third_party/blink/renderer/core/frame/frame.cc +++ b/third_party/blink/renderer/core/frame/frame.cc
@@ -137,7 +137,7 @@ static ChromeClient& GetEmptyChromeClient() { DEFINE_STATIC_LOCAL(Persistent<EmptyChromeClient>, client, - (EmptyChromeClient::Create())); + (MakeGarbageCollected<EmptyChromeClient>())); return *client; }
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc index e5cd857..46fbccf 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -529,7 +529,7 @@ document(), WebFeature::kApplicationCacheAPIInsecureOrigin); } if (!application_cache_) - application_cache_ = ApplicationCache::Create(GetFrame()); + application_cache_ = MakeGarbageCollected<ApplicationCache>(GetFrame()); return application_cache_.Get(); }
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index d81513f..92570ab 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -961,7 +961,7 @@ IsMainFrame() ? FrameScheduler::FrameType::kMainFrame : FrameScheduler::FrameType::kSubframe)), loader_(this), - navigation_scheduler_(NavigationScheduler::Create(this)), + navigation_scheduler_(MakeGarbageCollected<NavigationScheduler>(this)), script_controller_(MakeGarbageCollected<ScriptController>( *this, *static_cast<LocalWindowProxyManager*>(GetWindowProxyManager()))),
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc index fae7819c..d9cff98 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -3474,6 +3474,13 @@ }); GetFrame().Client()->FrameRectsChanged(FrameRect()); + + // It's possible for changing the frame rect to not generate a layout + // or any other event tracked by accessibility, we've seen this with + // Android WebView. Ensure that the root of the accessibility tree is + // invalidated so that it gets the right bounding rect. + if (AXObjectCache* cache = ExistingAXObjectCache()) + cache->HandleFrameRectsChanged(*GetFrame().GetDocument()); } void LocalFrameView::SetLayoutSizeInternal(const IntSize& size) {
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h index 47169c7..faca212 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h +++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h
@@ -153,7 +153,7 @@ virtual HitTestCanvasResult* GetControlAndIdIfHitRegionExists( const LayoutPoint& location) { NOTREACHED(); - return HitTestCanvasResult::Create(String(), nullptr); + return MakeGarbageCollected<HitTestCanvasResult>(String(), nullptr); } virtual String GetIdFromControl(const Element* element) { return String(); } virtual void ResetUsageTracking() {}
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 197a7c4..ec9e9b0 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -1397,7 +1397,7 @@ const LayoutPoint& location) { if (Is2d()) return context_->GetControlAndIdIfHitRegionExists(location); - return HitTestCanvasResult::Create(String(), nullptr); + return MakeGarbageCollected<HitTestCanvasResult>(String(), nullptr); } String HTMLCanvasElement::GetIdFromControl(const Element* element) {
diff --git a/third_party/blink/renderer/core/html/forms/image_input_type.cc b/third_party/blink/renderer/core/html/forms/image_input_type.cc index 2db0bf0..836292369 100644 --- a/third_party/blink/renderer/core/html/forms/image_input_type.cc +++ b/third_party/blink/renderer/core/html/forms/image_input_type.cc
@@ -109,7 +109,7 @@ if (use_fallback_content_) return LayoutObjectFactory::CreateBlockFlow(GetElement(), style, legacy); LayoutImage* image = new LayoutImage(&GetElement()); - image->SetImageResource(LayoutImageResource::Create()); + image->SetImageResource(MakeGarbageCollected<LayoutImageResource>()); return image; }
diff --git a/third_party/blink/renderer/core/html/forms/internal_popup_menu_test.cc b/third_party/blink/renderer/core/html/forms/internal_popup_menu_test.cc index 5507dafa..7d6619b 100644 --- a/third_party/blink/renderer/core/html/forms/internal_popup_menu_test.cc +++ b/third_party/blink/renderer/core/html/forms/internal_popup_menu_test.cc
@@ -35,8 +35,8 @@ HTMLSelectElement* select = ToHTMLSelectElement(document.getElementById("select")); ASSERT_TRUE(select); - InternalPopupMenu* menu = - InternalPopupMenu::Create(EmptyChromeClient::Create(), *select); + InternalPopupMenu* menu = InternalPopupMenu::Create( + MakeGarbageCollected<EmptyChromeClient>(), *select); document.body()->SetInlineStyleProperty(CSSPropertyID::kColor, "blue");
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc index 726f70a..eca9ea1f 100644 --- a/third_party/blink/renderer/core/html/html_image_element.cc +++ b/third_party/blink/renderer/core/html/html_image_element.cc
@@ -406,7 +406,7 @@ return LayoutObjectFactory::CreateBlockFlow(*this, style, legacy); case LayoutDisposition::kPrimaryContent: { LayoutImage* image = new LayoutImage(this); - image->SetImageResource(LayoutImageResource::Create()); + image->SetImageResource(MakeGarbageCollected<LayoutImageResource>()); image->SetImageDevicePixelRatio(image_device_pixel_ratio_); return image; }
diff --git a/third_party/blink/renderer/core/html/html_plugin_element.cc b/third_party/blink/renderer/core/html/html_plugin_element.cc index 27eb00fe..db339d2 100644 --- a/third_party/blink/renderer/core/html/html_plugin_element.cc +++ b/third_party/blink/renderer/core/html/html_plugin_element.cc
@@ -365,7 +365,7 @@ if (IsImageType()) { LayoutImage* image = new LayoutImage(this); - image->SetImageResource(LayoutImageResource::Create()); + image->SetImageResource(MakeGarbageCollected<LayoutImageResource>()); return image; }
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.cc b/third_party/blink/renderer/core/html/media/html_video_element.cc index 57d987b8..99256f1 100644 --- a/third_party/blink/renderer/core/html/media/html_video_element.cc +++ b/third_party/blink/renderer/core/html/media/html_video_element.cc
@@ -505,6 +505,18 @@ xoffset, yoffset, zoffset, flip_y, premultiply_alpha); } +bool HTMLVideoElement::PrepareVideoFrameForWebGL( + gpu::gles2::GLES2Interface* gl, + GLenum target, + GLuint texture, + bool already_uploaded_id, + WebMediaPlayer::VideoFrameUploadMetadata* out_metadata) { + if (!GetWebMediaPlayer()) + return false; + return GetWebMediaPlayer()->PrepareVideoFrameForWebGL( + gl, target, texture, already_uploaded_id, out_metadata); +} + bool HTMLVideoElement::HasAvailableVideoFrame() const { if (!GetWebMediaPlayer()) return false;
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.h b/third_party/blink/renderer/core/html/media/html_video_element.h index bdea22cd..2978d0694 100644 --- a/third_party/blink/renderer/core/html/media/html_video_element.h +++ b/third_party/blink/renderer/core/html/media/html_video_element.h
@@ -53,6 +53,8 @@ DEFINE_WRAPPERTYPEINFO(); public: + static const int kNoAlreadyUploadedFrame = -1; + static HTMLVideoElement* Create(Document&); HTMLVideoElement(Document&); @@ -94,7 +96,7 @@ cc::PaintCanvas*, const IntRect&, const cc::PaintFlags*, - int already_uploaded_id = -1, + int already_uploaded_id = kNoAlreadyUploadedFrame, WebMediaPlayer::VideoFrameUploadMetadata* out_metadata = nullptr) const; // Used by WebGL to do GPU-GPU texture copy if possible. @@ -140,6 +142,14 @@ bool flip_y, bool premultiply_alpha); + // Used by WebGL to do GPU_GPU texture sharing if possible. + bool PrepareVideoFrameForWebGL( + gpu::gles2::GLES2Interface*, + GLenum target, + GLuint texture, + bool already_uploaded_id, + WebMediaPlayer::VideoFrameUploadMetadata* out_metadata); + bool ShouldDisplayPosterImage() const { return GetDisplayMode() == kPoster; } bool HasAvailableVideoFrame() const;
diff --git a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc index 483e89f..11d0499 100644 --- a/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_overlay_agent.cc
@@ -848,7 +848,7 @@ overlay_settings.SetLoadsImagesAutomatically(true); DEFINE_STATIC_LOCAL(Persistent<LocalFrameClient>, dummy_local_frame_client, - (EmptyLocalFrameClient::Create())); + (MakeGarbageCollected<EmptyLocalFrameClient>())); LocalFrame* frame = LocalFrame::Create(dummy_local_frame_client, *overlay_page_, nullptr); frame->SetView(LocalFrameView::Create(*frame)); @@ -880,7 +880,7 @@ } DEFINE_STATIC_LOCAL(Persistent<LocalFrameClient>, dummy_local_frame_client, - (EmptyLocalFrameClient::Create())); + (MakeGarbageCollected<EmptyLocalFrameClient>())); LocalFrame* frame = LocalFrame::Create(dummy_local_frame_client, *OverlayPage(), nullptr); frame->SetView(LocalFrameView::Create(*frame));
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc index 21d0856..0fe8f35 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc
@@ -17,11 +17,6 @@ namespace blink { -IntersectionObserverController* IntersectionObserverController::Create( - Document* document) { - return MakeGarbageCollected<IntersectionObserverController>(document); -} - IntersectionObserverController::IntersectionObserverController( Document* document) : ContextClient(document) {}
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h index 2c7d51c..a457efc 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h
@@ -26,8 +26,6 @@ USING_GARBAGE_COLLECTED_MIXIN(IntersectionObserverController); public: - static IntersectionObserverController* Create(Document*); - explicit IntersectionObserverController(Document*); virtual ~IntersectionObserverController();
diff --git a/third_party/blink/renderer/core/invisible_dom/activate_invisible_event.h b/third_party/blink/renderer/core/invisible_dom/activate_invisible_event.h index 4528f808..baac901 100644 --- a/third_party/blink/renderer/core/invisible_dom/activate_invisible_event.h +++ b/third_party/blink/renderer/core/invisible_dom/activate_invisible_event.h
@@ -15,10 +15,6 @@ DEFINE_WRAPPERTYPEINFO(); public: - static ActivateInvisibleEvent* Create(Element* activated_element) { - return MakeGarbageCollected<ActivateInvisibleEvent>(activated_element); - } - explicit ActivateInvisibleEvent(Element* activated_element); Element* activatedElement() const { return activated_element_.Get(); }
diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet.cc b/third_party/blink/renderer/core/layout/custom/layout_worklet.cc index 85f475c..f04a404c 100644 --- a/third_party/blink/renderer/core/layout/custom/layout_worklet.cc +++ b/third_party/blink/renderer/core/layout/custom/layout_worklet.cc
@@ -22,17 +22,12 @@ LayoutWorklet* supplement = Supplement<LocalDOMWindow>::From<LayoutWorklet>(window); if (!supplement && window.GetFrame()) { - supplement = Create(window.GetFrame()); + supplement = MakeGarbageCollected<LayoutWorklet>(window.GetFrame()); ProvideTo(window, supplement); } return supplement; } -// static -LayoutWorklet* LayoutWorklet::Create(LocalFrame* frame) { - return MakeGarbageCollected<LayoutWorklet>(frame); -} - LayoutWorklet::LayoutWorklet(LocalFrame* frame) : Worklet(frame->GetDocument()), Supplement<LocalDOMWindow>(*frame->DomWindow()),
diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet.h b/third_party/blink/renderer/core/layout/custom/layout_worklet.h index 0641237..3760877 100644 --- a/third_party/blink/renderer/core/layout/custom/layout_worklet.h +++ b/third_party/blink/renderer/core/layout/custom/layout_worklet.h
@@ -33,7 +33,6 @@ // At the moment, layout worklet allows at most two global scopes at any time. static const size_t kNumGlobalScopes; static LayoutWorklet* From(LocalDOMWindow&); - static LayoutWorklet* Create(LocalFrame*); explicit LayoutWorklet(LocalFrame*); ~LayoutWorklet() override;
diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc b/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc index e2d0f171..b0cebc4 100644 --- a/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc +++ b/third_party/blink/renderer/core/layout/custom/layout_worklet_test.cc
@@ -22,8 +22,8 @@ public: void SetUp() override { PageTestBase::SetUp(IntSize()); - layout_worklet_ = - LayoutWorklet::Create(GetDocument().domWindow()->GetFrame()); + layout_worklet_ = MakeGarbageCollected<LayoutWorklet>( + GetDocument().domWindow()->GetFrame()); proxy_ = layout_worklet_->CreateGlobalScope(); }
diff --git a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h index 5646019..3819164 100644 --- a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h +++ b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
@@ -314,6 +314,13 @@ bool ShouldApplyMinSizeAutoForChild(const LayoutBox& child) const; + // Returns the intrinsic size of this box in the block direction. Call this + // after all flex lines have been created and processed (ie. after the + // ComputeLineItemsPosition stage). + // For a column flexbox, this will return the max across all flex lines of + // the length of the line, minus any added spacing due to justification. + // For row flexboxes, this returns the bottom (block axis) of the last flex + // line. In both cases, border/padding is not included. LayoutUnit IntrinsicContentBlockSize() const; static TransformedWritingMode GetTransformedWritingMode(const ComputedStyle&);
diff --git a/third_party/blink/renderer/core/layout/hit_test_cache.h b/third_party/blink/renderer/core/layout/hit_test_cache.h index 9274fbc0..bc42a71 100644 --- a/third_party/blink/renderer/core/layout/hit_test_cache.h +++ b/third_party/blink/renderer/core/layout/hit_test_cache.h
@@ -47,8 +47,6 @@ class CORE_EXPORT HitTestCache final : public GarbageCollectedFinalized<HitTestCache> { public: - static HitTestCache* Create() { return MakeGarbageCollected<HitTestCache>(); } - HitTestCache() : update_index_(0), dom_tree_version_(0) {} // Check the cache for a possible hit and update |result| if
diff --git a/third_party/blink/renderer/core/layout/hit_test_canvas_result.h b/third_party/blink/renderer/core/layout/hit_test_canvas_result.h index 7e77a0f..e647859 100644 --- a/third_party/blink/renderer/core/layout/hit_test_canvas_result.h +++ b/third_party/blink/renderer/core/layout/hit_test_canvas_result.h
@@ -12,10 +12,6 @@ class CORE_EXPORT HitTestCanvasResult final : public GarbageCollectedFinalized<HitTestCanvasResult> { public: - static HitTestCanvasResult* Create(String id, Member<Element> control) { - return MakeGarbageCollected<HitTestCanvasResult>(id, control); - } - HitTestCanvasResult(String id, Member<Element> control); String GetId() const;
diff --git a/third_party/blink/renderer/core/layout/layout_image_resource.h b/third_party/blink/renderer/core/layout/layout_image_resource.h index 4f8ad3e..11af6c1 100644 --- a/third_party/blink/renderer/core/layout/layout_image_resource.h +++ b/third_party/blink/renderer/core/layout/layout_image_resource.h
@@ -42,10 +42,6 @@ LayoutImageResource(); virtual ~LayoutImageResource(); - static LayoutImageResource* Create() { - return MakeGarbageCollected<LayoutImageResource>(); - } - virtual void Initialize(LayoutObject*); virtual void Shutdown();
diff --git a/third_party/blink/renderer/core/layout/layout_image_resource_style_image.h b/third_party/blink/renderer/core/layout/layout_image_resource_style_image.h index fcf4f0e..1b2bd84 100644 --- a/third_party/blink/renderer/core/layout/layout_image_resource_style_image.h +++ b/third_party/blink/renderer/core/layout/layout_image_resource_style_image.h
@@ -40,9 +40,6 @@ explicit LayoutImageResourceStyleImage(StyleImage*); ~LayoutImageResourceStyleImage() override; - static LayoutImageResource* Create(StyleImage* style_image) { - return MakeGarbageCollected<LayoutImageResourceStyleImage>(style_image); - } void Initialize(LayoutObject*) override; void Shutdown() override;
diff --git a/third_party/blink/renderer/core/layout/layout_media.cc b/third_party/blink/renderer/core/layout/layout_media.cc index ce7a695..daa2a3f 100644 --- a/third_party/blink/renderer/core/layout/layout_media.cc +++ b/third_party/blink/renderer/core/layout/layout_media.cc
@@ -35,7 +35,7 @@ namespace blink { LayoutMedia::LayoutMedia(HTMLMediaElement* video) : LayoutImage(video) { - SetImageResource(LayoutImageResource::Create()); + SetImageResource(MakeGarbageCollected<LayoutImageResource>()); } LayoutMedia::~LayoutMedia() = default;
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc index fbeb4302..787e438 100644 --- a/third_party/blink/renderer/core/layout/layout_object.cc +++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -227,11 +227,12 @@ image->SetStyleInternal(const_cast<ComputedStyle*>(&style)); if (const StyleImage* style_image = To<ImageContentData>(content_data)->GetImage()) { - image->SetImageResource(LayoutImageResourceStyleImage::Create( - const_cast<StyleImage*>(style_image))); + image->SetImageResource( + MakeGarbageCollected<LayoutImageResourceStyleImage>( + const_cast<StyleImage*>(style_image))); image->SetIsGeneratedContent(); } else { - image->SetImageResource(LayoutImageResource::Create()); + image->SetImageResource(MakeGarbageCollected<LayoutImageResource>()); } image->SetStyleInternal(nullptr); return image;
diff --git a/third_party/blink/renderer/core/layout/layout_object_test.cc b/third_party/blink/renderer/core/layout/layout_object_test.cc index d511bb20..8076911 100644 --- a/third_party/blink/renderer/core/layout/layout_object_test.cc +++ b/third_party/blink/renderer/core/layout/layout_object_test.cc
@@ -27,7 +27,8 @@ class LayoutObjectTest : public RenderingTest { public: - LayoutObjectTest() : RenderingTest(EmptyLocalFrameClient::Create()) {} + LayoutObjectTest() + : RenderingTest(MakeGarbageCollected<EmptyLocalFrameClient>()) {} protected: template <bool should_have_wrapper>
diff --git a/third_party/blink/renderer/core/layout/layout_view.cc b/third_party/blink/renderer/core/layout/layout_view.cc index ad2a5ee..289b71a 100644 --- a/third_party/blink/renderer/core/layout/layout_view.cc +++ b/third_party/blink/renderer/core/layout/layout_view.cc
@@ -100,7 +100,7 @@ layout_counter_count_(0), hit_test_count_(0), hit_test_cache_hits_(0), - hit_test_cache_(HitTestCache::Create()), + hit_test_cache_(MakeGarbageCollected<HitTestCache>()), autosize_h_scrollbar_mode_(kScrollbarAuto), autosize_v_scrollbar_mode_(kScrollbarAuto) { // init LayoutObject attributes
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect_test.cc b/third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect_test.cc index 3f98942c..b4a49176 100644 --- a/third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect_test.cc +++ b/third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect_test.cc
@@ -5,36 +5,39 @@ #include "third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/renderer/platform/wtf/allocator/partitions.h" namespace blink { namespace { struct LogicalRectUniteTestData { + const char* test_case; NGLogicalRect a; NGLogicalRect b; NGLogicalRect expected; } logical_rect_unite_test_data[] = { - {{}, {}, {}}, - {{}, + {"empty", {}, {}, {}}, + {"a empty", + {}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}}, - {{{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, + {"b empty", + {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, {}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}}, - {{{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, + {"a larger", + {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, {{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}}, - {{{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, + {"b larger", + {{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}}, }; std::ostream& operator<<(std::ostream& os, const LogicalRectUniteTestData& data) { - WTF::Partitions::Initialize(nullptr); - return os << "Unite " << data.a << " and " << data.b; + return os << "Unite " << data.test_case; } class NGLogicalRectUniteTest
diff --git a/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect_test.cc b/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect_test.cc index 85f15f3..ac7bc56 100644 --- a/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect_test.cc +++ b/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect_test.cc
@@ -5,36 +5,39 @@ #include "third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/renderer/platform/wtf/allocator/partitions.h" namespace blink { namespace { struct PhysicalOffsetRectUniteTestData { + const char* test_case; NGPhysicalOffsetRect a; NGPhysicalOffsetRect b; NGPhysicalOffsetRect expected; } physical_offset_rect_unite_test_data[] = { - {{}, {}, {}}, - {{}, + {"all_empty", {}, {}, {}}, + {"a empty", + {}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}}, - {{{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, + {"b empty", + {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}, {}, {{LayoutUnit(1), LayoutUnit(2)}, {LayoutUnit(3), LayoutUnit(4)}}}, - {{{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, + {"a larger", + {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, {{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}}, - {{{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, + {"b larger", + {{LayoutUnit(200), LayoutUnit(50)}, {LayoutUnit(200), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}, {{LayoutUnit(100), LayoutUnit(50)}, {LayoutUnit(300), LayoutUnit(200)}}}, }; std::ostream& operator<<(std::ostream& os, const PhysicalOffsetRectUniteTestData& data) { - WTF::Partitions::Initialize(nullptr); - return os << "Unite " << data.a << " and " << data.b; + return os << "Unite " << data.test_case; } class NGPhysicalOffsetRectUniteTest
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc index 036a7cf..1f89a1e9 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc
@@ -282,7 +282,8 @@ EDisplay::kInline); image->SetStyle(image_style); image->SetImageResource( - LayoutImageResourceStyleImage::Create(list_style_image)); + MakeGarbageCollected<LayoutImageResourceStyleImage>( + list_style_image)); image->SetIsGeneratedContent(); marker_->AddChild(image); }
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc index e82c209a..2e42111 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc
@@ -48,7 +48,7 @@ : LayoutSVGModelObject(impl), needs_boundaries_update_(true), needs_transform_update_(true), - image_resource_(LayoutImageResource::Create()) { + image_resource_(MakeGarbageCollected<LayoutImageResource>()) { image_resource_->Initialize(this); }
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h index 265c6b3d..49907fcf 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_filter.h
@@ -52,8 +52,6 @@ kPaintingFilterCycleDetected }; - static FilterData* Create() { return MakeGarbageCollected<FilterData>(); } - FilterData() : state_(kInitial) {} void Dispose();
diff --git a/third_party/blink/renderer/core/layout/text_autosizer.h b/third_party/blink/renderer/core/layout/text_autosizer.h index b5c1c16..e1fad70 100644 --- a/third_party/blink/renderer/core/layout/text_autosizer.h +++ b/third_party/blink/renderer/core/layout/text_autosizer.h
@@ -63,10 +63,6 @@ explicit TextAutosizer(const Document*); ~TextAutosizer(); - static TextAutosizer* Create(const Document* document) { - return MakeGarbageCollected<TextAutosizer>(document); - } - // computed_size should include zoom. static float ComputeAutosizedFontSize(float computed_size, float multiplier,
diff --git a/third_party/blink/renderer/core/layout/text_autosizer_test.cc b/third_party/blink/renderer/core/layout/text_autosizer_test.cc index 0127bbe7..76950ba 100644 --- a/third_party/blink/renderer/core/layout/text_autosizer_test.cc +++ b/third_party/blink/renderer/core/layout/text_autosizer_test.cc
@@ -19,9 +19,6 @@ namespace blink { class TextAutosizerClient : public EmptyChromeClient { public: - static TextAutosizerClient* Create() { - return MakeGarbageCollected<TextAutosizerClient>(); - } float WindowToViewportScalar(const float value) const override { return value * device_scale_factor_; } @@ -46,7 +43,7 @@ } TextAutosizerClient& GetTextAutosizerClient() const { DEFINE_STATIC_LOCAL(Persistent<TextAutosizerClient>, client, - (TextAutosizerClient::Create())); + (MakeGarbageCollected<TextAutosizerClient>())); return *client; } void set_device_scale_factor(float device_scale_factor) {
diff --git a/third_party/blink/renderer/core/loader/appcache/application_cache.h b/third_party/blink/renderer/core/loader/appcache/application_cache.h index ce5b712..7f60357e 100644 --- a/third_party/blink/renderer/core/loader/appcache/application_cache.h +++ b/third_party/blink/renderer/core/loader/appcache/application_cache.h
@@ -44,10 +44,6 @@ USING_GARBAGE_COLLECTED_MIXIN(ApplicationCache); public: - static ApplicationCache* Create(LocalFrame* frame) { - return MakeGarbageCollected<ApplicationCache>(frame); - } - explicit ApplicationCache(LocalFrame*); ~ApplicationCache() override = default;
diff --git a/third_party/blink/renderer/core/loader/appcache/application_cache_host.h b/third_party/blink/renderer/core/loader/appcache/application_cache_host.h index d6bf721..f251319 100644 --- a/third_party/blink/renderer/core/loader/appcache/application_cache_host.h +++ b/third_party/blink/renderer/core/loader/appcache/application_cache_host.h
@@ -53,10 +53,6 @@ : public GarbageCollectedFinalized<ApplicationCacheHost>, public WebApplicationCacheHostClient { public: - static ApplicationCacheHost* Create(DocumentLoader* loader) { - return MakeGarbageCollected<ApplicationCacheHost>(loader); - } - explicit ApplicationCacheHost(DocumentLoader*); ~ApplicationCacheHost() override; void DetachFromDocumentLoader();
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index a2407d1..c8b25ae 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -120,7 +120,7 @@ data_received_(false), navigation_type_(navigation_type), document_load_timing_(*this), - application_cache_host_(ApplicationCacheHost::Create(this)), + application_cache_host_(MakeGarbageCollected<ApplicationCacheHost>(this)), service_worker_network_provider_( std::move(params_->service_worker_network_provider)), was_blocked_after_csp_(false), @@ -458,7 +458,7 @@ WebFrameLoadType load_type, HistoryNavigationType navigation_type) { if (!history_item_ || !IsBackForwardLoadType(load_type)) - history_item_ = HistoryItem::Create(); + history_item_ = MakeGarbageCollected<HistoryItem>(); history_item_->SetURL(UrlForHistory()); history_item_->SetReferrer(SecurityPolicy::GenerateReferrer(
diff --git a/third_party/blink/renderer/core/loader/empty_clients.cc b/third_party/blink/renderer/core/loader/empty_clients.cc index 53702d9..b2a2c59b 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.cc +++ b/third_party/blink/renderer/core/loader/empty_clients.cc
@@ -46,7 +46,7 @@ void FillWithEmptyClients(Page::PageClients& page_clients) { DEFINE_STATIC_LOCAL(Persistent<ChromeClient>, dummy_chrome_client, - (EmptyChromeClient::Create())); + (MakeGarbageCollected<EmptyChromeClient>())); page_clients.chrome_client = dummy_chrome_client; }
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h index c277306..4c1f7b9 100644 --- a/third_party/blink/renderer/core/loader/empty_clients.h +++ b/third_party/blink/renderer/core/loader/empty_clients.h
@@ -78,10 +78,6 @@ class CORE_EXPORT EmptyChromeClient : public ChromeClient { public: - static EmptyChromeClient* Create() { - return MakeGarbageCollected<EmptyChromeClient>(); - } - ~EmptyChromeClient() override = default; void ChromeDestroyed() override {} @@ -238,10 +234,6 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient { public: - static EmptyLocalFrameClient* Create() { - return MakeGarbageCollected<EmptyLocalFrameClient>(); - } - EmptyLocalFrameClient() = default; ~EmptyLocalFrameClient() override = default;
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc index d8cc7b6..1810689 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
@@ -81,10 +81,6 @@ class StubLocalFrameClientWithParent final : public EmptyLocalFrameClient { public: - static StubLocalFrameClientWithParent* Create(Frame* parent) { - return MakeGarbageCollected<StubLocalFrameClientWithParent>(parent); - } - explicit StubLocalFrameClientWithParent(Frame* parent) : parent_(parent) {} void Trace(blink::Visitor* visitor) override { @@ -151,7 +147,8 @@ } FrameFetchContext* CreateChildFrame() { - child_client = StubLocalFrameClientWithParent::Create(document->GetFrame()); + child_client = MakeGarbageCollected<StubLocalFrameClientWithParent>( + document->GetFrame()); child_frame = LocalFrame::Create( child_client.Get(), *document->GetFrame()->GetPage(), owner.Get()); child_frame->SetView(
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc index 9188670..cf5bad04 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.cc +++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -190,7 +190,7 @@ FrameLoader::FrameLoader(LocalFrame* frame) : frame_(frame), - progress_tracker_(ProgressTracker::Create(frame)), + progress_tracker_(MakeGarbageCollected<ProgressTracker>(frame)), in_restore_scroll_(false), forced_sandbox_flags_(kSandboxNone), dispatching_did_clear_window_object_in_main_world_(false),
diff --git a/third_party/blink/renderer/core/loader/link_loader_test.cc b/third_party/blink/renderer/core/loader/link_loader_test.cc index 61f68dc..d71dee2 100644 --- a/third_party/blink/renderer/core/loader/link_loader_test.cc +++ b/third_party/blink/renderer/core/loader/link_loader_test.cc
@@ -36,10 +36,6 @@ USING_GARBAGE_COLLECTED_MIXIN(MockLinkLoaderClient); public: - static MockLinkLoaderClient* Create(bool should_load) { - return MakeGarbageCollected<MockLinkLoaderClient>(should_load); - } - explicit MockLinkLoaderClient(bool should_load) : should_load_(should_load) {} void Trace(blink::Visitor* visitor) override { @@ -138,7 +134,8 @@ ASSERT_TRUE(fetcher); dummy_page_holder_->GetFrame().GetSettings()->SetScriptEnabled(true); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(expected.link_loader_should_load_value); + MakeGarbageCollected<MockLinkLoaderClient>( + expected.link_loader_should_load_value); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); url_test_helpers::RegisterMockedErrorURLLoad(params.href); loader->LoadLink(params, dummy_page_holder_->GetDocument()); @@ -534,7 +531,7 @@ ToScriptStateForMainWorld(dummy_page_holder->GetDocument().GetFrame()), modulator); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(true); + MakeGarbageCollected<MockLinkLoaderClient>(true); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); KURL href_url = KURL(NullURL(), test_case.href); LinkLoadParameters params( @@ -585,7 +582,8 @@ std::make_unique<DummyPageHolder>(IntSize(500, 500)); dummy_page_holder->GetFrame().GetSettings()->SetScriptEnabled(true); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(test_case.link_loader_should_load_value); + MakeGarbageCollected<MockLinkLoaderClient>( + test_case.link_loader_should_load_value); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); KURL href_url = KURL(NullURL(), test_case.href); url_test_helpers::RegisterMockedErrorURLLoad(href_url); @@ -634,7 +632,7 @@ dummy_page_holder->GetDocument().GetSettings()->SetDNSPrefetchingEnabled( true); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(test_case.should_load); + MakeGarbageCollected<MockLinkLoaderClient>(test_case.should_load); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); KURL href_url = KURL(KURL(String("http://example.com")), test_case.href); LinkLoadParameters params( @@ -671,7 +669,7 @@ auto dummy_page_holder = std::make_unique<DummyPageHolder>(IntSize(500, 500)); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(test_case.should_load); + MakeGarbageCollected<MockLinkLoaderClient>(test_case.should_load); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); KURL href_url = KURL(KURL(String("http://example.com")), test_case.href); LinkLoadParameters params( @@ -700,7 +698,7 @@ ASSERT_TRUE(fetcher); dummy_page_holder->GetFrame().GetSettings()->SetScriptEnabled(true); Persistent<MockLinkLoaderClient> loader_client = - MockLinkLoaderClient::Create(true); + MakeGarbageCollected<MockLinkLoaderClient>(true); LinkLoader* loader = LinkLoader::Create(loader_client.Get()); KURL href_url = KURL(KURL(), "https://www.example.com/"); url_test_helpers::RegisterMockedErrorURLLoad(href_url);
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc index 6b6f2b8..cd2690a 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.cc
@@ -66,7 +66,7 @@ mojom::ConsoleMessageSource::kJavaScript, mojom::ConsoleMessageLevel::kError, message, response.CurrentRequestUrl().GetString(), nullptr, - resource->Identifier())); + resource->InspectorId())); return false; }
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h index a2d9012c..bd037ef9 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h
@@ -17,10 +17,6 @@ class CORE_EXPORT ModuleScriptLoaderRegistry final : public GarbageCollected<ModuleScriptLoaderRegistry> { public: - static ModuleScriptLoaderRegistry* Create() { - return MakeGarbageCollected<ModuleScriptLoaderRegistry>(); - } - ModuleScriptLoaderRegistry() = default; void Trace(blink::Visitor*);
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc index ff5d470..a6536ff 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
@@ -202,7 +202,7 @@ void ModuleScriptLoaderTest::TestFetchDataURL( ModuleScriptCustomFetchType custom_fetch_type, TestModuleScriptLoaderClient* client) { - ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); + auto* registry = MakeGarbageCollected<ModuleScriptLoaderRegistry>(); KURL url("data:text/javascript,export default 'grapes';"); ModuleScriptLoader::Fetch(ModuleScriptFetchRequest::CreateForTest(url), fetcher_, ModuleGraphLevel::kTopLevelModuleFetch, @@ -259,7 +259,7 @@ void ModuleScriptLoaderTest::TestInvalidSpecifier( ModuleScriptCustomFetchType custom_fetch_type, TestModuleScriptLoaderClient* client) { - ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); + auto* registry = MakeGarbageCollected<ModuleScriptLoaderRegistry>(); KURL url("data:text/javascript,import 'invalid';export default 'grapes';"); GetModulator()->SetModuleRequests({"invalid"}); ModuleScriptLoader::Fetch(ModuleScriptFetchRequest::CreateForTest(url), @@ -303,7 +303,7 @@ void ModuleScriptLoaderTest::TestFetchInvalidURL( ModuleScriptCustomFetchType custom_fetch_type, TestModuleScriptLoaderClient* client) { - ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); + auto* registry = MakeGarbageCollected<ModuleScriptLoaderRegistry>(); KURL url; EXPECT_FALSE(url.IsValid()); ModuleScriptLoader::Fetch(ModuleScriptFetchRequest::CreateForTest(url), @@ -346,7 +346,7 @@ url_test_helpers::RegisterMockedURLLoad( url, test::CoreTestDataPath("module.js"), "text/javascript"); - ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); + auto* registry = MakeGarbageCollected<ModuleScriptLoaderRegistry>(); ModuleScriptLoader::Fetch(ModuleScriptFetchRequest::CreateForTest(url), fetcher_, ModuleGraphLevel::kTopLevelModuleFetch, GetModulator(), custom_fetch_type, registry,
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h index 2867d9ca..a0a0f7a 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h
@@ -19,10 +19,6 @@ : public GarbageCollected<ModuleTreeLinkerRegistry>, public NameClient { public: - static ModuleTreeLinkerRegistry* Create() { - return MakeGarbageCollected<ModuleTreeLinkerRegistry>(); - } - ModuleTreeLinkerRegistry() = default; void Trace(blink::Visitor*);
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc index cc804d25..4926edca 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
@@ -206,7 +206,7 @@ } TEST_F(ModuleTreeLinkerTest, FetchTreeNoDeps) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + auto* registry = MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/root.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -228,7 +228,8 @@ TEST_F(ModuleTreeLinkerTest, FetchTreeInstantiationFailure) { GetModulator()->SetInstantiateShouldFail(true); - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/root.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -254,7 +255,8 @@ } TEST_F(ModuleTreeLinkerTest, FetchTreeWithSingleDependency) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/root.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -281,7 +283,8 @@ } TEST_F(ModuleTreeLinkerTest, FetchTreeWith3Deps) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/root.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -321,7 +324,8 @@ } TEST_F(ModuleTreeLinkerTest, FetchTreeWith3Deps1Fail) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/root.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -380,7 +384,8 @@ } TEST_F(ModuleTreeLinkerTest, FetchDependencyTree) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/depth1.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>(); @@ -406,7 +411,8 @@ } TEST_F(ModuleTreeLinkerTest, FetchDependencyOfCyclicGraph) { - ModuleTreeLinkerRegistry* registry = ModuleTreeLinkerRegistry::Create(); + ModuleTreeLinkerRegistry* registry = + MakeGarbageCollected<ModuleTreeLinkerRegistry>(); KURL url("http://example.com/a.js"); TestModuleTreeClient* client = MakeGarbageCollected<TestModuleTreeClient>();
diff --git a/third_party/blink/renderer/core/loader/navigation_scheduler.cc b/third_party/blink/renderer/core/loader/navigation_scheduler.cc index 7b3faca..3084604 100644 --- a/third_party/blink/renderer/core/loader/navigation_scheduler.cc +++ b/third_party/blink/renderer/core/loader/navigation_scheduler.cc
@@ -66,17 +66,6 @@ class ScheduledRedirect final : public ScheduledNavigation { public: - static ScheduledRedirect* Create(double delay, - Document* origin_document, - const KURL& url, - Document::HttpRefreshType http_refresh_type, - WebFrameLoadType frame_load_type, - base::TimeTicks input_timestamp) { - return MakeGarbageCollected<ScheduledRedirect>( - delay, origin_document, url, http_refresh_type, frame_load_type, - input_timestamp); - } - ScheduledRedirect(double delay, Document* origin_document, const KURL& url, @@ -217,9 +206,9 @@ WebFrameLoadType frame_load_type = WebFrameLoadType::kStandard; if (delay <= 1) frame_load_type = WebFrameLoadType::kReplaceCurrentItem; - Schedule(ScheduledRedirect::Create(delay, frame_->GetDocument(), url, - http_refresh_type, frame_load_type, - InputTimestamp()), + Schedule(MakeGarbageCollected<ScheduledRedirect>( + delay, frame_->GetDocument(), url, http_refresh_type, + frame_load_type, InputTimestamp()), kDoNotCancelParsing); } }
diff --git a/third_party/blink/renderer/core/loader/navigation_scheduler.h b/third_party/blink/renderer/core/loader/navigation_scheduler.h index c09fcd1..294156f 100644 --- a/third_party/blink/renderer/core/loader/navigation_scheduler.h +++ b/third_party/blink/renderer/core/loader/navigation_scheduler.h
@@ -55,10 +55,6 @@ class CORE_EXPORT NavigationScheduler final : public GarbageCollectedFinalized<NavigationScheduler> { public: - static NavigationScheduler* Create(LocalFrame* frame) { - return MakeGarbageCollected<NavigationScheduler>(frame); - } - explicit NavigationScheduler(LocalFrame*); ~NavigationScheduler();
diff --git a/third_party/blink/renderer/core/loader/progress_tracker.cc b/third_party/blink/renderer/core/loader/progress_tracker.cc index 5b7bd5b..98ff4d6 100644 --- a/third_party/blink/renderer/core/loader/progress_tracker.cc +++ b/third_party/blink/renderer/core/loader/progress_tracker.cc
@@ -65,10 +65,6 @@ DISALLOW_COPY_AND_ASSIGN(ProgressItem); }; -ProgressTracker* ProgressTracker::Create(LocalFrame* frame) { - return MakeGarbageCollected<ProgressTracker>(frame); -} - ProgressTracker::ProgressTracker(LocalFrame* frame) : frame_(frame), last_notified_progress_value_(0),
diff --git a/third_party/blink/renderer/core/loader/progress_tracker.h b/third_party/blink/renderer/core/loader/progress_tracker.h index 4675fcd..b81db1c 100644 --- a/third_party/blink/renderer/core/loader/progress_tracker.h +++ b/third_party/blink/renderer/core/loader/progress_tracker.h
@@ -50,8 +50,6 @@ class CORE_EXPORT ProgressTracker final : public GarbageCollectedFinalized<ProgressTracker> { public: - static ProgressTracker* Create(LocalFrame*); - explicit ProgressTracker(LocalFrame*); ~ProgressTracker(); void Trace(blink::Visitor*);
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.cc b/third_party/blink/renderer/core/loader/resource/image_resource.cc index c0ebdfe..6260074 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource.cc +++ b/third_party/blink/renderer/core/loader/resource/image_resource.cc
@@ -43,6 +43,7 @@ #include "third_party/blink/renderer/platform/loader/fetch/resource_loader.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h" +#include "third_party/blink/renderer/platform/loader/fetch/unique_identifier.h" #include "third_party/blink/renderer/platform/network/http_parsers.h" #include "third_party/blink/renderer/platform/network/network_utils.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" @@ -222,6 +223,7 @@ ImageResource* ImageResource::CreateForTest(const KURL& url) { ResourceRequest request(url); + request.SetInspectorId(CreateUniqueIdentifier()); return Create(request); }
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc index 11245e0..987dd75 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc +++ b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
@@ -371,7 +371,6 @@ // Emulate starting a real load, but don't expect any "real" // WebURLLoaderClient callbacks. ImageResource* image_resource = ImageResource::CreateForTest(test_url); - image_resource->SetIdentifier(CreateUniqueIdentifier()); fetcher->StartLoad(image_resource); auto observer = @@ -457,9 +456,9 @@ ResourceFetcher* fetcher = CreateFetcher(); KURL test_url(kTestURL); ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath()); - ImageResource* image_resource = - ImageResource::Create(ResourceRequest(test_url)); - image_resource->SetIdentifier(CreateUniqueIdentifier()); + ResourceRequest resource_request(test_url); + resource_request.SetInspectorId(CreateUniqueIdentifier()); + ImageResource* image_resource = ImageResource::Create(resource_request); fetcher->StartLoad(image_resource); ResourceResponse multipart_response(NullURL()); @@ -499,7 +498,6 @@ // Emulate starting a real load. ImageResource* image_resource = ImageResource::CreateForTest(test_url); - image_resource->SetIdentifier(CreateUniqueIdentifier()); fetcher->StartLoad(image_resource); GetMemoryCache()->Add(image_resource); @@ -550,7 +548,6 @@ // Emulate starting a real load. ImageResource* image_resource = ImageResource::CreateForTest(test_url); - image_resource->SetIdentifier(CreateUniqueIdentifier()); fetcher->StartLoad(image_resource); GetMemoryCache()->Add(image_resource); @@ -1862,9 +1859,9 @@ FillWithEmptyClients(clients); clients.chrome_client = chrome_client; std::unique_ptr<DummyPageHolder> page_holder = - std::make_unique<DummyPageHolder>(IntSize(800, 600), &clients, - EmptyLocalFrameClient::Create(), - nullptr); + std::make_unique<DummyPageHolder>( + IntSize(800, 600), &clients, + MakeGarbageCollected<EmptyLocalFrameClient>(), nullptr); KURL test_url(kTestURL); ScopedMockedURLLoad scoped_mocked_url_load(test_url, GetTestFilePath());
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.cc b/third_party/blink/renderer/core/loader/threadable_loader.cc index e2c2a6c26..aeb50db 100644 --- a/third_party/blink/renderer/core/loader/threadable_loader.cc +++ b/third_party/blink/renderer/core/loader/threadable_loader.cc
@@ -581,7 +581,7 @@ return client_->WillFollowRedirect(new_url, redirect_response); if (!actual_request_.IsNull()) { - ReportResponseReceived(resource->Identifier(), redirect_response); + ReportResponseReceived(resource->InspectorId(), redirect_response); HandlePreflightFailure( original_url, @@ -649,7 +649,7 @@ } probe::DidReceiveCorsRedirectResponse( - execution_context_, resource->Identifier(), + execution_context_, resource->InspectorId(), GetDocument() && GetDocument()->GetFrame() ? GetDocument()->GetFrame()->Loader().GetDocumentLoader() : nullptr, @@ -835,13 +835,13 @@ if (out_of_blink_cors_ && !response.WasFetchedViaServiceWorker()) { DCHECK(actual_request_.IsNull()); fallback_request_for_service_worker_ = ResourceRequest(); - client_->DidReceiveResponse(resource->Identifier(), response); + client_->DidReceiveResponse(resource->InspectorId(), response); return; } // Code path for legacy Blink CORS. if (!actual_request_.IsNull()) { - ReportResponseReceived(resource->Identifier(), response); + ReportResponseReceived(resource->InspectorId(), response); HandlePreflightResponse(response); return; } @@ -853,7 +853,7 @@ // therefore fallback-to-network is handled in the browser process when // the ServiceWorker does not call respondWith().) DCHECK(!fallback_request_for_service_worker_.IsNull()); - ReportResponseReceived(resource->Identifier(), response); + ReportResponseReceived(resource->InspectorId(), response); LoadFallbackRequestForServiceWorker(); return; } @@ -873,7 +873,7 @@ } fallback_request_for_service_worker_ = ResourceRequest(); - client_->DidReceiveResponse(resource->Identifier(), response); + client_->DidReceiveResponse(resource->InspectorId(), response); return; } @@ -895,7 +895,7 @@ response.HttpHeaderFields(), fetch_credentials_mode_, *GetSecurityOrigin()); if (access_error) { - ReportResponseReceived(resource->Identifier(), response); + ReportResponseReceived(resource->InspectorId(), response); DispatchDidFail( ResourceError(response.CurrentRequestUrl(), *access_error)); return; @@ -905,7 +905,7 @@ DCHECK_EQ(&response, &resource->GetResponse()); resource->SetResponseType(response_tainting_); DCHECK_EQ(response.GetType(), response_tainting_); - client_->DidReceiveResponse(resource->Identifier(), response); + client_->DidReceiveResponse(resource->InspectorId(), response); } void ThreadableLoader::ResponseBodyReceived(Resource*, BytesConsumer& body) { @@ -968,7 +968,7 @@ // downloaded file. Persistent<Resource> protect = GetResource(); Clear(); - client->DidFinishLoading(resource->Identifier()); + client->DidFinishLoading(resource->InspectorId()); } void ThreadableLoader::DidTimeout(TimerBase* timer) {
diff --git a/third_party/blink/renderer/core/messaging/message_channel.cc b/third_party/blink/renderer/core/messaging/message_channel.cc index 2851445..b8f69fe9 100644 --- a/third_party/blink/renderer/core/messaging/message_channel.cc +++ b/third_party/blink/renderer/core/messaging/message_channel.cc
@@ -32,8 +32,8 @@ namespace blink { MessageChannel::MessageChannel(ExecutionContext* context) - : port1_(MessagePort::Create(*context)), - port2_(MessagePort::Create(*context)) { + : port1_(MakeGarbageCollected<MessagePort>(*context)), + port2_(MakeGarbageCollected<MessagePort>(*context)) { mojo::MessagePipe pipe; port1_->Entangle(std::move(pipe.handle0)); port2_->Entangle(std::move(pipe.handle1));
diff --git a/third_party/blink/renderer/core/messaging/message_channel.h b/third_party/blink/renderer/core/messaging/message_channel.h index 9e584a2..45fea2f 100644 --- a/third_party/blink/renderer/core/messaging/message_channel.h +++ b/third_party/blink/renderer/core/messaging/message_channel.h
@@ -40,10 +40,6 @@ DEFINE_WRAPPERTYPEINFO(); public: - static MessageChannel* Create(ExecutionContext* context) { - return MakeGarbageCollected<MessageChannel>(context); - } - explicit MessageChannel(ExecutionContext*); MessagePort* port1() const { return port1_; }
diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc index be039ac..20dbefd 100644 --- a/third_party/blink/renderer/core/messaging/message_port.cc +++ b/third_party/blink/renderer/core/messaging/message_port.cc
@@ -55,10 +55,6 @@ constexpr base::TimeDelta kYieldThreshold = base::TimeDelta::FromMilliseconds(50); -MessagePort* MessagePort::Create(ExecutionContext& execution_context) { - return MakeGarbageCollected<MessagePort>(execution_context); -} - MessagePort::MessagePort(ExecutionContext& execution_context) : ContextLifecycleObserver(&execution_context), task_runner_(execution_context.GetTaskRunner(TaskType::kPostedMessage)) {} @@ -248,7 +244,7 @@ wtf_size_t count = SafeCast<wtf_size_t>(channels.size()); MessagePortArray* port_array = MakeGarbageCollected<MessagePortArray>(count); for (wtf_size_t i = 0; i < count; ++i) { - MessagePort* port = MessagePort::Create(context); + auto* port = MakeGarbageCollected<MessagePort>(context); port->Entangle(std::move(channels[i])); (*port_array)[i] = port; }
diff --git a/third_party/blink/renderer/core/messaging/message_port.h b/third_party/blink/renderer/core/messaging/message_port.h index 3fe4331..1f9f0b4 100644 --- a/third_party/blink/renderer/core/messaging/message_port.h +++ b/third_party/blink/renderer/core/messaging/message_port.h
@@ -57,8 +57,6 @@ USING_GARBAGE_COLLECTED_MIXIN(MessagePort); public: - static MessagePort* Create(ExecutionContext&); - explicit MessagePort(ExecutionContext&); ~MessagePort() override;
diff --git a/third_party/blink/renderer/core/mojo/mojo.cc b/third_party/blink/renderer/core/mojo/mojo.cc index d57a82e..4f0e5632 100644 --- a/third_party/blink/renderer/core/mojo/mojo.cc +++ b/third_party/blink/renderer/core/mojo/mojo.cc
@@ -40,10 +40,10 @@ result_dict->setResult(result); if (result == MOJO_RESULT_OK) { - result_dict->setHandle0( - MojoHandle::Create(mojo::ScopedHandle::From(std::move(handle0)))); - result_dict->setHandle1( - MojoHandle::Create(mojo::ScopedHandle::From(std::move(handle1)))); + result_dict->setHandle0(MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(handle0)))); + result_dict->setHandle1(MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(handle1)))); } return result_dict; } @@ -70,10 +70,10 @@ MojoResult result = mojo::CreateDataPipe(&options, &producer, &consumer); result_dict->setResult(result); if (result == MOJO_RESULT_OK) { - result_dict->setProducer( - MojoHandle::Create(mojo::ScopedHandle::From(std::move(producer)))); - result_dict->setConsumer( - MojoHandle::Create(mojo::ScopedHandle::From(std::move(consumer)))); + result_dict->setProducer(MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(producer)))); + result_dict->setConsumer(MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(consumer)))); } return result_dict; } @@ -89,7 +89,8 @@ result_dict->setResult(result); if (result == MOJO_RESULT_OK) { - result_dict->setHandle(MojoHandle::Create(mojo::MakeScopedHandle(handle))); + result_dict->setHandle( + MakeGarbageCollected<MojoHandle>(mojo::MakeScopedHandle(handle))); } return result_dict; } @@ -125,7 +126,8 @@ mojo::MessagePipe pipe; document->BindDocumentInterfaceBroker(std::move(pipe.handle0)); - return MojoHandle::Create(mojo::ScopedHandle::From(std::move(pipe.handle1))); + return MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(pipe.handle1))); } // static @@ -137,7 +139,7 @@ Document* document = static_cast<Document*>(execution_context); DCHECK(document); - return MojoHandle::Create( + return MakeGarbageCollected<MojoHandle>( mojo::ScopedHandle::From(document->SetDocumentInterfaceBrokerForTesting( mojo::ScopedMessagePipeHandle(mojo::MessagePipeHandle( test_broker_handle->TakeHandle().release().value())))));
diff --git a/third_party/blink/renderer/core/mojo/mojo_handle.cc b/third_party/blink/renderer/core/mojo/mojo_handle.cc index 2a5047b..b74bf25 100644 --- a/third_party/blink/renderer/core/mojo/mojo_handle.cc +++ b/third_party/blink/renderer/core/mojo/mojo_handle.cc
@@ -29,10 +29,6 @@ namespace blink { -MojoHandle* MojoHandle::Create(mojo::ScopedHandle handle) { - return MakeGarbageCollected<MojoHandle>(std::move(handle)); -} - mojo::ScopedHandle MojoHandle::TakeHandle() { return std::move(handle_); } @@ -122,7 +118,7 @@ HeapVector<Member<MojoHandle>> handles(num_handles); for (uint32_t i = 0; i < num_handles; ++i) { - handles[i] = MojoHandle::Create( + handles[i] = MakeGarbageCollected<MojoHandle>( mojo::MakeScopedHandle(mojo::Handle(raw_handles[i]))); } result_dict->setHandles(handles); @@ -262,7 +258,8 @@ handle.mutable_value()); result_dict->setResult(result); if (result == MOJO_RESULT_OK) { - result_dict->setHandle(MojoHandle::Create(mojo::MakeScopedHandle(handle))); + result_dict->setHandle( + MakeGarbageCollected<MojoHandle>(mojo::MakeScopedHandle(handle))); } return result_dict; }
diff --git a/third_party/blink/renderer/core/mojo/mojo_handle.h b/third_party/blink/renderer/core/mojo/mojo_handle.h index fb281a55..3c22fb08 100644 --- a/third_party/blink/renderer/core/mojo/mojo_handle.h +++ b/third_party/blink/renderer/core/mojo/mojo_handle.h
@@ -31,8 +31,6 @@ DEFINE_WRAPPERTYPEINFO(); public: - static MojoHandle* Create(mojo::ScopedHandle); - explicit MojoHandle(mojo::ScopedHandle); mojo::ScopedHandle TakeHandle();
diff --git a/third_party/blink/renderer/core/mojo/test/mojo_interface_interceptor.cc b/third_party/blink/renderer/core/mojo/test/mojo_interface_interceptor.cc index 396adfe..05ed60bc 100644 --- a/third_party/blink/renderer/core/mojo/test/mojo_interface_interceptor.cc +++ b/third_party/blink/renderer/core/mojo/test/mojo_interface_interceptor.cc
@@ -174,8 +174,9 @@ void MojoInterfaceInterceptor::DispatchInterfaceRequestEvent( mojo::ScopedMessagePipeHandle handle) { - DispatchEvent(*MojoInterfaceRequestEvent::Create( - MojoHandle::Create(mojo::ScopedHandle::From(std::move(handle))))); + DispatchEvent(*MakeGarbageCollected<MojoInterfaceRequestEvent>( + MakeGarbageCollected<MojoHandle>( + mojo::ScopedHandle::From(std::move(handle))))); } } // namespace blink
diff --git a/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.h b/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.h index 3015aa68..c67cf9a 100644 --- a/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.h +++ b/third_party/blink/renderer/core/mojo/test/mojo_interface_request_event.h
@@ -23,10 +23,6 @@ public: ~MojoInterfaceRequestEvent() override; - static MojoInterfaceRequestEvent* Create(MojoHandle* handle) { - return MakeGarbageCollected<MojoInterfaceRequestEvent>(handle); - } - static MojoInterfaceRequestEvent* Create( const AtomicString& type, const MojoInterfaceRequestEventInit* initializer) {
diff --git a/third_party/blink/renderer/core/mojo/tests/js_to_cpp_test.cc b/third_party/blink/renderer/core/mojo/tests/js_to_cpp_test.cc index b14267d..21a4f5e5 100644 --- a/third_party/blink/renderer/core/mojo/tests/js_to_cpp_test.cc +++ b/third_party/blink/renderer/core/mojo/tests/js_to_cpp_test.cc
@@ -397,7 +397,7 @@ ASSERT_TRUE(start_fn->IsFunction()); v8::Local<v8::Object> global_proxy = scope.GetContext()->Global(); v8::Local<v8::Value> args[1] = { - ToV8(MojoHandle::Create( + ToV8(MakeGarbageCollected<MojoHandle>( mojo::ScopedHandle::From(js_side_request.PassMessagePipe())), global_proxy, scope.GetIsolate())}; V8ScriptRunner::CallFunction(start_fn.As<v8::Function>(),
diff --git a/third_party/blink/renderer/core/page/chrome_client_test.cc b/third_party/blink/renderer/core/page/chrome_client_test.cc index 6ecf7bd..3ae098dae 100644 --- a/third_party/blink/renderer/core/page/chrome_client_test.cc +++ b/third_party/blink/renderer/core/page/chrome_client_test.cc
@@ -71,7 +71,7 @@ } TEST_F(ChromeClientTest, SetToolTipEmptyString) { - ChromeClient* client = EmptyChromeClient::Create(); + ChromeClient* client = MakeGarbageCollected<EmptyChromeClient>(); HitTestLocation location(LayoutPoint(10, 20)); HitTestResult result(HitTestRequest(HitTestRequest::kMove), location); auto& doc = *Document::CreateForTest();
diff --git a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc index 5a82ca5..9bd16ea 100644 --- a/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc +++ b/third_party/blink/renderer/core/page/validation_message_overlay_delegate.cc
@@ -147,8 +147,8 @@ page_->GetSettings().SetMinimumLogicalFontSize( main_settings.GetMinimumLogicalFontSize()); - LocalFrame* frame = - LocalFrame::Create(EmptyLocalFrameClient::Create(), *page_, nullptr); + auto* frame = LocalFrame::Create( + MakeGarbageCollected<EmptyLocalFrameClient>(), *page_, nullptr); frame->SetView(LocalFrameView::Create(*frame, view_size)); frame->Init(); frame->View()->SetCanHaveScrollbars(false);
diff --git a/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc b/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc index 8ddfcd8..c3e40f2e 100644 --- a/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc +++ b/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc
@@ -1058,7 +1058,7 @@ class PaintInvalidatorCustomClientTest : public RenderingTest { public: PaintInvalidatorCustomClientTest() - : RenderingTest(EmptyLocalFrameClient::Create()), + : RenderingTest(MakeGarbageCollected<EmptyLocalFrameClient>()), chrome_client_(MakeGarbageCollected<PaintInvalidatorTestClient>()) {} PaintInvalidatorTestClient& GetChromeClient() const override {
diff --git a/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc b/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc index 3e738351..1d8332f 100644 --- a/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc +++ b/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
@@ -17,7 +17,8 @@ class PaintLayerClipperTest : public RenderingTest { public: - PaintLayerClipperTest() : RenderingTest(EmptyLocalFrameClient::Create()) {} + PaintLayerClipperTest() + : RenderingTest(MakeGarbageCollected<EmptyLocalFrameClient>()) {} void SetUp() override { WebTestSupport::SetMockThemeEnabledForTest(true);
diff --git a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area_test.cc b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area_test.cc index 202022b..098aabd 100644 --- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area_test.cc +++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area_test.cc
@@ -34,7 +34,7 @@ class PaintLayerScrollableAreaTestBase : public RenderingTest { public: PaintLayerScrollableAreaTestBase() - : RenderingTest(EmptyLocalFrameClient::Create()), + : RenderingTest(MakeGarbageCollected<EmptyLocalFrameClient>()), chrome_client_(MakeGarbageCollected<ScrollableAreaMockChromeClient>()) { }
diff --git a/third_party/blink/renderer/core/paint/svg_filter_painter.cc b/third_party/blink/renderer/core/paint/svg_filter_painter.cc index cfa1cca..c0c61403 100644 --- a/third_party/blink/renderer/core/paint/svg_filter_painter.cc +++ b/third_party/blink/renderer/core/paint/svg_filter_painter.cc
@@ -109,7 +109,7 @@ Intersection(filter->FilterRegion(), object.StrokeBoundingBox())); filter->GetSourceGraphic()->SetSourceRect(source_region); - FilterData* filter_data = FilterData::Create(); + auto* filter_data = MakeGarbageCollected<FilterData>(); filter_data->last_effect = filter->LastEffect(); filter_data->node_map = node_map; DCHECK_EQ(filter_data->state_, FilterData::kInitial);
diff --git a/third_party/blink/renderer/core/script/classic_pending_script.cc b/third_party/blink/renderer/core/script/classic_pending_script.cc index 6ae8918..787ee879 100644 --- a/third_party/blink/renderer/core/script/classic_pending_script.cc +++ b/third_party/blink/renderer/core/script/classic_pending_script.cc
@@ -269,7 +269,7 @@ TRACE_DISABLED_BY_DEFAULT("v8.compile"), "ClassicPendingScript::NotifyFinished", this, TRACE_EVENT_FLAG_FLOW_OUT, "data", - inspector_parse_script_event::Data(GetResource()->Identifier(), + inspector_parse_script_event::Data(GetResource()->InspectorId(), GetResource()->Url().GetString())); bool error_occurred = GetResource()->ErrorOccurred() || integrity_failure_;
diff --git a/third_party/blink/renderer/core/script/modulator_impl_base.cc b/third_party/blink/renderer/core/script/modulator_impl_base.cc index e6bf8c8..341dae3 100644 --- a/third_party/blink/renderer/core/script/modulator_impl_base.cc +++ b/third_party/blink/renderer/core/script/modulator_impl_base.cc
@@ -31,7 +31,7 @@ task_runner_(ExecutionContext::From(script_state_) ->GetTaskRunner(TaskType::kNetworking)), map_(ModuleMap::Create(this)), - tree_linker_registry_(ModuleTreeLinkerRegistry::Create()), + tree_linker_registry_(MakeGarbageCollected<ModuleTreeLinkerRegistry>()), module_record_resolver_(ModuleRecordResolverImpl::Create( this, ExecutionContext::From(script_state_))),
diff --git a/third_party/blink/renderer/core/script/module_map.cc b/third_party/blink/renderer/core/script/module_map.cc index 84b7fbc8..67c7f0ed 100644 --- a/third_party/blink/renderer/core/script/module_map.cc +++ b/third_party/blink/renderer/core/script/module_map.cc
@@ -100,7 +100,7 @@ ModuleMap::ModuleMap(Modulator* modulator) : modulator_(modulator), - loader_registry_(ModuleScriptLoaderRegistry::Create()) { + loader_registry_(MakeGarbageCollected<ModuleScriptLoaderRegistry>()) { DCHECK(modulator); }
diff --git a/third_party/blink/renderer/core/streams/readable_stream_operations_test.cc b/third_party/blink/renderer/core/streams/readable_stream_operations_test.cc index 5d05c22..605a1b46 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_operations_test.cc +++ b/third_party/blink/renderer/core/streams/readable_stream_operations_test.cc
@@ -613,7 +613,8 @@ V8String(scope.GetIsolate(), "hello"))); ScriptValue internal_stream = CheckedGetInternalStream(scope.GetScriptState(), stream); - MessageChannel* channel = MessageChannel::Create(scope.GetExecutionContext()); + auto* channel = + MakeGarbageCollected<MessageChannel>(scope.GetExecutionContext()); ReadableStreamOperations::Serialize(scope.GetScriptState(), internal_stream, channel->port1(), ASSERT_NO_EXCEPTION); EXPECT_TRUE(ReadableStreamOperations::IsLocked(
diff --git a/third_party/blink/renderer/core/streams/readable_stream_test.cc b/third_party/blink/renderer/core/streams/readable_stream_test.cc index d94f0750..8347364a 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_test.cc +++ b/third_party/blink/renderer/core/streams/readable_stream_test.cc
@@ -427,7 +427,8 @@ script_state, underlying_source, 0); ASSERT_TRUE(stream); - MessageChannel* channel = MessageChannel::Create(scope.GetExecutionContext()); + auto* channel = + MakeGarbageCollected<MessageChannel>(scope.GetExecutionContext()); stream->Serialize(script_state, channel->port1(), ASSERT_NO_EXCEPTION); EXPECT_TRUE(stream->IsLocked(script_state, ASSERT_NO_EXCEPTION));
diff --git a/third_party/blink/renderer/core/streams/writable_stream_test.cc b/third_party/blink/renderer/core/streams/writable_stream_test.cc index fe69ef3..5401cc7 100644 --- a/third_party/blink/renderer/core/streams/writable_stream_test.cc +++ b/third_party/blink/renderer/core/streams/writable_stream_test.cc
@@ -86,7 +86,8 @@ ASSERT_NO_EXCEPTION); ASSERT_TRUE(stream); - MessageChannel* channel = MessageChannel::Create(scope.GetExecutionContext()); + auto* channel = + MakeGarbageCollected<MessageChannel>(scope.GetExecutionContext()); stream->Serialize(script_state, channel->port1(), ASSERT_NO_EXCEPTION); EXPECT_TRUE(stream->locked(script_state, ASSERT_NO_EXCEPTION));
diff --git a/third_party/blink/renderer/core/style/content_data.cc b/third_party/blink/renderer/core/style/content_data.cc index ef2b5f5..4d64cf10 100644 --- a/third_party/blink/renderer/core/style/content_data.cc +++ b/third_party/blink/renderer/core/style/content_data.cc
@@ -73,11 +73,12 @@ LegacyLayout) const { LayoutImage* image = LayoutImage::CreateAnonymous(pseudo); image->SetPseudoStyle(&pseudo_style); - if (image_) + if (image_) { image->SetImageResource( - LayoutImageResourceStyleImage::Create(image_.Get())); - else - image->SetImageResource(LayoutImageResource::Create()); + MakeGarbageCollected<LayoutImageResourceStyleImage>(image_.Get())); + } else { + image->SetImageResource(MakeGarbageCollected<LayoutImageResource>()); + } return image; }
diff --git a/third_party/blink/renderer/core/testing/core_unit_test_helper.cc b/third_party/blink/renderer/core/testing/core_unit_test_helper.cc index 845c060..3119e92 100644 --- a/third_party/blink/renderer/core/testing/core_unit_test_helper.cc +++ b/third_party/blink/renderer/core/testing/core_unit_test_helper.cc
@@ -35,7 +35,7 @@ ChromeClient& RenderingTest::GetChromeClient() const { DEFINE_STATIC_LOCAL(Persistent<EmptyChromeClient>, client, - (EmptyChromeClient::Create())); + (MakeGarbageCollected<EmptyChromeClient>())); return *client; }
diff --git a/third_party/blink/renderer/core/workers/shared_worker.cc b/third_party/blink/renderer/core/workers/shared_worker.cc index f499d31..5746444f 100644 --- a/third_party/blink/renderer/core/workers/shared_worker.cc +++ b/third_party/blink/renderer/core/workers/shared_worker.cc
@@ -58,7 +58,7 @@ SharedWorker* worker = MakeGarbageCollected<SharedWorker>(context); - MessageChannel* channel = MessageChannel::Create(context); + auto* channel = MakeGarbageCollected<MessageChannel>(context); worker->port_ = channel->port1(); MessagePortChannel remote_port = channel->port2()->Disentangle();
diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc index a3b1201..9d87464 100644 --- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc
@@ -115,7 +115,7 @@ void SharedWorkerGlobalScope::Connect(MessagePortChannel channel) { DCHECK(!IsContextPaused()); - MessagePort* port = MessagePort::Create(*this); + auto* port = MakeGarbageCollected<MessagePort>(*this); port->Entangle(std::move(channel)); MessageEvent* event = MessageEvent::Create(MakeGarbageCollected<MessagePortArray>(1, port),
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc index f2a22d6..bce9488 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -1613,6 +1613,10 @@ PostNotification(obj, ax::mojom::Event::kScrolledToAnchor); } +void AXObjectCacheImpl::HandleFrameRectsChanged(Document& document) { + MarkAXObjectDirty(Get(&document), false); +} + void AXObjectCacheImpl::HandleScrollPositionChanged( LocalFrameView* frame_view) { AXObject* target_ax_object =
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h index d65b44f5..6503355 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -150,6 +150,10 @@ void HandleLayoutComplete(LayoutObject*) override; void HandleScrolledToAnchor(const Node* anchor_node) override; + // Called when the frame rect changes, which can sometimes happen + // without producing any layout or other notifications. + void HandleFrameRectsChanged(Document&) override; + const AtomicString& ComputedRoleForNode(Node*) override; String ComputedNameForNode(Node*) override;
diff --git a/third_party/blink/renderer/modules/audio_output_devices/BUILD.gn b/third_party/blink/renderer/modules/audio_output_devices/BUILD.gn index 97d26c8d..075e27c 100644 --- a/third_party/blink/renderer/modules/audio_output_devices/BUILD.gn +++ b/third_party/blink/renderer/modules/audio_output_devices/BUILD.gn
@@ -8,7 +8,5 @@ sources = [ "html_media_element_audio_output_device.cc", "html_media_element_audio_output_device.h", - "set_sink_id_callbacks.cc", - "set_sink_id_callbacks.h", ] }
diff --git a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc index 75eeaca..e784c5b 100644 --- a/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc +++ b/third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.cc
@@ -9,13 +9,13 @@ #include "base/macros.h" #include "third_party/blink/public/platform/task_type.h" +#include "third_party/blink/public/platform/web_set_sink_id_callbacks.h" #include "third_party/blink/public/web/web_local_frame_client.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" -#include "third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/wtf/functional.h" @@ -24,6 +24,28 @@ namespace { +DOMException* ToException(WebSetSinkIdError error) { + switch (error) { + case WebSetSinkIdError::kNotFound: + return DOMException::Create(DOMExceptionCode::kNotFoundError, + "Requested device not found"); + case WebSetSinkIdError::kNotAuthorized: + return DOMException::Create(DOMExceptionCode::kSecurityError, + "No permission to use requested device"); + case WebSetSinkIdError::kAborted: + return DOMException::Create( + DOMExceptionCode::kAbortError, + "The operation could not be performed and was aborted"); + case WebSetSinkIdError::kNotSupported: + return DOMException::Create(DOMExceptionCode::kNotSupportedError, + "Operation not supported"); + default: + NOTREACHED(); + return DOMException::Create(DOMExceptionCode::kAbortError, + "Invalid error code"); + } +} + class SetSinkIdResolver : public ScriptPromiseResolver { public: static SetSinkIdResolver* Create(ScriptState*, @@ -38,6 +60,8 @@ private: void DoSetSinkId(); + void OnSetSinkIdComplete(base::Optional<WebSetSinkIdError> error); + Member<HTMLMediaElement> element_; String sink_id_; @@ -70,15 +94,16 @@ } void SetSinkIdResolver::DoSetSinkId() { - ExecutionContext* context = GetExecutionContext(); - std::unique_ptr<SetSinkIdCallbacks> callbacks = - std::make_unique<SetSinkIdCallbacks>(this, *element_, sink_id_); + auto set_sink_id_completion_callback = + WTF::Bind(&SetSinkIdResolver::OnSetSinkIdComplete, WrapPersistent(this)); WebMediaPlayer* web_media_player = element_->GetWebMediaPlayer(); if (web_media_player) { - web_media_player->SetSinkId(sink_id_, std::move(callbacks)); + web_media_player->SetSinkId(sink_id_, + std::move(set_sink_id_completion_callback)); return; } + ExecutionContext* context = GetExecutionContext(); if (!context) { // Detached contexts shouldn't be playing audio. Note that despite this // explicit Reject(), any associated JS callbacks will never be called @@ -95,7 +120,7 @@ WebLocalFrameImpl::FromFrame(document.GetFrame()); if (web_frame && web_frame->Client()) { web_frame->Client()->CheckIfAudioSinkExistsAndIsAuthorized( - sink_id_, std::move(callbacks)); + sink_id_, std::move(set_sink_id_completion_callback)); } else { Reject(DOMException::Create( DOMExceptionCode::kSecurityError, @@ -104,6 +129,22 @@ } } +void SetSinkIdResolver::OnSetSinkIdComplete( + base::Optional<WebSetSinkIdError> error) { + if (!GetExecutionContext() || GetExecutionContext()->IsContextDestroyed()) + return; + + if (error) { + Reject(ToException(*error)); + return; + } + + HTMLMediaElementAudioOutputDevice& aod_element = + HTMLMediaElementAudioOutputDevice::From(*element_); + aod_element.setSinkId(sink_id_); + Resolve(); +} + void SetSinkIdResolver::Trace(blink::Visitor* visitor) { visitor->Trace(element_); ScriptPromiseResolver::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.cc b/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.cc deleted file mode 100644 index 557d26f4..0000000 --- a/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.cc +++ /dev/null
@@ -1,67 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.h" - -#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -#include "third_party/blink/renderer/core/dom/dom_exception.h" -#include "third_party/blink/renderer/modules/audio_output_devices/html_media_element_audio_output_device.h" - -namespace blink { - -namespace { - -DOMException* ToException(WebSetSinkIdError error) { - switch (error) { - case WebSetSinkIdError::kNotFound: - return DOMException::Create(DOMExceptionCode::kNotFoundError, - "Requested device not found"); - case WebSetSinkIdError::kNotAuthorized: - return DOMException::Create(DOMExceptionCode::kSecurityError, - "No permission to use requested device"); - case WebSetSinkIdError::kAborted: - return DOMException::Create( - DOMExceptionCode::kAbortError, - "The operation could not be performed and was aborted"); - case WebSetSinkIdError::kNotSupported: - return DOMException::Create(DOMExceptionCode::kNotSupportedError, - "Operation not supported"); - default: - NOTREACHED(); - return DOMException::Create(DOMExceptionCode::kAbortError, - "Invalid error code"); - } -} - -} // namespace - -SetSinkIdCallbacks::SetSinkIdCallbacks(ScriptPromiseResolver* resolver, - HTMLMediaElement& element, - const String& sink_id) - : resolver_(resolver), element_(element), sink_id_(sink_id) { - DCHECK(resolver_); -} - -SetSinkIdCallbacks::~SetSinkIdCallbacks() = default; - -void SetSinkIdCallbacks::OnSuccess() { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - - HTMLMediaElementAudioOutputDevice& aod_element = - HTMLMediaElementAudioOutputDevice::From(*element_); - aod_element.setSinkId(sink_id_); - resolver_->Resolve(); -} - -void SetSinkIdCallbacks::OnError(WebSetSinkIdError error) { - if (!resolver_->GetExecutionContext() || - resolver_->GetExecutionContext()->IsContextDestroyed()) - return; - - resolver_->Reject(ToException(error)); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.h b/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.h deleted file mode 100644 index f03a830..0000000 --- a/third_party/blink/renderer/modules/audio_output_devices/set_sink_id_callbacks.h +++ /dev/null
@@ -1,45 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_AUDIO_OUTPUT_DEVICES_SET_SINK_ID_CALLBACKS_H_ -#define THIRD_PARTY_BLINK_RENDERER_MODULES_AUDIO_OUTPUT_DEVICES_SET_SINK_ID_CALLBACKS_H_ - -#include "base/macros.h" -#include "base/memory/scoped_refptr.h" -#include "third_party/blink/public/platform/web_set_sink_id_callbacks.h" -#include "third_party/blink/renderer/platform/heap/persistent.h" -#include "third_party/blink/renderer/platform/timer.h" -#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" - -namespace blink { - -class HTMLMediaElement; -class ScriptPromiseResolver; - -class SetSinkIdCallbacks final : public WebSetSinkIdCallbacks { - // FIXME(tasak): When making public/platform classes to use PartitionAlloc, - // the following macro should be moved to WebCallbacks defined in - // public/platform/WebCallbacks.h. - USING_FAST_MALLOC(SetSinkIdCallbacks); - - public: - SetSinkIdCallbacks(ScriptPromiseResolver*, - HTMLMediaElement&, - const String& sink_id); - ~SetSinkIdCallbacks() override; - - void OnSuccess() override; - void OnError(WebSetSinkIdError) override; - - private: - Persistent<ScriptPromiseResolver> resolver_; - Persistent<HTMLMediaElement> element_; - String sink_id_; - - DISALLOW_COPY_AND_ASSIGN(SetSinkIdCallbacks); -}; - -} // namespace blink - -#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_AUDIO_OUTPUT_DEVICES_SET_SINK_ID_CALLBACKS_H_
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index fcdccf7..875e0ca 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -661,7 +661,7 @@ HitTestCanvasResult* CanvasRenderingContext2D::GetControlAndIdIfHitRegionExists( const LayoutPoint& location) { if (HitRegionsCount() <= 0) - return HitTestCanvasResult::Create(String(), nullptr); + return MakeGarbageCollected<HitTestCanvasResult>(String(), nullptr); LayoutBox* box = canvas()->GetLayoutBox(); FloatPoint local_pos = @@ -680,12 +680,12 @@ if (hit_region) { Element* control = hit_region->Control(); if (control && canvas()->IsSupportedInteractiveCanvasFallback(*control)) { - return HitTestCanvasResult::Create(hit_region->Id(), - hit_region->Control()); + return MakeGarbageCollected<HitTestCanvasResult>(hit_region->Id(), + hit_region->Control()); } - return HitTestCanvasResult::Create(hit_region->Id(), nullptr); + return MakeGarbageCollected<HitTestCanvasResult>(hit_region->Id(), nullptr); } - return HitTestCanvasResult::Create(String(), nullptr); + return MakeGarbageCollected<HitTestCanvasResult>(String(), nullptr); } String CanvasRenderingContext2D::GetIdFromControl(const Element* element) {
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_test.cc index 1bb542b..f6be94d 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_test.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_test.cc
@@ -17,6 +17,7 @@ #include "third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h" #include "third_party/blink/renderer/modules/worklet/animation_and_paint_worklet_thread.h" #include "third_party/blink/renderer/modules/worklet/worklet_thread_test_common.h" +#include "third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h" #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" namespace blink { @@ -32,24 +33,32 @@ Document* document = &GetDocument(); document->SetURL(KURL("https://example.com/")); document->UpdateSecurityOrigin(SecurityOrigin::Create(document->Url())); + + dispatcher_ = base::MakeRefCounted<PaintWorkletPaintDispatcher>(); + proxy_client_ = + MakeGarbageCollected<PaintWorkletProxyClient>(1, dispatcher_); reporting_proxy_ = std::make_unique<WorkerReportingProxy>(); } - using TestCalback = void ( - PaintWorkletGlobalScopeTest::*)(WorkerThread*, base::WaitableEvent*); + using TestCallback = + void (PaintWorkletGlobalScopeTest::*)(WorkerThread*, + PaintWorkletProxyClient*, + base::WaitableEvent*); // Create a new paint worklet and run the callback task on it. Terminate the // worklet once the task completion is signaled. - void RunTestOnWorkletThread(TestCalback callback) { + void RunTestOnWorkletThread(TestCallback callback) { std::unique_ptr<WorkerThread> worklet = - CreateThreadAndProvidePaintWorkletProxyClient(&GetDocument(), - reporting_proxy_.get()); + CreateThreadAndProvidePaintWorkletProxyClient( + &GetDocument(), reporting_proxy_.get(), proxy_client_); base::WaitableEvent waitable_event; PostCrossThreadTask( *worklet->GetTaskRunner(TaskType::kInternalTest), FROM_HERE, - CrossThreadBind(callback, CrossThreadUnretained(this), - CrossThreadUnretained(worklet.get()), - CrossThreadUnretained(&waitable_event))); + CrossThreadBind( + callback, CrossThreadUnretained(this), + CrossThreadUnretained(worklet.get()), + CrossThreadPersistent<PaintWorkletProxyClient>(proxy_client_), + CrossThreadUnretained(&waitable_event))); waitable_event.Wait(); waitable_event.Reset(); @@ -58,9 +67,14 @@ } void RunBasicParsingTestOnWorklet(WorkerThread* thread, + PaintWorkletProxyClient* proxy_client, base::WaitableEvent* waitable_event) { ASSERT_TRUE(thread->IsCurrentThread()); - auto* global_scope = To<PaintWorkletGlobalScope>(thread->GlobalScope()); + proxy_client->SetGlobalScopeForTesting( + static_cast<PaintWorkletGlobalScope*>( + To<WorkletGlobalScope>(thread->GlobalScope()))); + CrossThreadPersistent<PaintWorkletGlobalScope> global_scope = + proxy_client->global_scope_; ScriptState* script_state = global_scope->ScriptController()->GetScriptState(); ASSERT_TRUE(script_state); @@ -101,6 +115,8 @@ } private: + scoped_refptr<PaintWorkletPaintDispatcher> dispatcher_; + Persistent<PaintWorkletProxyClient> proxy_client_; std::unique_ptr<WorkerReportingProxy> reporting_proxy_; };
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.cc index 0a1ac7c..f70f53e 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h" +#include "base/single_thread_task_runner.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/frame/web_frame_widget_base.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" @@ -41,6 +42,14 @@ void PaintWorkletProxyClient::Trace(blink::Visitor* visitor) { Supplement<WorkerClients>::Trace(visitor); + PaintWorkletPainter::Trace(visitor); +} + +void PaintWorkletProxyClient::SetGlobalScopeForTesting( + PaintWorkletGlobalScope* global_scope) { + DCHECK(global_scope); + DCHECK(global_scope->IsContextThread()); + global_scope_ = global_scope; } void PaintWorkletProxyClient::SetGlobalScope(WorkletGlobalScope* global_scope) { @@ -51,11 +60,17 @@ DCHECK(state_ == RunState::kUninitialized); global_scope_ = static_cast<PaintWorkletGlobalScope*>(global_scope); + scoped_refptr<base::SingleThreadTaskRunner> global_scope_runner = + global_scope_->GetThread()->GetTaskRunner(TaskType::kMiscPlatformAPI); state_ = RunState::kWorking; + + compositor_paintee_->RegisterPaintWorkletPainter(this, global_scope_runner); } void PaintWorkletProxyClient::Dispose() { if (state_ == RunState::kWorking) { + compositor_paintee_->UnregisterPaintWorkletPainter(this); + DCHECK(global_scope_); DCHECK(global_scope_->IsContextThread()); @@ -64,6 +79,8 @@ global_scope_ = nullptr; } + compositor_paintee_ = nullptr; + DCHECK(state_ != RunState::kDisposed); state_ = RunState::kDisposed; }
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h index 4ad2396..639b999 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client.h
@@ -11,6 +11,7 @@ #include "third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h" +#include "third_party/blink/renderer/platform/graphics/paint_worklet_painter.h" namespace blink { @@ -26,7 +27,8 @@ // TODO(smcgruer): Add the dispatcher logic. class MODULES_EXPORT PaintWorkletProxyClient : public GarbageCollectedFinalized<PaintWorkletProxyClient>, - public Supplement<WorkerClients> { + public Supplement<WorkerClients>, + public PaintWorkletPainter { USING_GARBAGE_COLLECTED_MIXIN(PaintWorkletProxyClient); DISALLOW_COPY_AND_ASSIGN(PaintWorkletProxyClient); @@ -38,18 +40,22 @@ PaintWorkletProxyClient( int worklet_id, scoped_refptr<PaintWorkletPaintDispatcher> compositor_paintee); - virtual ~PaintWorkletProxyClient() = default; + ~PaintWorkletProxyClient() override = default; void Trace(blink::Visitor*) override; virtual void SetGlobalScope(WorkletGlobalScope*); + void SetGlobalScopeForTesting(PaintWorkletGlobalScope*); void Dispose(); static PaintWorkletProxyClient* From(WorkerClients*); private: + friend class PaintWorkletGlobalScopeTest; + friend class PaintWorkletProxyClientTest; FRIEND_TEST_ALL_PREFIXES(PaintWorkletProxyClientTest, PaintWorkletProxyClientConstruction); + FRIEND_TEST_ALL_PREFIXES(PaintWorkletProxyClientTest, SetGlobalScope); scoped_refptr<PaintWorkletPaintDispatcher> compositor_paintee_; const int worklet_id_;
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client_test.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client_test.cc index 2aa76747..4c099d85d 100644 --- a/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client_test.cc +++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_proxy_client_test.cc
@@ -7,13 +7,43 @@ #include <memory> #include <utility> +#include "base/synchronization/waitable_event.h" +#include "base/test/test_simple_task_runner.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" +#include "third_party/blink/renderer/core/workers/worker_reporting_proxy.h" +#include "third_party/blink/renderer/modules/worklet/worklet_thread_test_common.h" #include "third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h" namespace blink { -using PaintWorkletProxyClientTest = RenderingTest; +class PaintWorkletProxyClientTest : public RenderingTest { + public: + PaintWorkletProxyClientTest() = default; + + void SetUp() override { + RenderingTest::SetUp(); + dispatcher_ = base::MakeRefCounted<PaintWorkletPaintDispatcher>(); + + proxy_client_ = + MakeGarbageCollected<PaintWorkletProxyClient>(1, dispatcher_); + reporting_proxy_ = std::make_unique<WorkerReportingProxy>(); + } + + void SetAndCheckGlobalScope(WorkerThread* thread, + PaintWorkletProxyClient* proxy_client, + base::WaitableEvent* waitable_event) { + proxy_client->SetGlobalScope(To<WorkletGlobalScope>(thread->GlobalScope())); + EXPECT_EQ(proxy_client->global_scope_, + To<WorkletGlobalScope>(thread->GlobalScope())); + EXPECT_EQ(dispatcher_->painter_map_.size(), 1u); + waitable_event->Signal(); + } + + scoped_refptr<PaintWorkletPaintDispatcher> dispatcher_; + Persistent<PaintWorkletProxyClient> proxy_client_; + std::unique_ptr<WorkerReportingProxy> reporting_proxy_; +}; TEST_F(PaintWorkletProxyClientTest, PaintWorkletProxyClientConstruction) { PaintWorkletProxyClient* proxy_client = @@ -30,4 +60,30 @@ EXPECT_NE(proxy_client->compositor_paintee_, nullptr); } +TEST_F(PaintWorkletProxyClientTest, SetGlobalScope) { + ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true); + // Global scopes must be created on worker threads. + std::unique_ptr<WorkerThread> worklet_thread = + CreateThreadAndProvidePaintWorkletProxyClient( + &GetDocument(), reporting_proxy_.get(), proxy_client_); + + EXPECT_EQ(proxy_client_->global_scope_, nullptr); + + // Register global scopes with proxy client. This step must be performed on + // the worker threads. + base::WaitableEvent waitable_event; + PostCrossThreadTask( + *worklet_thread->GetTaskRunner(TaskType::kInternalTest), FROM_HERE, + CrossThreadBind( + &PaintWorkletProxyClientTest::SetAndCheckGlobalScope, + CrossThreadUnretained(this), + CrossThreadUnretained(worklet_thread.get()), + CrossThreadPersistent<PaintWorkletProxyClient>(proxy_client_), + CrossThreadUnretained(&waitable_event))); + waitable_event.Wait(); + + worklet_thread->Terminate(); + worklet_thread->WaitForShutdownForTesting(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/filesystem/choose_file_system_entries_options.idl b/third_party/blink/renderer/modules/filesystem/choose_file_system_entries_options.idl index 9907820..a3e158fb 100644 --- a/third_party/blink/renderer/modules/filesystem/choose_file_system_entries_options.idl +++ b/third_party/blink/renderer/modules/filesystem/choose_file_system_entries_options.idl
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#enumdef-choosefilesystementriestype +// https://wicg.github.io/native-file-system/#enumdef-choosefilesystementriestype enum ChooseFileSystemEntriesType { "openFile", "saveFile", "openDirectory" }; -// https://wicg.github.io/writable-files/#dictdef-choosefilesystementriesoptions +// https://wicg.github.io/native-file-system/#dictdef-choosefilesystementriesoptions dictionary ChooseFileSystemEntriesOptions { ChooseFileSystemEntriesType type = "openFile"; boolean multiple = false;
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_base_handle.idl b/third_party/blink/renderer/modules/filesystem/file_system_base_handle.idl index 20008ad4..b0b9fd2 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_base_handle.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_base_handle.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#filesystemhandle +// https://wicg.github.io/native-file-system/#filesystemhandle [ RuntimeEnabled=WritableFiles, NoInterfaceObject
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl index 5e2309e..561f945 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#filesystemdirectoryhandle +// https://wicg.github.io/native-file-system/#filesystemdirectoryhandle [ RuntimeEnabled=WritableFiles ] interface FileSystemDirectoryHandle : FileSystemBaseHandle {
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_file_handle.idl b/third_party/blink/renderer/modules/filesystem/file_system_file_handle.idl index 74f5582..89290e63 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_file_handle.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_file_handle.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#filesystemfilehandle +// https://wicg.github.io/native-file-system/#filesystemfilehandle [ RuntimeEnabled=WritableFiles ] interface FileSystemFileHandle : FileSystemBaseHandle {
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl b/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl index 246e8108..529b8dd2 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#dictdef-filesystemgetdirectoryoptions +// https://wicg.github.io/native-file-system/#dictdef-filesystemgetdirectoryoptions dictionary FileSystemGetDirectoryOptions { boolean create = false; };
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl b/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl index 19c7978f..57c5a7d 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#dictdef-filesystemgetfileoptions +// https://wicg.github.io/native-file-system/#dictdef-filesystemgetfileoptions dictionary FileSystemGetFileOptions { boolean create = false; };
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_writer.idl b/third_party/blink/renderer/modules/filesystem/file_system_writer.idl index 4c96379..8a3e5dec 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_writer.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_writer.idl
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#filesystemwriter +// https://wicg.github.io/native-file-system/#filesystemwriter [ NoInterfaceObject, RuntimeEnabled=WritableFiles
diff --git a/third_party/blink/renderer/modules/filesystem/get_system_directory_options.idl b/third_party/blink/renderer/modules/filesystem/get_system_directory_options.idl index 831ac356..0d51d29 100644 --- a/third_party/blink/renderer/modules/filesystem/get_system_directory_options.idl +++ b/third_party/blink/renderer/modules/filesystem/get_system_directory_options.idl
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// https://wicg.github.io/writable-files/#enumdef-systemdirectorytype +// https://wicg.github.io/native-file-system/#enumdef-systemdirectorytype enum SystemDirectoryType { "sandbox" }; -// https://wicg.github.io/writable-files/#dictdef-getsystemdirectoryoptions +// https://wicg.github.io/native-file-system/#dictdef-getsystemdirectoryoptions dictionary GetSystemDirectoryOptions { required SystemDirectoryType type; };
diff --git a/third_party/blink/renderer/modules/filesystem/window_file_system.idl b/third_party/blink/renderer/modules/filesystem/window_file_system.idl index 935f48bc..187e6ac6 100644 --- a/third_party/blink/renderer/modules/filesystem/window_file_system.idl +++ b/third_party/blink/renderer/modules/filesystem/window_file_system.idl
@@ -38,7 +38,7 @@ [RuntimeEnabled=FileSystem] void webkitResolveLocalFileSystemURL(DOMString url, EntryCallback successCallback, optional ErrorCallback? errorCallback); - // https://wicg.github.io/writable-files/#api-choosefilesystementries + // https://wicg.github.io/native-file-system/#api-choosefilesystementries [RuntimeEnabled=WritableFiles, CallWith=ScriptState, SecureContext] Promise<(FileSystemBaseHandle or sequence<FileSystemBaseHandle>)> chooseFileSystemEntries(optional ChooseFileSystemEntriesOptions options);
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc index 4ea2bc5..fc203ad 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc
@@ -47,7 +47,8 @@ Page::PageClients clients; FillWithEmptyClients(clients); clients.chrome_client = chrome_client_.Get(); - SetupPageWithClients(&clients, EmptyLocalFrameClient::Create()); + SetupPageWithClients(&clients, + MakeGarbageCollected<EmptyLocalFrameClient>()); RuntimeEnabledFeatures::SetDisplayCutoutAPIEnabled(true);
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_display_cutout_delegate_test.cc b/third_party/blink/renderer/modules/media_controls/media_controls_display_cutout_delegate_test.cc index d770f964..cf72f74b 100644 --- a/third_party/blink/renderer/modules/media_controls/media_controls_display_cutout_delegate_test.cc +++ b/third_party/blink/renderer/modules/media_controls/media_controls_display_cutout_delegate_test.cc
@@ -44,7 +44,8 @@ Page::PageClients clients; FillWithEmptyClients(clients); clients.chrome_client = chrome_client_.Get(); - SetupPageWithClients(&clients, EmptyLocalFrameClient::Create()); + SetupPageWithClients(&clients, + MakeGarbageCollected<EmptyLocalFrameClient>()); RuntimeEnabledFeatures::SetDisplayCutoutAPIEnabled(true); RuntimeEnabledFeatures::SetMediaControlsExpandGestureEnabled(true);
diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni index 87768b6..8df2552 100644 --- a/third_party/blink/renderer/modules/modules_idl_files.gni +++ b/third_party/blink/renderer/modules/modules_idl_files.gni
@@ -428,6 +428,8 @@ "webgl/webgl_uniform_location.idl", "webgl/webgl_vertex_array_object.idl", "webgl/webgl_vertex_array_object_oes.idl", + "webgl/webgl_video_frame_info.idl", + "webgl/webgl_video_texture.idl", "webgpu/gpu.idl", "webgpu/gpu_adapter.idl", "webgpu/gpu_device.idl",
diff --git a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc index 074b5c8..0697b9c 100644 --- a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc +++ b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc
@@ -20,8 +20,6 @@ namespace { class DetailsTestCase { - USING_FAST_MALLOC(DetailsTestCase); - public: DetailsTestCase( PaymentTestDetailToChange detail,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_param.cc b/third_party/blink/renderer/modules/webaudio/audio_param.cc index 63388a8f..3a0bb6e 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_param.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_param.cc
@@ -305,14 +305,6 @@ sample_rate, sample_rate, MinValue(), MaxValue())); } -int AudioParamHandler::ComputeQHistogramValue(float new_value) const { - // For the Q value, assume a useful range is [0, 25] and that 0.25 dB - // resolution is good enough. Then, we can map the floating point Q value (in - // dB) to an integer just by multipling by 4 and rounding. - new_value = clampTo(new_value, 0.0, 25.0); - return static_cast<int>(4 * new_value + 0.5); -} - // ---------------------------------------------------------------- AudioParam::AudioParam(BaseAudioContext& context,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_param.h b/third_party/blink/renderer/modules/webaudio/audio_param.h index efc3ebd..9986cdf 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_param.h +++ b/third_party/blink/renderer/modules/webaudio/audio_param.h
@@ -216,8 +216,6 @@ bool sample_accurate); void CalculateTimelineValues(float* values, unsigned number_of_values); - int ComputeQHistogramValue(float) const; - // The type of AudioParam, indicating what this AudioParam represents and what // node it belongs to. Mostly for informational purposes and doesn't affect // implementation.
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc index 1c39df0..f7e47cbf 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
@@ -182,7 +182,7 @@ global_scope->FindDefinition("testProcessor"); EXPECT_TRUE(definition); EXPECT_EQ(definition->GetName(), "testProcessor"); - MessageChannel* channel = MessageChannel::Create(thread->GlobalScope()); + auto* channel = MakeGarbageCollected<MessageChannel>(thread->GlobalScope()); MessagePortChannel dummy_port_channel = channel->port2()->Disentangle(); AudioWorkletProcessor* processor = @@ -283,7 +283,7 @@ )JS"; ASSERT_TRUE(EvaluateScriptModule(global_scope, source_code)); - MessageChannel* channel = MessageChannel::Create(thread->GlobalScope()); + auto* channel = MakeGarbageCollected<MessageChannel>(thread->GlobalScope()); MessagePortChannel dummy_port_channel = channel->port2()->Disentangle(); AudioWorkletProcessor* processor = global_scope->CreateProcessor("testProcessor",
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc index 50e9fde..a596133a 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc
@@ -316,8 +316,8 @@ return nullptr; } - MessageChannel* channel = - MessageChannel::Create(context->GetExecutionContext()); + auto* channel = + MakeGarbageCollected<MessageChannel>(context->GetExecutionContext()); MessagePortChannel processor_port_channel = channel->port2()->Disentangle(); AudioWorkletNode* node = MakeGarbageCollected<AudioWorkletNode>(
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.cc index bc094b73..8c19bd3b 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_processor.cc
@@ -21,7 +21,7 @@ ProcessorCreationParams* params = global_scope->GetProcessorCreationParams(); DCHECK(params); - MessagePort* port = MessagePort::Create(*global_scope); + auto* port = MakeGarbageCollected<MessagePort>(*global_scope); port->Entangle(std::move(params->PortChannel())); return MakeGarbageCollected<AudioWorkletProcessor>(global_scope, params->Name(), port);
diff --git a/third_party/blink/renderer/modules/webgl/BUILD.gn b/third_party/blink/renderer/modules/webgl/BUILD.gn index 2cd01d1a..c6e827d 100644 --- a/third_party/blink/renderer/modules/webgl/BUILD.gn +++ b/third_party/blink/renderer/modules/webgl/BUILD.gn
@@ -137,6 +137,11 @@ "webgl_vertex_array_object_base.h", "webgl_vertex_array_object_oes.cc", "webgl_vertex_array_object_oes.h", + "webgl_video_frame_info.cc", + "webgl_video_frame_info.h", + "webgl_video_texture.cc", + "webgl_video_texture.h", + "webgl_video_texture_enum.h", ] if (support_webgl2_compute_context) {
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.cc b/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.cc index aa028c9..4035087 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.cc +++ b/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.cc
@@ -30,6 +30,7 @@ #include "third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.h" #include "third_party/blink/renderer/modules/webgl/webgl_debug_shaders.h" #include "third_party/blink/renderer/modules/webgl/webgl_lose_context.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture.h" #include "third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h" namespace blink { @@ -137,6 +138,7 @@ RegisterExtension<WebGLDebugRendererInfo>(webgl_debug_renderer_info_); RegisterExtension<WebGLDebugShaders>(webgl_debug_shaders_); RegisterExtension<WebGLLoseContext>(webgl_lose_context_); + RegisterExtension<WebGLVideoTexture>(webgl_video_texture_, kDraftExtension); } void WebGL2ComputeRenderingContext::Trace(blink::Visitor* visitor) { @@ -154,6 +156,7 @@ visitor->Trace(webgl_debug_renderer_info_); visitor->Trace(webgl_debug_shaders_); visitor->Trace(webgl_lose_context_); + visitor->Trace(webgl_video_texture_); WebGL2ComputeRenderingContextBase::Trace(visitor); }
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.h b/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.h index 4958768..8aef6a0 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.h +++ b/third_party/blink/renderer/modules/webgl/webgl2_compute_rendering_context.h
@@ -20,6 +20,7 @@ class OESTextureFloatLinear; class WebGLDebugRendererInfo; class WebGLLoseContext; +class WebGLVideoTexture; class WebGL2ComputeRenderingContext : public WebGL2ComputeRenderingContextBase { DEFINE_WRAPPERTYPEINFO(); @@ -76,6 +77,7 @@ Member<WebGLDebugRendererInfo> webgl_debug_renderer_info_; Member<WebGLDebugShaders> webgl_debug_shaders_; Member<WebGLLoseContext> webgl_lose_context_; + Member<WebGLVideoTexture> webgl_video_texture_; }; DEFINE_TYPE_CASTS(WebGL2ComputeRenderingContext,
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc index f0038bb..96adf00 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.cc
@@ -34,6 +34,7 @@ #include "third_party/blink/renderer/modules/webgl/webgl_multi_draw.h" #include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_instanced.h" #include "third_party/blink/renderer/modules/webgl/webgl_multiview.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture.h" #include "third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h" namespace blink { @@ -146,6 +147,7 @@ RegisterExtension<WebGLMultiDrawInstanced>(webgl_multi_draw_instanced_, kDraftExtension); RegisterExtension<WebGLMultiview>(webgl_multiview_, kDraftExtension); + RegisterExtension<WebGLVideoTexture>(webgl_video_texture_, kDraftExtension); } void WebGL2RenderingContext::Trace(blink::Visitor* visitor) { @@ -167,6 +169,7 @@ visitor->Trace(webgl_multi_draw_); visitor->Trace(webgl_multi_draw_instanced_); visitor->Trace(webgl_multiview_); + visitor->Trace(webgl_video_texture_); WebGL2RenderingContextBase::Trace(visitor); }
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h index bcb02281..36c2d17c 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h
@@ -24,6 +24,7 @@ class WebGLMultiDrawInstanced; class WebGLMultiview; class KHRParallelShaderCompile; +class WebGLVideoTexture; class WebGL2RenderingContext : public WebGL2RenderingContextBase { DEFINE_WRAPPERTYPEINFO(); @@ -82,6 +83,7 @@ Member<WebGLMultiDraw> webgl_multi_draw_; Member<WebGLMultiDrawInstanced> webgl_multi_draw_instanced_; Member<WebGLMultiview> webgl_multiview_; + Member<WebGLVideoTexture> webgl_video_texture_; }; DEFINE_TYPE_CASTS(WebGL2RenderingContext,
diff --git a/third_party/blink/renderer/modules/webgl/webgl_extension_name.h b/third_party/blink/renderer/modules/webgl/webgl_extension_name.h index 6500ecb..03e849c 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_extension_name.h +++ b/third_party/blink/renderer/modules/webgl/webgl_extension_name.h
@@ -44,6 +44,7 @@ kWebGLMultiDrawName, kWebGLMultiDrawInstancedName, kWebGLMultiviewName, + kWebGLVideoTextureName, kWebGLExtensionNameCount, // Must be the last entry }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context.cc index 13c3353..4251c1d 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context.cc
@@ -68,6 +68,7 @@ #include "third_party/blink/renderer/modules/webgl/webgl_lose_context.h" #include "third_party/blink/renderer/modules/webgl/webgl_multi_draw.h" #include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_instanced.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture.h" #include "third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h" namespace blink { @@ -194,6 +195,7 @@ RegisterExtension<WebGLMultiDraw>(webgl_multi_draw_, kDraftExtension); RegisterExtension<WebGLMultiDrawInstanced>(webgl_multi_draw_instanced_, kDraftExtension); + RegisterExtension<WebGLVideoTexture>(webgl_video_texture_, kDraftExtension); } void WebGLRenderingContext::Trace(blink::Visitor* visitor) { @@ -228,6 +230,7 @@ visitor->Trace(webgl_lose_context_); visitor->Trace(webgl_multi_draw_); visitor->Trace(webgl_multi_draw_instanced_); + visitor->Trace(webgl_video_texture_); WebGLRenderingContextBase::Trace(visitor); }
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context.h index d5e70ce..7e9d112b 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context.h
@@ -56,6 +56,7 @@ class WebGLLoseContext; class WebGLMultiDraw; class WebGLMultiDrawInstanced; +class WebGLVideoTexture; class WebGLRenderingContext final : public WebGLRenderingContextBase { DEFINE_WRAPPERTYPEINFO(); @@ -128,6 +129,7 @@ Member<WebGLLoseContext> webgl_lose_context_; Member<WebGLMultiDraw> webgl_multi_draw_; Member<WebGLMultiDrawInstanced> webgl_multi_draw_instanced_; + Member<WebGLVideoTexture> webgl_video_texture_; }; DEFINE_TYPE_CASTS(WebGLRenderingContext,
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc index 06c08f4..093d1b3 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -92,6 +92,8 @@ #include "third_party/blink/renderer/modules/webgl/webgl_uniform_location.h" #include "third_party/blink/renderer/modules/webgl/webgl_vertex_array_object.h" #include "third_party/blink/renderer/modules/webgl/webgl_vertex_array_object_oes.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture_enum.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h" #include "third_party/blink/renderer/platform/cross_thread_functional.h" @@ -1834,12 +1836,39 @@ texture_units_[active_texture_unit_].texture2d_array_binding_ = texture; } else if (IsWebGL2OrHigher() && target == GL_TEXTURE_3D) { texture_units_[active_texture_unit_].texture3d_binding_ = texture; + } else if (target == GL_TEXTURE_VIDEO_IMAGE_WEBGL) { + if (!ExtensionEnabled(kWebGLVideoTextureName)) { + SynthesizeGLError( + GL_INVALID_VALUE, "bindTexture", + "unhandled type, WEBGL_video_texture extension not enabled"); + return; + } + texture_units_[active_texture_unit_].texture_video_image_binding_ = texture; } else { SynthesizeGLError(GL_INVALID_ENUM, "bindTexture", "invalid target"); return; } - ContextGL()->BindTexture(target, ObjectOrZero(texture)); + // We use TEXTURE_EXTERNAL_OES to implement video texture on Android platform + if (target == GL_TEXTURE_VIDEO_IMAGE_WEBGL) { +#if defined(OS_ANDROID) + ContextGL()->BindTexture(GL_TEXTURE_EXTERNAL_OES, ObjectOrZero(texture)); +#else + ContextGL()->BindTexture(GL_TEXTURE_2D, ObjectOrZero(texture)); + if (texture && !texture->GetTarget()) { + ContextGL()->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, + GL_LINEAR); + ContextGL()->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, + GL_LINEAR); + ContextGL()->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, + GL_CLAMP_TO_EDGE); + ContextGL()->TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, + GL_CLAMP_TO_EDGE); + } +#endif // defined OS_ANDROID + } else { + ContextGL()->BindTexture(target, ObjectOrZero(texture)); + } if (texture) { texture->SetTarget(target); one_plus_max_non_default_texture_unit_ = @@ -3770,6 +3799,16 @@ base_type = GL_INT; length = 1; break; + case GL_SAMPLER_VIDEO_IMAGE_WEBGL: + if (!ExtensionEnabled(kWebGLVideoTextureName)) { + SynthesizeGLError( + GL_INVALID_VALUE, "getUniform", + "unhandled type, WEBGL_video_texture extension not enabled"); + return ScriptValue::CreateNull(script_state); + } + base_type = GL_INT; + length = 1; + break; default: if (!IsWebGL2OrHigher()) { // Can't handle this type @@ -5752,6 +5791,15 @@ return; switch (pname) { case GL_TEXTURE_MIN_FILTER: + if (target == GL_TEXTURE_VIDEO_IMAGE_WEBGL) { + if ((is_float && paramf != GL_NEAREST && paramf != GL_LINEAR) || + (!is_float && parami != GL_NEAREST && parami != GL_LINEAR)) { + SynthesizeGLError(GL_INVALID_ENUM, "texParameter", + "invalid parameter name"); + return; + } + } + break; case GL_TEXTURE_MAG_FILTER: break; case GL_TEXTURE_WRAP_R: @@ -5770,6 +5818,15 @@ SynthesizeGLError(GL_INVALID_ENUM, "texParameter", "invalid parameter"); return; } + + if (target == GL_TEXTURE_VIDEO_IMAGE_WEBGL) { + if ((is_float && paramf != GL_CLAMP_TO_EDGE) || + (!is_float && parami != GL_CLAMP_TO_EDGE)) { + SynthesizeGLError(GL_INVALID_ENUM, "texParameter", + "invalid parameter"); + return; + } + } break; case GL_TEXTURE_MAX_ANISOTROPY_EXT: // EXT_texture_filter_anisotropic if (!ExtensionEnabled(kEXTTextureFilterAnisotropicName)) { @@ -6856,6 +6913,15 @@ } tex = texture_units_[active_texture_unit_].texture2d_array_binding_.Get(); break; + case GL_TEXTURE_VIDEO_IMAGE_WEBGL: + if (!ExtensionEnabled(kWebGLVideoTextureName)) { + SynthesizeGLError(GL_INVALID_ENUM, function_name, + "invalid texture target"); + return nullptr; + } + tex = texture_units_[active_texture_unit_] + .texture_video_image_binding_.Get(); + break; default: SynthesizeGLError(GL_INVALID_ENUM, function_name, "invalid texture target"); @@ -7071,6 +7137,8 @@ case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return max_cube_map_texture_level_; + case GL_TEXTURE_VIDEO_IMAGE_WEBGL: + return 1; } return 0; } @@ -7108,6 +7176,7 @@ switch (target) { case GL_TEXTURE_2D: + case GL_TEXTURE_VIDEO_IMAGE_WEBGL: if (width > (max_texture_size_ >> level) || height > (max_texture_size_ >> level)) { SynthesizeGLError(GL_INVALID_VALUE, function_name, @@ -8013,6 +8082,7 @@ visitor->Trace(texture_cube_map_binding_); visitor->Trace(texture3d_binding_); visitor->Trace(texture2d_array_binding_); + visitor->Trace(texture_video_image_binding_); } void WebGLRenderingContextBase::Trace(blink::Visitor* visitor) {
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h index f0b7867..7fb4669 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -586,6 +586,7 @@ TraceWrapperMember<WebGLTexture> texture_cube_map_binding_; TraceWrapperMember<WebGLTexture> texture3d_binding_; TraceWrapperMember<WebGLTexture> texture2d_array_binding_; + TraceWrapperMember<WebGLTexture> texture_video_image_binding_; void Trace(blink::Visitor*); // Wrappers are traced by parent since TextureUnitState is not a heap @@ -637,6 +638,7 @@ friend class WebGLMultiview; friend class WebGLRenderingContextErrorMessageCallback; friend class WebGLVertexArrayObjectBase; + friend class WebGLVideoTexture; friend class ScopedDrawingBufferBinder; friend class ScopedTexture2DRestorer; friend class ScopedFramebufferRestorer;
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.cc b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.cc new file mode 100644 index 0000000..feff9e11 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.cc
@@ -0,0 +1,21 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/modules/webgl/webgl_video_frame_info.h" + +namespace blink { + +WebGLVideoFrameInfo* WebGLVideoFrameInfo::Create( + WebMediaPlayer::VideoFrameUploadMetadata* frame_metadata_ptr) { + return MakeGarbageCollected<WebGLVideoFrameInfo>(frame_metadata_ptr); +} + +WebGLVideoFrameInfo::WebGLVideoFrameInfo( + WebMediaPlayer::VideoFrameUploadMetadata* frame_metadata_ptr) { + current_time_ = frame_metadata_ptr->timestamp.InMicrosecondsF(); + texture_width_ = frame_metadata_ptr->visible_rect.width(); + texture_height_ = frame_metadata_ptr->visible_rect.height(); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.h b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.h new file mode 100644 index 0000000..e49b4d4f --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.h
@@ -0,0 +1,32 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_FRAME_INFO_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_FRAME_INFO_H_ + +#include "third_party/blink/public/platform/web_media_player.h" +#include "third_party/blink/renderer/platform/bindings/script_wrappable.h" + +namespace blink { + +class WebGLVideoFrameInfo final : public ScriptWrappable { + DEFINE_WRAPPERTYPEINFO(); + + public: + static WebGLVideoFrameInfo* Create(WebMediaPlayer::VideoFrameUploadMetadata*); + explicit WebGLVideoFrameInfo(WebMediaPlayer::VideoFrameUploadMetadata*); + + double currentTime() const { return current_time_; } + unsigned textureWidth() const { return texture_width_; } + unsigned textureHeight() const { return texture_height_; } + + private: + double current_time_ = 0; + unsigned texture_width_ = 0; + unsigned texture_height_ = 0; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_FRAME_INFO_H_
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.idl b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.idl new file mode 100644 index 0000000..dc5e5be0 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_frame_info.idl
@@ -0,0 +1,12 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/ +[ + RuntimeEnabled=WebGLDraftExtensions +] interface WebGLVideoFrameInfo { + readonly attribute double currentTime; + readonly attribute unsigned long textureWidth; + readonly attribute unsigned long textureHeight; +};
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_texture.cc b/third_party/blink/renderer/modules/webgl/webgl_video_texture.cc new file mode 100644 index 0000000..b0cc578 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_texture.cc
@@ -0,0 +1,106 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture.h" + +#include "build/build_config.h" +#include "third_party/blink/renderer/core/html/media/html_video_element.h" +#include "third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_frame_info.h" +#include "third_party/blink/renderer/modules/webgl/webgl_video_texture_enum.h" +#include "third_party/blink/renderer/platform/bindings/exception_state.h" + +namespace blink { + +WebGLVideoTexture::WebGLVideoTexture(WebGLRenderingContextBase* context) + : WebGLExtension(context) { + context->ExtensionsUtil()->EnsureExtensionEnabled("WEBGL_video_texture"); +} + +WebGLExtensionName WebGLVideoTexture::GetName() const { + return kWebGLVideoTextureName; +} + +WebGLVideoTexture* WebGLVideoTexture::Create( + WebGLRenderingContextBase* context) { + return MakeGarbageCollected<WebGLVideoTexture>(context); +} + +// We only need GL_OES_EGL_image_external extension on Android. +bool WebGLVideoTexture::Supported(WebGLRenderingContextBase* context) { +#if defined(OS_ANDROID) + return context->ExtensionsUtil()->SupportsExtension( + "GL_OES_EGL_image_external"); +#else // defined OS_ANDROID + return true; +#endif +} + +const char* WebGLVideoTexture::ExtensionName() { + return "WEBGL_video_texture"; +} + +void WebGLVideoTexture::Trace(blink::Visitor* visitor) { + visitor->Trace(current_frame_info_); + WebGLExtension::Trace(visitor); +} + +WebGLVideoFrameInfo* WebGLVideoTexture::VideoElementTargetVideoTexture( + ExecutionContext* execution_context, + unsigned target, + HTMLVideoElement* video, + ExceptionState& exceptionState) { + WebGLExtensionScopedContext scoped(this); + if (!video || scoped.IsLost()) + return nullptr; + + if (target != GL_TEXTURE_VIDEO_IMAGE_WEBGL) { + scoped.Context()->SynthesizeGLError(GL_INVALID_ENUM, "WEBGLVideoTexture", + "invalid texture target"); + } + + if (!scoped.Context()->ValidateHTMLVideoElement( + execution_context->GetSecurityOrigin(), "WEBGLVideoTexture", video, + exceptionState) || + !scoped.Context()->ValidateTexFuncDimensions( + "WEBGLVideoTexture", WebGLRenderingContextBase::kTexImage, target, 0, + video->videoWidth(), video->videoHeight(), 1)) + return nullptr; + + WebGLTexture* texture = + scoped.Context()->ValidateTextureBinding("WEBGLVideoTexture", target); + if (!texture) + return nullptr; + + // For WebGL last-uploaded-frame-metadata API. + WebMediaPlayer::VideoFrameUploadMetadata frame_metadata = {}; + int already_uploaded_id = HTMLVideoElement::kNoAlreadyUploadedFrame; + WebMediaPlayer::VideoFrameUploadMetadata* frame_metadata_ptr = + &frame_metadata; + if (RuntimeEnabledFeatures::ExtraWebGLVideoTextureMetadataEnabled()) { + already_uploaded_id = texture->GetLastUploadedVideoFrameId(); + } + +#if defined(OS_ANDROID) + target = GL_TEXTURE_EXTERNAL_OES; +#else // defined OS_ANDROID + target = GL_TEXTURE_2D; + +#endif // defined OS_ANDROID + + video->PrepareVideoFrameForWebGL(scoped.Context()->ContextGL(), target, + texture->Object(), already_uploaded_id, + frame_metadata_ptr); + + if (!frame_metadata_ptr) { + return nullptr; + } + + if (frame_metadata_ptr) + current_frame_info_ = WebGLVideoFrameInfo::Create(frame_metadata_ptr); + + return current_frame_info_; +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_texture.h b/third_party/blink/renderer/modules/webgl/webgl_video_texture.h new file mode 100644 index 0000000..c6674299 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_texture.h
@@ -0,0 +1,42 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_H_ + +#include "third_party/blink/renderer/modules/webgl/webgl_extension.h" + +namespace blink { + +class HTMLVideoElement; +class WebGLVideoFrameInfo; + +class WebGLVideoTexture final : public WebGLExtension { + DEFINE_WRAPPERTYPEINFO(); + + public: + static WebGLVideoTexture* Create(WebGLRenderingContextBase*); + static bool Supported(WebGLRenderingContextBase*); + static const char* ExtensionName(); + + explicit WebGLVideoTexture(WebGLRenderingContextBase*); + + WebGLExtensionName GetName() const override; + + void Trace(blink::Visitor*) override; + + // Get video frame from video frame compositor and bind it to platform + // texture. + WebGLVideoFrameInfo* VideoElementTargetVideoTexture(ExecutionContext*, + unsigned, + HTMLVideoElement*, + ExceptionState&); + + private: + Member<WebGLVideoFrameInfo> current_frame_info_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_H_
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl b/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl new file mode 100644 index 0000000..998d2b8 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_texture.idl
@@ -0,0 +1,18 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/ + +typedef unsigned long GLenum; + +[ + RuntimeEnabled=WebGLDraftExtensions, + DoNotCheckConstants, + NoInterfaceObject +] interface WebGLVideoTexture { + const GLenum TEXTURE_VIDEO_IMAGE = 0x9248; + const GLenum SAMPLER_VIDEO_IMAGE = 0x9249; + + [CallWith=ExecutionContext, RaisesException] WebGLVideoFrameInfo VideoElementTargetVideoTexture(GLenum target, HTMLVideoElement video); +}; \ No newline at end of file
diff --git a/third_party/blink/renderer/modules/webgl/webgl_video_texture_enum.h b/third_party/blink/renderer/modules/webgl/webgl_video_texture_enum.h new file mode 100644 index 0000000..6f59a154 --- /dev/null +++ b/third_party/blink/renderer/modules/webgl/webgl_video_texture_enum.h
@@ -0,0 +1,10 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_ENUM_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_ENUM_H_ + +#define GL_TEXTURE_VIDEO_IMAGE_WEBGL 0x9248 +#define GL_SAMPLER_VIDEO_IMAGE_WEBGL 0x9249 + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGL_WEBGL_VIDEO_TEXTURE_ENUM_H_
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn index c7504e6..5a83754 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1093,6 +1093,7 @@ "graphics/paint_record_pattern.h", "graphics/paint_worklet_paint_dispatcher.cc", "graphics/paint_worklet_paint_dispatcher.h", + "graphics/paint_worklet_painter.h", "graphics/path.cc", "graphics/path.h", "graphics/path_traversal_state.cc",
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc index dd31267f..71a24f2 100644 --- a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc +++ b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.cc
@@ -24,6 +24,27 @@ return std::make_unique<PlatformPaintWorkletLayerPainter>(dispatcher); } +void PaintWorkletPaintDispatcher::RegisterPaintWorkletPainter( + PaintWorkletPainter* painter, + scoped_refptr<base::SingleThreadTaskRunner> painter_runner) { + TRACE_EVENT0("cc", + "PaintWorkletPaintDispatcher::RegisterPaintWorkletPainter"); + + DCHECK(painter); + DCHECK(painter_map_.find(painter) == painter_map_.end()); + painter_map_.insert(painter, painter_runner); +} + +void PaintWorkletPaintDispatcher::UnregisterPaintWorkletPainter( + PaintWorkletPainter* painter) { + TRACE_EVENT0("cc", + "PaintWorkletPaintDispatcher::" + "UnregisterPaintWorkletPainter"); + DCHECK(painter); + DCHECK(painter_map_.find(painter) != painter_map_.end()); + painter_map_.erase(painter); +} + // TODO(xidachen): we should bundle all PaintWorkletInputs and send them to the // |worklet_queue| once, instead of sending one PaintWorkletInput at a time. // This avoids thread hop and boost performance.
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h index ae585376..a86eaeb 100644 --- a/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h +++ b/third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h
@@ -8,7 +8,13 @@ #include <memory> #include "base/macros.h" +#include "base/single_thread_task_runner.h" +#include "third_party/blink/renderer/platform/graphics/paint_worklet_painter.h" #include "third_party/blink/renderer/platform/graphics/platform_paint_worklet_layer_painter.h" +#include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/heap/persistent.h" +#include "third_party/blink/renderer/platform/heap/visitor.h" +#include "third_party/blink/renderer/platform/wtf/hash_map.h" #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h" namespace blink { @@ -25,9 +31,26 @@ PaintWorkletPaintDispatcher() = default; + // Interface for use by the PaintWorklet thread(s) to request calls. + // (To the given Painter on the given TaskRunner.) + void RegisterPaintWorkletPainter( + PaintWorkletPainter*, + scoped_refptr<base::SingleThreadTaskRunner> mutator_runner); + + void UnregisterPaintWorkletPainter(PaintWorkletPainter*); + sk_sp<cc::PaintRecord> Paint(cc::PaintWorkletInput*); private: + friend class PaintWorkletProxyClientTest; + // We can have more than one task-runner because using a worklet inside a + // frame with a different origin causes a new global scope => new thread. + using PaintWorkletPainterToTaskRunnerMap = + HashMap<CrossThreadPersistent<PaintWorkletPainter>, + scoped_refptr<base::SingleThreadTaskRunner>>; + + PaintWorkletPainterToTaskRunnerMap painter_map_; + DISALLOW_COPY_AND_ASSIGN(PaintWorkletPaintDispatcher); };
diff --git a/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h b/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h new file mode 100644 index 0000000..d900eba3 --- /dev/null +++ b/third_party/blink/renderer/platform/graphics/paint_worklet_painter.h
@@ -0,0 +1,36 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_WORKLET_PAINTER_H_ +#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_WORKLET_PAINTER_H_ + +#include "cc/paint/paint_worklet_input.h" +#include "third_party/blink/renderer/platform/graphics/paint/paint_record.h" +#include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/platform_export.h" +#include "third_party/skia/include/core/SkRefCnt.h" + +namespace blink { + +// This class exists for layering needs, and it is implemented by +// PaintWorkletProxyClient. +// +// PaintWorkletProxyClient lives in modules/csspaint as it needs to +// call the worklet code there. However it is referenced from +// PaintWorkletPaintDispatcher, which lives in platform/graphics, +// which is not allowed to depend on modules/csspaint. +// PaintWorkletPaintDispatcher cannot be moved into modules/csspaint as it is +// referenced from elsewhere in core/ (which also cannot depend on modules). +// Therefore an intermediate interface is required to solve the layering issue. +// +// TODO(xidachen): consider making this a delegate class of +// PaintWorkletPaintDispatcher. +class PLATFORM_EXPORT PaintWorkletPainter : public GarbageCollectedMixin { + public: + virtual ~PaintWorkletPainter() = default; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_WORKLET_PAINTER_H_
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.cc b/third_party/blink/renderer/platform/loader/fetch/resource.cc index ad6b958..fb7a9475eb 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource.cc
@@ -125,7 +125,6 @@ const ResourceLoaderOptions& options) : type_(type), status_(ResourceStatus::kNotStarted), - identifier_(0), encoded_size_(0), encoded_size_memory_usage_(0), decoded_size_(0), @@ -927,7 +926,7 @@ return String::Format( "web_cache/%s_resources/", ResourceTypeToString(GetType(), Options().initiator_info.name)) + - String::Number(identifier_); + String::Number(InspectorId()); } void Resource::SetCachePolicyBypassingCache() {
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.h b/third_party/blink/renderer/platform/loader/fetch/resource.h index 213b81e..ae0da43 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource.h
@@ -168,8 +168,7 @@ return *error_; } - void SetIdentifier(uint64_t identifier) { identifier_ = identifier; } - uint64_t Identifier() const { return identifier_; } + uint64_t InspectorId() const { return LastResourceRequest().InspectorId(); } virtual bool ShouldIgnoreHTTPStatusCodeErrors() const { return false; } @@ -534,8 +533,6 @@ TimeTicks load_response_end_; - uint64_t identifier_; - size_t encoded_size_; size_t encoded_size_memory_usage_; size_t decoded_size_;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc index 96136805..0e96155 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -695,7 +695,6 @@ resource->SetDataBufferingPolicy(kBufferData); if (data->size()) resource->SetResourceBuffer(data); - resource->SetIdentifier(CreateUniqueIdentifier()); resource->SetCacheIdentifier(cache_identifier); resource->Finish(TimeTicks(), task_runner_.get()); @@ -918,6 +917,7 @@ ResourceClient* client) { uint64_t identifier = CreateUniqueIdentifier(); ResourceRequest& resource_request = params.MutableResourceRequest(); + resource_request.SetInspectorId(identifier); TRACE_EVENT_NESTABLE_ASYNC_BEGIN1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourceLoad", TRACE_ID_WITH_SCOPE("BlinkResourceID", TRACE_ID_LOCAL(identifier)), @@ -1043,10 +1043,8 @@ // TODO(yoav): turn to a DCHECK. See https://crbug.com/690632 CHECK_EQ(resource->GetType(), resource_type); - if (policy != kUse) { - resource->SetIdentifier(identifier); + if (policy != kUse) resource->VirtualTimePauser() = std::move(pauser); - } if (client) client->SetResource(resource, task_runner_.get()); @@ -1089,7 +1087,7 @@ if (policy != kUse) InsertAsPreloadIfNecessary(resource, params, resource_type); - if (resource->Identifier() != identifier || + if (resource->InspectorId() != identifier || (!resource->StillNeedsLoad() && !resource->IsLoading())) { TRACE_EVENT_NESTABLE_ASYNC_END1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourceLoad", @@ -1828,7 +1826,7 @@ } } Context().DispatchDidFinishLoading( - resource->Identifier(), response_end, encoded_data_length, + resource->InspectorId(), response_end, encoded_data_length, resource->GetResponse().DecodedBodyLength(), should_report_corb_blocking, FetchContext::ResourceResponseType::kNotFromMemoryCache); resource->ReloadIfLoFiOrPlaceholderImage(this, Resource::kReloadIfNeeded); @@ -1858,7 +1856,7 @@ const bool is_internal_request = resource->Options().initiator_info.name == fetch_initiator_type_names::kInternal; Context().DispatchDidFail( - resource->LastResourceRequest().Url(), resource->Identifier(), error, + resource->LastResourceRequest().Url(), resource->InspectorId(), error, resource->GetResponse().EncodedDataLength(), is_internal_request); resource->ReloadIfLoFiOrPlaceholderImage(this, Resource::kReloadIfNeeded); } @@ -1892,13 +1890,13 @@ ResourceResponse response; - blink::probe::PlatformSendRequest probe(&Context(), resource->Identifier(), + blink::probe::PlatformSendRequest probe(&Context(), resource->InspectorId(), request, response, resource->Options().initiator_info); resource->VirtualTimePauser().PauseVirtualTime(); - Context().DispatchWillSendRequest(resource->Identifier(), request, response, - resource->GetType(), + Context().DispatchWillSendRequest(resource->InspectorId(), request, + response, resource->GetType(), resource->Options().initiator_info); // TODO(shaochuan): Saving modified ResourceRequest back to |resource|, @@ -1990,10 +1988,10 @@ TRACE_EVENT_NESTABLE_ASYNC_INSTANT1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourcePrioritySet", TRACE_ID_WITH_SCOPE("BlinkResourceID", - TRACE_ID_LOCAL(resource->Identifier())), + TRACE_ID_LOCAL(resource->InspectorId())), "data", ResourcePrioritySetData(resource_load_priority)); Context().DispatchDidChangeResourcePriority( - resource->Identifier(), resource_load_priority, + resource->InspectorId(), resource_load_priority, resource_priority.intra_priority_value); } } @@ -2032,7 +2030,7 @@ resource->LastResourceRequest().Url(), params.Options(), SecurityViolationReportingPolicy::kReport, resource->LastResourceRequest().GetRedirectStatus()); - RequestLoadStarted(resource->Identifier(), resource, params, kUse); + RequestLoadStarted(resource->InspectorId(), resource, params, kUse); } void ResourceFetcher::PrepareForLeakDetection() {
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc index d61cb18..dd183e0 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -792,7 +792,7 @@ unused_virtual_time_pauser, resource_->GetType()); Context().DispatchWillSendRequest( - resource_->Identifier(), *new_request, redirect_response_to_pass, + resource_->InspectorId(), *new_request, redirect_response_to_pass, resource_->GetType(), options.initiator_info); // First-party cookie logic moved from DocumentLoader in Blink to @@ -1009,7 +1009,7 @@ // FrameType never changes during the lifetime of a request. Context().DispatchDidReceiveResponse( - resource_->Identifier(), initial_request, response_to_pass, resource_, + resource_->InspectorId(), initial_request, response_to_pass, resource_, FetchContext::ResourceResponseType::kNotFromMemoryCache); // When streaming, unpause virtual time early to prevent deadlocking @@ -1082,13 +1082,13 @@ void ResourceLoader::DidReceiveData(const char* data, int length) { CHECK_GE(length, 0); - Context().DispatchDidReceiveData(resource_->Identifier(), data, length); + Context().DispatchDidReceiveData(resource_->InspectorId(), data, length); resource_->AppendData(data, length); } void ResourceLoader::DidReceiveTransferSizeUpdate(int transfer_size_diff) { DCHECK_GT(transfer_size_diff, 0); - Context().DispatchDidReceiveEncodedData(resource_->Identifier(), + Context().DispatchDidReceiveEncodedData(resource_->InspectorId(), transfer_size_diff); } @@ -1096,7 +1096,7 @@ TRACE_EVENT_NESTABLE_ASYNC_END1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourceLoad", TRACE_ID_WITH_SCOPE("BlinkResourceID", - TRACE_ID_LOCAL(resource_->Identifier())), + TRACE_ID_LOCAL(resource_->InspectorId())), "endData", EndResourceLoadData(RequestOutcome::kSuccess)); fetcher_->HandleLoaderFinish( @@ -1142,7 +1142,7 @@ TRACE_EVENT_NESTABLE_ASYNC_END1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourceLoad", TRACE_ID_WITH_SCOPE("BlinkResourceID", - TRACE_ID_LOCAL(resource_->Identifier())), + TRACE_ID_LOCAL(resource_->InspectorId())), "endData", EndResourceLoadData(RequestOutcome::kSuccess)); fetcher_->HandleLoaderFinish( @@ -1205,7 +1205,7 @@ TRACE_EVENT_NESTABLE_ASYNC_END1( TRACE_DISABLED_BY_DEFAULT("network"), "ResourceLoad", TRACE_ID_WITH_SCOPE("BlinkResourceID", - TRACE_ID_LOCAL(resource_->Identifier())), + TRACE_ID_LOCAL(resource_->InspectorId())), "endData", EndResourceLoadData(RequestOutcome::kFail)); fetcher_->HandleLoaderError(resource_.Get(), error, @@ -1367,7 +1367,7 @@ if (scheduler_client_id_ == ResourceLoadScheduler::kInvalidClientId) return; - Context().DispatchDidReceiveData(resource_->Identifier(), nullptr, delta); + Context().DispatchDidReceiveData(resource_->InspectorId(), nullptr, delta); resource_->DidDownloadData(delta); } @@ -1378,7 +1378,7 @@ if (scheduler_client_id_ == ResourceLoadScheduler::kInvalidClientId) return; - Context().DispatchDidDownloadToBlob(resource_->Identifier(), blob.get()); + Context().DispatchDidDownloadToBlob(resource_->InspectorId(), blob.get()); resource_->DidDownloadToBlob(blob); blob_finished_ = true;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_request.cc b/third_party/blink/renderer/platform/loader/fetch/resource_request.cc index 275526d4..528db75 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_request.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_request.cc
@@ -129,6 +129,7 @@ request->SetRequestedWithHeader(GetRequestedWithHeader()); request->SetClientDataHeader(GetClientDataHeader()); request->SetUkmSourceId(GetUkmSourceId()); + request->SetInspectorId(InspectorId()); return request; }
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_request.h b/third_party/blink/renderer/platform/loader/fetch/resource_request.h index 33cab98..f8da25b9 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_request.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_request.h
@@ -418,6 +418,9 @@ return fetch_window_id_; } + void SetInspectorId(uint64_t inspector_id) { inspector_id_ = inspector_id; } + uint64_t InspectorId() const { return inspector_id_; } + private: using SharableExtraData = base::RefCountedData<std::unique_ptr<WebURLRequest::ExtraData>>; @@ -495,6 +498,8 @@ ukm::SourceId ukm_source_id_ = ukm::kInvalidSourceId; base::UnguessableToken fetch_window_id_; + + uint64_t inspector_id_ = 0; }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/testing/empty_web_media_player.h b/third_party/blink/renderer/platform/testing/empty_web_media_player.h index ec54f68..47b89036 100644 --- a/third_party/blink/renderer/platform/testing/empty_web_media_player.h +++ b/third_party/blink/renderer/platform/testing/empty_web_media_player.h
@@ -35,7 +35,7 @@ WebTimeRanges Buffered() const override; WebTimeRanges Seekable() const override; void SetSinkId(const WebString& sink_id, - std::unique_ptr<WebSetSinkIdCallbacks>) override {} + WebSetSinkIdCompleteCallback) override {} bool HasVideo() const override { return false; } bool HasAudio() const override { return false; } WebSize NaturalSize() const override;
diff --git a/third_party/blink/renderer/platform/wtf/text/wtf_string.cc b/third_party/blink/renderer/platform/wtf/text/wtf_string.cc index a8a7c7cf..233e6593 100644 --- a/third_party/blink/renderer/platform/wtf/text/wtf_string.cc +++ b/third_party/blink/renderer/platform/wtf/text/wtf_string.cc
@@ -29,9 +29,11 @@ #include "build/build_config.h" #include "third_party/blink/renderer/platform/wtf/ascii_ctype.h" #include "third_party/blink/renderer/platform/wtf/dtoa.h" +#include "third_party/blink/renderer/platform/wtf/hex_number.h" #include "third_party/blink/renderer/platform/wtf/math_extras.h" #include "third_party/blink/renderer/platform/wtf/text/character_names.h" #include "third_party/blink/renderer/platform/wtf/text/cstring.h" +#include "third_party/blink/renderer/platform/wtf/text/string_builder.h" #include "third_party/blink/renderer/platform/wtf/text/unicode.h" #include "third_party/blink/renderer/platform/wtf/text/utf8.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -364,46 +366,42 @@ if (IsNull()) return "<null>"; - String str; - str.append('"'); + StringBuilder builder; + builder.Append('"'); for (unsigned index = 0; index < length(); ++index) { // Print shorthands for select cases. UChar character = (*impl_)[index]; switch (character) { case '\t': - str.append("\\t"); + builder.Append("\\t"); break; case '\n': - str.append("\\n"); + builder.Append("\\n"); break; case '\r': - str.append("\\r"); + builder.Append("\\r"); break; case '"': - str.append("\\\""); + builder.Append("\\\""); break; case '\\': - str.append("\\\\"); + builder.Append("\\\\"); break; default: if (IsASCIIPrintable(character)) { - str.append(static_cast<char>(character)); + builder.Append(static_cast<char>(character)); } else { // Print "\uXXXX" for control or non-ASCII characters. - str.append("\\u"); - std::stringstream out; - out.width(4); - out.fill('0'); - out.setf(std::ios_base::hex, std::ios_base::basefield); - out.setf(std::ios::uppercase); - out << character; - str.append(out.str().c_str()); + builder.Append("\\u"); + HexNumber::AppendByteAsHex(character >> 8, builder, + HexNumber::kUppercase); + HexNumber::AppendByteAsHex(character, builder, HexNumber::kUppercase); } break; } } - str.append('"'); - return str; + builder.Append('"'); + return builder.ToString(); } String String::Number(float number) {
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py index 4a9876e7..e93f44b 100755 --- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py +++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -393,6 +393,12 @@ ], }, { + 'paths': ['third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.cc'], + 'allowed': [ + 'base::MemoryPressureListener', + ], + }, + { 'paths': ['third_party/blink/renderer/core/animation'], 'allowed': [ '[a-z_]+_functions::.+',
diff --git a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG index 62bc914..c5fca84 100644 --- a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
@@ -315,7 +315,6 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-align-self-001.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-align-self-vertWM-004.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/align3/grid-abspos-staticpos-justify-self-vertWM-001.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-multicol-002.html [ Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/descriptor-suffix.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/counter-styles-3/redefine-builtin.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index f4e569aa..1056682 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -560,7 +560,6 @@ crbug.com/881057 [ Mac ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-005.html [ Failure ] crbug.com/880802 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001.html [ Failure ] crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-stacking-context-001b.html [ Failure ] -crbug.com/863454 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-multicol-002.html [ Failure ] crbug.com/863454 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-multicol-003.html [ Failure ] # [css-align] @@ -6191,4 +6190,6 @@ ## Temp while landing a fix from webrtc importer crbug.com/948055 external/wpt/webrtc/RTCDataChannel-id.html [ Failure Pass ] - +crbug.com/948055 external/wpt/webrtc/RTCPeerConnection-createDataChannel.html [ Failure Pass ] +crbug.com/948055 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCDataChannel-id.html [ Failure Pass ] +crbug.com/948055 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-createDataChannel.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/compositing/video-frame-size-change.html b/third_party/blink/web_tests/compositing/video-frame-size-change.html index 801a33b9..9e61dae2 100644 --- a/third_party/blink/web_tests/compositing/video-frame-size-change.html +++ b/third_party/blink/web_tests/compositing/video-frame-size-change.html
@@ -10,11 +10,7 @@ } function load() { - var canplayCount = 0; function oncanplay() { - if (++canplayCount < 2) { - return; - } // Make sure we render the first frame. requestAnimationFrame(function() { video.play(); @@ -24,12 +20,12 @@ // Get the first video to stay on frame zero for comparison purposes. var video = document.getElementsByTagName("video")[0]; video.src = "../media/resources/frame_size_change.webm"; - video.addEventListener('canplay', oncanplay); + video.addEventListener('canplay', oncanplay, {once: true}); // Get the second video to play through the clip with changing dimensions. video = document.getElementsByTagName("video")[1]; video.src = "../media/resources/frame_size_change.webm"; - video.addEventListener('canplay', oncanplay); + video.addEventListener('canplay', oncanplay, {once: true}); video.addEventListener('playing', function() { // Make sure the video plays for a bit.
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index 7ee797b..25903f9 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -10233,6 +10233,12 @@ interface WebGLVertexArrayObject attribute @@toStringTag method constructor +interface WebGLVideoFrameInfo + attribute @@toStringTag + getter currentTime + getter textureHeight + getter textureWidth + method constructor interface WebKitCSSMatrix : DOMMatrixReadOnly attribute @@toStringTag getter a
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h index d896e723..6b1b1a7e 100644 --- a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h +++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/deps/gmock.h
@@ -25,7 +25,7 @@ // Deserializes the string as a protobuf of the same type as the expected // protobuf. - Proto* Deserialize(const string& str) const { + Proto* Deserialize(const std::string& str) const { Proto* proto = new Proto; if (proto->ParsePartialFromString(str)) { return proto; @@ -45,7 +45,8 @@ proto_matcher_.DescribeTo(os); } - bool MatchAndExplain(const string& arg, MatchResultListener* listener) const { + bool MatchAndExplain(const std::string& arg, + MatchResultListener* listener) const { // Deserializes the string arg as a protobuf of the same type as the // expected protobuf. std::unique_ptr<const Proto> deserialized_arg(Deserialize(arg));
diff --git a/third_party/googletest/README.chromium b/third_party/googletest/README.chromium index e70e558..13744c7 100644 --- a/third_party/googletest/README.chromium +++ b/third_party/googletest/README.chromium
@@ -1,7 +1,7 @@ Name: Google Test: Google's C++ Testing Framework Short Name: googletest URL: https://github.com/google/googletest.git -Version: a18ac392d883ca88d1849b90071cea5608fd9293 +Version: b617b277186e03b1065ac6d43912b1c4147c2982 License: BSD License File: NOT_SHIPPED Security critical: no
diff --git a/third_party/minizip/minizip_uncompress_fuzzer.cc b/third_party/minizip/minizip_uncompress_fuzzer.cc index 18434f7b..82624b8f 100644 --- a/third_party/minizip/minizip_uncompress_fuzzer.cc +++ b/third_party/minizip/minizip_uncompress_fuzzer.cc
@@ -15,6 +15,7 @@ const char kTestPassword[] = "test123"; const char kTestFileName[] = "foo"; const char kTestFileNameUppercase[] = "FOO"; +const int kMaxFiles = 128; } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { @@ -37,7 +38,7 @@ mz_zip_get_number_entry(zip_file, &num_entries); result = mz_zip_goto_first_entry(zip_file); - while (result == MZ_OK) { + for (int i = 0; result == MZ_OK && i < kMaxFiles; i++) { mz_zip_file* file_info = nullptr; result = mz_zip_entry_get_info(zip_file, &file_info); if (result != MZ_OK) {
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index e32684de6..18cff590 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -33338,6 +33338,7 @@ <int value="60023885" label="AutofillNoLocalSaveOnUnmaskSuccess:disabled"/> <int value="61205887" label="enable-text-input-focus-manager"/> <int value="61466986" label="AsyncDns:disabled"/> + <int value="63187126" label="DownloadsAutoResumptionNative:enabled"/> <int value="64942701" label="OfflinePagesSvelteConcurrentLoading:disabled"/> <int value="66897259" label="ModalPermissionDialogView:enabled"/> <int value="67639499" label="stop-loading-in-background:disabled"/> @@ -33736,6 +33737,7 @@ <int value="730024226" label="enable-out-of-process-pdf"/> <int value="730750097" label="PermissionsBlacklist:disabled"/> <int value="731757746" label="ArcEnableDocumentsProviderInFilesApp:disabled"/> + <int value="731775657" label="DownloadsAutoResumptionNative:disabled"/> <int value="731779469" label="BlinkHeapUnifiedGarbageCollection:enabled"/> <int value="732703958" label="enable-gesture-tap-highlight"/> <int value="734900932" label="RecurrentInterstitialFeature:enabled"/> @@ -44985,6 +44987,7 @@ <int value="56" label="NOSTATE_PREFETCH_FINISHED"/> <int value="57" label="LOW_END_DEVICE"/> <int value="58" label="FINAL_STATUS_BROWSER_SWITCH"/> + <int value="59" label="FINAL_STATUS_GWS_HOLDBACK"/> </enum> <enum name="PrerenderHoverEvent">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index a7f396b..cdebabee 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -54982,6 +54982,28 @@ </summary> </histogram> +<histogram + name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintAfter" + units="MB" expires_after="2019-09-30"> + <owner>keishi@chromium.org</owner> + <owner>tasak@chromium.org</owner> + <summary> + The renderer process' private memory footprint 10 seconds after a memory + pressure signal is generated. + </summary> +</histogram> + +<histogram + name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintBefore" + units="MB" expires_after="2019-09-30"> + <owner>keishi@chromium.org</owner> + <owner>tasak@chromium.org</owner> + <summary> + The renderer process' private memory footprint right before a memory + pressure signal is generated. + </summary> +</histogram> + <histogram base="true" name="Memory.Experimental.Utility2" units="MB" expires_after="2019-12-31"> <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocator2" --> @@ -66136,6 +66158,9 @@ <histogram name="Net.QuicSession.CookieSentToAccountsOverChannelId" enum="BooleanUsage" expires_after="2018-08-30"> + <obsolete> + Removed in M75 + </obsolete> <owner>rch@chromium.org</owner> <summary> Logs whether channel ID was used when a cookie is sent over QUIC to @@ -80636,6 +80661,9 @@ <histogram name="PageLoad.Clients.Ads.Resources.Bytes.Ads" units="KB" expires_after="2019-09-05"> + <obsolete> + Deprecated March 2019 in favor of PageLoad.Clients.Ads.Resources.Bytes.Ads2. + </obsolete> <owner>jkarlin@chromium.org</owner> <owner>johnidel@chromium.org</owner> <summary> @@ -80645,6 +80673,17 @@ </summary> </histogram> +<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Ads2" units="KB" + expires_after="2019-09-05"> + <owner>johnidel@chromium.org</owner> + <owner>jkarlin@chromium.org</owner> + <summary> + Total number of network bytes that went towards loading ad resources for a + single page over it's entire lifetime. This includes resources that did not + finish or were canceled. Only recorded for pages with non-zero ad bytes. + </summary> +</histogram> + <histogram name="PageLoad.Clients.Ads.Resources.Bytes.TopLevelAds" units="KB" expires_after="2019-09-05"> <obsolete>
diff --git a/tools/perf/core/bot_platforms.py b/tools/perf/core/bot_platforms.py index 1b20ff8..c19d062 100644 --- a/tools/perf/core/bot_platforms.py +++ b/tools/perf/core/bot_platforms.py
@@ -166,7 +166,7 @@ ANDROID_NEXUS_6_WEBVIEW = PerfPlatform( 'Android Nexus6 WebView Perf', 'Android AOSP MOB30K', - num_shards=8) # Reduced from 16 per crbug.com/891848. + num_shards=12) # Reduced from 16 per crbug.com/891848. # FYI bots
diff --git a/tools/perf/core/perf_data_generator.py b/tools/perf/core/perf_data_generator.py index 25e771bd..b44b316 100755 --- a/tools/perf/core/perf_data_generator.py +++ b/tools/perf/core/perf_data_generator.py
@@ -270,7 +270,7 @@ 'tests': [ { 'isolate': 'performance_webview_test_suite', - 'num_shards': 8, + 'num_shards': 12, 'extra_args': [ '--test-shard-map-filename=android_nexus6_webview_perf_map.json', '--assert-gpu-compositing',
diff --git a/tools/perf/core/shard_maps/android-go-perf_map.json b/tools/perf/core/shard_maps/android-go-perf_map.json index b5a039d..ab2f34d 100644 --- a/tools/perf/core/shard_maps/android-go-perf_map.json +++ b/tools/perf/core/shard_maps/android-go-perf_map.json
@@ -2,127 +2,118 @@ "0": { "benchmarks": { "memory.top_10_mobile": { - "end": 8 + "end": 9 } } }, "1": { "benchmarks": { "memory.top_10_mobile": { - "begin": 8, - "end": 16 + "begin": 9 } } }, "2": { "benchmarks": { - "memory.top_10_mobile": { - "begin": 16 - }, - "power.typical_10_mobile": { - "end": 8 - } + "power.typical_10_mobile": {}, + "speedometer": {}, + "speedometer2": {} } }, "3": { "benchmarks": { - "power.typical_10_mobile": { - "begin": 8 - }, - "speedometer": {}, - "speedometer2": {}, "startup.mobile": {}, "system_health.common_mobile": { - "end": 2 + "end": 7 } } }, "4": { "benchmarks": { "system_health.common_mobile": { - "begin": 2, - "end": 17 + "begin": 7, + "end": 20 } } }, "5": { "benchmarks": { "system_health.common_mobile": { - "begin": 17, - "end": 36 + "begin": 20, + "end": 47 } } }, "6": { "benchmarks": { "system_health.common_mobile": { - "begin": 36, - "end": 74 + "begin": 47, + "end": 78 } } }, "7": { "benchmarks": { "system_health.common_mobile": { - "begin": 74 + "begin": 78 }, "system_health.memory_mobile": { - "end": 6 + "end": 9 } } }, "8": { "benchmarks": { "system_health.memory_mobile": { - "begin": 6, - "end": 13 + "begin": 9, + "end": 17 } } }, "9": { "benchmarks": { "system_health.memory_mobile": { - "begin": 13, - "end": 19 + "begin": 17, + "end": 22 } } }, "10": { "benchmarks": { "system_health.memory_mobile": { - "begin": 19, - "end": 24 + "begin": 22, + "end": 29 } } }, "11": { "benchmarks": { "system_health.memory_mobile": { - "begin": 24, - "end": 34 + "begin": 29, + "end": 41 } } }, "12": { "benchmarks": { "system_health.memory_mobile": { - "begin": 34, - "end": 51 + "begin": 41, + "end": 54 } } }, "13": { "benchmarks": { "system_health.memory_mobile": { - "begin": 51, - "end": 67 + "begin": 54, + "end": 66 } } }, "14": { "benchmarks": { "system_health.memory_mobile": { - "begin": 67, + "begin": 66, "end": 74 } } @@ -130,61 +121,61 @@ "15": { "benchmarks": { "system_health.memory_mobile": { - "begin": 74 - }, - "system_health.webview_startup": {}, - "v8.browsing_mobile": { - "end": 1 + "begin": 74, + "end": 81 } } }, "16": { "benchmarks": { + "system_health.memory_mobile": { + "begin": 81 + }, + "system_health.webview_startup": {}, "v8.browsing_mobile": { - "begin": 1, - "end": 12 + "end": 11 } } }, "17": { "benchmarks": { "v8.browsing_mobile": { - "begin": 12, - "end": 20 + "begin": 11, + "end": 22 } } }, "18": { "benchmarks": { "v8.browsing_mobile": { - "begin": 20 + "begin": 22 } } }, "extra_infos": { - "num_stories": 223, - "predicted_min_shard_time": 2148.0, - "predicted_min_shard_index": 10, - "predicted_max_shard_time": 3000.0, - "predicted_max_shard_index": 8, - "shard #0": 2350.0, - "shard #1": 2450.0, - "shard #2": 2538.0, - "shard #3": 2358.0, - "shard #4": 2546.0, - "shard #5": 2326.0, - "shard #6": 2558.0, - "shard #7": 2234.0, - "shard #8": 3000.0, - "shard #9": 2220.0, - "shard #10": 2148.0, - "shard #11": 2406.0, - "shard #12": 2568.0, - "shard #13": 2370.0, - "shard #14": 2544.0, - "shard #15": 2214.0, - "shard #16": 2574.0, - "shard #17": 2532.0, - "shard #18": 2254.0 + "num_stories": 233, + "predicted_min_shard_time": 2394.0, + "predicted_min_shard_index": 8, + "predicted_max_shard_time": 2796.0, + "predicted_max_shard_index": 15, + "shard #0": 2510.0, + "shard #1": 2660.0, + "shard #2": 2598.0, + "shard #3": 2568.0, + "shard #4": 2478.0, + "shard #5": 2674.0, + "shard #6": 2640.0, + "shard #7": 2716.0, + "shard #8": 2394.0, + "shard #9": 2502.0, + "shard #10": 2610.0, + "shard #11": 2538.0, + "shard #12": 2694.0, + "shard #13": 2526.0, + "shard #14": 2448.0, + "shard #15": 2796.0, + "shard #16": 2566.0, + "shard #17": 2500.0, + "shard #18": 2624.0 } } \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-go_webview-perf_map.json b/tools/perf/core/shard_maps/android-go_webview-perf_map.json index af8735fb..abcc62c 100644 --- a/tools/perf/core/shard_maps/android-go_webview-perf_map.json +++ b/tools/perf/core/shard_maps/android-go_webview-perf_map.json
@@ -2,190 +2,186 @@ "0": { "benchmarks": { "memory.top_10_mobile": { - "end": 9 + "end": 8 } } }, "1": { "benchmarks": { "memory.top_10_mobile": { - "begin": 9, - "end": 15 + "begin": 8, + "end": 14 } } }, "2": { "benchmarks": { "memory.top_10_mobile": { - "begin": 15 + "begin": 14 }, "power.typical_10_mobile": { - "end": 3 + "end": 1 } } }, "3": { "benchmarks": { "power.typical_10_mobile": { - "begin": 3 - }, - "speedometer": {}, - "speedometer2": {}, - "startup.mobile": {}, - "system_health.common_mobile": { - "end": 6 + "begin": 1 } } }, "4": { "benchmarks": { + "speedometer": {}, + "speedometer2": {}, + "startup.mobile": {}, "system_health.common_mobile": { - "begin": 6, - "end": 16 + "end": 13 } } }, "5": { "benchmarks": { "system_health.common_mobile": { - "begin": 16, - "end": 23 + "begin": 13, + "end": 19 } } }, "6": { "benchmarks": { "system_health.common_mobile": { - "begin": 23, - "end": 45 + "begin": 19, + "end": 30 } } }, "7": { "benchmarks": { "system_health.common_mobile": { - "begin": 45, - "end": 73 + "begin": 30, + "end": 59 } } }, "8": { "benchmarks": { "system_health.common_mobile": { - "begin": 73 - }, - "system_health.memory_mobile": { - "end": 5 + "begin": 59, + "end": 78 } } }, "9": { "benchmarks": { + "system_health.common_mobile": { + "begin": 78 + }, "system_health.memory_mobile": { - "begin": 5, - "end": 12 + "end": 6 } } }, "10": { "benchmarks": { "system_health.memory_mobile": { - "begin": 12, - "end": 17 + "begin": 6, + "end": 13 } } }, "11": { "benchmarks": { "system_health.memory_mobile": { - "begin": 17, - "end": 22 + "begin": 13, + "end": 19 } } }, "12": { "benchmarks": { "system_health.memory_mobile": { - "begin": 22, - "end": 26 + "begin": 19, + "end": 24 } } }, "13": { "benchmarks": { "system_health.memory_mobile": { - "begin": 26, - "end": 36 + "begin": 24, + "end": 28 } } }, "14": { "benchmarks": { "system_health.memory_mobile": { + "begin": 28, + "end": 36 + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_mobile": { "begin": 36, "end": 46 } } }, - "15": { - "benchmarks": { - "system_health.memory_mobile": { - "begin": 46, - "end": 55 - } - } - }, "16": { "benchmarks": { "system_health.memory_mobile": { - "begin": 55, - "end": 64 + "begin": 46, + "end": 56 } } }, "17": { "benchmarks": { "system_health.memory_mobile": { - "begin": 64, - "end": 73 + "begin": 56, + "end": 64 } } }, "18": { "benchmarks": { "system_health.memory_mobile": { - "begin": 73, - "end": 78 + "begin": 64, + "end": 74 } } }, "19": { "benchmarks": { "system_health.memory_mobile": { - "begin": 78 - }, - "system_health.webview_startup": {} + "begin": 74, + "end": 79 + } } }, "20": { "benchmarks": { - "v8.browsing_mobile": { - "end": 7 + "system_health.memory_mobile": { + "begin": 79 } } }, "21": { "benchmarks": { + "system_health.webview_startup": {}, "v8.browsing_mobile": { - "begin": 7, - "end": 13 + "end": 8 } } }, "22": { "benchmarks": { "v8.browsing_mobile": { - "begin": 13, + "begin": 8, "end": 14 } } @@ -194,47 +190,47 @@ "benchmarks": { "v8.browsing_mobile": { "begin": 14, - "end": 20 + "end": 23 } } }, "24": { "benchmarks": { "v8.browsing_mobile": { - "begin": 20 + "begin": 23 } } }, "extra_infos": { - "num_stories": 223, - "predicted_min_shard_time": 1262.0, - "predicted_min_shard_index": 22, - "predicted_max_shard_time": 1656.0, - "predicted_max_shard_index": 24, - "shard #0": 1510.0, - "shard #1": 1410.0, - "shard #2": 1560.0, - "shard #3": 1396.0, - "shard #4": 1448.0, - "shard #5": 1588.0, - "shard #6": 1404.0, - "shard #7": 1518.0, - "shard #8": 1440.0, - "shard #9": 1422.0, - "shard #10": 1512.0, - "shard #11": 1632.0, - "shard #12": 1356.0, - "shard #13": 1530.0, - "shard #14": 1512.0, - "shard #15": 1386.0, - "shard #16": 1518.0, - "shard #17": 1518.0, - "shard #18": 1374.0, - "shard #19": 1544.0, - "shard #20": 1516.0, - "shard #21": 1524.0, - "shard #22": 1262.0, - "shard #23": 1398.0, - "shard #24": 1656.0 + "num_stories": 233, + "predicted_min_shard_time": 1266.0, + "predicted_min_shard_index": 20, + "predicted_max_shard_time": 2136.0, + "predicted_max_shard_index": 10, + "shard #0": 1670.0, + "shard #1": 1510.0, + "shard #2": 1556.0, + "shard #3": 1542.0, + "shard #4": 1536.0, + "shard #5": 1678.0, + "shard #6": 1530.0, + "shard #7": 1604.0, + "shard #8": 1452.0, + "shard #9": 1510.0, + "shard #10": 2136.0, + "shard #11": 1476.0, + "shard #12": 1380.0, + "shard #13": 1584.0, + "shard #14": 1560.0, + "shard #15": 1590.0, + "shard #16": 1620.0, + "shard #17": 1452.0, + "shard #18": 1638.0, + "shard #19": 1716.0, + "shard #20": 1266.0, + "shard #21": 1566.0, + "shard #22": 1866.0, + "shard #23": 1562.0, + "shard #24": 1484.0 } } \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json b/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json index d2811b4..de84982 100644 --- a/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json +++ b/tools/perf/core/shard_maps/android-nexus5x-perf-fyi_map.json
@@ -9,34 +9,33 @@ "1": { "benchmarks": { "heap_profiling.mobile.disabled": { - "begin": 1 + "begin": 1, + "end": 2 } } }, "2": { "benchmarks": { - "heap_profiling.mobile.native": { - "end": 1 + "heap_profiling.mobile.disabled": { + "begin": 2 } } }, "3": { "benchmarks": { - "heap_profiling.mobile.native": { - "begin": 1 - }, + "heap_profiling.mobile.native": {}, "heap_profiling.mobile.pseudo": {} } }, "extra_infos": { "num_stories": 9, - "predicted_min_shard_time": 70.0, - "predicted_min_shard_index": 3, - "predicted_max_shard_time": 192.0, - "predicted_max_shard_index": 1, - "shard #0": 88.0, - "shard #1": 192.0, - "shard #2": 86.0, - "shard #3": 70.0 + "predicted_min_shard_time": 50.0, + "predicted_min_shard_index": 1, + "predicted_max_shard_time": 108.0, + "predicted_max_shard_index": 2, + "shard #0": 68.0, + "shard #1": 50.0, + "shard #2": 108.0, + "shard #3": 80.0 } } \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-nexus5x-perf_map.json b/tools/perf/core/shard_maps/android-nexus5x-perf_map.json index 006fe38..37fbeb8f5 100644 --- a/tools/perf/core/shard_maps/android-nexus5x-perf_map.json +++ b/tools/perf/core/shard_maps/android-nexus5x-perf_map.json
@@ -5,22 +5,31 @@ "blink_perf.bindings": {}, "blink_perf.canvas": {}, "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": {}, - "blink_perf.owp_storage": { - "end": 2 + "blink_perf.dom": { + "end": 1 } } }, "1": { "benchmarks": { - "blink_perf.owp_storage": { - "begin": 2 + "blink_perf.dom": { + "begin": 1 }, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, + "blink_perf.owp_storage": {}, "blink_perf.paint": {}, - "blink_perf.parser": {}, + "blink_perf.parser": { + "end": 4 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.parser": { + "begin": 4 + }, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, "dromaeo": {}, @@ -29,165 +38,156 @@ "jetstream": {}, "kraken": {}, "loading.mobile": { - "end": 16 - } - } - }, - "2": { - "benchmarks": { - "loading.mobile": { - "begin": 16, - "end": 45 + "end": 35 } } }, "3": { "benchmarks": { "loading.mobile": { - "begin": 45, - "end": 90 + "begin": 35 + }, + "media.mobile": { + "end": 4 } } }, "4": { "benchmarks": { - "loading.mobile": { - "begin": 90 + "media.mobile": { + "begin": 4 }, - "media.mobile": {}, - "memory.top_10_mobile": { - "end": 10 - } + "memory.top_10_mobile": {}, + "octane": {} } }, "5": { "benchmarks": { - "memory.top_10_mobile": { - "begin": 10 - }, - "octane": {}, "power.typical_10_mobile": {}, "rasterize_and_record_micro.partial_invalidation": {}, "rasterize_and_record_micro.top_25": {}, "rendering.mobile": { - "end": 2 + "end": 39 } } }, "6": { "benchmarks": { "rendering.mobile": { - "begin": 2, - "end": 103 + "begin": 39, + "end": 132 } } }, "7": { "benchmarks": { "rendering.mobile": { - "begin": 103, - "end": 234 + "begin": 132, + "end": 236 } } }, "8": { "benchmarks": { "rendering.mobile": { - "begin": 234, - "end": 360 + "begin": 236, + "end": 347 } } }, "9": { "benchmarks": { "rendering.mobile": { - "begin": 360 - } - } - }, - "10": { - "benchmarks": { + "begin": 347 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "startup.mobile": {}, "system_health.common_mobile": { - "end": 49 + "end": 26 + } + } + }, + "10": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 26 + }, + "system_health.memory_mobile": { + "end": 10 } } }, "11": { "benchmarks": { - "system_health.common_mobile": { - "begin": 49 - }, "system_health.memory_mobile": { - "end": 16 + "begin": 10, + "end": 25 } } }, "12": { "benchmarks": { "system_health.memory_mobile": { - "begin": 16, - "end": 49 + "begin": 25, + "end": 56 } } }, "13": { "benchmarks": { "system_health.memory_mobile": { - "begin": 49 + "begin": 56 }, "system_health.webview_startup": {}, "tracing.tracing_with_background_memory_infra": {}, "v8.browsing_mobile": { - "end": 8 + "end": 6 } } }, "14": { "benchmarks": { "v8.browsing_mobile": { - "begin": 8 + "begin": 6 }, "v8.browsing_mobile-future": { - "end": 8 + "end": 6 } } }, "15": { "benchmarks": { "v8.browsing_mobile-future": { - "begin": 8 + "begin": 6 }, - "v8.runtime_stats.top_25": {}, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 6604.0, - "predicted_min_shard_index": 15, - "predicted_max_shard_time": 7162.0, - "predicted_max_shard_index": 14, - "shard #0": 6882.0, - "shard #1": 6928.0, - "shard #2": 6744.0, - "shard #3": 6984.0, - "shard #4": 6860.0, - "shard #5": 6786.0, - "shard #6": 6870.0, - "shard #7": 6882.0, - "shard #8": 6852.0, - "shard #9": 6872.0, - "shard #10": 6870.0, - "shard #11": 6990.0, - "shard #12": 6708.0, - "shard #13": 6890.0, - "shard #14": 7162.0, - "shard #15": 6604.0 + "num_stories": 1151, + "predicted_min_shard_time": 5412.0, + "predicted_min_shard_index": 11, + "predicted_max_shard_time": 5868.0, + "predicted_max_shard_index": 12, + "shard #0": 5612.0, + "shard #1": 5640.0, + "shard #2": 5556.0, + "shard #3": 5578.0, + "shard #4": 5652.0, + "shard #5": 5548.0, + "shard #6": 5602.0, + "shard #7": 5600.0, + "shard #8": 5562.0, + "shard #9": 5552.0, + "shard #10": 5690.0, + "shard #11": 5412.0, + "shard #12": 5868.0, + "shard #13": 5426.0, + "shard #14": 5554.0, + "shard #15": 5740.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-pixel2-perf_map.json b/tools/perf/core/shard_maps/android-pixel2-perf_map.json index 543de43..c8a48e2 100644 --- a/tools/perf/core/shard_maps/android-pixel2-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel2-perf_map.json
@@ -16,28 +16,23 @@ "blink_perf.svg": {}, "dromaeo": {}, "dummy_benchmark.noisy_benchmark_1": {}, - "dummy_benchmark.stable_benchmark_1": {}, - "jetstream": {}, - "kraken": {}, - "loading.mobile": { - "end": 21 - } + "dummy_benchmark.stable_benchmark_1": {} } }, "1": { "benchmarks": { - "loading.mobile": { - "begin": 21 - }, + "jetstream": {}, + "kraken": {}, + "loading.mobile": {}, "media.mobile": { - "end": 20 + "end": 21 } } }, "2": { "benchmarks": { "media.mobile": { - "begin": 20 + "begin": 21 }, "memory.top_10_mobile": {}, "octane": {}, @@ -45,45 +40,45 @@ "rasterize_and_record_micro.partial_invalidation": {}, "rasterize_and_record_micro.top_25": {}, "rendering.mobile": { - "end": 106 + "end": 98 } } }, "3": { "benchmarks": { "rendering.mobile": { - "begin": 106, - "end": 395 - } + "begin": 98 + }, + "speedometer": {}, + "speedometer-future": {} } }, "4": { "benchmarks": { - "rendering.mobile": { - "begin": 395 - }, - "speedometer": {}, - "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "startup.mobile": {}, "system_health.common_mobile": {}, "system_health.memory_mobile": { - "end": 13 + "end": 19 } } }, "5": { "benchmarks": { "system_health.memory_mobile": { - "begin": 13 - }, - "system_health.webview_startup": {}, - "tracing.tracing_with_background_memory_infra": {} + "begin": 19, + "end": 78 + } } }, "6": { "benchmarks": { + "system_health.memory_mobile": { + "begin": 78 + }, + "system_health.webview_startup": {}, + "tracing.tracing_with_background_memory_infra": {}, "v8.browsing_mobile": {}, "v8.browsing_mobile-future": {}, "wasm": {}, @@ -91,17 +86,17 @@ } }, "extra_infos": { - "num_stories": 2061, - "predicted_min_shard_time": 16218.0, - "predicted_min_shard_index": 5, - "predicted_max_shard_time": 16548.0, - "predicted_max_shard_index": 4, - "shard #0": 16282.0, - "shard #1": 16498.0, - "shard #2": 16380.0, - "shard #3": 16348.0, - "shard #4": 16548.0, - "shard #5": 16218.0, - "shard #6": 16378.0 + "num_stories": 1151, + "predicted_min_shard_time": 10376.0, + "predicted_min_shard_index": 6, + "predicted_max_shard_time": 10752.0, + "predicted_max_shard_index": 1, + "shard #0": 10414.0, + "shard #1": 10752.0, + "shard #2": 10566.0, + "shard #3": 10538.0, + "shard #4": 10686.0, + "shard #5": 10698.0, + "shard #6": 10376.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json b/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json index 06f949fb..bfb9051c 100644 --- a/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel2_webview-perf_map.json
@@ -13,97 +13,100 @@ "blink_perf.paint": {}, "blink_perf.parser": {}, "blink_perf.shadow_dom": {}, - "blink_perf.svg": {}, - "dromaeo": {}, - "dummy_benchmark.noisy_benchmark_1": {}, - "dummy_benchmark.stable_benchmark_1": {}, - "jetstream": {}, - "kraken": {}, - "loading.mobile": { - "end": 40 + "blink_perf.svg": { + "end": 2 } } }, "1": { "benchmarks": { - "loading.mobile": { - "begin": 40 + "blink_perf.svg": { + "begin": 2 }, + "dromaeo": {}, + "dummy_benchmark.noisy_benchmark_1": {}, + "dummy_benchmark.stable_benchmark_1": {}, + "jetstream": {}, + "kraken": {}, + "loading.mobile": {}, "media.mobile": {}, "memory.top_10_mobile": { - "end": 14 + "end": 9 } } }, "2": { "benchmarks": { "memory.top_10_mobile": { - "begin": 14 + "begin": 9 }, "octane": {}, "power.typical_10_mobile": {}, "rasterize_and_record_micro.partial_invalidation": {}, "rasterize_and_record_micro.top_25": {}, "rendering.mobile": { - "end": 165 + "end": 116 } } }, "3": { "benchmarks": { "rendering.mobile": { - "begin": 165 - } - } - }, - "4": { - "benchmarks": { + "begin": 116 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "startup.mobile": {}, - "system_health.common_mobile": {}, + "system_health.common_mobile": { + "end": 13 + } + } + }, + "4": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 13 + }, "system_health.memory_mobile": { - "end": 22 + "end": 23 } } }, "5": { "benchmarks": { "system_health.memory_mobile": { - "begin": 22 - }, - "system_health.webview_startup": {}, - "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_mobile": { - "end": 10 + "begin": 23, + "end": 80 } } }, "6": { "benchmarks": { - "v8.browsing_mobile": { - "begin": 10 + "system_health.memory_mobile": { + "begin": 80 }, + "system_health.webview_startup": {}, + "tracing.tracing_with_background_memory_infra": {}, + "v8.browsing_mobile": {}, "v8.browsing_mobile-future": {}, - "v8.runtime_stats.top_25": {}, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2061, - "predicted_min_shard_time": 14198.0, - "predicted_min_shard_index": 5, - "predicted_max_shard_time": 14340.0, + "num_stories": 1151, + "predicted_min_shard_time": 8660.0, + "predicted_min_shard_index": 4, + "predicted_max_shard_time": 8852.0, "predicted_max_shard_index": 1, - "shard #0": 14252.0, - "shard #1": 14340.0, - "shard #2": 14242.0, - "shard #3": 14268.0, - "shard #4": 14322.0, - "shard #5": 14198.0, - "shard #6": 14298.0 + "shard #0": 8762.0, + "shard #1": 8852.0, + "shard #2": 8668.0, + "shard #3": 8764.0, + "shard #4": 8660.0, + "shard #5": 8802.0, + "shard #6": 8830.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus5_perf_map.json b/tools/perf/core/shard_maps/android_nexus5_perf_map.json index 7e8b5879..ee680e9 100644 --- a/tools/perf/core/shard_maps/android_nexus5_perf_map.json +++ b/tools/perf/core/shard_maps/android_nexus5_perf_map.json
@@ -5,144 +5,157 @@ "blink_perf.bindings": {}, "blink_perf.canvas": {}, "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": { - "end": 43 + "blink_perf.dom": { + "end": 2 } } }, "1": { "benchmarks": { - "blink_perf.layout": { - "begin": 43 + "blink_perf.dom": { + "begin": 2 }, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, "blink_perf.owp_storage": {}, "blink_perf.paint": {}, - "blink_perf.parser": {}, + "blink_perf.parser": { + "end": 4 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.parser": { + "begin": 4 + }, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, "dromaeo": {}, "dummy_benchmark.noisy_benchmark_1": {}, "dummy_benchmark.stable_benchmark_1": {}, - "jetstream": {} - } - }, - "2": { - "benchmarks": { + "jetstream": {}, "kraken": {}, "loading.mobile": { - "end": 24 + "end": 6 } } }, "3": { "benchmarks": { "loading.mobile": { - "begin": 24, - "end": 60 + "begin": 6, + "end": 69 } } }, "4": { "benchmarks": { "loading.mobile": { - "begin": 60 + "begin": 69 }, - "media.mobile": {} + "media.mobile": {}, + "memory.top_10_mobile": { + "end": 11 + } } }, "5": { "benchmarks": { - "memory.top_10_mobile": {}, + "memory.top_10_mobile": { + "begin": 11 + }, "octane": {}, "power.typical_10_mobile": {}, "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": { - "end": 10 + "rasterize_and_record_micro.top_25": {}, + "rendering.mobile": { + "end": 5 } } }, "6": { "benchmarks": { - "rasterize_and_record_micro.top_25": { - "begin": 10 - }, "rendering.mobile": { - "end": 85 + "begin": 5, + "end": 109 } } }, "7": { "benchmarks": { "rendering.mobile": { - "begin": 85, - "end": 222 + "begin": 109, + "end": 215 } } }, "8": { "benchmarks": { "rendering.mobile": { - "begin": 222, - "end": 362 + "begin": 215, + "end": 333 } } }, "9": { "benchmarks": { "rendering.mobile": { - "begin": 362 - } - } - }, - "10": { - "benchmarks": { + "begin": 333 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "startup.mobile": {}, "system_health.common_mobile": { - "end": 46 + "end": 18 + } + } + }, + "10": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 18 + }, + "system_health.memory_mobile": { + "end": 6 } } }, "11": { "benchmarks": { - "system_health.common_mobile": { - "begin": 46 - }, "system_health.memory_mobile": { - "end": 14 + "begin": 6, + "end": 24 } } }, "12": { "benchmarks": { "system_health.memory_mobile": { - "begin": 14, - "end": 46 + "begin": 24, + "end": 55 } } }, "13": { "benchmarks": { "system_health.memory_mobile": { - "begin": 46 + "begin": 55 }, "system_health.webview_startup": {}, "tracing.tracing_with_background_memory_infra": {}, "v8.browsing_mobile": { - "end": 2 + "end": 1 } } }, "14": { "benchmarks": { "v8.browsing_mobile": { - "begin": 2 + "begin": 1 }, "v8.browsing_mobile-future": { "end": 6 @@ -159,26 +172,26 @@ } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 7376.0, - "predicted_min_shard_index": 3, - "predicted_max_shard_time": 8110.0, + "num_stories": 1151, + "predicted_min_shard_time": 6990.0, + "predicted_min_shard_index": 2, + "predicted_max_shard_time": 7358.0, "predicted_max_shard_index": 1, - "shard #0": 7666.0, - "shard #1": 8110.0, - "shard #2": 7542.0, - "shard #3": 7376.0, - "shard #4": 7640.0, - "shard #5": 7684.0, - "shard #6": 7664.0, - "shard #7": 7660.0, - "shard #8": 7644.0, - "shard #9": 7668.0, - "shard #10": 7696.0, - "shard #11": 7456.0, - "shard #12": 7800.0, - "shard #13": 7810.0, - "shard #14": 7564.0, - "shard #15": 7712.0 + "shard #0": 7192.0, + "shard #1": 7358.0, + "shard #2": 6990.0, + "shard #3": 7128.0, + "shard #4": 7282.0, + "shard #5": 7100.0, + "shard #6": 7198.0, + "shard #7": 7208.0, + "shard #8": 7154.0, + "shard #9": 7138.0, + "shard #10": 7140.0, + "shard #11": 7290.0, + "shard #12": 7134.0, + "shard #13": 7274.0, + "shard #14": 7100.0, + "shard #15": 7216.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json b/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json index 7ca02bf..f65f426 100644 --- a/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json +++ b/tools/perf/core/shard_maps/android_nexus5x_webview_perf_map.json
@@ -5,99 +5,100 @@ "blink_perf.bindings": {}, "blink_perf.canvas": {}, "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": { - "end": 23 + "blink_perf.dom": { + "end": 3 } } }, "1": { "benchmarks": { - "blink_perf.layout": { - "begin": 23 + "blink_perf.dom": { + "begin": 3 }, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, "blink_perf.owp_storage": {}, "blink_perf.paint": {}, - "blink_perf.parser": {}, + "blink_perf.parser": { + "end": 4 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.parser": { + "begin": 4 + }, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, "dromaeo": {}, "dummy_benchmark.noisy_benchmark_1": {}, "dummy_benchmark.stable_benchmark_1": {}, - "jetstream": {} - } - }, - "2": { - "benchmarks": { + "jetstream": {}, "kraken": {}, "loading.mobile": { - "end": 33 + "end": 43 } } }, "3": { "benchmarks": { "loading.mobile": { - "begin": 33, - "end": 56 + "begin": 43 + }, + "media.mobile": {}, + "memory.top_10_mobile": { + "end": 3 } } }, "4": { "benchmarks": { - "loading.mobile": { - "begin": 56, - "end": 92 - } + "memory.top_10_mobile": { + "begin": 3 + }, + "octane": {}, + "power.typical_10_mobile": {} } }, "5": { "benchmarks": { - "loading.mobile": { - "begin": 92 - }, - "media.mobile": {}, - "memory.top_10_mobile": { - "end": 18 + "rasterize_and_record_micro.partial_invalidation": {}, + "rasterize_and_record_micro.top_25": {}, + "rendering.mobile": { + "end": 54 } } }, "6": { "benchmarks": { - "memory.top_10_mobile": { - "begin": 18 - }, - "octane": {}, - "power.typical_10_mobile": {}, - "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": {}, "rendering.mobile": { - "end": 19 + "begin": 54, + "end": 134 } } }, "7": { "benchmarks": { "rendering.mobile": { - "begin": 19, - "end": 178 + "begin": 134, + "end": 232 } } }, "8": { "benchmarks": { "rendering.mobile": { - "begin": 178, - "end": 403 + "begin": 232, + "end": 355 } } }, "9": { "benchmarks": { "rendering.mobile": { - "begin": 403 + "begin": 355 }, "speedometer": {}, "speedometer-future": {}, @@ -105,84 +106,83 @@ "speedometer2-future": {}, "startup.mobile": {}, "system_health.common_mobile": { - "end": 12 + "end": 32 } } }, "10": { "benchmarks": { "system_health.common_mobile": { - "begin": 12 + "begin": 32 + }, + "system_health.memory_mobile": { + "end": 12 } } }, "11": { "benchmarks": { "system_health.memory_mobile": { - "end": 20 + "begin": 12, + "end": 26 } } }, "12": { "benchmarks": { "system_health.memory_mobile": { - "begin": 20, - "end": 59 + "begin": 26, + "end": 55 } } }, "13": { "benchmarks": { "system_health.memory_mobile": { - "begin": 59 + "begin": 55 }, - "system_health.webview_startup": {}, - "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_mobile": { - "end": 7 - } + "system_health.webview_startup": {} } }, "14": { "benchmarks": { - "v8.browsing_mobile": { - "begin": 7 - }, + "tracing.tracing_with_background_memory_infra": {}, + "v8.browsing_mobile": {}, "v8.browsing_mobile-future": { - "end": 7 + "end": 5 } } }, "15": { "benchmarks": { "v8.browsing_mobile-future": { - "begin": 7 + "begin": 5 }, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 5582.0, - "predicted_min_shard_index": 14, - "predicted_max_shard_time": 6032.0, + "num_stories": 1151, + "predicted_min_shard_time": 4362.0, + "predicted_min_shard_index": 2, + "predicted_max_shard_time": 5004.0, "predicted_max_shard_index": 3, - "shard #0": 5826.0, - "shard #1": 5848.0, - "shard #2": 5682.0, - "shard #3": 6032.0, - "shard #4": 5932.0, - "shard #5": 5754.0, - "shard #6": 5802.0, - "shard #7": 5844.0, - "shard #8": 5796.0, - "shard #9": 5808.0, - "shard #10": 5872.0, - "shard #11": 5844.0, - "shard #12": 5922.0, - "shard #13": 5950.0, - "shard #14": 5582.0, - "shard #15": 5914.0 + "shard #0": 4730.0, + "shard #1": 4874.0, + "shard #2": 4362.0, + "shard #3": 5004.0, + "shard #4": 4708.0, + "shard #5": 4678.0, + "shard #6": 4758.0, + "shard #7": 4704.0, + "shard #8": 4736.0, + "shard #9": 4758.0, + "shard #10": 4712.0, + "shard #11": 4902.0, + "shard #12": 4464.0, + "shard #13": 4940.0, + "shard #14": 4554.0, + "shard #15": 4758.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json b/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json index ae1209d..16d9825 100644 --- a/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json +++ b/tools/perf/core/shard_maps/android_nexus6_webview_perf_map.json
@@ -8,86 +8,130 @@ "blink_perf.dom": {}, "blink_perf.events": {}, "blink_perf.image_decoder": {}, - "blink_perf.layout": {}, - "blink_perf.owp_storage": {}, - "blink_perf.paint": {}, - "blink_perf.parser": {}, - "blink_perf.shadow_dom": {}, - "blink_perf.svg": {}, - "dromaeo": {}, - "dummy_benchmark.noisy_benchmark_1": {}, - "dummy_benchmark.stable_benchmark_1": {} + "blink_perf.layout": { + "end": 11 + } } }, "1": { "benchmarks": { - "jetstream": {}, - "kraken": {}, - "loading.mobile": { - "end": 73 + "blink_perf.layout": { + "begin": 11 + }, + "blink_perf.owp_storage": {}, + "blink_perf.paint": {}, + "blink_perf.parser": {}, + "blink_perf.shadow_dom": {}, + "blink_perf.svg": { + "end": 7 } } }, "2": { "benchmarks": { - "loading.mobile": { - "begin": 73 + "blink_perf.svg": { + "begin": 7 }, - "media.mobile": {}, - "memory.top_10_mobile": {}, - "octane": {}, - "power.typical_10_mobile": {}, - "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": {}, - "rendering.mobile": { - "end": 4 + "dromaeo": {}, + "dummy_benchmark.noisy_benchmark_1": {}, + "dummy_benchmark.stable_benchmark_1": {}, + "jetstream": {}, + "kraken": {}, + "loading.mobile": { + "end": 70 } } }, "3": { "benchmarks": { - "rendering.mobile": { - "begin": 4, - "end": 254 + "loading.mobile": { + "begin": 70 + }, + "media.mobile": {}, + "memory.top_10_mobile": {}, + "octane": {}, + "power.typical_10_mobile": { + "end": 1 } } }, "4": { "benchmarks": { - "rendering.mobile": { - "begin": 254 + "power.typical_10_mobile": { + "begin": 1 }, - "speedometer": {}, - "speedometer-future": {}, - "speedometer2": {}, - "speedometer2-future": {} + "rasterize_and_record_micro.partial_invalidation": {}, + "rasterize_and_record_micro.top_25": {}, + "rendering.mobile": { + "end": 74 + } } }, "5": { "benchmarks": { - "startup.mobile": {}, - "system_health.common_mobile": {}, - "system_health.memory_mobile": { - "end": 18 + "rendering.mobile": { + "begin": 74, + "end": 222 } } }, "6": { "benchmarks": { - "system_health.memory_mobile": { - "begin": 18 + "rendering.mobile": { + "begin": 222 }, - "system_health.webview_startup": {}, - "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_mobile": { - "end": 3 + "speedometer": {}, + "speedometer-future": {}, + "speedometer2": {}, + "speedometer2-future": {}, + "startup.mobile": {}, + "system_health.common_mobile": { + "end": 8 } } }, "7": { "benchmarks": { + "system_health.common_mobile": { + "begin": 8 + }, + "system_health.memory_mobile": { + "end": 6 + } + } + }, + "8": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 6, + "end": 27 + } + } + }, + "9": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 27, + "end": 74 + } + } + }, + "10": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 74 + }, + "system_health.webview_startup": {}, + "tracing.tracing_with_background_memory_infra": {}, "v8.browsing_mobile": { - "begin": 3 + "end": 20 + } + } + }, + "11": { + "benchmarks": { + "v8.browsing_mobile": { + "begin": 20 }, "v8.browsing_mobile-future": {}, "wasm": {}, @@ -95,18 +139,22 @@ } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 12810.0, - "predicted_min_shard_index": 0, - "predicted_max_shard_time": 13408.0, - "predicted_max_shard_index": 1, - "shard #0": 12810.0, - "shard #1": 13408.0, - "shard #2": 13028.0, - "shard #3": 13130.0, - "shard #4": 13202.0, - "shard #5": 13020.0, - "shard #6": 13124.0, - "shard #7": 12992.0 + "num_stories": 1151, + "predicted_min_shard_time": 6124.0, + "predicted_min_shard_index": 10, + "predicted_max_shard_time": 6450.0, + "predicted_max_shard_index": 9, + "shard #0": 6268.0, + "shard #1": 6278.0, + "shard #2": 6288.0, + "shard #3": 6218.0, + "shard #4": 6326.0, + "shard #5": 6272.0, + "shard #6": 6254.0, + "shard #7": 6296.0, + "shard #8": 6186.0, + "shard #9": 6450.0, + "shard #10": 6124.0, + "shard #11": 6312.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/linux-perf_map.json b/tools/perf/core/shard_maps/linux-perf_map.json index c2b4a8c..c64ec29 100644 --- a/tools/perf/core/shard_maps/linux-perf_map.json +++ b/tools/perf/core/shard_maps/linux-perf_map.json
@@ -4,64 +4,65 @@ "blink_perf.accessibility": {}, "blink_perf.bindings": {}, "blink_perf.canvas": {}, - "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": { - "end": 16 + "blink_perf.css": { + "end": 17 } } }, "1": { "benchmarks": { - "blink_perf.layout": { - "begin": 16 + "blink_perf.css": { + "begin": 17 }, - "blink_perf.owp_storage": {}, - "blink_perf.paint": {}, - "blink_perf.parser": {}, - "blink_perf.shadow_dom": {}, - "blink_perf.svg": { - "end": 4 + "blink_perf.dom": {}, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": { + "end": 72 } } }, "2": { "benchmarks": { - "blink_perf.svg": { - "begin": 4 + "blink_perf.layout": { + "begin": 72 }, - "dromaeo": {}, - "dummy_benchmark.noisy_benchmark_1": {}, - "dummy_benchmark.stable_benchmark_1": {}, - "jetstream": {}, - "kraken": {}, - "loading.desktop": { - "end": 28 + "blink_perf.owp_storage": {}, + "blink_perf.paint": {}, + "blink_perf.parser": {}, + "blink_perf.shadow_dom": {}, + "blink_perf.svg": {}, + "dromaeo": { + "end": 2 } } }, "3": { "benchmarks": { + "dromaeo": { + "begin": 2 + }, + "dummy_benchmark.noisy_benchmark_1": {}, + "dummy_benchmark.stable_benchmark_1": {}, + "jetstream": {}, + "kraken": {}, "loading.desktop": { - "begin": 28, - "end": 63 + "end": 41 } } }, "4": { "benchmarks": { "loading.desktop": { - "begin": 63, - "end": 98 + "begin": 41, + "end": 89 } } }, "5": { "benchmarks": { "loading.desktop": { - "begin": 98 + "begin": 89 }, "media.desktop": {}, "memory.desktop": { @@ -75,211 +76,211 @@ "begin": 4 }, "octane": {}, - "power.desktop": { - "end": 6 + "power.desktop": {}, + "rasterize_and_record_micro.partial_invalidation": {}, + "rasterize_and_record_micro.top_25": { + "end": 11 } } }, "7": { "benchmarks": { - "power.desktop": { - "begin": 6 + "rasterize_and_record_micro.top_25": { + "begin": 11 }, - "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": {}, "rendering.desktop": { - "end": 1 + "end": 58 } } }, "8": { "benchmarks": { "rendering.desktop": { - "begin": 1, - "end": 56 + "begin": 58, + "end": 140 } } }, "9": { "benchmarks": { "rendering.desktop": { - "begin": 56, - "end": 114 + "begin": 140, + "end": 232 } } }, "10": { "benchmarks": { "rendering.desktop": { - "begin": 114, - "end": 194 - } - } - }, - "11": { - "benchmarks": { - "rendering.desktop": { - "begin": 194 - } - } - }, - "12": { - "benchmarks": { + "begin": 232 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "system_health.common_desktop": { - "end": 22 + "end": 24 + } + } + }, + "11": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 24, + "end": 90 + } + } + }, + "12": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 90, + "end": 112 } } }, "13": { "benchmarks": { "system_health.common_desktop": { - "begin": 22, - "end": 92 + "begin": 112 + }, + "system_health.memory_desktop": { + "end": 15 } } }, "14": { "benchmarks": { - "system_health.common_desktop": { - "begin": 92 - }, "system_health.memory_desktop": { - "end": 10 + "begin": 15, + "end": 27 } } }, "15": { "benchmarks": { "system_health.memory_desktop": { - "begin": 10, - "end": 20 + "begin": 27, + "end": 52 } } }, "16": { "benchmarks": { "system_health.memory_desktop": { - "begin": 20, - "end": 51 + "begin": 52, + "end": 78 } } }, "17": { "benchmarks": { "system_health.memory_desktop": { - "begin": 51, - "end": 91 + "begin": 78, + "end": 95 } } }, "18": { "benchmarks": { "system_health.memory_desktop": { - "begin": 91, - "end": 109 + "begin": 95, + "end": 105 } } }, "19": { "benchmarks": { "system_health.memory_desktop": { - "begin": 109 + "begin": 105 }, "tab_switching.typical_25": {}, - "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_desktop": { - "end": 7 - } + "tracing.tracing_with_background_memory_infra": {} } }, "20": { "benchmarks": { "v8.browsing_desktop": { - "begin": 7 - }, - "v8.browsing_desktop-future": { - "end": 3 + "end": 25 } } }, "21": { "benchmarks": { + "v8.browsing_desktop": { + "begin": 25 + }, "v8.browsing_desktop-future": { - "begin": 3, - "end": 33 + "end": 24 } } }, "22": { "benchmarks": { "v8.browsing_desktop-future": { - "begin": 33 + "begin": 24 }, "v8.runtime_stats.top_25": { - "end": 34 + "end": 26 } } }, "23": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 34, - "end": 74 + "begin": 26, + "end": 67 } } }, "24": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 74, - "end": 113 + "begin": 67, + "end": 108 } } }, "25": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 113 + "begin": 108 }, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 2826.0, - "predicted_min_shard_index": 20, - "predicted_max_shard_time": 3108.0, - "predicted_max_shard_index": 21, - "shard #0": 2922.0, - "shard #1": 2924.0, - "shard #2": 2950.0, - "shard #3": 2864.0, - "shard #4": 2960.0, - "shard #5": 2930.0, - "shard #6": 2876.0, - "shard #7": 2966.0, - "shard #8": 2914.0, - "shard #9": 2902.0, - "shard #10": 2944.0, - "shard #11": 2910.0, - "shard #12": 2870.0, - "shard #13": 2938.0, - "shard #14": 3056.0, - "shard #15": 2886.0, - "shard #16": 2880.0, - "shard #17": 2880.0, - "shard #18": 2928.0, - "shard #19": 2916.0, - "shard #20": 2826.0, - "shard #21": 3108.0, - "shard #22": 2830.0, - "shard #23": 2946.0, - "shard #24": 2882.0, - "shard #25": 2958.0 + "num_stories": 1240, + "predicted_min_shard_time": 2286.0, + "predicted_min_shard_index": 14, + "predicted_max_shard_time": 2676.0, + "predicted_max_shard_index": 13, + "shard #0": 2542.0, + "shard #1": 2540.0, + "shard #2": 2542.0, + "shard #3": 2542.0, + "shard #4": 2544.0, + "shard #5": 2500.0, + "shard #6": 2566.0, + "shard #7": 2538.0, + "shard #8": 2516.0, + "shard #9": 2554.0, + "shard #10": 2498.0, + "shard #11": 2560.0, + "shard #12": 2520.0, + "shard #13": 2676.0, + "shard #14": 2286.0, + "shard #15": 2658.0, + "shard #16": 2598.0, + "shard #17": 2550.0, + "shard #18": 2424.0, + "shard #19": 2594.0, + "shard #20": 2564.0, + "shard #21": 2496.0, + "shard #22": 2560.0, + "shard #23": 2572.0, + "shard #24": 2530.0, + "shard #25": 2522.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json b/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json index 632b272..60d9de2 100644 --- a/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json +++ b/tools/perf/core/shard_maps/mac-10_12_laptop_low_end-perf_map.json
@@ -4,22 +4,26 @@ "blink_perf.accessibility": {}, "blink_perf.bindings": {}, "blink_perf.canvas": {}, - "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": { - "end": 65 - } + "blink_perf.css": {} } }, "1": { "benchmarks": { - "blink_perf.layout": { - "begin": 65 - }, + "blink_perf.dom": {}, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, "blink_perf.owp_storage": {}, - "blink_perf.paint": {}, + "blink_perf.paint": { + "end": 15 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.paint": { + "begin": 15 + }, "blink_perf.parser": {}, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, @@ -29,164 +33,156 @@ "jetstream": {}, "kraken": {}, "loading.desktop": { - "end": 11 - } - } - }, - "2": { - "benchmarks": { - "loading.desktop": { - "begin": 11, - "end": 43 + "end": 14 } } }, "3": { "benchmarks": { "loading.desktop": { - "begin": 43, - "end": 71 + "begin": 14, + "end": 68 } } }, "4": { "benchmarks": { "loading.desktop": { - "begin": 71, - "end": 99 + "begin": 68 + }, + "media.desktop": { + "end": 25 } } }, "5": { "benchmarks": { - "loading.desktop": { - "begin": 99 + "media.desktop": { + "begin": 25 }, - "media.desktop": {}, - "memory.desktop": { - "end": 6 + "memory.desktop": {}, + "octane": {}, + "power.desktop": { + "end": 11 } } }, "6": { "benchmarks": { - "memory.desktop": { - "begin": 6 - }, - "octane": {}, "power.desktop": { - "end": 10 + "begin": 11 + }, + "rasterize_and_record_micro.partial_invalidation": {}, + "rasterize_and_record_micro.top_25": {}, + "rendering.desktop": { + "end": 51 } } }, "7": { "benchmarks": { - "power.desktop": { - "begin": 10 - }, - "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": {}, "rendering.desktop": { - "end": 25 + "begin": 51, + "end": 147 } } }, "8": { "benchmarks": { "rendering.desktop": { - "begin": 25, - "end": 74 - } + "begin": 147 + }, + "speedometer": {}, + "speedometer-future": {}, + "speedometer2": {} } }, "9": { "benchmarks": { - "rendering.desktop": { - "begin": 74, - "end": 125 + "speedometer2-future": {}, + "system_health.common_desktop": { + "end": 28 } } }, "10": { "benchmarks": { - "rendering.desktop": { - "begin": 125, - "end": 215 + "system_health.common_desktop": { + "begin": 28, + "end": 93 } } }, "11": { "benchmarks": { - "rendering.desktop": { - "begin": 215 - }, - "speedometer": {}, - "speedometer-future": {} + "system_health.common_desktop": { + "begin": 93, + "end": 111 + } } }, "12": { "benchmarks": { - "speedometer2": {}, - "speedometer2-future": {}, "system_health.common_desktop": { - "end": 32 + "begin": 111 + }, + "system_health.memory_desktop": { + "end": 13 } } }, "13": { "benchmarks": { - "system_health.common_desktop": { - "begin": 32, - "end": 100 + "system_health.memory_desktop": { + "begin": 13, + "end": 22 } } }, "14": { "benchmarks": { - "system_health.common_desktop": { - "begin": 100 - }, "system_health.memory_desktop": { - "end": 11 + "begin": 22, + "end": 46 } } }, "15": { "benchmarks": { "system_health.memory_desktop": { - "begin": 11, - "end": 27 + "begin": 46, + "end": 75 } } }, "16": { "benchmarks": { "system_health.memory_desktop": { - "begin": 27, - "end": 59 + "begin": 75, + "end": 91 } } }, "17": { "benchmarks": { "system_health.memory_desktop": { - "begin": 59, - "end": 90 + "begin": 91, + "end": 99 } } }, "18": { "benchmarks": { "system_health.memory_desktop": { - "begin": 90, - "end": 101 + "begin": 99, + "end": 106 } } }, "19": { "benchmarks": { "system_health.memory_desktop": { - "begin": 101 + "begin": 106 }, "tab_switching.typical_25": {}, "tracing.tracing_with_background_memory_infra": {}, @@ -199,86 +195,86 @@ "benchmarks": { "v8.browsing_desktop": { "begin": 5, - "end": 33 + "end": 27 } } }, "21": { "benchmarks": { "v8.browsing_desktop": { - "begin": 33 + "begin": 27 }, "v8.browsing_desktop-future": { - "end": 28 + "end": 19 } } }, "22": { "benchmarks": { "v8.browsing_desktop-future": { - "begin": 28 + "begin": 19 }, "v8.runtime_stats.top_25": { - "end": 28 + "end": 16 } } }, "23": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 28, - "end": 65 + "begin": 16, + "end": 57 } } }, "24": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 65, - "end": 107 + "begin": 57, + "end": 99 } } }, "25": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 107 + "begin": 99 }, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 2820.0, - "predicted_min_shard_index": 17, - "predicted_max_shard_time": 3804.0, - "predicted_max_shard_index": 18, - "shard #0": 3262.0, - "shard #1": 3294.0, - "shard #2": 3232.0, - "shard #3": 3212.0, - "shard #4": 3308.0, - "shard #5": 3258.0, - "shard #6": 3230.0, - "shard #7": 3288.0, - "shard #8": 3244.0, - "shard #9": 3292.0, - "shard #10": 3226.0, - "shard #11": 3258.0, - "shard #12": 3284.0, - "shard #13": 3220.0, - "shard #14": 3144.0, - "shard #15": 3216.0, - "shard #16": 3378.0, - "shard #17": 2820.0, - "shard #18": 3804.0, - "shard #19": 3292.0, - "shard #20": 3254.0, - "shard #21": 3244.0, - "shard #22": 3136.0, - "shard #23": 3356.0, - "shard #24": 3270.0, - "shard #25": 3226.0 + "num_stories": 1240, + "predicted_min_shard_time": 1992.0, + "predicted_min_shard_index": 16, + "predicted_max_shard_time": 2712.0, + "predicted_max_shard_index": 17, + "shard #0": 2306.0, + "shard #1": 2334.0, + "shard #2": 2364.0, + "shard #3": 2312.0, + "shard #4": 2312.0, + "shard #5": 2330.0, + "shard #6": 2334.0, + "shard #7": 2320.0, + "shard #8": 2248.0, + "shard #9": 2422.0, + "shard #10": 2350.0, + "shard #11": 2338.0, + "shard #12": 2230.0, + "shard #13": 2388.0, + "shard #14": 2292.0, + "shard #15": 2316.0, + "shard #16": 1992.0, + "shard #17": 2712.0, + "shard #18": 2298.0, + "shard #19": 2382.0, + "shard #20": 2340.0, + "shard #21": 2342.0, + "shard #22": 2246.0, + "shard #23": 2338.0, + "shard #24": 2318.0, + "shard #25": 2330.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json b/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json index 57cfe83d..c8e41ef 100644 --- a/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json +++ b/tools/perf/core/shard_maps/mac-10_13_laptop_high_end-perf_map.json
@@ -5,22 +5,31 @@ "blink_perf.bindings": {}, "blink_perf.canvas": {}, "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": {}, - "blink_perf.owp_storage": { - "end": 3 + "blink_perf.dom": { + "end": 8 } } }, "1": { "benchmarks": { - "blink_perf.owp_storage": { - "begin": 3 + "blink_perf.dom": { + "begin": 8 }, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, + "blink_perf.owp_storage": {}, "blink_perf.paint": {}, - "blink_perf.parser": {}, + "blink_perf.parser": { + "end": 14 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.parser": { + "begin": 14 + }, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, "dromaeo": {}, @@ -29,252 +38,252 @@ "jetstream": {}, "kraken": {}, "loading.desktop": { - "end": 12 - } - } - }, - "2": { - "benchmarks": { - "loading.desktop": { - "begin": 12, - "end": 46 + "end": 26 } } }, "3": { "benchmarks": { "loading.desktop": { - "begin": 46, - "end": 77 + "begin": 26, + "end": 82 } } }, "4": { "benchmarks": { "loading.desktop": { - "begin": 77 + "begin": 82 }, - "media.desktop": { - "end": 2 + "media.desktop": {}, + "memory.desktop": { + "end": 6 } } }, "5": { "benchmarks": { - "media.desktop": { - "begin": 2 + "memory.desktop": { + "begin": 6 }, - "memory.desktop": {} - } - }, - "6": { - "benchmarks": { "octane": {}, "power.desktop": {}, "rasterize_and_record_micro.partial_invalidation": {}, "rasterize_and_record_micro.top_25": { - "end": 17 + "end": 22 + } + } + }, + "6": { + "benchmarks": { + "rasterize_and_record_micro.top_25": { + "begin": 22 + }, + "rendering.desktop": { + "end": 78 } } }, "7": { "benchmarks": { - "rasterize_and_record_micro.top_25": { - "begin": 17 - }, "rendering.desktop": { - "end": 42 + "begin": 78, + "end": 186 } } }, "8": { "benchmarks": { "rendering.desktop": { - "begin": 42, - "end": 99 - } - } - }, - "9": { - "benchmarks": { - "rendering.desktop": { - "begin": 99, - "end": 177 - } - } - }, - "10": { - "benchmarks": { - "rendering.desktop": { - "begin": 177 - } - } - }, - "11": { - "benchmarks": { + "begin": 186 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "system_health.common_desktop": { - "end": 15 + "end": 11 } } }, - "12": { + "9": { "benchmarks": { "system_health.common_desktop": { - "begin": 15, - "end": 89 + "begin": 11, + "end": 54 } } }, - "13": { + "10": { "benchmarks": { "system_health.common_desktop": { - "begin": 89 + "begin": 54, + "end": 98 + } + } + }, + "11": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 98 }, "system_health.memory_desktop": { "end": 6 } } }, - "14": { + "12": { "benchmarks": { "system_health.memory_desktop": { "begin": 6, - "end": 16 + "end": 15 + } + } + }, + "13": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 15, + "end": 27 + } + } + }, + "14": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 27, + "end": 55 } } }, "15": { "benchmarks": { "system_health.memory_desktop": { - "begin": 16, - "end": 41 + "begin": 55, + "end": 84 } } }, "16": { "benchmarks": { "system_health.memory_desktop": { - "begin": 41, - "end": 75 + "begin": 84, + "end": 94 } } }, "17": { "benchmarks": { "system_health.memory_desktop": { - "begin": 75, - "end": 92 + "begin": 94, + "end": 101 } } }, "18": { "benchmarks": { "system_health.memory_desktop": { - "begin": 92, - "end": 105 + "begin": 101, + "end": 109 } } }, "19": { "benchmarks": { "system_health.memory_desktop": { - "begin": 105 + "begin": 109 }, "tab_switching.typical_25": {}, "tracing.tracing_with_background_memory_infra": {}, "v8.browsing_desktop": { - "end": 11 + "end": 7 } } }, "20": { "benchmarks": { "v8.browsing_desktop": { - "begin": 11 - }, - "v8.browsing_desktop-future": { - "end": 4 + "begin": 7, + "end": 29 } } }, "21": { "benchmarks": { + "v8.browsing_desktop": { + "begin": 29 + }, "v8.browsing_desktop-future": { - "begin": 4, - "end": 30 + "end": 22 } } }, "22": { "benchmarks": { "v8.browsing_desktop-future": { - "begin": 30 + "begin": 22 }, "v8.runtime_stats.top_25": { - "end": 30 + "end": 21 } } }, "23": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 30, - "end": 66 + "begin": 21, + "end": 60 } } }, "24": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 66, - "end": 106 + "begin": 60, + "end": 100 } } }, "25": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 106 + "begin": 100 }, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 2472.0, - "predicted_min_shard_index": 18, - "predicted_max_shard_time": 3246.0, - "predicted_max_shard_index": 17, - "shard #0": 2876.0, - "shard #1": 2870.0, - "shard #2": 2924.0, - "shard #3": 2812.0, - "shard #4": 2870.0, - "shard #5": 2862.0, - "shard #6": 2896.0, - "shard #7": 2876.0, - "shard #8": 2886.0, - "shard #9": 2848.0, - "shard #10": 2904.0, - "shard #11": 2826.0, - "shard #12": 2918.0, - "shard #13": 2880.0, - "shard #14": 2886.0, - "shard #15": 2898.0, - "shard #16": 2754.0, - "shard #17": 3246.0, - "shard #18": 2472.0, - "shard #19": 2890.0, - "shard #20": 2930.0, - "shard #21": 2816.0, - "shard #22": 2998.0, - "shard #23": 2826.0, - "shard #24": 2878.0, - "shard #25": 2860.0 + "num_stories": 1240, + "predicted_min_shard_time": 2010.0, + "predicted_min_shard_index": 16, + "predicted_max_shard_time": 2310.0, + "predicted_max_shard_index": 14, + "shard #0": 2136.0, + "shard #1": 2132.0, + "shard #2": 2138.0, + "shard #3": 2144.0, + "shard #4": 2142.0, + "shard #5": 2056.0, + "shard #6": 2194.0, + "shard #7": 2130.0, + "shard #8": 2088.0, + "shard #9": 2186.0, + "shard #10": 2086.0, + "shard #11": 2142.0, + "shard #12": 2064.0, + "shard #13": 2064.0, + "shard #14": 2310.0, + "shard #15": 2166.0, + "shard #16": 2010.0, + "shard #17": 2142.0, + "shard #18": 2196.0, + "shard #19": 2184.0, + "shard #20": 2102.0, + "shard #21": 2056.0, + "shard #22": 2210.0, + "shard #23": 2144.0, + "shard #24": 2118.0, + "shard #25": 2146.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json index 03c04922..9add4ec 100644 --- a/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-go-perf_timing.json
@@ -1,118 +1,118 @@ [ { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "26.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "35.0", + "duration": "31.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "36.0", + "duration": "30.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "33.0", + "duration": "29.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "31.0", + "duration": "28.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "33.0", + "duration": "29.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "40.0", + "duration": "54.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "33.0", + "duration": "29.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "32.0", + "duration": "29.0", "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" }, { - "duration": "33.0", + "duration": "28.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "37.0", + "duration": "31.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "75.0", + "duration": "76.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "81.0", + "duration": "96.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { - "duration": "93.0", + "duration": "74.0", "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "99.0", + "duration": "85.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "81.0", + "duration": "80.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "78.0", + "duration": "79.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "79.0", + "duration": "88.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "75.0", + "duration": "83.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "72.0", + "duration": "74.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { @@ -120,115 +120,119 @@ "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "76.0", + "duration": "79.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "155.0", + "duration": "140.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "289.0", + "duration": "260.0", "name": "speedometer2/Speedometer2" }, { - "duration": "223.0", + "duration": "240.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "253.0", "name": "startup.mobile/intent:coldish:bbc" }, { - "duration": "177.0", + "duration": "218.0", "name": "startup.mobile/intent:warm:bbc" }, { - "duration": "31.0", + "duration": "263.0", + "name": "startup.mobile/maps_pwa:with_http_cache" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "66.0", + "duration": "63.0", "name": "system_health.common_mobile/background:news:nytimes" }, { - "duration": "33.0", + "duration": "34.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "55.0", + "duration": "32.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "49.0", - "name": "system_health.common_mobile/background:tools:gmail" - }, - { - "duration": "189.0", - "name": "system_health.common_mobile/browse:chrome:newtab" - }, - { - "duration": "55.0", + "duration": "52.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "152.0", + "duration": "124.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "78.0", + "duration": "73.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "105.0", + "duration": "67.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "100.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "160.0", + "duration": "156.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "261.0", + "duration": "268.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "234.0", + "duration": "235.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "92.0", + "duration": "86.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "78.0", + "duration": "125.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "109.0", + "duration": "83.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "76.0", + "duration": "75.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "137.0", + "duration": "33.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "118.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "114.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "58.0", + "duration": "52.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "99.0", + "duration": "98.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "153.0", + "duration": "145.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "135.0", + "duration": "133.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { @@ -236,455 +240,587 @@ "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "122.0", + "duration": "129.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "155.0", + "duration": "151.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "77.0", - "name": "system_health.common_mobile/browse:social:twitter" - }, - { - "duration": "97.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "119.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "28.0", - "name": "system_health.common_mobile/load:chrome:blank" - }, - { - "duration": "38.0", - "name": "system_health.common_mobile/load:games:bubbles" - }, - { - "duration": "51.0", - "name": "system_health.common_mobile/load:games:lazors" - }, - { - "duration": "50.0", - "name": "system_health.common_mobile/load:games:spychase" - }, - { - "duration": "38.0", - "name": "system_health.common_mobile/load:media:dailymotion" - }, - { - "duration": "33.0", - "name": "system_health.common_mobile/load:media:facebook_photos" - }, - { - "duration": "32.0", - "name": "system_health.common_mobile/load:media:google_images" - }, - { - "duration": "32.0", - "name": "system_health.common_mobile/load:media:imgur" - }, - { - "duration": "31.0", - "name": "system_health.common_mobile/load:media:soundcloud" - }, - { - "duration": "32.0", - "name": "system_health.common_mobile/load:media:youtube" + "duration": "175.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "76.0", - "name": "system_health.common_mobile/load:news:cnn" + "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "49.0", - "name": "system_health.common_mobile/load:news:irctc" + "duration": "99.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "42.0", - "name": "system_health.common_mobile/load:news:nytimes" + "duration": "128.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "32.0", - "name": "system_health.common_mobile/load:news:qq" + "duration": "66.0", + "name": "system_health.common_mobile/browse:tools:maps" }, { "duration": "34.0", - "name": "system_health.common_mobile/load:news:reddit" + "name": "system_health.common_mobile/load:chrome:blank" }, { "duration": "36.0", + "name": "system_health.common_mobile/load:games:bubbles" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/load:games:spychase" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "34.0", + "name": "system_health.common_mobile/load:media:dailymotion" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:media:facebook_photos" + }, + { + "duration": "39.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:media:google_images" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:media:imgur" + }, + { + "duration": "47.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:media:soundcloud" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:media:youtube" + }, + { + "duration": "39.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "72.0", + "name": "system_health.common_mobile/load:news:cnn" + }, + { + "duration": "57.0", + "name": "system_health.common_mobile/load:news:cnn:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_mobile/load:news:irctc" + }, + { + "duration": "39.0", + "name": "system_health.common_mobile/load:news:nytimes" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/load:news:qq" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/load:news:reddit" + }, + { + "duration": "34.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "34.0", + "duration": "31.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "32.0", + "duration": "30.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "60.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "34.0", + "duration": "54.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "41.0", "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "30.0", + "duration": "36.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "27.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "32.0", + "duration": "30.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "33.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "30.0", + "duration": "26.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "30.0", + "duration": "26.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/load:search:yandex" }, { "duration": "31.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "31.0", + "duration": "27.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "37.0", + "duration": "33.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "29.0", + "duration": "27.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "49.0", - "name": "system_health.common_mobile/load:tools:gmail" - }, - { - "duration": "32.0", + "duration": "30.0", "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "46.0", + "duration": "32.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "43.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "36.0", + "duration": "32.0", "name": "system_health.memory_mobile/background:media:imgur" }, { - "duration": "37.0", + "duration": "36.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "43.0", + "duration": "33.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "48.0", - "name": "system_health.memory_mobile/background:tools:gmail" - }, - { - "duration": "181.0", + "duration": "173.0", "name": "system_health.memory_mobile/browse:chrome:newtab" }, { - "duration": "62.0", + "duration": "52.0", "name": "system_health.memory_mobile/browse:chrome:omnibox" }, { - "duration": "108.0", + "duration": "102.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "68.0", + "duration": "57.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "86.0", - "name": "system_health.memory_mobile/browse:media:imgur" - }, - { - "duration": "106.0", - "name": "system_health.memory_mobile/browse:media:youtube" - }, - { - "duration": "73.0", - "name": "system_health.memory_mobile/browse:news:cricbuzz" - }, - { - "duration": "67.0", - "name": "system_health.memory_mobile/browse:news:qq" - }, - { - "duration": "76.0", - "name": "system_health.memory_mobile/browse:news:reddit" - }, - { - "duration": "188.0", - "name": "system_health.memory_mobile/browse:news:toi" - }, - { - "duration": "64.0", - "name": "system_health.memory_mobile/browse:news:washingtonpost" - }, - { - "duration": "85.0", - "name": "system_health.memory_mobile/browse:shopping:amazon" - }, - { - "duration": "99.0", - "name": "system_health.memory_mobile/browse:shopping:avito" - }, - { - "duration": "53.0", - "name": "system_health.memory_mobile/browse:shopping:lazada" - }, - { - "duration": "83.0", - "name": "system_health.memory_mobile/browse:social:facebook" - }, - { - "duration": "96.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "107.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "94.0", - "name": "system_health.memory_mobile/browse:social:instagram" - }, - { - "duration": "97.0", - "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "67.0", - "name": "system_health.memory_mobile/browse:social:twitter" - }, - { - "duration": "86.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "91.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:chrome:blank" - }, - { - "duration": "45.0", - "name": "system_health.memory_mobile/load:games:bubbles" - }, - { - "duration": "34.0", - "name": "system_health.memory_mobile/load:games:lazors" - }, - { - "duration": "43.0", - "name": "system_health.memory_mobile/load:games:spychase" - }, - { - "duration": "42.0", - "name": "system_health.memory_mobile/load:media:dailymotion" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/load:media:facebook_photos" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/load:media:google_images" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:media:imgur" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:media:soundcloud" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "71.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "51.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "44.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "39.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "47.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "38.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "35.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "35.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "35.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "36.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "40.0", - "name": "system_health.memory_mobile/load:tools:drive" - }, - { - "duration": "34.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "46.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "214.0", - "name": "v8.browsing_mobile/browse:chrome:newtab" - }, - { - "duration": "64.0", - "name": "v8.browsing_mobile/browse:chrome:omnibox" - }, - { - "duration": "168.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" - }, - { - "duration": "108.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" - }, - { - "duration": "138.0", - "name": "v8.browsing_mobile/browse:media:imgur" - }, - { - "duration": "221.0", - "name": "v8.browsing_mobile/browse:media:youtube" - }, - { - "duration": "420.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" - }, - { - "duration": "119.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" - }, - { - "duration": "102.0", - "name": "v8.browsing_mobile/browse:news:qq" - }, - { - "duration": "120.0", - "name": "v8.browsing_mobile/browse:news:reddit" - }, - { - "duration": "98.0", - "name": "v8.browsing_mobile/browse:news:washingtonpost" - }, - { - "duration": "187.0", - "name": "v8.browsing_mobile/browse:shopping:amazon" - }, - { - "duration": "185.0", - "name": "v8.browsing_mobile/browse:shopping:avito" + "duration": "57.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" }, { "duration": "81.0", + "name": "system_health.memory_mobile/browse:media:imgur" + }, + { + "duration": "100.0", + "name": "system_health.memory_mobile/browse:media:youtube" + }, + { + "duration": "69.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz" + }, + { + "duration": "100.0", + "name": "system_health.memory_mobile/browse:news:qq" + }, + { + "duration": "72.0", + "name": "system_health.memory_mobile/browse:news:reddit" + }, + { + "duration": "187.0", + "name": "system_health.memory_mobile/browse:news:toi" + }, + { + "duration": "61.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "88.0", + "name": "system_health.memory_mobile/browse:shopping:amazon" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:shopping:lazada" + }, + { + "duration": "78.0", + "name": "system_health.memory_mobile/browse:social:facebook" + }, + { + "duration": "88.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" + }, + { + "duration": "92.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "91.0", + "name": "system_health.memory_mobile/browse:social:instagram" + }, + { + "duration": "95.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "116.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "64.0", + "name": "system_health.memory_mobile/browse:social:twitter" + }, + { + "duration": "73.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "87.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_mobile/browse:tools:maps" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:games:bubbles" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/load:games:spychase" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:media:dailymotion" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:media:facebook_photos" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:media:google_images" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:imgur" + }, + { + "duration": "40.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:media:soundcloud" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:media:youtube" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "64.0", + "name": "system_health.memory_mobile/load:news:cnn" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:news:irctc" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/load:news:nytimes" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/load:news:qq" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:news:reddit" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:news:washingtonpost" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:news:wikipedia" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "55.0", + "name": "system_health.memory_mobile/load:search:baidu" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/load:search:ebay" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "40.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:tools:drive" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "155.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "85.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "129.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "193.0", + "name": "v8.browsing_mobile/browse:media:youtube" + }, + { + "duration": "314.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "106.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "144.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "110.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "92.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "169.0", + "name": "v8.browsing_mobile/browse:shopping:amazon" + }, + { + "duration": "71.0", "name": "v8.browsing_mobile/browse:shopping:lazada" }, { - "duration": "143.0", + "duration": "135.0", "name": "v8.browsing_mobile/browse:social:facebook" }, { - "duration": "204.0", + "duration": "180.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "248.0", + "duration": "187.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "185.0", + "duration": "164.0", "name": "v8.browsing_mobile/browse:social:instagram" }, { - "duration": "184.0", + "duration": "168.0", "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "240.0", + "duration": "208.0", "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "98.0", + "duration": "248.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "88.0", "name": "v8.browsing_mobile/browse:social:twitter" }, { - "duration": "154.0", + "duration": "126.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "181.0", + "duration": "172.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "85.0", + "name": "v8.browsing_mobile/browse:tools:maps" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json index cd64f47..f66ec11 100644 --- a/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-go_webview-perf_timing.json
@@ -1,2994 +1,390 @@ [ { - "duration": "30.0", - "name": "blink_perf.accessibility/textarea-append.html" - }, - { - "duration": "22.0", - "name": "blink_perf.events/EventsDispatching.html" - }, - { - "duration": "12.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" - }, - { - "duration": "11.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" - }, - { - "duration": "24.0", - "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" - }, - { - "duration": "23.0", - "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" - }, - { - "duration": "24.0", - "name": "blink_perf.events/hit-test-lots-of-layers.html" - }, - { - "duration": "65.0", - "name": "blink_perf.image_decoder/decode-gif.html" - }, - { "duration": "20.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "54.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" - }, - { - "duration": "13.0", - "name": "blink_perf.image_decoder/decode-lossy-webp.html" - }, - { - "duration": "35.0", - "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" - }, - { - "duration": "21.0", - "name": "blink_perf.image_decoder/decode-png-palette.html" - }, - { - "duration": "60.0", - "name": "blink_perf.image_decoder/decode-png.html" - }, - { - "duration": "21.0", - "name": "blink_perf.layout/ArabicLineLayout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/Shapes/MultipleShapes.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/SimpleTextPathLineLayout.html" - }, - { - "duration": "8.0", - "name": "blink_perf.layout/add-remove-inline-floats.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/attach-inlines-2.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/attach-inlines.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/auto-grid-lots-of-data.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/change-text-css-contain.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/chapter-reflow-once-random.html" - }, - { - "duration": "13.0", - "name": "blink_perf.layout/chapter-reflow-once.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/chapter-reflow-thrice.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/chapter-reflow-twice.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/chapter-reflow.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/character_fallback.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/character_fallback_aat.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/contain-content-style-change.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/fixed-grid-lots-of-data.html" - }, - { - "duration": "12.0", - "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/flexbox-column-nowrap.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/flexbox-column-wrap.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/flexbox-lots-of-data.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/flexbox-row-nowrap.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/flexbox-row-wrap.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/flexbox-with-stretch-layout.html" - }, - { - "duration": "21.0", - "name": "blink_perf.layout/floats_100_100.html" - }, - { - "duration": "21.0", - "name": "blink_perf.layout/floats_100_100_nested.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/floats_10_1000.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/floats_20_100.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/floats_20_100_nested.html" - }, - { - "duration": "7.0", - "name": "blink_perf.layout/floats_2_100.html" - }, - { - "duration": "7.0", - "name": "blink_perf.layout/floats_2_100_nested.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/floats_50_100.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/floats_50_100_nested.html" - }, - { - "duration": "23.0", - "name": "blink_perf.owp_storage/blob-perf-files.html" - }, - { - "duration": "15.0", - "name": "blink_perf.owp_storage/blob-perf-ipc.html" - }, - { - "duration": "11.0", - "name": "blink_perf.owp_storage/blob-perf-shm.html" - }, - { - "duration": "14.0", - "name": "blink_perf.owp_storage/blob-perf-tiny.html" - }, - { - "duration": "15.0", - "name": "blink_perf.owp_storage/idb-load-docs.html" - }, - { - "duration": "15.0", - "name": "blink_perf.shadow_dom/declarative-api.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-assign.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/imperative-api.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/shadow-style-share.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/style-sheet-insert.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html" - }, - { - "duration": "9.0", - "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html" - }, - { - "duration": "9.0", - "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-content-reprojection.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" - }, - { - "duration": "25.0", - "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-distribution.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-host-child-append.html" - }, - { - "duration": "25.0", - "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" - }, - { - "duration": "57.0", - "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" - }, - { - "duration": "5.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": "5.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-slot-append.html" - }, - { - "duration": "7.0", - "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" - }, - { - "duration": "7.0", - "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" - }, - { - "duration": "16.0", - "name": "blink_perf.svg/AzLizardBenjiPark.html" - }, - { - "duration": "8.0", - "name": "blink_perf.svg/Bamboo.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/Cactus.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/Cowboy.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/CrawFishGanson.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/Debian.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/DropsOnABlade.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/FlowerFromMyGarden.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/FoodLeifLodahl.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/France.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/GearFlowers.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/HarveyRayner.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/HereGear.html" - }, - { - "duration": "8.0", - "name": "blink_perf.svg/MtSaintHelens.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/Samurai.html" - }, - { - "duration": "60.0", - "name": "blink_perf.svg/SierpinskiCarpet.html" - }, - { - "duration": "6.0", - "name": "blink_perf.svg/SvgCubics.html" - }, - { - "duration": "6.0", - "name": "blink_perf.svg/SvgHitTesting.html" - }, - { - "duration": "11.0", - "name": "blink_perf.svg/SvgNestedUse.html" - }, - { - "duration": "5.0", - "name": "blink_perf.svg/UnderTheSee.html" - }, - { - "duration": "6.0", - "name": "blink_perf.svg/WorldIso.html" - }, - { - "duration": "8.0", - "name": "blink_perf.svg/Worldcup.html" - }, - { - "duration": "13.0", - "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" - }, - { - "duration": "281.0", - "name": "jetstream/http://browserbench.org/JetStream/" - }, - { - "duration": "16.0", - "name": "loading.mobile/58Pic" - }, - { - "duration": "166.0", - "name": "loading.mobile/58Pic_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/Amazon" - }, - { - "duration": "233.0", - "name": "loading.mobile/Amazon_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/BOLNoticias" - }, - { - "duration": "275.0", - "name": "loading.mobile/BOLNoticias_3g" - }, - { - "duration": "22.0", - "name": "loading.mobile/Baidu" - }, - { - "duration": "173.0", - "name": "loading.mobile/Baidu_3g" - }, - { - "duration": "18.0", - "name": "loading.mobile/Bradesco" - }, - { - "duration": "18.0", - "name": "loading.mobile/Dailymotion" - }, - { - "duration": "23.0", - "name": "loading.mobile/Dawn" - }, - { - "duration": "16.0", - "name": "loading.mobile/DevOpera_cold" - }, - { - "duration": "168.0", - "name": "loading.mobile/DevOpera_cold_3g" - }, - { - "duration": "22.0", - "name": "loading.mobile/DevOpera_hot" - }, - { - "duration": "156.0", - "name": "loading.mobile/DevOpera_hot_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/DevOpera_warm" - }, - { - "duration": "148.0", - "name": "loading.mobile/DevOpera_warm_3g" - }, - { - "duration": "20.0", - "name": "loading.mobile/Dramaq" - }, - { - "duration": "141.0", - "name": "loading.mobile/Dramaq_3g" - }, - { - "duration": "15.0", - "name": "loading.mobile/EnquiryIndianRail" - }, - { - "duration": "143.0", - "name": "loading.mobile/EnquiryIndianRail_3g" - }, - { - "duration": "15.0", - "name": "loading.mobile/Facebook" - }, - { - "duration": "36.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "17.0", - "name": "loading.mobile/FlipBoard_cold" - }, - { - "duration": "26.0", - "name": "loading.mobile/FlipBoard_hot" - }, - { - "duration": "38.0", - "name": "loading.mobile/FlipBoard_hot_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/FlipBoard_warm" - }, - { - "duration": "21.0", - "name": "loading.mobile/FlipKart_cold" - }, - { - "duration": "32.0", - "name": "loading.mobile/FlipKart_hot" - }, - { - "duration": "29.0", - "name": "loading.mobile/FlipKart_hot_3g" - }, - { - "duration": "25.0", - "name": "loading.mobile/FlipKart_warm" - }, - { - "duration": "252.0", - "name": "loading.mobile/FlipKart_warm_3g" - }, - { - "duration": "16.0", - "name": "loading.mobile/FranceTVInfo" - }, - { - "duration": "65.0", - "name": "loading.mobile/FranceTVInfo_3g" - }, - { - "duration": "22.0", - "name": "loading.mobile/GSShop" - }, - { - "duration": "14.0", - "name": "loading.mobile/GoogleBrazil" - }, - { - "duration": "245.0", - "name": "loading.mobile/GoogleBrazil_3g" - }, - { - "duration": "15.0", - "name": "loading.mobile/GoogleIndia" - }, - { - "duration": "15.0", - "name": "loading.mobile/GoogleIndonesia" - }, - { - "duration": "237.0", - "name": "loading.mobile/GoogleIndonesia_3g" - }, - { - "duration": "20.0", - "name": "loading.mobile/GoogleRedirectToGoogleJapan" - }, - { - "duration": "18.0", - "name": "loading.mobile/Hongkiat" - }, - { - "duration": "271.0", - "name": "loading.mobile/Hongkiat_3g" - }, - { - "duration": "20.0", - "name": "loading.mobile/KapanLagi" - }, - { - "duration": "25.0", - "name": "loading.mobile/Kaskus" - }, - { - "duration": "18.0", - "name": "loading.mobile/LocalMoxie" - }, - { - "duration": "14.0", - "name": "loading.mobile/Locanto" - }, - { - "duration": "102.0", - "name": "loading.mobile/Locanto_3g" - }, - { - "duration": "17.0", - "name": "loading.mobile/OLX" - }, - { - "duration": "249.0", - "name": "loading.mobile/OLX_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/QQNews" - }, - { - "duration": "217.0", - "name": "loading.mobile/QQNews_3g" - }, - { - "duration": "16.0", - "name": "loading.mobile/SlideShare" - }, - { - "duration": "227.0", - "name": "loading.mobile/SlideShare_3g" - }, - { - "duration": "15.0", - "name": "loading.mobile/Suumo_cold" - }, - { - "duration": "37.0", - "name": "loading.mobile/Suumo_cold_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/Suumo_hot" - }, - { - "duration": "27.0", - "name": "loading.mobile/Suumo_hot_3g" - }, - { - "duration": "17.0", - "name": "loading.mobile/Suumo_warm" - }, - { - "duration": "24.0", - "name": "loading.mobile/Suumo_warm_3g" - }, - { - "duration": "17.0", - "name": "loading.mobile/Thairath" - }, - { - "duration": "23.0", - "name": "loading.mobile/TheStar" - }, - { - "duration": "21.0", - "name": "loading.mobile/TribunNews" - }, - { - "duration": "15.0", - "name": "loading.mobile/Twitter" - }, - { - "duration": "135.0", - "name": "loading.mobile/Twitter_3g" - }, - { - "duration": "16.0", - "name": "loading.mobile/VoiceMemos_cold" - }, - { - "duration": "260.0", - "name": "loading.mobile/VoiceMemos_cold_3g" - }, - { - "duration": "22.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "49.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "46.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "14.0", - "name": "loading.mobile/Wikipedia" - }, - { - "duration": "191.0", - "name": "loading.mobile/Wikipedia_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/YahooNews" - }, - { - "duration": "15.0", - "name": "loading.mobile/Youtube" - }, - { - "duration": "252.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "22.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "22.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "21.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "22.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "22.0", + "duration": "28.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "22.0", + "duration": "24.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "22.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "29.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "22.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "25.0", + "duration": "20.0", + "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" + }, + { + "duration": "27.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "25.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "25.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "24.0", + "duration": "23.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "25.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "27.0", + "duration": "38.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "25.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "25.0", + "duration": "22.0", + "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" + }, + { + "duration": "23.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "63.0", - "name": "octane/http://chromium.github.io/octane/index.html?auto=1" + "duration": "20.0", + "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "22.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "63.0", + "duration": "75.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "67.0", + "duration": "92.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { - "duration": "58.0", + "duration": "67.0", "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "70.0", + "duration": "83.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "82.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "62.0", + "duration": "76.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "63.0", + "duration": "75.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "59.0", + "duration": "79.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "59.0", + "duration": "73.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "61.0", + "duration": "77.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "63.0", + "duration": "75.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "21.0", - "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" - }, - { - "duration": "31.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": "22.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" - }, - { - "duration": "14.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": "19.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" - }, - { - "duration": "20.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" - }, - { - "duration": "35.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" - }, - { - "duration": "29.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" - }, - { - "duration": "27.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" - }, - { - "duration": "21.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" - }, - { - "duration": "24.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" - }, - { - "duration": "19.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" - }, - { - "duration": "20.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" - }, - { - "duration": "9.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" - }, - { - "duration": "15.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" - }, - { - "duration": "26.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": "12.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" - }, - { - "duration": "20.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" - }, - { - "duration": "62.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" - }, - { - "duration": "86.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" - }, - { - "duration": "33.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" - }, - { - "duration": "43.0", - "name": "rendering.mobile/accu_weather_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/amazon_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/amazon_mobile_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/analog_clock_svg" - }, - { - "duration": "53.0", - "name": "rendering.mobile/androidpolice_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/animometer_webgl" - }, - { - "duration": "39.0", - "name": "rendering.mobile/aquarium" - }, - { - "duration": "30.0", - "name": "rendering.mobile/background_color_animation" - }, - { - "duration": "65.0", - "name": "rendering.mobile/background_color_animation_with_gradient" - }, - { - "duration": "31.0", - "name": "rendering.mobile/baidu_mobile_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/balls_css_key_frame_animations" - }, - { - "duration": "28.0", - "name": "rendering.mobile/balls_css_transition_2_properties" - }, - { - "duration": "28.0", - "name": "rendering.mobile/balls_css_transition_40_properties" - }, - { - "duration": "28.0", - "name": "rendering.mobile/balls_css_transition_all_properties" - }, - { - "duration": "25.0", - "name": "rendering.mobile/balls_javascript_canvas" - }, - { - "duration": "25.0", - "name": "rendering.mobile/balls_javascript_css" - }, - { - "duration": "31.0", - "name": "rendering.mobile/balls_svg_animations" - }, - { - "duration": "33.0", - "name": "rendering.mobile/bing_mobile_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/blob" - }, - { - "duration": "26.0", - "name": "rendering.mobile/blogspot_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/blogspot_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/blur_rotating_background" - }, - { - "duration": "30.0", - "name": "rendering.mobile/boingboing_mobile_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/booking.com_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/booking.com_mobile_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/bouncing_balls_15" - }, - { - "duration": "18.0", - "name": "rendering.mobile/bouncing_clipped_rectangles" - }, - { - "duration": "19.0", - "name": "rendering.mobile/bouncing_gradient_circles" - }, - { - "duration": "17.0", - "name": "rendering.mobile/bouncing_png_images" - }, - { - "duration": "26.0", - "name": "rendering.mobile/bouncing_svg_images" - }, - { - "duration": "30.0", - "name": "rendering.mobile/camera_to_webgl" - }, - { - "duration": "27.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", - "name": "rendering.mobile/canvas_animation_no_clear" - }, - { - "duration": "19.0", - "name": "rendering.mobile/canvas_arcs" - }, - { - "duration": "19.0", - "name": "rendering.mobile/canvas_font_cycler" - }, - { - "duration": "19.0", - "name": "rendering.mobile/canvas_lines" - }, - { - "duration": "20.0", - "name": "rendering.mobile/canvas_to_blob" - }, - { - "duration": "42.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/card_expansion" - }, - { - "duration": "23.0", - "name": "rendering.mobile/card_expansion_animated" - }, - { - "duration": "23.0", - "name": "rendering.mobile/card_expansion_images_text" - }, - { - "duration": "21.0", - "name": "rendering.mobile/card_flying" - }, - { - "duration": "14.0", - "name": "rendering.mobile/cats_unscaled" - }, - { - "duration": "12.0", - "name": "rendering.mobile/cats_viewport_width" - }, - { - "duration": "31.0", - "name": "rendering.mobile/cc_poster_circle" - }, - { - "duration": "22.0", - "name": "rendering.mobile/cc_scroll_text_only" - }, - { - "duration": "24.0", - "name": "rendering.mobile/chip_tune" - }, - { - "duration": "31.0", - "name": "rendering.mobile/cnn_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/cnn_article_mobile_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/cnn_mobile_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/cnn_pathological_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/compositor_heavy_animation" - }, - { - "duration": "22.0", - "name": "rendering.mobile/coordinated_animation" - }, - { - "duration": "25.0", - "name": "rendering.mobile/crafty_mind" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_animations_many_keyframes" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_animations_simultaneous_inline_style" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_animations_simultaneous_new_element" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_animations_simultaneous_style_element" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_animations_simultaneous_updating_class" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_animations_staggered_infinite_iterations" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_animations_staggered_inline_style" - }, - { - "duration": "34.0", - "name": "rendering.mobile/css_animations_staggered_new_element" - }, - { - "duration": "30.0", - "name": "rendering.mobile/css_animations_staggered_style_element" - }, - { - "duration": "30.0", - "name": "rendering.mobile/css_animations_staggered_updating_class" - }, - { - "duration": "43.0", - "name": "rendering.mobile/css_animations_triggered_inline_style" - }, - { - "duration": "36.0", - "name": "rendering.mobile/css_animations_triggered_new_element" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_animations_triggered_style_element" - }, - { - "duration": "30.0", - "name": "rendering.mobile/css_animations_triggered_updating_class" - }, - { - "duration": "31.0", - "name": "rendering.mobile/css_opacity_plus_n_layers_0" - }, - { - "duration": "31.0", - "name": "rendering.mobile/css_opacity_plus_n_layers_75" - }, - { - "duration": "31.0", - "name": "rendering.mobile/css_opacity_plus_n_layers_99" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_transitions_inline_style" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_new_element" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_staggered_inline_style" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_staggered_new_element" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_staggered_style_element" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_staggered_updating_class" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_transitions_style_element" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_transitions_triggered_inline_style" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_transitions_triggered_new_element" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_triggered_style_element" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_transitions_triggered_updating_class" - }, - { - "duration": "27.0", - "name": "rendering.mobile/css_transitions_updating_class" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_value_type_color" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_value_type_filter" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_value_type_length" - }, - { - "duration": "31.0", - "name": "rendering.mobile/css_value_type_length_complex" - }, - { - "duration": "31.0", - "name": "rendering.mobile/css_value_type_length_simple" - }, - { - "duration": "30.0", - "name": "rendering.mobile/css_value_type_path" - }, - { - "duration": "38.0", - "name": "rendering.mobile/css_value_type_shadow" - }, - { - "duration": "29.0", - "name": "rendering.mobile/css_value_type_transform_complex" - }, - { - "duration": "28.0", - "name": "rendering.mobile/css_value_type_transform_simple" - }, - { - "duration": "38.0", - "name": "rendering.mobile/deviantart_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/digg_mobile_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/dynamic_cube_map" - }, - { - "duration": "26.0", - "name": "rendering.mobile/earth" - }, - { - "duration": "31.0", - "name": "rendering.mobile/ebay_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/ebay_mobile_2018" - }, - { - "duration": "41.0", - "name": "rendering.mobile/ebay_scroll_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/espn_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/espn_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/espn_pathological_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/extra_large_texture_uploads" - }, - { - "duration": "26.0", - "name": "rendering.mobile/facebook_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/facebook_mobile_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/fill_shapes" - }, - { - "duration": "30.0", - "name": "rendering.mobile/filter_terrain_svg" - }, - { - "duration": "38.0", - "name": "rendering.mobile/flickr_scroll_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/font_wipe" - }, - { - "duration": "27.0", - "name": "rendering.mobile/forecast.io_mobile_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/geo_apis" - }, - { - "duration": "24.0", - "name": "rendering.mobile/gmail_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/google_calendar_2018" - }, - { - "duration": "18.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/google_docs_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/google_image_search_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/google_image_search_mobile_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/google_news_ios" - }, - { - "duration": "19.0", - "name": "rendering.mobile/google_news_mobile_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/google_plus_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/google_plus_mobile_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/google_web_search_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/google_web_search_mobile_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/gsp.ro_mobile_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/guardian_pathological_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/guimark_vector_chart" - }, - { - "duration": "23.0", - "name": "rendering.mobile/gws_boogie_expansion" - }, - { - "duration": "23.0", - "name": "rendering.mobile/gws_google_expansion" - }, - { - "duration": "25.0", - "name": "rendering.mobile/hakim" - }, - { - "duration": "23.0", - "name": "rendering.mobile/horizontal_vertical_expansion" - }, - { - "duration": "41.0", - "name": "rendering.mobile/idle_power_animated_gif" - }, - { - "duration": "35.0", - "name": "rendering.mobile/idle_power_blank" - }, - { - "duration": "45.0", - "name": "rendering.mobile/idle_power_css_animation" - }, - { - "duration": "60.0", - "name": "rendering.mobile/idle_power_request_animation_frame" - }, - { - "duration": "133.0", - "name": "rendering.mobile/idle_power_set_timeout_long" - }, - { - "duration": "50.0", - "name": "rendering.mobile/idle_power_set_timetout" - }, - { - "duration": "45.0", - "name": "rendering.mobile/ie_chalkboard" - }, - { - "duration": "35.0", - "name": "rendering.mobile/ie_pirate_mark" - }, - { - "duration": "36.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_0" - }, - { - "duration": "37.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_75" - }, - { - "duration": "38.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_99" - }, - { - "duration": "37.0", - "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" - }, - { - "duration": "38.0", - "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" - }, - { - "duration": "38.0", - "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" - }, - { - "duration": "36.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_0" - }, - { - "duration": "36.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_75" - }, - { - "duration": "35.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_99" - }, - { - "duration": "35.0", - "name": "rendering.mobile/infinite_scrolling" - }, - { - "duration": "26.0", - "name": "rendering.mobile/jarro_doverson" - }, - { - "duration": "43.0", - "name": "rendering.mobile/js_full_screen_invalidation" - }, - { - "duration": "33.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_0" - }, - { - "duration": "34.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_75" - }, - { - "duration": "34.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_99" - }, - { - "duration": "36.0", - "name": "rendering.mobile/js_paint_plus_n_layers_0" - }, - { - "duration": "36.0", - "name": "rendering.mobile/js_paint_plus_n_layers_75" - }, - { - "duration": "35.0", - "name": "rendering.mobile/js_paint_plus_n_layers_99" - }, - { - "duration": "34.0", - "name": "rendering.mobile/js_poster_circle" - }, - { - "duration": "18.0", - "name": "rendering.mobile/js_scroll_text_only" - }, - { - "duration": "27.0", - "name": "rendering.mobile/keyframed_animations" - }, - { - "duration": "25.0", - "name": "rendering.mobile/large_texture_uploads" - }, - { - "duration": "38.0", - "name": "rendering.mobile/latimes_pathological_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/linkedin_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "60.0", - "name": "rendering.mobile/linkedin_mobile_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/linkedin_pathological_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/list_animation_simple" - }, - { - "duration": "34.0", - "name": "rendering.mobile/list_recycle_transform" - }, - { - "duration": "25.0", - "name": "rendering.mobile/man_in_blue" - }, - { - "duration": "30.0", - "name": "rendering.mobile/many_images" - }, - { - "duration": "26.0", - "name": "rendering.mobile/many_planets_deep" - }, - { - "duration": "22.0", - "name": "rendering.mobile/mask_transition_animation" - }, - { - "duration": "29.0", - "name": "rendering.mobile/medium_texture_uploads" - }, - { - "duration": "22.0", - "name": "rendering.mobile/megi_dish" - }, - { - "duration": "25.0", - "name": "rendering.mobile/microsoft_asteroid_belt" - }, - { - "duration": "24.0", - "name": "rendering.mobile/microsoft_fish_ie_tank" - }, - { - "duration": "23.0", - "name": "rendering.mobile/microsoft_snow" - }, - { - "duration": "24.0", - "name": "rendering.mobile/microsoft_speed_reading" - }, - { - "duration": "22.0", - "name": "rendering.mobile/microsoft_tweet_map" - }, - { - "duration": "28.0", - "name": "rendering.mobile/microsoft_video_city" - }, - { - "duration": "21.0", - "name": "rendering.mobile/microsoft_worker_fountains" - }, - { - "duration": "21.0", - "name": "rendering.mobile/mix_10k" - }, - { - "duration": "30.0", - "name": "rendering.mobile/mix_blend_mode_animation_difference" - }, - { - "duration": "31.0", - "name": "rendering.mobile/mix_blend_mode_animation_hue" - }, - { - "duration": "30.0", - "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "29.0", - "name": "rendering.mobile/mix_blend_mode_animation_screen" - }, - { - "duration": "45.0", - "name": "rendering.mobile/mlb_mobile_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/mobile_news_sandbox" - }, - { - "duration": "26.0", - "name": "rendering.mobile/motion_mark_canvas_fill_shapes" - }, - { - "duration": "24.0", - "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "26.0", - "name": "rendering.mobile/motionmark_anim_design_15" - }, - { - "duration": "30.0", - "name": "rendering.mobile/motionmark_anim_focus_25" - }, - { - "duration": "42.0", - "name": "rendering.mobile/motionmark_anim_images_50" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_anim_leaves_250" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_anim_multiply_175" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_anim_suits_125" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_composited_transforms_125" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" - }, - { - "duration": "35.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" - }, - { - "duration": "33.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" - }, - { - "duration": "32.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" - }, - { - "duration": "35.0", - "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" - }, - { - "duration": "32.0", - "name": "rendering.mobile/motionmark_html_focus_20_15" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_html_leaves_20_50" - }, - { - "duration": "35.0", - "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" - }, - { - "duration": "34.0", - "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" - }, - { - "duration": "35.0", - "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" - }, - { - "duration": "35.0", - "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" - }, - { - "duration": "67.0", - "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" - }, - { - "duration": "35.0", - "name": "rendering.mobile/new_tilings" - }, - { - "duration": "25.0", - "name": "rendering.mobile/no_op_raf" - }, - { - "duration": "23.0", - "name": "rendering.mobile/no_op_scroll" - }, - { - "duration": "20.0", - "name": "rendering.mobile/no_op_settimeout" - }, - { - "duration": "26.0", - "name": "rendering.mobile/no_op_touch_handler" - }, - { - "duration": "27.0", - "name": "rendering.mobile/nvidia_vertex_buffer_object" - }, - { - "duration": "39.0", - "name": "rendering.mobile/nyc_gov_scroll_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/nytimes_mobile_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/nytimes_scroll_2018" - }, - { - "duration": "163.0", - "name": "rendering.mobile/overlay_background_color_css_transitions_page" - }, - { - "duration": "23.0", - "name": "rendering.mobile/parallax_effect" - }, - { - "duration": "26.0", - "name": "rendering.mobile/particles" - }, - { - "duration": "30.0", - "name": "rendering.mobile/pbs_pathological_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/physical_simulation" - }, - { - "duration": "36.0", - "name": "rendering.mobile/pinterest_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/pinterest_mobile_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/put_get_image_data" - }, - { - "duration": "26.0", - "name": "rendering.mobile/raf" - }, - { - "duration": "26.0", - "name": "rendering.mobile/raf_animation" - }, - { - "duration": "27.0", - "name": "rendering.mobile/raf_canvas" - }, - { - "duration": "27.0", - "name": "rendering.mobile/raf_touch_animation" - }, - { - "duration": "36.0", - "name": "rendering.mobile/recode_pathological_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/reddit_mobile_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/runway" - }, - { - "duration": "26.0", - "name": "rendering.mobile/san_angeles" - }, - { - "duration": "15.0", - "name": "rendering.mobile/second_batch_js_heavy" - }, - { - "duration": "15.0", - "name": "rendering.mobile/second_batch_js_light" - }, - { - "duration": "15.0", - "name": "rendering.mobile/second_batch_js_medium" - }, - { - "duration": "43.0", - "name": "rendering.mobile/sfgate_mobile_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/silk_finance" - }, - { - "duration": "28.0", - "name": "rendering.mobile/simple_text_page" - }, - { - "duration": "20.0", - "name": "rendering.mobile/simple_touch_drag" - }, - { - "duration": "37.0", - "name": "rendering.mobile/slashdot_mobile_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/small_texture_uploads" - }, - { - "duration": "22.0", - "name": "rendering.mobile/spielzeugz" - }, - { - "duration": "22.0", - "name": "rendering.mobile/sticky_using_webkit" - }, - { - "duration": "38.0", - "name": "rendering.mobile/stress_hidey_bars" - }, - { - "duration": "19.0", - "name": "rendering.mobile/stroke_shapes" - }, - { - "duration": "34.0", - "name": "rendering.mobile/svg_icon_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/swipe_to_dismiss" - }, - { - "duration": "27.0", - "name": "rendering.mobile/sync_scroll_offset" - }, - { - "duration": "43.0", - "name": "rendering.mobile/techcrunch_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "45.0", - "name": "rendering.mobile/techcrunch_mobile_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/text_05000_pixels_per_second" - }, - { - "duration": "28.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", - "name": "rendering.mobile/text_10000_pixels_per_second" - }, - { - "duration": "29.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_20000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_40000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_60000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_75000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_90000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "13.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "13.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "40.0", - "name": "rendering.mobile/theverge_article_mobile_2018" - }, - { - "duration": "43.0", - "name": "rendering.mobile/theverge_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/toggle_drawer" - }, - { - "duration": "28.0", - "name": "rendering.mobile/touch_handler_scrolling" - }, - { - "duration": "28.0", - "name": "rendering.mobile/transform_transitions" - }, - { - "duration": "29.0", - "name": "rendering.mobile/transform_transitions_js_block" - }, - { - "duration": "29.0", - "name": "rendering.mobile/twitch_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/twitter_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/twitter_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/update_history_state" - }, - { - "duration": "20.0", - "name": "rendering.mobile/usatoday_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/vertical_expansion" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animation_value_type_color" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animation_value_type_length_3d" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animation_value_type_length_complex" - }, - { - "duration": "30.0", - "name": "rendering.mobile/web_animation_value_type_length_simple" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animation_value_type_path" - }, - { - "duration": "37.0", - "name": "rendering.mobile/web_animation_value_type_shadow" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animation_value_type_transform_complex" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animation_value_type_transform_simple" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animations_many_keyframes" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animations_set_current_time" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animations_simultaneous" - }, - { - "duration": "30.0", - "name": "rendering.mobile/web_animations_staggered_chaining" - }, - { - "duration": "25.0", - "name": "rendering.mobile/web_animations_staggered_infinite_iterations" - }, - { - "duration": "30.0", - "name": "rendering.mobile/web_animations_staggered_triggering_page" - }, - { - "duration": "36.0", - "name": "rendering.mobile/wikipedia_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/wikipedia_mobile_2018" - }, - { - "duration": "40.0", - "name": "rendering.mobile/wordpress_2018" - }, - { - "duration": "36.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "41.0", - "name": "rendering.mobile/wordpress_mobile_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/worldjournal_mobile_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/wow_wiki_pathological_2018" - }, - { - "duration": "71.0", - "name": "rendering.mobile/wowwiki_mobile_2018" - }, - { - "duration": "47.0", - "name": "rendering.mobile/wsj_mobile_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/yahoo_answers_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/yahoo_news_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "36.0", - "name": "rendering.mobile/yahoo_news_mobile_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/yahoo_sports_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/yahoo_sports_pathological_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/youtube_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/youtube_mobile_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/yuv_decoding" - }, - { - "duration": "31.0", - "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" - }, - { - "duration": "34.0", - "name": "rendering.mobile/zdnet_pathological_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/zoom_in_animation" - }, - { - "duration": "43.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "24.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" - }, - { - "duration": "26.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" - }, - { - "duration": "47.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" - }, - { - "duration": "38.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" - }, - { - "duration": "22.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" - }, - { - "duration": "36.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" - }, - { - "duration": "35.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" - }, - { - "duration": "37.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" - }, - { - "duration": "26.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" - }, - { - "duration": "42.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "24.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" - }, - { - "duration": "26.0", - "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" - }, - { - "duration": "47.0", - "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" - }, - { - "duration": "38.0", - "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" - }, - { - "duration": "22.0", - "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" - }, - { - "duration": "35.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" - }, - { - "duration": "35.0", - "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" - }, - { - "duration": "37.0", - "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" - }, - { - "duration": "26.0", - "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" - }, - { - "duration": "38.0", - "name": "speedometer-future/http://browserbench.org/Speedometer/" - }, - { - "duration": "38.0", + "duration": "135.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "62.0", - "name": "speedometer2-future/Speedometer2" - }, - { - "duration": "62.0", + "duration": "253.0", "name": "speedometer2/Speedometer2" }, { - "duration": "24.0", + "duration": "22.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "25.0", + "duration": "53.0", + "name": "system_health.common_mobile/background:news:nytimes" + }, + { + "duration": "30.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "35.0", + "duration": "21.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "10.0", - "name": "system_health.common_mobile/browse:chrome:newtab" - }, - { - "duration": "10.0", + "duration": "13.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "95.0", + "duration": "109.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "63.0", + "duration": "60.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { + "duration": "57.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { "duration": "88.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "112.0", + "duration": "140.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "109.0", + "duration": "238.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "89.0", + "duration": "194.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "76.0", + "duration": "74.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "72.0", + "duration": "111.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "60.0", + "duration": "73.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "162.0", - "name": "system_health.common_mobile/browse:news:toi" - }, - { - "duration": "65.0", + "duration": "63.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "82.0", + "duration": "28.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "98.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "81.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "41.0", + "duration": "44.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "76.0", + "duration": "95.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "270.0", + "duration": "128.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "126.0", + "duration": "122.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "86.0", + "duration": "106.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "106.0", + "duration": "114.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "136.0", + "duration": "130.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { + "duration": "149.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { "duration": "64.0", "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "82.0", + "duration": "87.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "113.0", + "duration": "116.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "51.0", + "duration": "55.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "21.0", + "duration": "29.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "27.0", + "duration": "30.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "22.0", + "duration": "20.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "35.0", + "duration": "40.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "36.0", + "duration": "41.0", "name": "system_health.common_mobile/load:games:spychase:2018" }, { - "duration": "27.0", + "duration": "28.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "26.0", + "duration": "24.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "30.0", + "duration": "36.0", "name": "system_health.common_mobile/load:media:flickr:2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "24.0", + "duration": "27.0", "name": "system_health.common_mobile/load:media:google_images:2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "35.0", + "duration": "38.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" }, { - "duration": "26.0", + "duration": "32.0", "name": "system_health.common_mobile/load:media:youtube:2018" }, { - "duration": "38.0", + "duration": "57.0", "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "37.0", + "duration": "50.0", "name": "system_health.common_mobile/load:news:cnn:2018" }, { - "duration": "29.0", + "duration": "39.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "28.0", + "duration": "32.0", "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "27.0", + "duration": "36.0", "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "25.0", + "duration": "26.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "27.0", + "duration": "28.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "24.0", + "duration": "26.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "23.0", + "duration": "24.0", "name": "system_health.common_mobile/load:news:wikipedia:2018" }, { - "duration": "26.0", + "duration": "48.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "28.0", + "duration": "43.0", "name": "system_health.common_mobile/load:search:baidu:2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "30.0", + "duration": "28.0", "name": "system_health.common_mobile/load:search:ebay:2018" }, { - "duration": "23.0", + "duration": "21.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "25.0", + "duration": "24.0", "name": "system_health.common_mobile/load:search:google:2018" }, { - "duration": "25.0", + "duration": "39.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "23.0", + "duration": "21.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "22.0", + "duration": "21.0", "name": "system_health.common_mobile/load:search:yahoo:2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "25.0", + "duration": "26.0", "name": "system_health.common_mobile/load:search:yandex:2018" }, { @@ -2996,15 +392,15 @@ "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "25.0", + "duration": "22.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "24.0", + "duration": "21.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { @@ -3012,139 +408,139 @@ "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "24.0", + "duration": "26.0", "name": "system_health.common_mobile/load:tools:stackoverflow:2018" }, { - "duration": "29.0", + "duration": "35.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "28.0", + "duration": "26.0", "name": "system_health.memory_mobile/background:media:imgur" }, { - "duration": "29.0", + "duration": "32.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "32.0", + "duration": "25.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "12.0", + "duration": "15.0", "name": "system_health.memory_mobile/browse:chrome:newtab" }, { - "duration": "79.0", + "duration": "15.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox" + }, + { + "duration": "96.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "51.0", + "duration": "56.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "74.0", + "duration": "52.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "82.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "84.0", + "duration": "94.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { - "duration": "62.0", - "name": "system_health.memory_mobile/browse:news:cnn" - }, - { - "duration": "55.0", - "name": "system_health.memory_mobile/browse:news:cnn:2018" - }, - { - "duration": "60.0", + "duration": "63.0", "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "58.0", + "duration": "95.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "52.0", + "duration": "66.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "76.0", + "duration": "171.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "50.0", + "duration": "59.0", "name": "system_health.memory_mobile/browse:news:washingtonpost" }, { - "duration": "56.0", + "duration": "31.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "76.0", "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "58.0", - "name": "system_health.memory_mobile/browse:shopping:avito" - }, - { - "duration": "35.0", + "duration": "43.0", "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "60.0", + "duration": "77.0", "name": "system_health.memory_mobile/browse:social:facebook" }, { - "duration": "81.0", + "duration": "89.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "75.0", + "duration": "86.0", "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "74.0", + "duration": "89.0", "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "74.0", - "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "52.0", - "name": "system_health.memory_mobile/browse:social:twitter" + "duration": "109.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "58.0", + "name": "system_health.memory_mobile/browse:social:twitter" + }, + { + "duration": "70.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "48.0", + "duration": "53.0", "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "26.0", + "duration": "28.0", "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "26.0", + "duration": "27.0", "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "26.0", + "duration": "27.0", "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "31.0", + "duration": "34.0", "name": "system_health.memory_mobile/load:games:spychase" }, { - "duration": "32.0", + "duration": "35.0", "name": "system_health.memory_mobile/load:games:spychase:2018" }, { - "duration": "28.0", + "duration": "32.0", "name": "system_health.memory_mobile/load:media:dailymotion" }, { @@ -3152,127 +548,123 @@ "name": "system_health.memory_mobile/load:media:facebook_photos" }, { - "duration": "30.0", + "duration": "38.0", "name": "system_health.memory_mobile/load:media:flickr:2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "system_health.memory_mobile/load:media:google_images" }, { - "duration": "27.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:media:google_images:2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "system_health.memory_mobile/load:media:imgur" }, { - "duration": "29.0", + "duration": "36.0", "name": "system_health.memory_mobile/load:media:imgur:2018" }, { "duration": "27.0", - "name": "system_health.memory_mobile/load:media:soundcloud:2018" - }, - { - "duration": "27.0", "name": "system_health.memory_mobile/load:media:youtube" }, { - "duration": "26.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:media:youtube:2018" }, { - "duration": "31.0", + "duration": "55.0", "name": "system_health.memory_mobile/load:news:cnn" }, { - "duration": "31.0", + "duration": "48.0", "name": "system_health.memory_mobile/load:news:cnn:2018" }, { - "duration": "28.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:news:irctc" }, { - "duration": "29.0", + "duration": "34.0", "name": "system_health.memory_mobile/load:news:nytimes" }, { - "duration": "29.0", + "duration": "39.0", "name": "system_health.memory_mobile/load:news:qq" }, { - "duration": "28.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:news:reddit" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.memory_mobile/load:news:washingtonpost" }, { - "duration": "29.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:news:wikipedia" }, { - "duration": "30.0", + "duration": "28.0", "name": "system_health.memory_mobile/load:news:wikipedia:2018" }, { - "duration": "29.0", + "duration": "44.0", "name": "system_health.memory_mobile/load:search:baidu" }, { - "duration": "30.0", + "duration": "46.0", "name": "system_health.memory_mobile/load:search:baidu:2018" }, { - "duration": "27.0", + "duration": "32.0", "name": "system_health.memory_mobile/load:search:ebay" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.memory_mobile/load:search:ebay:2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "system_health.memory_mobile/load:search:google" }, { - "duration": "27.0", + "duration": "28.0", "name": "system_health.memory_mobile/load:search:google:2018" }, { - "duration": "28.0", + "duration": "36.0", "name": "system_health.memory_mobile/load:search:taobao" }, { - "duration": "26.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:search:yahoo" }, { - "duration": "26.0", + "duration": "25.0", "name": "system_health.memory_mobile/load:search:yahoo:2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "system_health.memory_mobile/load:search:yandex" }, { - "duration": "27.0", + "duration": "29.0", "name": "system_health.memory_mobile/load:search:yandex:2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "system_health.memory_mobile/load:social:twitter" }, { - "duration": "27.0", + "duration": "26.0", "name": "system_health.memory_mobile/load:tools:docs" }, { - "duration": "26.0", + "duration": "25.0", "name": "system_health.memory_mobile/load:tools:dropbox" }, { @@ -3280,287 +672,111 @@ "name": "system_health.memory_mobile/load:tools:stackoverflow" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" }, { - "duration": "30.0", + "duration": "35.0", "name": "system_health.memory_mobile/load:tools:weather" }, { - "duration": "26.0", + "duration": "25.0", "name": "system_health.webview_startup/load:chrome:blank" }, { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + "name": "v8.browsing_mobile/browse:chrome:omnibox" }, { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "21.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "122.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" - }, - { - "duration": "93.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "116.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" - }, - { - "duration": "148.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" - }, - { - "duration": "211.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" - }, - { - "duration": "147.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" - }, - { - "duration": "102.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" - }, - { - "duration": "95.0", - "name": "v8.browsing_mobile-future/browse:news:qq" - }, - { - "duration": "78.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" - }, - { - "duration": "336.0", - "name": "v8.browsing_mobile-future/browse:news:toi" - }, - { - "duration": "94.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" - }, - { - "duration": "138.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" - }, - { - "duration": "53.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" - }, - { - "duration": "114.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" - }, - { - "duration": "621.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "282.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "138.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" - }, - { - "duration": "190.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "279.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "81.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" - }, - { - "duration": "143.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "243.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "68.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" - }, - { - "duration": "121.0", + "duration": "126.0", "name": "v8.browsing_mobile/browse:media:facebook_photos" }, { - "duration": "93.0", + "duration": "76.0", "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "115.0", + "duration": "66.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "111.0", "name": "v8.browsing_mobile/browse:media:imgur" }, { - "duration": "146.0", + "duration": "279.0", "name": "v8.browsing_mobile/browse:news:cnn:2018" }, { - "duration": "98.0", + "duration": "88.0", "name": "v8.browsing_mobile/browse:news:cricbuzz" }, { - "duration": "104.0", + "duration": "123.0", "name": "v8.browsing_mobile/browse:news:qq" }, { - "duration": "78.0", + "duration": "91.0", "name": "v8.browsing_mobile/browse:news:reddit" }, { - "duration": "350.0", - "name": "v8.browsing_mobile/browse:news:toi" - }, - { - "duration": "94.0", + "duration": "74.0", "name": "v8.browsing_mobile/browse:news:washingtonpost" }, { - "duration": "137.0", + "duration": "28.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "136.0", "name": "v8.browsing_mobile/browse:shopping:amazon" }, { - "duration": "119.0", - "name": "v8.browsing_mobile/browse:shopping:avito" - }, - { - "duration": "52.0", + "duration": "54.0", "name": "v8.browsing_mobile/browse:shopping:lazada" }, { - "duration": "114.0", + "duration": "107.0", "name": "v8.browsing_mobile/browse:social:facebook" }, { - "duration": "631.0", + "duration": "165.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "285.0", + "duration": "157.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "137.0", + "duration": "136.0", "name": "v8.browsing_mobile/browse:social:instagram" }, { - "duration": "188.0", + "duration": "142.0", "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "281.0", + "duration": "171.0", "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "81.0", + "duration": "198.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "71.0", "name": "v8.browsing_mobile/browse:social:twitter" }, { - "duration": "143.0", + "duration": "108.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "237.0", + "duration": "148.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "68.0", + "duration": "64.0", "name": "v8.browsing_mobile/browse:tools:maps" - }, - { - "duration": "9.0", - "name": "wasm/AsmJsZenGarden" - }, - { - "duration": "20.0", - "name": "wasm/WasmSpaceBuggy" - }, - { - "duration": "9.0", - "name": "wasm/WasmStylizedRenderer" - }, - { - "duration": "9.0", - "name": "wasm/WasmSunTemple" - }, - { - "duration": "16.0", - "name": "wasm/WasmTanks" - }, - { - "duration": "8.0", - "name": "wasm/WasmZenGarden" - }, - { - "duration": "20.0", - "name": "webrtc/10s_datachannel_transfer" - }, - { - "duration": "25.0", - "name": "webrtc/canvas_capture_peer_connection" - }, - { - "duration": "35.0", - "name": "webrtc/codec_constraints_h264" - }, - { - "duration": "35.0", - "name": "webrtc/codec_constraints_vp8" - }, - { - "duration": "35.0", - "name": "webrtc/codec_constraints_vp9" - }, - { - "duration": "22.0", - "name": "webrtc/hd_local_stream_10s" - }, - { - "duration": "43.0", - "name": "webrtc/multiple_peerconnections" - }, - { - "duration": "65.0", - "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json index 6098db7..3962f6fa 100644 --- a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf-fyi_timing.json
@@ -1,22 +1,18 @@ [ { - "duration": "66.0", + "duration": "54.0", "name": "heap_profiling.mobile.disabled/load:news:cnn" }, { - "duration": "44.0", + "duration": "34.0", "name": "heap_profiling.mobile.disabled/load:search:google" }, { - "duration": "30.0", + "duration": "25.0", "name": "heap_profiling.mobile.disabled/load:social:twitter" }, { - "duration": "43.0", + "duration": "35.0", "name": "heap_profiling.mobile.native/load:search:google" - }, - { - "duration": "31.0", - "name": "heap_profiling.mobile.native/load:social:twitter" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf_timing.json index df93ea6..0b50449 100644 --- a/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-nexus5x-perf_timing.json
@@ -1,26 +1,30 @@ [ { - "duration": "34.0", - "name": "blink_perf.accessibility/textarea-append.html" + "duration": "38.0", + "name": "blink_perf.accessibility/line-breaks.html" }, { "duration": "25.0", + "name": "blink_perf.accessibility/textarea-append.html" + }, + { + "duration": "30.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/first-child.html" }, { @@ -32,271 +36,423 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "60.0", + "duration": "66.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "146.0", + "duration": "94.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/node-type.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/post-message.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/serialize-map.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "25.0", - "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + "duration": "11.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "36.0", - "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" + "duration": "17.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { "duration": "11.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "141.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "142.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "141.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "29.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "30.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + }, + { + "duration": "17.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "23.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "19.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "18.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "37.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "14.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { - "duration": "10.0", + "duration": "12.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "12.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "16.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { - "duration": "15.0", + "duration": "13.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "18.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { - "duration": "15.0", + "duration": "18.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "18.0", "name": "blink_perf.canvas/drawimage.html" }, { - "duration": "26.0", + "duration": "18.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "17.0", "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { "duration": "17.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "17.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "17.0", "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "13.0", + "duration": "17.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "24.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "21.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { - "duration": "12.0", + "duration": "21.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "17.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "8.0", + "duration": "17.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "14.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { "duration": "12.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { + "duration": "15.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { - "duration": "15.0", + "duration": "20.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "19.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "8.0", + "duration": "13.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "16.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { - "duration": "12.0", + "duration": "14.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { + "duration": "15.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "36.0", + "duration": "19.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "37.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { @@ -304,379 +460,399 @@ "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "18.0", + "duration": "21.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "17.0", + "duration": "19.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "21.0", + "duration": "49.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "37.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "64.0", + "duration": "74.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "50.0", + "duration": "51.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "8.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "20.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "17.0", + "duration": "30.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "8.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "15.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "27.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "30.0", + "duration": "29.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "16.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" - }, - { - "duration": "49.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" - }, - { - "duration": "55.0", - "name": "blink_perf.events/hit-test-lots-of-layers.html" - }, - { - "duration": "49.0", - "name": "blink_perf.image_decoder/decode-gif.html" - }, - { "duration": "20.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "46.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" - }, - { - "duration": "15.0", - "name": "blink_perf.image_decoder/decode-lossy-webp.html" - }, - { - "duration": "28.0", - "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { "duration": "19.0", - "name": "blink_perf.image_decoder/decode-png-palette.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "41.0", - "name": "blink_perf.image_decoder/decode-png.html" + "duration": "39.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" }, { - "duration": "30.0", - "name": "blink_perf.layout/ArabicLineLayout.html" + "duration": "38.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "8.0", - "name": "blink_perf.layout/Shapes/MultipleShapes.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/SimpleTextPathLineLayout.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/add-remove-inline-floats.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/attach-inlines-2.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/attach-inlines.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/auto-grid-lots-of-data.html" - }, - { - "duration": "27.0", - "name": "blink_perf.layout/change-text-css-contain.html" - }, - { - "duration": "13.0", - "name": "blink_perf.layout/chapter-reflow-once-random.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/chapter-reflow-once.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/chapter-reflow-thrice.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/chapter-reflow-twice.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/chapter-reflow.html" - }, - { - "duration": "12.0", - "name": "blink_perf.layout/character_fallback.html" - }, - { - "duration": "8.0", - "name": "blink_perf.layout/character_fallback_aat.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/fixed-grid-lots-of-data.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/flexbox-column-nowrap.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/flexbox-column-wrap.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/flexbox-lots-of-data.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/flexbox-row-nowrap.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/flexbox-row-wrap.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/flexbox-with-stretch-layout.html" - }, - { - "duration": "60.0", - "name": "blink_perf.layout/floats_100_100.html" - }, - { - "duration": "59.0", - "name": "blink_perf.layout/floats_100_100_nested.html" - }, - { - "duration": "30.0", - "name": "blink_perf.layout/floats_10_1000.html" + "duration": "61.0", + "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { "duration": "18.0", - "name": "blink_perf.layout/floats_20_100.html" + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "18.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "52.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "23.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "51.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "19.0", + "name": "blink_perf.image_decoder/decode-lossy-webp.html" + }, + { + "duration": "32.0", + "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { "duration": "22.0", - "name": "blink_perf.layout/floats_20_100_nested.html" + "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "12.0", - "name": "blink_perf.layout/floats_2_100.html" + "duration": "47.0", + "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "13.0", - "name": "blink_perf.layout/floats_2_100_nested.html" - }, - { - "duration": "44.0", - "name": "blink_perf.layout/floats_50_100.html" - }, - { - "duration": "24.0", - "name": "blink_perf.layout/floats_50_100_nested.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/hindi-line-layout.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/large-spanning-grid-item.html" - }, - { - "duration": "36.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" - }, - { - "duration": "35.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" - }, - { - "duration": "35.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" - }, - { - "duration": "118.0", - "name": "blink_perf.layout/latin-ebook-resize.html" - }, - { - "duration": "22.0", - "name": "blink_perf.layout/latin-ebook.html" + "duration": "33.0", + "name": "blink_perf.layout/ArabicLineLayout.html" }, { "duration": "11.0", - "name": "blink_perf.layout/layers_overlap_2d.html" + "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { - "duration": "12.0", - "name": "blink_perf.layout/layers_overlap_3d.html" + "duration": "16.0", + "name": "blink_perf.layout/SimpleTextPathLineLayout.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/add-remove-inline-floats.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/attach-inlines-2.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/attach-inlines.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/auto-grid-lots-of-data.html" + }, + { + "duration": "26.0", + "name": "blink_perf.layout/change-text-css-contain.html" + }, + { + "duration": "16.0", + "name": "blink_perf.layout/chapter-reflow-once-random.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/chapter-reflow-once.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/chapter-reflow-thrice.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/chapter-reflow-twice.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/chapter-reflow.html" + }, + { + "duration": "28.0", + "name": "blink_perf.layout/character_fallback.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/character_fallback_aat.html" + }, + { + "duration": "38.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/fixed-grid-lots-of-data.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/flexbox-column-nowrap.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/flexbox-column-wrap.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/flexbox-lots-of-data.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/flexbox-row-nowrap.html" + }, + { + "duration": "24.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/flexbox-row-wrap.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/flexbox-with-stretch-layout.html" + }, + { + "duration": "39.0", + "name": "blink_perf.layout/floats_100_100.html" + }, + { + "duration": "39.0", + "name": "blink_perf.layout/floats_100_100_nested.html" + }, + { + "duration": "31.0", + "name": "blink_perf.layout/floats_10_1000.html" + }, + { + "duration": "22.0", + "name": "blink_perf.layout/floats_20_100.html" + }, + { + "duration": "26.0", + "name": "blink_perf.layout/floats_20_100_nested.html" + }, + { + "duration": "15.0", + "name": "blink_perf.layout/floats_2_100.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/floats_2_100_nested.html" + }, + { + "duration": "22.0", + "name": "blink_perf.layout/floats_50_100.html" + }, + { + "duration": "23.0", + "name": "blink_perf.layout/floats_50_100_nested.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/hindi-line-layout.html" + }, + { + "duration": "23.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { "duration": "37.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/large-spanning-grid-item.html" + }, + { + "duration": "39.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" + }, + { + "duration": "38.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" + }, + { + "duration": "38.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" + }, + { + "duration": "109.0", + "name": "blink_perf.layout/latin-ebook-resize.html" + }, + { + "duration": "24.0", + "name": "blink_perf.layout/latin-ebook.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/layers_overlap_2d.html" + }, + { + "duration": "15.0", + "name": "blink_perf.layout/layers_overlap_3d.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "38.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "15.0", + "duration": "17.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "18.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { @@ -684,75 +860,75 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "52.0", + "duration": "121.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "14.0", + "duration": "26.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "28.0", + "duration": "31.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "15.0", + "duration": "31.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "20.0", + "duration": "22.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "26.0", + "duration": "28.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "45.0", + "duration": "29.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "57.0", + "duration": "47.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "178.0", + "duration": "208.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -760,1215 +936,1087 @@ "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "17.0", + "duration": "19.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "19.0", + "duration": "25.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.svg/Cactus.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.svg/France.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.svg/HereGear.html" }, { - "duration": "17.0", + "duration": "19.0", "name": "blink_perf.svg/MtSaintHelens.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.svg/Samurai.html" }, { - "duration": "179.0", - "name": "blink_perf.svg/SierpinskiCarpet.html" - }, - { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.svg/SvgHitTesting.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.svg/UnderTheSee.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "49.0", + "duration": "52.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { - "duration": "40.0", + "duration": "42.0", "name": "dromaeo/http://dromaeo.com?dom-modify" }, { - "duration": "56.0", + "duration": "58.0", "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "34.0", + "duration": "37.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "24.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { - "duration": "16.0", + "duration": "23.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "444.0", + "duration": "441.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "121.0", + "duration": "117.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "loading.mobile/58Pic" }, { - "duration": "148.0", + "duration": "42.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "25.0", + "duration": "19.0", "name": "loading.mobile/Amazon" }, { - "duration": "213.0", + "duration": "62.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "29.0", + "duration": "20.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "287.0", + "duration": "73.0", "name": "loading.mobile/BOLNoticias_3g" }, { - "duration": "41.0", + "duration": "24.0", "name": "loading.mobile/Baidu" }, { - "duration": "191.0", + "duration": "71.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "25.0", + "duration": "19.0", "name": "loading.mobile/Bradesco" }, { - "duration": "24.0", + "duration": "20.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "31.0", + "duration": "23.0", "name": "loading.mobile/Dawn" }, { - "duration": "20.0", + "duration": "17.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "131.0", + "duration": "50.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "29.0", + "duration": "22.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "34.0", + "duration": "25.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "24.0", + "duration": "19.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "30.0", + "duration": "21.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "155.0", + "duration": "192.0", "name": "loading.mobile/Dramaq_3g" }, { - "duration": "21.0", + "duration": "16.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "157.0", + "duration": "37.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "25.0", + "duration": "20.0", "name": "loading.mobile/Facebook" }, { - "duration": "296.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "22.0", + "duration": "18.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "33.0", + "duration": "25.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "72.0", + "duration": "34.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "26.0", + "duration": "20.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "83.0", + "duration": "34.0", "name": "loading.mobile/FlipBoard_warm_3g" }, { - "duration": "29.0", + "duration": "19.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "51.0", + "duration": "26.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "49.0", + "duration": "32.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "40.0", + "duration": "22.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "21.0", + "duration": "17.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "238.0", + "duration": "62.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "31.0", + "duration": "24.0", "name": "loading.mobile/GSShop" }, { - "duration": "18.0", + "duration": "15.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "19.0", + "duration": "16.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "18.0", + "duration": "15.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "26.0", + "duration": "22.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "29.0", + "duration": "21.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "41.0", + "duration": "27.0", "name": "loading.mobile/Kaskus" }, { - "duration": "25.0", + "duration": "27.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "19.0", + "duration": "23.0", "name": "loading.mobile/Locanto" }, { - "duration": "91.0", + "duration": "29.0", "name": "loading.mobile/Locanto_3g" }, { - "duration": "22.0", + "duration": "16.0", "name": "loading.mobile/OLX" }, { - "duration": "271.0", + "duration": "73.0", "name": "loading.mobile/OLX_3g" }, { - "duration": "20.0", + "duration": "22.0", "name": "loading.mobile/QQNews" }, { - "duration": "21.0", + "duration": "17.0", "name": "loading.mobile/SlideShare" }, { - "duration": "207.0", + "duration": "68.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "19.0", + "duration": "17.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "35.0", + "duration": "19.0", "name": "loading.mobile/Suumo_cold_3g" }, { - "duration": "25.0", + "duration": "21.0", "name": "loading.mobile/Suumo_hot" }, { - "duration": "31.0", + "duration": "22.0", "name": "loading.mobile/Suumo_hot_3g" }, { - "duration": "22.0", + "duration": "18.0", "name": "loading.mobile/Suumo_warm" }, { - "duration": "28.0", + "duration": "20.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "31.0", + "duration": "19.0", "name": "loading.mobile/Thairath" }, { - "duration": "34.0", + "duration": "23.0", "name": "loading.mobile/TheStar" }, { - "duration": "33.0", + "duration": "22.0", "name": "loading.mobile/TribunNews" }, { - "duration": "20.0", + "duration": "14.0", "name": "loading.mobile/Twitter" }, { - "duration": "135.0", + "duration": "36.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "22.0", + "duration": "17.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "146.0", + "duration": "43.0", "name": "loading.mobile/VoiceMemos_cold_3g" }, { - "duration": "32.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "37.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "27.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "32.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "18.0", + "duration": "15.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "184.0", + "duration": "48.0", "name": "loading.mobile/Wikipedia_3g" }, { - "duration": "29.0", + "duration": "31.0", "name": "loading.mobile/YahooNews" }, { - "duration": "19.0", + "duration": "15.0", "name": "loading.mobile/Youtube" }, { - "duration": "23.0", + "duration": "27.0", "name": "media.mobile/mse.html?media=aac_audio.mp4" }, { - "duration": "29.0", + "duration": "47.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "28.0", + "duration": "32.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "27.0", + "duration": "23.0", "name": "media.mobile/mse.html?media=h264_video.mp4" }, { - "duration": "40.0", + "duration": "44.0", "name": "media.mobile/video.html?src=crowd.ogg&type=audio" }, { - "duration": "30.0", + "duration": "26.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm" }, { - "duration": "22.0", + "duration": "18.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "29.0", + "duration": "26.0", "name": "media.mobile/video.html?src=crowd720_vp9.webm" }, { - "duration": "35.0", + "duration": "31.0", "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "35.0", + "duration": "32.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "17.0", + "duration": "14.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "41.0", + "duration": "37.0", "name": "media.mobile/video.html?src=tulip2.mp4" }, { - "duration": "41.0", + "duration": "37.0", "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "21.0", + "duration": "17.0", "name": "media.mobile/video.html?src=tulip2.mp4&seek" }, { - "duration": "35.0", + "duration": "33.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "17.0", + "duration": "15.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "40.0", + "duration": "38.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "32.0", + "duration": "27.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "26.0", + "duration": "22.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "36.0", + "duration": "39.0", + "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "34.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio" }, { - "duration": "18.0", + "duration": "15.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "328.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "285.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "24.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "30.0", + "duration": "28.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "28.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "29.0", + "duration": "25.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "28.0", + "duration": "25.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "29.0", + "duration": "25.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "29.0", + "duration": "30.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "29.0", + "duration": "25.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "29.0", + "duration": "25.0", "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" }, { - "duration": "29.0", + "duration": "25.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "35.0", + "duration": "27.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "93.0", + "duration": "90.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "26.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "65.0", + "duration": "68.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "68.0", + "duration": "73.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { - "duration": "60.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "73.0", + "duration": "75.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "66.0", + "duration": "67.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "65.0", + "duration": "68.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "77.0", + "duration": "69.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "60.0", + "duration": "65.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "61.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "68.0", + "duration": "70.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "65.0", + "duration": "69.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "26.0", + "duration": "33.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "46.0", + "duration": "45.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "34.0", + "duration": "41.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "22.0", + "duration": "28.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "31.0", + "duration": "47.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "27.0", + "duration": "36.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "42.0", + "duration": "60.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "46.0", + "duration": "56.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "32.0", + "duration": "45.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "25.0", + "duration": "28.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { - "duration": "38.0", + "duration": "45.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "32.0", + "duration": "40.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "26.0", + "duration": "32.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "38.0", + "duration": "31.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "38.0", + "duration": "55.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "25.0", + "duration": "34.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "68.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" - }, - { - "duration": "94.0", + "duration": "103.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "50.0", + "duration": "55.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "63.0", + "duration": "55.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "47.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "50.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "38.0", + "duration": "33.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "37.0", + "duration": "29.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/amazon_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "27.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "59.0", + "duration": "38.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "60.0", - "name": "rendering.mobile/androidpolice_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "40.0", + "duration": "25.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" + }, + { + "duration": "27.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" + }, + { + "duration": "35.0", "name": "rendering.mobile/aquarium" }, { - "duration": "49.0", + "duration": "32.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "34.0", + "duration": "27.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "34.0", + "duration": "23.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/baidu_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "28.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "34.0", + "duration": "26.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "33.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "33.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "30.0", + "duration": "25.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "30.0", + "duration": "26.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "49.0", + "duration": "33.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "34.0", + "duration": "30.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "28.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/bing_mobile_sync_scroll_2018" - }, - { - "duration": "34.0", + "duration": "28.0", "name": "rendering.mobile/blob" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/blogspot_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", + "duration": "21.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/blogspot_mobile_sync_scroll_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/boingboing_mobile_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/booking.com_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/booking.com_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/booking.com_mobile_sync_scroll_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/bouncing_balls_15" - }, - { - "duration": "31.0", - "name": "rendering.mobile/bouncing_balls_shadow" - }, - { - "duration": "24.0", - "name": "rendering.mobile/bouncing_clipped_rectangles" - }, - { - "duration": "23.0", - "name": "rendering.mobile/bouncing_gradient_circles" - }, - { - "duration": "21.0", - "name": "rendering.mobile/bouncing_png_images" - }, - { - "duration": "31.0", - "name": "rendering.mobile/bouncing_svg_images" - }, - { - "duration": "37.0", - "name": "rendering.mobile/camera_to_webgl" - }, - { - "duration": "32.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "34.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "34.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "35.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second" - }, - { - "duration": "28.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second" - }, - { - "duration": "26.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second" - }, - { - "duration": "24.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" + "duration": "25.0", + "name": "rendering.mobile/blur_rotating_background" }, { "duration": "25.0", - "name": "rendering.mobile/canvas_animation_no_clear" + "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/canvas_arcs" + "duration": "26.0", + "name": "rendering.mobile/booking.com_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/canvas_font_cycler" + "duration": "26.0", + "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/canvas_lines" + "duration": "21.0", + "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "27.0", - "name": "rendering.mobile/canvas_to_blob" + "duration": "26.0", + "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "51.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_2018" + "duration": "21.0", + "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "44.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_sync_scroll_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/card_expansion" - }, - { - "duration": "29.0", - "name": "rendering.mobile/card_expansion_animated" - }, - { - "duration": "29.0", - "name": "rendering.mobile/card_expansion_images_text" - }, - { - "duration": "27.0", - "name": "rendering.mobile/card_flying" + "duration": "20.0", + "name": "rendering.mobile/bouncing_gradient_circles" }, { "duration": "18.0", + "name": "rendering.mobile/bouncing_png_images" + }, + { + "duration": "25.0", + "name": "rendering.mobile/bouncing_svg_images" + }, + { + "duration": "50.0", + "name": "rendering.mobile/camera_to_webgl" + }, + { + "duration": "25.0", + "name": "rendering.mobile/canvas_05000_pixels_per_second" + }, + { + "duration": "26.0", + "name": "rendering.mobile/canvas_10000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.mobile/canvas_20000_pixels_per_second" + }, + { + "duration": "23.0", + "name": "rendering.mobile/canvas_40000_pixels_per_second" + }, + { + "duration": "20.0", + "name": "rendering.mobile/canvas_60000_pixels_per_second" + }, + { + "duration": "19.0", + "name": "rendering.mobile/canvas_75000_pixels_per_second" + }, + { + "duration": "18.0", + "name": "rendering.mobile/canvas_90000_pixels_per_second" + }, + { + "duration": "20.0", + "name": "rendering.mobile/canvas_animation_no_clear" + }, + { + "duration": "20.0", + "name": "rendering.mobile/canvas_arcs" + }, + { + "duration": "20.0", + "name": "rendering.mobile/canvas_font_cycler" + }, + { + "duration": "20.0", + "name": "rendering.mobile/canvas_lines" + }, + { + "duration": "21.0", + "name": "rendering.mobile/canvas_to_blob" + }, + { + "duration": "33.0", + "name": "rendering.mobile/capitolvolkswagen_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/card_expansion" + }, + { + "duration": "22.0", + "name": "rendering.mobile/card_expansion_animated" + }, + { + "duration": "23.0", + "name": "rendering.mobile/card_expansion_images_text" + }, + { + "duration": "21.0", + "name": "rendering.mobile/card_flying" + }, + { + "duration": "24.0", "name": "rendering.mobile/cats_unscaled" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.mobile/cats_viewport_width" }, { - "duration": "38.0", + "duration": "31.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "34.0", - "name": "rendering.mobile/cc_scroll_200_layer_grid" - }, - { - "duration": "35.0", + "duration": "29.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "36.0", + "duration": "26.0", "name": "rendering.mobile/cnn_2018" }, { - "duration": "49.0", + "duration": "43.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/cnn_article_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", + "duration": "43.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/cnn_mobile_sync_scroll_2018" + "duration": "43.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "32.0", + "duration": "28.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "31.0", + "duration": "26.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "27.0", + "duration": "22.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "34.0", + "duration": "28.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "62.0", + "duration": "27.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "36.0", + "duration": "27.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "35.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "34.0", + "duration": "27.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "37.0", + "duration": "29.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "40.0", + "duration": "31.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "38.0", + "duration": "36.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "37.0", + "duration": "58.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "40.0", + "duration": "38.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "35.0", + "duration": "71.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "37.0", + "duration": "43.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "37.0", + "duration": "30.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "38.0", + "duration": "30.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "38.0", + "duration": "30.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/css_transitions_inline_style" }, { @@ -1976,11 +2024,11 @@ "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "35.0", + "duration": "28.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "35.0", + "duration": "28.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { @@ -1988,11 +2036,11 @@ "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "35.0", + "duration": "34.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "34.0", + "duration": "27.0", "name": "rendering.mobile/css_transitions_style_element" }, { @@ -2000,479 +2048,415 @@ "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "36.0", + "duration": "29.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "36.0", + "duration": "65.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "37.0", + "duration": "59.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "34.0", + "duration": "42.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "34.0", + "duration": "28.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "29.0", + "duration": "26.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "31.0", + "duration": "34.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "34.0", + "duration": "30.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "35.0", + "duration": "31.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "31.0", + "duration": "27.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "29.0", + "duration": "25.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "31.0", + "duration": "26.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "31.0", + "duration": "27.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "50.0", + "duration": "41.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/deviantart_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "24.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/digg_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "28.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "33.0", + "duration": "27.0", "name": "rendering.mobile/earth" }, { - "duration": "36.0", + "duration": "33.0", "name": "rendering.mobile/ebay_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/ebay_mobile_sync_scroll_2018" - }, - { - "duration": "41.0", - "name": "rendering.mobile/ebay_scroll_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/effect_games" - }, - { - "duration": "39.0", - "name": "rendering.mobile/espn_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/espn_mobile_2018" - }, - { "duration": "30.0", - "name": "rendering.mobile/espn_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/espn_pathological_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/extra_large_texture_uploads" - }, - { - "duration": "32.0", - "name": "rendering.mobile/facebook_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "46.0", - "name": "rendering.mobile/facebook_mobile_2018" - }, - { - "duration": "36.0", - "name": "rendering.mobile/facebook_mobile_sync_scroll_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/fill_shapes" - }, - { - "duration": "31.0", - "name": "rendering.mobile/filter_terrain_svg" - }, - { - "duration": "39.0", - "name": "rendering.mobile/flickr_scroll_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/font_wipe" - }, - { - "duration": "31.0", - "name": "rendering.mobile/forecast.io_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/forecast.io_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/gmail_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/google_calendar_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/google_docs_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/google_image_search_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/google_image_search_mobile_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/google_image_search_mobile_sync_scroll_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/google_news_ios" - }, - { - "duration": "31.0", - "name": "rendering.mobile/google_news_mobile_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/google_news_mobile_sync_scroll_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/google_plus_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "43.0", - "name": "rendering.mobile/google_plus_mobile_2018" - }, - { - "duration": "36.0", - "name": "rendering.mobile/google_plus_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/google_web_search_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/google_web_search_mobile_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/google_web_search_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/gsp.ro_mobile_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/gsp.ro_mobile_sync_scroll_2018" - }, - { - "duration": "40.0", - "name": "rendering.mobile/guardian_pathological_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/guimark_vector_chart" - }, - { - "duration": "26.0", - "name": "rendering.mobile/gws_boogie_expansion" - }, - { - "duration": "26.0", - "name": "rendering.mobile/gws_google_expansion" - }, - { - "duration": "29.0", - "name": "rendering.mobile/hakim" - }, - { - "duration": "28.0", - "name": "rendering.mobile/horizontal_vertical_expansion" - }, - { - "duration": "45.0", - "name": "rendering.mobile/idle_power_animated_gif" - }, - { - "duration": "38.0", - "name": "rendering.mobile/idle_power_blank" - }, - { - "duration": "45.0", - "name": "rendering.mobile/idle_power_css_animation" - }, - { - "duration": "82.0", - "name": "rendering.mobile/idle_power_request_animation_frame" - }, - { - "duration": "116.0", - "name": "rendering.mobile/idle_power_set_timeout_long" - }, - { - "duration": "45.0", - "name": "rendering.mobile/idle_power_set_timetout" - }, - { - "duration": "45.0", - "name": "rendering.mobile/ie_chalkboard" - }, - { - "duration": "44.0", - "name": "rendering.mobile/ie_pirate_mark" - }, - { - "duration": "35.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_0" - }, - { - "duration": "36.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_75" - }, - { - "duration": "36.0", - "name": "rendering.mobile/infinite_scroll_element_n_layers_99" - }, - { - "duration": "63.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_0" - }, - { - "duration": "37.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_75" - }, - { - "duration": "37.0", - "name": "rendering.mobile/infinite_scroll_root_n_layers_99" - }, - { - "duration": "35.0", - "name": "rendering.mobile/infinite_scrolling" - }, - { - "duration": "32.0", - "name": "rendering.mobile/jarro_doverson" - }, - { - "duration": "57.0", - "name": "rendering.mobile/js_full_screen_invalidation" - }, - { - "duration": "44.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_0" - }, - { - "duration": "43.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_75" - }, - { - "duration": "42.0", - "name": "rendering.mobile/js_opacity_plus_n_layers_99" - }, - { - "duration": "45.0", - "name": "rendering.mobile/js_paint_plus_n_layers_0" - }, - { - "duration": "45.0", - "name": "rendering.mobile/js_paint_plus_n_layers_75" - }, - { - "duration": "44.0", - "name": "rendering.mobile/js_paint_plus_n_layers_99" - }, - { - "duration": "45.0", - "name": "rendering.mobile/js_poster_circle" - }, - { - "duration": "36.0", - "name": "rendering.mobile/js_scroll_200_layer_grid" - }, - { - "duration": "35.0", - "name": "rendering.mobile/js_scroll_text_only" - }, - { - "duration": "30.0", - "name": "rendering.mobile/kevs_3d" + "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { "duration": "33.0", - "name": "rendering.mobile/keyframed_animations" + "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/large_texture_uploads" + "duration": "25.0", + "name": "rendering.mobile/effect_games" }, { - "duration": "45.0", - "name": "rendering.mobile/latimes_pathological_2018" + "duration": "29.0", + "name": "rendering.mobile/espn_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/linkedin_2018" - }, - { - "duration": "36.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "63.0", - "name": "rendering.mobile/linkedin_mobile_2018" - }, - { - "duration": "55.0", - "name": "rendering.mobile/linkedin_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/linkedin_pathological_2018" + "duration": "25.0", + "name": "rendering.mobile/espn_mobile_2018" }, { "duration": "24.0", - "name": "rendering.mobile/list_animation_simple" + "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/list_recycle_transform" + "duration": "39.0", + "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "29.0", - "name": "rendering.mobile/man_in_blue" + "duration": "26.0", + "name": "rendering.mobile/facebook_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/many_images" + "duration": "30.0", + "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/many_planets_deep" - }, - { - "duration": "47.0", - "name": "rendering.mobile/maps_perf_test" - }, - { - "duration": "25.0", - "name": "rendering.mobile/mask_transition_animation" - }, - { - "duration": "37.0", - "name": "rendering.mobile/medium_texture_uploads" + "duration": "21.0", + "name": "rendering.mobile/fill_shapes" }, { "duration": "28.0", - "name": "rendering.mobile/megi_dish" + "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "32.0", - "name": "rendering.mobile/microsoft_asteroid_belt" + "duration": "33.0", + "name": "rendering.mobile/flickr_scroll_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/font_wipe" + }, + { + "duration": "19.0", + "name": "rendering.mobile/forecast.io_mobile_2018" + }, + { + "duration": "23.0", + "name": "rendering.mobile/gmail_2018" + }, + { + "duration": "19.0", + "name": "rendering.mobile/google_calendar_2018" }, { "duration": "31.0", - "name": "rendering.mobile/microsoft_fireflies" - }, - { - "duration": "29.0", - "name": "rendering.mobile/microsoft_fish_ie_tank" - }, - { - "duration": "29.0", - "name": "rendering.mobile/microsoft_snow" + "name": "rendering.mobile/google_docs_2018" }, { "duration": "25.0", + "name": "rendering.mobile/google_image_search_2018" + }, + { + "duration": "28.0", + "name": "rendering.mobile/google_image_search_mobile_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/google_news_ios" + }, + { + "duration": "30.0", + "name": "rendering.mobile/google_news_mobile_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/google_plus_2018" + }, + { + "duration": "30.0", + "name": "rendering.mobile/google_plus_mobile_2018" + }, + { + "duration": "37.0", + "name": "rendering.mobile/google_search_mobile_pinch_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/google_web_search_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/google_web_search_mobile_2018" + }, + { + "duration": "28.0", + "name": "rendering.mobile/gsp.ro_mobile_2018" + }, + { + "duration": "29.0", + "name": "rendering.mobile/guardian_pathological_2018" + }, + { + "duration": "29.0", + "name": "rendering.mobile/guimark_vector_chart" + }, + { + "duration": "22.0", + "name": "rendering.mobile/gws_boogie_expansion" + }, + { + "duration": "22.0", + "name": "rendering.mobile/gws_google_expansion" + }, + { + "duration": "21.0", + "name": "rendering.mobile/hakim" + }, + { + "duration": "22.0", + "name": "rendering.mobile/horizontal_vertical_expansion" + }, + { + "duration": "74.0", + "name": "rendering.mobile/idle_power_animated_gif" + }, + { + "duration": "36.0", + "name": "rendering.mobile/idle_power_blank" + }, + { + "duration": "41.0", + "name": "rendering.mobile/idle_power_css_animation" + }, + { + "duration": "41.0", + "name": "rendering.mobile/idle_power_request_animation_frame" + }, + { + "duration": "113.0", + "name": "rendering.mobile/idle_power_set_timeout_long" + }, + { + "duration": "42.0", + "name": "rendering.mobile/idle_power_set_timetout" + }, + { + "duration": "37.0", + "name": "rendering.mobile/ie_chalkboard" + }, + { + "duration": "41.0", + "name": "rendering.mobile/ie_pirate_mark" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_0" + }, + { + "duration": "31.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_75" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_99" + }, + { + "duration": "28.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "29.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_0" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_75" + }, + { + "duration": "30.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_99" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scrolling" + }, + { + "duration": "23.0", + "name": "rendering.mobile/jarro_doverson" + }, + { + "duration": "41.0", + "name": "rendering.mobile/js_full_screen_invalidation" + }, + { + "duration": "31.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_0" + }, + { + "duration": "31.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_75" + }, + { + "duration": "32.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_99" + }, + { + "duration": "32.0", + "name": "rendering.mobile/js_paint_plus_n_layers_0" + }, + { + "duration": "32.0", + "name": "rendering.mobile/js_paint_plus_n_layers_75" + }, + { + "duration": "33.0", + "name": "rendering.mobile/js_paint_plus_n_layers_99" + }, + { + "duration": "62.0", + "name": "rendering.mobile/js_poster_circle" + }, + { + "duration": "26.0", + "name": "rendering.mobile/js_scroll_text_only" + }, + { + "duration": "22.0", + "name": "rendering.mobile/kevs_3d" + }, + { + "duration": "26.0", + "name": "rendering.mobile/keyframed_animations" + }, + { + "duration": "26.0", + "name": "rendering.mobile/large_texture_uploads" + }, + { + "duration": "31.0", + "name": "rendering.mobile/latimes_pathological_2018" + }, + { + "duration": "27.0", + "name": "rendering.mobile/linkedin_2018" + }, + { + "duration": "55.0", + "name": "rendering.mobile/linkedin_mobile_2018" + }, + { + "duration": "65.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" + }, + { + "duration": "43.0", + "name": "rendering.mobile/linkedin_pathological_2018" + }, + { + "duration": "19.0", + "name": "rendering.mobile/list_animation_simple" + }, + { + "duration": "28.0", + "name": "rendering.mobile/list_recycle_transform" + }, + { + "duration": "20.0", + "name": "rendering.mobile/man_in_blue" + }, + { + "duration": "29.0", + "name": "rendering.mobile/many_images" + }, + { + "duration": "24.0", + "name": "rendering.mobile/many_planets_deep" + }, + { + "duration": "34.0", + "name": "rendering.mobile/maps_perf_test" + }, + { + "duration": "21.0", + "name": "rendering.mobile/mask_transition_animation" + }, + { + "duration": "21.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "28.0", + "name": "rendering.mobile/medium_texture_uploads" + }, + { + "duration": "20.0", + "name": "rendering.mobile/megi_dish" + }, + { + "duration": "23.0", + "name": "rendering.mobile/microsoft_asteroid_belt" + }, + { + "duration": "22.0", + "name": "rendering.mobile/microsoft_fish_ie_tank" + }, + { + "duration": "27.0", + "name": "rendering.mobile/microsoft_performance" + }, + { + "duration": "22.0", + "name": "rendering.mobile/microsoft_snow" + }, + { + "duration": "36.0", "name": "rendering.mobile/microsoft_speed_reading" }, { @@ -2484,107 +2468,187 @@ "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "26.0", + "duration": "36.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "26.0", + "duration": "36.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "28.0", + "duration": "24.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "39.0", + "duration": "29.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "56.0", + "duration": "34.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "45.0", - "name": "rendering.mobile/mlb_mobile_sync_scroll_2018" - }, - { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "31.0", + "duration": "26.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "30.0", + "duration": "26.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "30.0", - "name": "rendering.mobile/motion_mark_focus" - }, - { - "duration": "47.0", - "name": "rendering.mobile/new_tilings" - }, - { - "duration": "31.0", - "name": "rendering.mobile/no_op_raf" + "duration": "24.0", + "name": "rendering.mobile/motionmark_anim_design_15" }, { "duration": "24.0", - "name": "rendering.mobile/no_op_scroll" - }, - { - "duration": "23.0", - "name": "rendering.mobile/no_op_settimeout" + "name": "rendering.mobile/motionmark_anim_focus_25" }, { "duration": "27.0", - "name": "rendering.mobile/no_op_touch_handler" + "name": "rendering.mobile/motionmark_anim_images_50" }, { - "duration": "32.0", - "name": "rendering.mobile/nvidia_vertex_buffer_object" + "duration": "26.0", + "name": "rendering.mobile/motionmark_anim_leaves_250" }, { - "duration": "43.0", - "name": "rendering.mobile/nyc_gov_scroll_2018" + "duration": "25.0", + "name": "rendering.mobile/motionmark_anim_multiply_175" }, { - "duration": "48.0", - "name": "rendering.mobile/nytimes_mobile_2018" + "duration": "24.0", + "name": "rendering.mobile/motionmark_anim_suits_125" }, { - "duration": "48.0", - "name": "rendering.mobile/nytimes_scroll_2018" + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_composited_transforms_125" }, { - "duration": "40.0", - "name": "rendering.mobile/overlay_background_color_css_transitions_page" + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" + }, + { + "duration": "26.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" }, { "duration": "31.0", - "name": "rendering.mobile/parallax_effect" + "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" + }, + { + "duration": "25.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" + }, + { + "duration": "26.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" + }, + { + "duration": "32.0", + "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_focus_20_15" + }, + { + "duration": "27.0", + "name": "rendering.mobile/motionmark_html_leaves_20_50" + }, + { + "duration": "27.0", + "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" + }, + { + "duration": "26.0", + "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" + }, + { + "duration": "26.0", + "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" }, { "duration": "28.0", - "name": "rendering.mobile/particles" + "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" }, { "duration": "33.0", - "name": "rendering.mobile/pbs_pathological_2018" + "name": "rendering.mobile/new_tilings" + }, + { + "duration": "25.0", + "name": "rendering.mobile/no_op_raf" + }, + { + "duration": "22.0", + "name": "rendering.mobile/no_op_scroll" + }, + { + "duration": "20.0", + "name": "rendering.mobile/no_op_settimeout" }, { "duration": "23.0", + "name": "rendering.mobile/no_op_touch_handler" + }, + { + "duration": "24.0", + "name": "rendering.mobile/nvidia_vertex_buffer_object" + }, + { + "duration": "34.0", + "name": "rendering.mobile/nyc_gov_scroll_2018" + }, + { + "duration": "30.0", + "name": "rendering.mobile/nytimes_mobile_2018" + }, + { + "duration": "36.0", + "name": "rendering.mobile/nytimes_scroll_2018" + }, + { + "duration": "29.0", + "name": "rendering.mobile/overlay_background_color_css_transitions_page" + }, + { + "duration": "22.0", + "name": "rendering.mobile/parallax_effect" + }, + { + "duration": "25.0", + "name": "rendering.mobile/particles" + }, + { + "duration": "26.0", + "name": "rendering.mobile/pbs_pathological_2018" + }, + { + "duration": "18.0", "name": "rendering.mobile/physical_simulation" }, { @@ -2592,783 +2656,487 @@ "name": "rendering.mobile/pinterest_2018" }, { - "duration": "35.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "18.0", - "name": "rendering.mobile/pinterest_mobile_sync_scroll_2018" - }, - { - "duration": "24.0", + "duration": "38.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/raf" }, { - "duration": "33.0", + "duration": "26.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "42.0", + "duration": "30.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "48.0", + "duration": "32.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "30.0", + "duration": "58.0", "name": "rendering.mobile/runway" }, { - "duration": "29.0", + "duration": "23.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "19.0", + "duration": "16.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "50.0", + "duration": "30.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/sfgate_mobile_sync_scroll_2018" - }, - { - "duration": "42.0", + "duration": "32.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "24.0", + "duration": "18.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "44.0", + "duration": "27.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "37.0", + "duration": "19.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "28.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "25.0", + "duration": "19.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "39.0", + "duration": "31.0", "name": "rendering.mobile/stress_hidey_bars" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "37.0", + "duration": "32.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "28.0", + "duration": "17.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "21.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "29.0", + "duration": "23.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "45.0", + "duration": "53.0", "name": "rendering.mobile/techcrunch_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "48.0", + "duration": "31.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/techcrunch_mobile_sync_scroll_2018" - }, - { - "duration": "29.0", + "duration": "25.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "30.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", + "duration": "25.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { - "duration": "26.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", + "duration": "20.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "25.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "19.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "17.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", + "duration": "25.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", + "duration": "24.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "26.0", + "duration": "21.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "26.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "20.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "19.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "17.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "42.0", + "duration": "32.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "42.0", - "name": "rendering.mobile/theverge_article_mobile_sync_scroll_2018" - }, - { - "duration": "60.0", + "duration": "30.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "42.0", - "name": "rendering.mobile/theverge_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "25.0", "name": "rendering.mobile/toggle_drawer" }, { - "duration": "31.0", + "duration": "24.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "36.0", + "duration": "27.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "33.0", + "duration": "26.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "38.0", + "duration": "26.0", "name": "rendering.mobile/twitch_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" + "duration": "36.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "41.0", + "duration": "39.0", "name": "rendering.mobile/twitter_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "43.0", + "duration": "18.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/twitter_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/usatoday_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", + "duration": "23.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "35.0", + "duration": "28.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "34.0", + "duration": "28.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "35.0", + "duration": "28.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "31.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "34.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "37.0", + "duration": "29.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "33.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "42.0", + "duration": "47.0", "name": "rendering.mobile/wikipedia_2018" }, { - "duration": "44.0", + "duration": "30.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_sync_scroll_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "35.0", + "duration": "29.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/wikipedia_mobile_sync_scroll_2018" - }, - { - "duration": "44.0", + "duration": "31.0", "name": "rendering.mobile/wordpress_2018" }, { - "duration": "39.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "45.0", + "duration": "28.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/wordpress_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", + "duration": "29.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "39.0", - "name": "rendering.mobile/worldjournal_mobile_sync_scroll_2018" - }, - { - "duration": "45.0", + "duration": "33.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "76.0", + "duration": "51.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "66.0", - "name": "rendering.mobile/wowwiki_mobile_sync_scroll_2018" - }, - { - "duration": "50.0", + "duration": "40.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/wsj_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "21.0", "name": "rendering.mobile/yahoo_answers_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/yahoo_news_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "42.0", + "duration": "33.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/yahoo_news_mobile_sync_scroll_2018" - }, - { - "duration": "39.0", + "duration": "29.0", "name": "rendering.mobile/yahoo_sports_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", + "duration": "19.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/youtube_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", + "duration": "18.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "22.0", - "name": "rendering.mobile/youtube_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", + "duration": "43.0", "name": "rendering.mobile/yuv_decoding" }, { - "duration": "40.0", + "duration": "50.0", "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" }, { - "duration": "36.0", + "duration": "27.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "38.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "26.0", + "duration": "41.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "24.0", + "duration": "22.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "27.0", + "duration": "39.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "27.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "23.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "29.0", + "duration": "28.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "28.0", + "duration": "30.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "43.0", + "duration": "60.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "32.0", + "duration": "27.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "45.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "37.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "31.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "26.0", + "duration": "32.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "30.0", + "duration": "41.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "38.0", + "duration": "44.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "28.0", + "duration": "31.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "37.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "27.0", + "duration": "44.0", "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "27.0", + "duration": "39.0", "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "36.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "28.0", + "duration": "31.0", "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "28.0", + "duration": "30.0", "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "42.0", + "duration": "56.0", "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "31.0", + "duration": "27.0", "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "22.0", + "duration": "25.0", "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "37.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "36.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { "duration": "32.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "26.0", "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "31.0", + "duration": "48.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "36.0", + "duration": "40.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "29.0", + "duration": "31.0", "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" }, { @@ -3376,79 +3144,83 @@ "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "80.0", + "duration": "79.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "136.0", + "duration": "128.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "134.0", + "duration": "124.0", "name": "speedometer2/Speedometer2" }, { - "duration": "215.0", + "duration": "130.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "208.0", "name": "startup.mobile/intent:coldish:bbc" }, { - "duration": "185.0", + "duration": "167.0", "name": "startup.mobile/intent:warm:bbc" }, { - "duration": "29.0", + "duration": "27.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "55.0", + "duration": "53.0", "name": "system_health.common_mobile/background:news:nytimes" }, { - "duration": "31.0", + "duration": "29.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "52.0", + "duration": "26.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "44.0", - "name": "system_health.common_mobile/background:tools:gmail" - }, - { - "duration": "127.0", + "duration": "119.0", "name": "system_health.common_mobile/browse:chrome:newtab" }, { - "duration": "40.0", + "duration": "38.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "98.0", + "duration": "90.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "62.0", + "duration": "55.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "90.0", + "duration": "52.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "81.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "127.0", + "duration": "110.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "149.0", + "duration": "126.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "121.0", + "duration": "93.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "80.0", + "duration": "58.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { @@ -3456,119 +3228,151 @@ "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "65.0", + "duration": "59.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "177.0", + "duration": "153.0", "name": "system_health.common_mobile/browse:news:toi" }, { - "duration": "64.0", + "duration": "59.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "94.0", + "duration": "32.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "78.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "85.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "46.0", + "duration": "37.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "80.0", + "duration": "75.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "172.0", + "duration": "116.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "112.0", + "duration": "98.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "102.0", + "duration": "93.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "101.0", + "duration": "93.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "124.0", + "duration": "112.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "67.0", + "duration": "108.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "59.0", "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "81.0", + "duration": "72.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "100.0", + "duration": "94.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "58.0", + "duration": "51.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "24.0", + "duration": "36.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "32.0", + "duration": "25.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "25.0", + "duration": "22.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "41.0", + "duration": "33.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "30.0", + "duration": "34.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "26.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "28.0", + "duration": "23.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { "duration": "28.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "22.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "28.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "28.0", + "duration": "30.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "24.0", "name": "system_health.common_mobile/load:media:soundcloud" }, { - "duration": "28.0", + "duration": "23.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "48.0", + "duration": "41.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "42.0", "name": "system_health.common_mobile/load:news:cnn" }, { "duration": "35.0", + "name": "system_health.common_mobile/load:news:cnn:2018" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "32.0", + "duration": "28.0", "name": "system_health.common_mobile/load:news:nytimes" }, { @@ -3576,563 +3380,659 @@ "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "28.0", + "duration": "24.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "30.0", + "duration": "26.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "28.0", + "duration": "25.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "27.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "31.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "28.0", + "duration": "31.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:search:ebay" }, { "duration": "26.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "28.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "40.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "27.0", + "duration": "24.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "27.0", + "duration": "23.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "27.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "23.0", "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "27.0", + "duration": "23.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "29.0", + "duration": "26.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "26.0", + "duration": "22.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "39.0", - "name": "system_health.common_mobile/load:tools:gmail" - }, - { - "duration": "28.0", + "duration": "24.0", "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "35.0", + "duration": "83.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "34.0", + "duration": "31.0", "name": "system_health.memory_mobile/background:media:imgur" }, { - "duration": "34.0", + "duration": "33.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "37.0", + "duration": "31.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "87.0", + "duration": "84.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "57.0", + "duration": "51.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "79.0", + "duration": "50.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "75.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "92.0", + "duration": "89.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { - "duration": "108.0", + "duration": "107.0", "name": "system_health.memory_mobile/browse:news:cnn" }, { - "duration": "82.0", + "duration": "83.0", "name": "system_health.memory_mobile/browse:news:cnn:2018" }, { - "duration": "65.0", + "duration": "53.0", "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "59.0", + "duration": "66.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "60.0", + "duration": "57.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "102.0", + "duration": "111.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "56.0", + "duration": "54.0", "name": "system_health.memory_mobile/browse:news:washingtonpost" }, { - "duration": "66.0", + "duration": "31.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "65.0", "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "43.0", + "duration": "39.0", "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "90.0", + "duration": "79.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "96.0", + "duration": "79.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "83.0", + "duration": "81.0", "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "59.0", + "duration": "80.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "56.0", "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "66.0", + "duration": "61.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "77.0", + "duration": "74.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "54.0", + "duration": "51.0", "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "29.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "30.0", + "duration": "27.0", "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "30.0", + "duration": "26.0", "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "36.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:games:spychase" }, { "duration": "34.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "31.0", "name": "system_health.memory_mobile/load:media:dailymotion" }, { - "duration": "32.0", + "duration": "28.0", "name": "system_health.memory_mobile/load:media:facebook_photos" }, { - "duration": "31.0", + "duration": "33.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "27.0", "name": "system_health.memory_mobile/load:media:google_images" }, { - "duration": "31.0", + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "27.0", "name": "system_health.memory_mobile/load:media:imgur" }, { "duration": "31.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "28.0", "name": "system_health.memory_mobile/load:media:soundcloud" }, { - "duration": "32.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "45.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "34.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "35.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "18.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "26.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "17.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "46.0", - "name": "v8.browsing_mobile-future/browse:chrome:omnibox" - }, - { - "duration": "134.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" - }, - { - "duration": "88.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "123.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" - }, - { - "duration": "174.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" - }, - { - "duration": "266.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" - }, - { - "duration": "202.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" - }, - { - "duration": "102.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" - }, - { - "duration": "90.0", - "name": "v8.browsing_mobile-future/browse:news:qq" - }, - { - "duration": "86.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" - }, - { - "duration": "329.0", - "name": "v8.browsing_mobile-future/browse:news:toi" - }, - { - "duration": "90.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" - }, - { - "duration": "154.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" - }, - { - "duration": "133.0", - "name": "v8.browsing_mobile-future/browse:shopping:avito" - }, - { - "duration": "62.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" - }, - { - "duration": "121.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" - }, - { - "duration": "250.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "185.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "165.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" - }, - { - "duration": "159.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "201.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "82.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" - }, - { - "duration": "120.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "164.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "84.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" - }, - { - "duration": "46.0", - "name": "v8.browsing_mobile/browse:chrome:omnibox" - }, - { - "duration": "132.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" - }, - { - "duration": "89.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" - }, - { - "duration": "123.0", - "name": "v8.browsing_mobile/browse:media:imgur" - }, - { - "duration": "172.0", - "name": "v8.browsing_mobile/browse:media:youtube" - }, - { - "duration": "262.0", - "name": "v8.browsing_mobile/browse:news:cnn" - }, - { - "duration": "198.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" - }, - { - "duration": "101.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" - }, - { - "duration": "87.0", - "name": "v8.browsing_mobile/browse:news:qq" - }, - { - "duration": "86.0", - "name": "v8.browsing_mobile/browse:news:reddit" - }, - { - "duration": "323.0", - "name": "v8.browsing_mobile/browse:news:toi" - }, - { - "duration": "89.0", - "name": "v8.browsing_mobile/browse:news:washingtonpost" - }, - { - "duration": "151.0", - "name": "v8.browsing_mobile/browse:shopping:amazon" - }, - { - "duration": "131.0", - "name": "v8.browsing_mobile/browse:shopping:avito" - }, - { - "duration": "62.0", - "name": "v8.browsing_mobile/browse:shopping:lazada" - }, - { - "duration": "119.0", - "name": "v8.browsing_mobile/browse:social:facebook" - }, - { - "duration": "250.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "181.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "163.0", - "name": "v8.browsing_mobile/browse:social:instagram" - }, - { - "duration": "156.0", - "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "197.0", - "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "82.0", - "name": "v8.browsing_mobile/browse:social:twitter" - }, - { - "duration": "118.0", - "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "159.0", - "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "85.0", - "name": "v8.browsing_mobile/browse:tools:maps" - }, - { - "duration": "11.0", - "name": "wasm/AsmJsZenGarden" - }, - { - "duration": "33.0", - "name": "wasm/WasmSpaceBuggy" - }, - { - "duration": "11.0", - "name": "wasm/WasmStylizedRenderer" - }, - { - "duration": "11.0", - "name": "wasm/WasmSunTemple" - }, - { - "duration": "20.0", - "name": "wasm/WasmTanks" - }, - { - "duration": "11.0", - "name": "wasm/WasmZenGarden" - }, - { - "duration": "24.0", - "name": "webrtc/10s_datachannel_transfer" - }, - { - "duration": "30.0", - "name": "webrtc/canvas_capture_peer_connection" - }, - { - "duration": "40.0", - "name": "webrtc/codec_constraints_h264" - }, - { - "duration": "40.0", - "name": "webrtc/codec_constraints_vp8" - }, - { - "duration": "40.0", - "name": "webrtc/codec_constraints_vp9" + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" }, { "duration": "27.0", - "name": "webrtc/hd_local_stream_10s" + "name": "system_health.memory_mobile/load:media:youtube" }, { - "duration": "46.0", - "name": "webrtc/multiple_peerconnections" + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/load:news:cnn" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:irctc" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:news:nytimes" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:news:qq" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:reddit" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:wikipedia" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/load:search:baidu" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:ebay" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "15.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "16.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "12.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "13.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "13.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "13.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "15.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "20.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "15.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox" + }, + { + "duration": "102.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "91.0", + "name": "v8.browsing_mobile-future/browse:media:imgur" + }, + { + "duration": "129.0", + "name": "v8.browsing_mobile-future/browse:media:youtube" + }, + { + "duration": "208.0", + "name": "v8.browsing_mobile-future/browse:news:cnn" + }, + { + "duration": "133.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2018" }, { "duration": "70.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile-future/browse:news:qq" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile-future/browse:news:reddit" + }, + { + "duration": "176.0", + "name": "v8.browsing_mobile-future/browse:news:toi" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "95.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:facebook" + }, + { + "duration": "121.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "116.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "119.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "129.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "137.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "116.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:tools:maps" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "104.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "75.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "91.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "141.0", + "name": "v8.browsing_mobile/browse:media:youtube" + }, + { + "duration": "210.0", + "name": "v8.browsing_mobile/browse:news:cnn" + }, + { + "duration": "155.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "90.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "174.0", + "name": "v8.browsing_mobile/browse:news:toi" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost" + }, + { + "duration": "38.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "94.0", + "name": "v8.browsing_mobile/browse:shopping:amazon" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile/browse:shopping:lazada" + }, + { + "duration": "90.0", + "name": "v8.browsing_mobile/browse:social:facebook" + }, + { + "duration": "145.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" + }, + { + "duration": "130.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "122.0", + "name": "v8.browsing_mobile/browse:social:instagram" + }, + { + "duration": "127.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "137.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "149.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "68.0", + "name": "v8.browsing_mobile/browse:social:twitter" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "122.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:tools:maps" + }, + { + "duration": "17.0", + "name": "wasm/AsmJsZenGarden" + }, + { + "duration": "27.0", + "name": "wasm/WasmSpaceBuggy" + }, + { + "duration": "16.0", + "name": "wasm/WasmStylizedRenderer" + }, + { + "duration": "16.0", + "name": "wasm/WasmSunTemple" + }, + { + "duration": "24.0", + "name": "wasm/WasmTanks" + }, + { + "duration": "17.0", + "name": "wasm/WasmZenGarden" + }, + { + "duration": "22.0", + "name": "webrtc/10s_datachannel_transfer" + }, + { + "duration": "24.0", + "name": "webrtc/canvas_capture_peer_connection" + }, + { + "duration": "34.0", + "name": "webrtc/codec_constraints_h264" + }, + { + "duration": "34.0", + "name": "webrtc/codec_constraints_vp8" + }, + { + "duration": "34.0", + "name": "webrtc/codec_constraints_vp9" + }, + { + "duration": "23.0", + "name": "webrtc/hd_local_stream_10s" + }, + { + "duration": "38.0", + "name": "webrtc/multiple_peerconnections" + }, + { + "duration": "53.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json index b107227..c9a069c 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel2-perf_timing.json
@@ -1,30 +1,34 @@ [ { - "duration": "30.0", + "duration": "29.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "22.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "21.0", + "duration": "19.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/gc-forest.html" }, { @@ -32,19 +36,19 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "25.0", + "duration": "28.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { @@ -56,31 +60,31 @@ "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "24.0", + "duration": "20.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/node-type.html" }, { - "duration": "6.0", + "duration": "8.0", "name": "blink_perf.bindings/post-message.html" }, { @@ -92,7 +96,7 @@ "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.bindings/serialize-array.html" }, { @@ -100,7 +104,7 @@ "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/serialize-map.html" }, { @@ -108,31 +112,31 @@ "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "17.0", + "duration": "19.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { @@ -140,15 +144,15 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { @@ -156,43 +160,43 @@ "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "29.0", + "duration": "31.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "28.0", + "duration": "31.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "28.0", + "duration": "31.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "71.0", + "duration": "66.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "70.0", + "duration": "66.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "70.0", + "duration": "65.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { @@ -200,11 +204,11 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" }, { @@ -212,15 +216,15 @@ "name": "blink_perf.canvas/docs-paper.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.canvas/docs-resume.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" }, { @@ -228,15 +232,15 @@ "name": "blink_perf.canvas/docs-table.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/docs-table_RAF.html?RAF" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -244,7 +248,7 @@ "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -252,15 +256,15 @@ "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -268,7 +272,7 @@ "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -276,15 +280,15 @@ "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" }, { @@ -292,15 +296,15 @@ "name": "blink_perf.canvas/drawimage.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.canvas/drawimage_RAF.html?RAF" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { @@ -312,7 +316,7 @@ "name": "blink_perf.canvas/getImageData_RAF.html?RAF" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.canvas/gpu-bound-shader.html" }, { @@ -320,23 +324,23 @@ "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.canvas/putImageData_RAF.html?RAF" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.canvas/sheets-render.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { @@ -348,7 +352,7 @@ "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" }, { @@ -356,7 +360,7 @@ "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" }, { @@ -364,23 +368,23 @@ "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" }, { @@ -388,15 +392,15 @@ "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" }, { - "duration": "25.0", + "duration": "22.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { @@ -404,51 +408,51 @@ "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { @@ -456,51 +460,51 @@ "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { @@ -508,47 +512,47 @@ "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "38.0", + "duration": "35.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "25.0", + "duration": "26.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "27.0", + "duration": "33.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-title.html" }, { @@ -556,7 +560,7 @@ "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.dom/select-single-add.html" }, { @@ -564,47 +568,55 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "26.0", + "duration": "23.0", "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" }, { - "duration": "26.0", + "duration": "23.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "59.0", + "duration": "14.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "15.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "50.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { - "duration": "55.0", + "duration": "51.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "36.0", + "duration": "34.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { @@ -612,15 +624,15 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "61.0", + "duration": "56.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { @@ -628,7 +640,7 @@ "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -636,11 +648,11 @@ "name": "blink_perf.layout/attach-inlines-2.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { @@ -648,19 +660,19 @@ "name": "blink_perf.layout/change-text-css-contain.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { @@ -668,7 +680,7 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -676,11 +688,19 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.layout/contain-content-style-change.html" }, { - "duration": "12.0", + "duration": "13.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "13.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "14.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { @@ -688,47 +708,47 @@ "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "11.0", + "duration": "13.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" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "22.0", + "duration": "17.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "22.0", + "duration": "17.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.layout/floats_10_1000.html" }, { @@ -736,7 +756,7 @@ "name": "blink_perf.layout/floats_20_100.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/floats_20_100_nested.html" }, { @@ -744,11 +764,11 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/floats_50_100.html" }, { @@ -756,31 +776,35 @@ "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { + "duration": "16.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "12.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "48.0", + "duration": "46.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { @@ -788,7 +812,7 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { @@ -796,11 +820,19 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "19.0", + "duration": "8.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "17.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { @@ -808,31 +840,31 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { @@ -840,15 +872,15 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { @@ -860,31 +892,31 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "44.0", + "duration": "45.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "121.0", + "duration": "84.0", "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/word-break-break-word.html" }, { @@ -892,51 +924,55 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "22.0", + "duration": "19.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "17.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "17.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "24.0", + "duration": "20.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "19.0", + "duration": "26.0", "name": "blink_perf.paint/color-changes.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.paint/complex-iframe-filtered.html" }, { - "duration": "20.0", + "duration": "49.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "19.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { @@ -944,7 +980,7 @@ "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { @@ -952,7 +988,7 @@ "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { @@ -960,7 +996,7 @@ "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "blink_perf.paint/large-table-repaint.html" }, { @@ -968,43 +1004,47 @@ "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "27.0", + "duration": "22.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "31.0", "name": "blink_perf.paint/transform-changes.html" }, { - "duration": "21.0", + "duration": "18.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "22.0", + "duration": "13.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "36.0", + "duration": "22.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "90.0", + "duration": "83.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { @@ -1012,15 +1052,15 @@ "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-class-last.html" }, { @@ -1036,7 +1076,7 @@ "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { @@ -1044,7 +1084,7 @@ "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" }, { @@ -1052,11 +1092,11 @@ "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-first.html" }, { @@ -1064,23 +1104,23 @@ "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { @@ -1092,7 +1132,7 @@ "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -1100,7 +1140,7 @@ "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { @@ -1112,15 +1152,15 @@ "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { @@ -1128,7 +1168,7 @@ "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html" }, { @@ -1136,7 +1176,7 @@ "name": "blink_perf.shadow_dom/imperative-api.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { @@ -1152,11 +1192,11 @@ "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html" }, { @@ -1164,7 +1204,7 @@ "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html" }, { @@ -1172,31 +1212,31 @@ "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "26.0", + "duration": "15.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-distribution.html" }, { @@ -1204,15 +1244,15 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "26.0", + "duration": "14.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "61.0", + "duration": "43.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { @@ -1224,15 +1264,15 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { @@ -1240,7 +1280,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" }, { @@ -1248,11 +1288,11 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1260,11 +1300,11 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { @@ -1284,35 +1324,35 @@ "name": "blink_perf.svg/CrawFishGanson.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/Debian.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/FlowerFromMyGarden.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/France.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/HarveyRayner.html" }, { @@ -1324,11 +1364,11 @@ "name": "blink_perf.svg/MtSaintHelens.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/Samurai.html" }, { - "duration": "69.0", + "duration": "89.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -1336,27 +1376,27 @@ "name": "blink_perf.svg/SvgCubics.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/SvgHitTesting.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.svg/SvgNestedUse.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/UnderTheSee.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "43.0", + "duration": "41.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1368,567 +1408,535 @@ "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "32.0", + "duration": "33.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "12.0", + "duration": "10.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "281.0", + "duration": "283.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "62.0", + "duration": "59.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.mobile/58Pic" }, { - "duration": "122.0", + "duration": "45.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "21.0", + "duration": "15.0", "name": "loading.mobile/Amazon" }, { - "duration": "197.0", + "duration": "70.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "265.0", + "duration": "97.0", "name": "loading.mobile/BOLNoticias_3g" }, { - "duration": "25.0", + "duration": "16.0", "name": "loading.mobile/Baidu" }, { - "duration": "154.0", + "duration": "81.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.mobile/Bradesco" }, { - "duration": "20.0", + "duration": "15.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "24.0", + "duration": "15.0", "name": "loading.mobile/Dawn" }, { - "duration": "19.0", + "duration": "15.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "124.0", + "duration": "47.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "25.0", + "duration": "20.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "30.0", + "duration": "22.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "21.0", + "duration": "16.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "26.0", + "duration": "19.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "22.0", + "duration": "15.0", "name": "loading.mobile/Dramaq" }, { - "duration": "133.0", + "duration": "131.0", "name": "loading.mobile/Dramaq_3g" }, { - "duration": "18.0", + "duration": "13.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "117.0", + "duration": "35.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "22.0", + "duration": "14.0", "name": "loading.mobile/Facebook" }, { - "duration": "205.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "20.0", + "duration": "15.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "342.0", + "duration": "154.0", "name": "loading.mobile/FlipBoard_cold_3g" }, { - "duration": "27.0", + "duration": "22.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "63.0", + "duration": "32.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "23.0", + "duration": "17.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "74.0", + "duration": "32.0", "name": "loading.mobile/FlipBoard_warm_3g" }, { - "duration": "23.0", + "duration": "16.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "28.0", + "duration": "21.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "30.0", + "duration": "23.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "26.0", + "duration": "17.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "165.0", + "duration": "59.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.mobile/GSShop" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "181.0", + "duration": "72.0", "name": "loading.mobile/GoogleBrazil_3g" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "181.0", + "duration": "75.0", "name": "loading.mobile/GoogleIndonesia_3g" }, { - "duration": "22.0", + "duration": "15.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "223.0", + "duration": "89.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan_3g" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.mobile/Hongkiat" }, { - "duration": "230.0", + "duration": "97.0", "name": "loading.mobile/Hongkiat_3g" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "27.0", + "duration": "18.0", "name": "loading.mobile/Kaskus" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "18.0", + "duration": "13.0", "name": "loading.mobile/Locanto" }, { - "duration": "78.0", + "duration": "26.0", "name": "loading.mobile/Locanto_3g" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.mobile/OLX" }, { - "duration": "220.0", + "duration": "72.0", "name": "loading.mobile/OLX_3g" }, { - "duration": "21.0", + "duration": "15.0", "name": "loading.mobile/QQNews" }, { - "duration": "213.0", + "duration": "72.0", "name": "loading.mobile/QQNews_3g" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.mobile/SlideShare" }, { - "duration": "188.0", + "duration": "81.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "18.0", + "duration": "14.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "32.0", + "duration": "16.0", "name": "loading.mobile/Suumo_cold_3g" }, { - "duration": "22.0", + "duration": "19.0", "name": "loading.mobile/Suumo_hot" }, { - "duration": "28.0", + "duration": "20.0", "name": "loading.mobile/Suumo_hot_3g" }, { - "duration": "20.0", + "duration": "16.0", "name": "loading.mobile/Suumo_warm" }, { - "duration": "25.0", + "duration": "16.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "19.0", + "duration": "14.0", "name": "loading.mobile/Thairath" }, { - "duration": "26.0", + "duration": "16.0", "name": "loading.mobile/TheStar" }, { - "duration": "24.0", + "duration": "16.0", "name": "loading.mobile/TribunNews" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/Twitter" }, { - "duration": "111.0", + "duration": "37.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "133.0", + "duration": "37.0", "name": "loading.mobile/VoiceMemos_cold_3g" }, { - "duration": "24.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "28.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "26.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "17.0", + "duration": "11.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "159.0", + "duration": "68.0", "name": "loading.mobile/Wikipedia_3g" }, { - "duration": "22.0", + "duration": "14.0", "name": "loading.mobile/YahooNews" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/Youtube" }, { - "duration": "22.0", + "duration": "19.0", "name": "media.mobile/mse.html?media=aac_audio.mp4" }, { - "duration": "25.0", + "duration": "15.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "25.0", + "duration": "16.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "23.0", + "duration": "15.0", "name": "media.mobile/mse.html?media=h264_video.mp4" }, { - "duration": "33.0", + "duration": "28.0", "name": "media.mobile/video.html?src=crowd.ogg&type=audio" }, { - "duration": "30.0", + "duration": "20.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "29.0", + "duration": "20.0", "name": "media.mobile/video.html?src=crowd720_vp9.webm" }, { - "duration": "36.0", + "duration": "26.0", "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "34.0", + "duration": "25.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "17.0", + "duration": "11.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "43.0", + "duration": "29.0", "name": "media.mobile/video.html?src=tulip2.mp4" }, { - "duration": "43.0", + "duration": "29.0", "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "19.0", + "duration": "12.0", "name": "media.mobile/video.html?src=tulip2.mp4&seek" }, { - "duration": "34.0", + "duration": "26.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "17.0", + "duration": "11.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "45.0", + "duration": "31.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "30.0", + "duration": "21.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "79.0", + "duration": "32.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "36.0", + "duration": "26.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio" }, { - "duration": "17.0", + "duration": "11.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "318.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "282.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "27.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "27.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "29.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "29.0", + "duration": "22.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "61.0", + "duration": "60.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "23.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "64.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "68.0", + "duration": "69.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { - "duration": "59.0", + "duration": "60.0", "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "68.0", + "duration": "69.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "63.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "64.0", + "duration": "65.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "60.0", + "duration": "62.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "60.0", + "duration": "61.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "65.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "64.0", + "duration": "66.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "20.0", + "duration": "18.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "29.0", + "duration": "27.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -1936,51 +1944,51 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "23.0", + "duration": "24.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "23.0", + "duration": "27.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "20.0", + "duration": "22.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "35.0", + "duration": "38.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "30.0", + "duration": "32.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "28.0", + "duration": "29.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { - "duration": "25.0", + "duration": "26.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "20.0", + "duration": "23.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { @@ -1988,1951 +1996,1659 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "28.0", + "duration": "32.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "65.0", + "duration": "66.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "84.0", + "duration": "89.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "33.0", + "duration": "35.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "49.0", + "duration": "26.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "28.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "33.0", + "duration": "21.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "53.0", + "duration": "24.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "26.0", + "duration": "20.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "32.0", + "duration": "17.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" + }, + { + "duration": "18.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" + }, + { + "duration": "26.0", "name": "rendering.mobile/aquarium" }, { - "duration": "35.0", + "duration": "23.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "34.0", + "duration": "16.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "28.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "26.0", + "duration": "20.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "34.0", + "duration": "23.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "34.0", + "duration": "23.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "18.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/blob" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.mobile/blogspot_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", + "duration": "15.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "35.0", + "duration": "18.0", "name": "rendering.mobile/booking.com_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "27.0", + "duration": "14.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "21.0", + "duration": "16.0", "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "20.0", + "duration": "14.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second" - }, - { - "duration": "29.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", + "duration": "18.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second" - }, - { - "duration": "28.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "27.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "14.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "20.0", + "duration": "15.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "45.0", + "duration": "22.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/card_flying" }, { - "duration": "19.0", + "duration": "14.0", "name": "rendering.mobile/cats_unscaled" }, { - "duration": "18.0", + "duration": "12.0", "name": "rendering.mobile/cats_viewport_width" }, { - "duration": "34.0", + "duration": "24.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "37.0", + "duration": "23.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "32.0", + "duration": "17.0", "name": "rendering.mobile/cnn_2018" }, { - "duration": "39.0", + "duration": "19.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "29.0", + "duration": "21.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" + }, + { + "duration": "19.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "23.0", + "duration": "17.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "28.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "32.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "36.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "32.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "37.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "41.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "31.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "33.0", + "duration": "23.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "41.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "37.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "47.0", + "duration": "21.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "71.0", + "duration": "21.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "37.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "77.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "47.0", + "duration": "21.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "37.0", + "duration": "20.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "54.0", + "duration": "21.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "38.0", + "duration": "17.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "27.0", + "duration": "19.0", "name": "rendering.mobile/earth" }, { - "duration": "33.0", + "duration": "18.0", "name": "rendering.mobile/ebay_2018" }, { - "duration": "30.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "15.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "42.0", + "duration": "18.0", + "name": "rendering.mobile/ebay_mobile_pinch_2018" + }, + { + "duration": "26.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.mobile/effect_games" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/espn_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", + "duration": "16.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/facebook_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "44.0", + "duration": "28.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "40.0", + "duration": "25.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "22.0", + "duration": "35.0", "name": "rendering.mobile/geo_apis" }, { - "duration": "25.0", + "duration": "29.0", "name": "rendering.mobile/gmail_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/google_calendar_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "36.0", + "duration": "23.0", "name": "rendering.mobile/google_docs_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", + "duration": "25.0", "name": "rendering.mobile/google_image_search_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/google_plus_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "41.0", + "duration": "21.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "30.0", + "duration": "20.0", + "name": "rendering.mobile/google_search_mobile_pinch_2018" + }, + { + "duration": "16.0", "name": "rendering.mobile/google_web_search_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", + "duration": "19.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "37.0", + "duration": "23.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "32.0", + "duration": "41.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "24.0", + "duration": "18.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/hakim" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "41.0", + "duration": "42.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "37.0", + "duration": "32.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "42.0", + "duration": "36.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "43.0", + "duration": "36.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "114.0", + "duration": "105.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "44.0", + "duration": "36.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "47.0", + "duration": "32.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "37.0", + "duration": "43.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "38.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "49.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "37.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "37.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "39.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "38.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "37.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "38.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "39.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "46.0", + "duration": "28.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "36.0", + "duration": "24.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "34.0", + "duration": "24.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "34.0", + "duration": "25.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "36.0", + "duration": "25.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "37.0", + "duration": "25.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "37.0", + "duration": "25.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "37.0", + "duration": "25.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "28.0", + "duration": "20.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "40.0", + "duration": "25.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/linkedin_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "63.0", + "duration": "40.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "41.0", + "duration": "37.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" + }, + { + "duration": "31.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "30.0", + "duration": "26.0", "name": "rendering.mobile/many_images" }, { - "duration": "27.0", + "duration": "19.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "42.0", + "duration": "25.0", "name": "rendering.mobile/maps_perf_test" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "31.0", + "duration": "14.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "21.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "24.0", + "duration": "21.0", + "name": "rendering.mobile/microsoft_performance" + }, + { + "duration": "16.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "24.0", + "duration": "17.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "25.0", + "duration": "20.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "25.0", + "duration": "19.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "26.0", + "duration": "19.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "48.0", + "duration": "23.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "29.0", + "duration": "51.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_anim_design_15" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_anim_focus_25" }, { - "duration": "54.0", + "duration": "23.0", "name": "rendering.mobile/motionmark_anim_images_50" }, { - "duration": "34.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_anim_leaves_250" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_anim_multiply_175" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_anim_suits_125" }, { - "duration": "34.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_composited_transforms_125" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" }, { - "duration": "34.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" }, { - "duration": "31.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" }, { - "duration": "32.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" }, { - "duration": "33.0", + "duration": "21.0", "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" }, { - "duration": "32.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_html_focus_20_15" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/motionmark_html_leaves_20_50" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" }, { - "duration": "56.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" }, { - "duration": "38.0", + "duration": "26.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "27.0", + "duration": "19.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "24.0", + "duration": "18.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "41.0", + "duration": "26.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "39.0", + "duration": "22.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "44.0", + "duration": "27.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "37.0", + "duration": "26.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/particles" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "38.0", + "duration": "19.0", "name": "rendering.mobile/pinterest_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "25.0", + "duration": "12.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/raf" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "38.0", + "duration": "23.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "44.0", + "duration": "21.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "24.0", + "duration": "39.0", "name": "rendering.mobile/runway" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "19.0", + "duration": "13.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "18.0", + "duration": "13.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "18.0", + "duration": "12.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "43.0", + "duration": "21.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "35.0", + "duration": "24.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "41.0", + "duration": "19.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "33.0", + "duration": "15.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "21.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "40.0", + "duration": "24.0", "name": "rendering.mobile/stress_hidey_bars" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "35.0", + "duration": "27.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "24.0", + "duration": "13.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "16.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "45.0", + "duration": "23.0", "name": "rendering.mobile/techcrunch_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "48.0", + "duration": "22.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "34.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "19.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "33.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", + "duration": "17.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { - "duration": "28.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "25.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "19.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "26.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "19.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "26.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "24.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", + "duration": "14.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "13.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "42.0", + "duration": "23.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "46.0", + "duration": "22.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "28.0", + "duration": "20.0", "name": "rendering.mobile/toggle_drawer" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "33.0", + "duration": "21.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.mobile/twitch_2018" }, { - "duration": "30.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/twitter_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/twitter_mobile_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/update_history_state" - }, - { - "duration": "23.0", - "name": "rendering.mobile/usatoday_mobile_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/vertical_expansion" - }, - { - "duration": "31.0", - "name": "rendering.mobile/web_animation_value_type_color" - }, - { - "duration": "31.0", - "name": "rendering.mobile/web_animation_value_type_length_3d" - }, - { - "duration": "32.0", - "name": "rendering.mobile/web_animation_value_type_length_complex" - }, - { - "duration": "33.0", - "name": "rendering.mobile/web_animation_value_type_length_simple" - }, - { - "duration": "30.0", - "name": "rendering.mobile/web_animation_value_type_path" - }, - { - "duration": "27.0", - "name": "rendering.mobile/web_animation_value_type_shadow" - }, - { - "duration": "31.0", - "name": "rendering.mobile/web_animation_value_type_transform_complex" - }, - { - "duration": "32.0", - "name": "rendering.mobile/web_animation_value_type_transform_simple" - }, - { - "duration": "33.0", - "name": "rendering.mobile/web_animations_many_keyframes" - }, - { - "duration": "32.0", - "name": "rendering.mobile/web_animations_set_current_time" - }, - { - "duration": "32.0", - "name": "rendering.mobile/web_animations_simultaneous" - }, - { - "duration": "33.0", - "name": "rendering.mobile/web_animations_staggered_chaining" - }, - { - "duration": "28.0", - "name": "rendering.mobile/web_animations_staggered_infinite_iterations" - }, - { - "duration": "33.0", - "name": "rendering.mobile/web_animations_staggered_triggering_page" - }, - { - "duration": "40.0", - "name": "rendering.mobile/wikipedia_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/wikipedia_mobile_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/wordpress_2018" - }, - { - "duration": "47.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/wordpress_mobile_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/worldjournal_mobile_2018" - }, - { - "duration": "43.0", - "name": "rendering.mobile/wow_wiki_pathological_2018" - }, - { - "duration": "73.0", - "name": "rendering.mobile/wowwiki_mobile_2018" - }, - { - "duration": "49.0", - "name": "rendering.mobile/wsj_mobile_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/yahoo_answers_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/yahoo_news_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "44.0", - "name": "rendering.mobile/yahoo_news_mobile_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/yahoo_sports_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" + "duration": "21.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { "duration": "21.0", - "name": "rendering.mobile/yahoo_sports_pathological_2018" + "name": "rendering.mobile/twitter_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/youtube_2018" + "duration": "14.0", + "name": "rendering.mobile/twitter_mobile_2018" + }, + { + "duration": "18.0", + "name": "rendering.mobile/update_history_state" + }, + { + "duration": "15.0", + "name": "rendering.mobile/usatoday_mobile_2018" + }, + { + "duration": "17.0", + "name": "rendering.mobile/vertical_expansion" + }, + { + "duration": "21.0", + "name": "rendering.mobile/web_animation_value_type_color" }, { "duration": "22.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" + "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "27.0", - "name": "rendering.mobile/youtube_mobile_2018" + "duration": "23.0", + "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "33.0", - "name": "rendering.mobile/yuv_decoding" + "duration": "22.0", + "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "33.0", - "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" + "duration": "22.0", + "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "36.0", - "name": "rendering.mobile/zdnet_pathological_2018" + "duration": "20.0", + "name": "rendering.mobile/web_animation_value_type_shadow" + }, + { + "duration": "22.0", + "name": "rendering.mobile/web_animation_value_type_transform_complex" + }, + { + "duration": "22.0", + "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { "duration": "24.0", - "name": "rendering.mobile/zoom_in_animation" + "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "42.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "31.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" - }, - { - "duration": "32.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "27.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "31.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" - }, - { - "duration": "50.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" - }, - { - "duration": "40.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" - }, - { - "duration": "27.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" - }, - { - "duration": "37.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "43.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" - }, - { - "duration": "35.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" - }, - { - "duration": "39.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" - }, - { - "duration": "42.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "31.0", - "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" - }, - { - "duration": "31.0", - "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" - }, - { - "duration": "33.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "32.0", - "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" - }, - { - "duration": "51.0", - "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" - }, - { - "duration": "37.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "43.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "29.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" - }, - { - "duration": "36.0", - "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" - }, - { - "duration": "29.0", - "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" - }, - { - "duration": "38.0", - "name": "speedometer-future/http://browserbench.org/Speedometer/" - }, - { - "duration": "36.0", - "name": "speedometer/http://browserbench.org/Speedometer/" - }, - { - "duration": "62.0", - "name": "speedometer2-future/Speedometer2" - }, - { - "duration": "61.0", - "name": "speedometer2/Speedometer2" - }, - { - "duration": "151.0", - "name": "startup.mobile/cct:coldish:bbc" - }, - { - "duration": "155.0", - "name": "startup.mobile/intent:coldish:bbc" - }, - { - "duration": "128.0", - "name": "startup.mobile/intent:warm:bbc" + "duration": "21.0", + "name": "rendering.mobile/web_animations_set_current_time" }, { "duration": "26.0", - "name": "system_health.common_mobile/background:media:imgur" + "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "27.0", - "name": "system_health.common_mobile/background:search:google" + "duration": "34.0", + "name": "rendering.mobile/web_animations_staggered_chaining" + }, + { + "duration": "20.0", + "name": "rendering.mobile/web_animations_staggered_infinite_iterations" + }, + { + "duration": "22.0", + "name": "rendering.mobile/web_animations_staggered_triggering_page" + }, + { + "duration": "21.0", + "name": "rendering.mobile/wikipedia_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" + }, + { + "duration": "20.0", + "name": "rendering.mobile/wikipedia_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/wordpress_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/wordpress_mobile_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/worldjournal_mobile_2018" + }, + { + "duration": "25.0", + "name": "rendering.mobile/wow_wiki_pathological_2018" }, { "duration": "36.0", - "name": "system_health.common_mobile/background:social:facebook" + "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "100.0", - "name": "system_health.common_mobile/browse:chrome:newtab" + "duration": "24.0", + "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "35.0", - "name": "system_health.common_mobile/browse:chrome:omnibox" + "duration": "15.0", + "name": "rendering.mobile/yahoo_answers_2018" }, { - "duration": "93.0", - "name": "system_health.common_mobile/browse:media:facebook_photos" + "duration": "16.0", + "name": "rendering.mobile/yahoo_news_2018" }, { - "duration": "63.0", - "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" + "duration": "20.0", + "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "89.0", - "name": "system_health.common_mobile/browse:media:imgur" + "duration": "19.0", + "name": "rendering.mobile/yahoo_sports_2018" }, { - "duration": "111.0", - "name": "system_health.common_mobile/browse:media:youtube" + "duration": "15.0", + "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "105.0", - "name": "system_health.common_mobile/browse:news:cnn" + "duration": "15.0", + "name": "rendering.mobile/youtube_2018" }, { - "duration": "83.0", - "name": "system_health.common_mobile/browse:news:cnn:2018" + "duration": "14.0", + "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "74.0", - "name": "system_health.common_mobile/browse:news:cricbuzz" + "duration": "37.0", + "name": "rendering.mobile/yuv_decoding" }, { "duration": "73.0", - "name": "system_health.common_mobile/browse:news:qq" + "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" }, { - "duration": "62.0", - "name": "system_health.common_mobile/browse:news:reddit" + "duration": "20.0", + "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "148.0", - "name": "system_health.common_mobile/browse:news:toi" + "duration": "17.0", + "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "65.0", - "name": "system_health.common_mobile/browse:news:washingtonpost" + "duration": "21.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "81.0", - "name": "system_health.common_mobile/browse:shopping:amazon" + "duration": "17.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "77.0", - "name": "system_health.common_mobile/browse:shopping:avito" + "duration": "20.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "41.0", - "name": "system_health.common_mobile/browse:shopping:lazada" + "duration": "21.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "84.0", - "name": "system_health.common_mobile/browse:social:facebook" + "duration": "21.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "217.0", - "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" + "duration": "36.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "122.0", - "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + "duration": "18.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "92.0", - "name": "system_health.common_mobile/browse:social:instagram" + "duration": "18.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "105.0", - "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" + "duration": "19.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "128.0", - "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" + "duration": "31.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "65.0", - "name": "system_health.common_mobile/browse:social:twitter" + "duration": "29.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "82.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" + "duration": "20.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "114.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + "duration": "20.0", + "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" + }, + { + "duration": "16.0", + "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" + }, + { + "duration": "20.0", + "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" + }, + { + "duration": "20.0", + "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" + }, + { + "duration": "19.0", + "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" + }, + { + "duration": "33.0", + "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" + }, + { + "duration": "17.0", + "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" + }, + { + "duration": "16.0", + "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" + }, + { + "duration": "19.0", + "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" + }, + { + "duration": "29.0", + "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" + }, + { + "duration": "30.0", + "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" + }, + { + "duration": "19.0", + "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" + }, + { + "duration": "34.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "33.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "56.0", + "name": "speedometer2-future/Speedometer2" }, { "duration": "54.0", + "name": "speedometer2/Speedometer2" + }, + { + "duration": "136.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "144.0", + "name": "startup.mobile/intent:coldish:bbc" + }, + { + "duration": "117.0", + "name": "startup.mobile/intent:warm:bbc" + }, + { + "duration": "91.0", + "name": "startup.mobile/maps_pwa:with_http_cache" + }, + { + "duration": "20.0", + "name": "system_health.common_mobile/background:media:imgur" + }, + { + "duration": "21.0", + "name": "system_health.common_mobile/background:search:google" + }, + { + "duration": "20.0", + "name": "system_health.common_mobile/background:social:facebook" + }, + { + "duration": "80.0", + "name": "system_health.common_mobile/browse:chrome:newtab" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/browse:chrome:omnibox" + }, + { + "duration": "76.0", + "name": "system_health.common_mobile/browse:media:facebook_photos" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "70.0", + "name": "system_health.common_mobile/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "system_health.common_mobile/browse:media:youtube" + }, + { + "duration": "65.0", + "name": "system_health.common_mobile/browse:news:cnn" + }, + { + "duration": "64.0", + "name": "system_health.common_mobile/browse:news:cnn:2018" + }, + { + "duration": "61.0", + "name": "system_health.common_mobile/browse:news:cricbuzz" + }, + { + "duration": "55.0", + "name": "system_health.common_mobile/browse:news:qq" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:news:reddit" + }, + { + "duration": "100.0", + "name": "system_health.common_mobile/browse:news:toi" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:news:washingtonpost" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "57.0", + "name": "system_health.common_mobile/browse:shopping:amazon" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/browse:shopping:lazada" + }, + { + "duration": "64.0", + "name": "system_health.common_mobile/browse:social:facebook" + }, + { + "duration": "95.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" + }, + { + "duration": "81.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "77.0", + "name": "system_health.common_mobile/browse:social:instagram" + }, + { + "duration": "78.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "82.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "76.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:social:twitter" + }, + { + "duration": "59.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "79.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "42.0", "name": "system_health.common_mobile/browse:tools:maps" }, { @@ -3940,699 +3656,719 @@ "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "28.0", + "duration": "19.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "36.0", + "duration": "24.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "37.0", + "duration": "26.0", "name": "system_health.common_mobile/load:games:spychase:2018" }, { - "duration": "27.0", + "duration": "21.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "26.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "29.0", + "duration": "22.0", "name": "system_health.common_mobile/load:media:flickr:2018" }, { - "duration": "26.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "25.0", + "duration": "19.0", "name": "system_health.common_mobile/load:media:google_images:2018" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "34.0", + "duration": "23.0", "name": "system_health.common_mobile/load:media:imgur:2018" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:soundcloud" }, { - "duration": "25.0", + "duration": "19.0", "name": "system_health.common_mobile/load:media:soundcloud:2018" }, { - "duration": "26.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "28.0", + "duration": "21.0", "name": "system_health.common_mobile/load:media:youtube:2018" }, { - "duration": "36.0", + "duration": "24.0", "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "33.0", + "duration": "24.0", "name": "system_health.common_mobile/load:news:cnn:2018" }, { - "duration": "29.0", + "duration": "21.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "29.0", + "duration": "21.0", "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "27.0", + "duration": "21.0", "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "27.0", + "duration": "20.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:wikipedia:2018" }, { - "duration": "28.0", + "duration": "22.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "30.0", + "duration": "22.0", "name": "system_health.common_mobile/load:search:baidu:2018" }, { - "duration": "26.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "28.0", + "duration": "20.0", "name": "system_health.common_mobile/load:search:ebay:2018" }, { - "duration": "24.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "26.0", + "duration": "20.0", "name": "system_health.common_mobile/load:search:google:2018" }, { - "duration": "27.0", + "duration": "19.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "24.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:yahoo:2018" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "27.0", + "duration": "19.0", "name": "system_health.common_mobile/load:search:yandex:2018" }, { - "duration": "25.0", + "duration": "19.0", "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "28.0", + "duration": "19.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "24.0", + "duration": "19.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:tools:stackoverflow:2018" }, { - "duration": "30.0", + "duration": "21.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "30.0", + "duration": "24.0", "name": "system_health.memory_mobile/background:media:imgur" }, { - "duration": "30.0", + "duration": "24.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "32.0", + "duration": "23.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "82.0", + "duration": "76.0", "name": "system_health.memory_mobile/browse:chrome:newtab" }, { - "duration": "36.0", + "duration": "30.0", "name": "system_health.memory_mobile/browse:chrome:omnibox" }, { - "duration": "80.0", + "duration": "74.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "52.0", + "duration": "45.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "75.0", + "duration": "43.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "69.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "87.0", + "duration": "81.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { - "duration": "63.0", + "duration": "59.0", "name": "system_health.memory_mobile/browse:news:cnn" }, { - "duration": "55.0", + "duration": "51.0", "name": "system_health.memory_mobile/browse:news:cnn:2018" }, { - "duration": "64.0", + "duration": "60.0", "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "60.0", + "duration": "55.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "54.0", + "duration": "49.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "76.0", + "duration": "74.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "53.0", + "duration": "48.0", "name": "system_health.memory_mobile/browse:news:washingtonpost" }, { - "duration": "57.0", - "name": "system_health.memory_mobile/browse:shopping:amazon" - }, - { - "duration": "59.0", - "name": "system_health.memory_mobile/browse:shopping:avito" - }, - { - "duration": "37.0", - "name": "system_health.memory_mobile/browse:shopping:lazada" - }, - { - "duration": "65.0", - "name": "system_health.memory_mobile/browse:social:facebook" - }, - { - "duration": "80.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "80.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "76.0", - "name": "system_health.memory_mobile/browse:social:instagram" - }, - { - "duration": "74.0", - "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "75.0", - "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "53.0", - "name": "system_health.memory_mobile/browse:social:twitter" - }, - { - "duration": "58.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "74.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "50.0", - "name": "system_health.memory_mobile/browse:tools:maps" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:chrome:blank" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:games:bubbles" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:games:lazors" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:games:spychase" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:games:spychase:2018" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:media:dailymotion" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:facebook_photos" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:media:flickr:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:google_images" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:google_images:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:imgur" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:media:imgur:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:soundcloud" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:soundcloud:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:youtube:2018" - }, - { - "duration": "34.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:news:cnn:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:wikipedia:2018" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:search:baidu:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:search:ebay:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:search:google:2018" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:yahoo:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:search:yandex:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:drive" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "22.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "135.0", - "name": "v8.browsing_mobile-future/browse:chrome:newtab" - }, - { - "duration": "40.0", - "name": "v8.browsing_mobile-future/browse:chrome:omnibox" - }, - { - "duration": "117.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" - }, - { - "duration": "88.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "111.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" - }, - { - "duration": "135.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" - }, - { - "duration": "208.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" - }, - { - "duration": "138.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" - }, - { - "duration": "90.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" - }, - { - "duration": "92.0", - "name": "v8.browsing_mobile-future/browse:news:qq" - }, - { - "duration": "78.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" - }, - { - "duration": "292.0", - "name": "v8.browsing_mobile-future/browse:news:toi" - }, - { - "duration": "88.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" - }, - { - "duration": "129.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" + "duration": "25.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" }, { "duration": "52.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" + "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "120.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" + "duration": "31.0", + "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "467.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" + "duration": "62.0", + "name": "system_health.memory_mobile/browse:social:facebook" }, { - "duration": "246.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + "duration": "70.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "132.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" + "duration": "70.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "164.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + "duration": "72.0", + "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "245.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + "duration": "70.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "79.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" - }, - { - "duration": "136.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "208.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + "duration": "69.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" }, { "duration": "67.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "135.0", - "name": "v8.browsing_mobile/browse:chrome:newtab" + "duration": "49.0", + "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "40.0", - "name": "v8.browsing_mobile/browse:chrome:omnibox" + "duration": "54.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "114.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" + "duration": "67.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "90.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + "duration": "44.0", + "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "113.0", - "name": "v8.browsing_mobile/browse:media:imgur" + "duration": "24.0", + "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "141.0", - "name": "v8.browsing_mobile/browse:media:youtube" + "duration": "22.0", + "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "197.0", - "name": "v8.browsing_mobile/browse:news:cnn" + "duration": "22.0", + "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "136.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" + "duration": "27.0", + "name": "system_health.memory_mobile/load:games:spychase" }, { - "duration": "90.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" + "duration": "27.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" }, { - "duration": "92.0", - "name": "v8.browsing_mobile/browse:news:qq" + "duration": "24.0", + "name": "system_health.memory_mobile/load:media:dailymotion" }, { - "duration": "78.0", - "name": "v8.browsing_mobile/browse:news:reddit" + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:facebook_photos" }, { - "duration": "304.0", - "name": "v8.browsing_mobile/browse:news:toi" + "duration": "25.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:google_images" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:imgur" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:soundcloud" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:youtube" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:cnn" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:irctc" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:nytimes" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:qq" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:reddit" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:washingtonpost" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:wikipedia" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:baidu" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:ebay" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:drive" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "11.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "11.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "11.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "14.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "11.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { "duration": "88.0", - "name": "v8.browsing_mobile/browse:news:washingtonpost" + "name": "v8.browsing_mobile-future/browse:chrome:newtab" }, { - "duration": "126.0", - "name": "v8.browsing_mobile/browse:shopping:amazon" + "duration": "28.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox" }, { - "duration": "110.0", - "name": "v8.browsing_mobile/browse:shopping:avito" + "duration": "82.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile-future/browse:media:imgur" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile-future/browse:media:youtube" + }, + { + "duration": "115.0", + "name": "v8.browsing_mobile-future/browse:news:cnn" + }, + { + "duration": "73.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:news:qq" }, { "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:news:reddit" + }, + { + "duration": "105.0", + "name": "v8.browsing_mobile-future/browse:news:toi" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost" + }, + { + "duration": "27.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "32.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "72.0", + "name": "v8.browsing_mobile-future/browse:social:facebook" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "90.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "94.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "88.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "91.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile-future/browse:tools:maps" + }, + { + "duration": "87.0", + "name": "v8.browsing_mobile/browse:chrome:newtab" + }, + { + "duration": "27.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "86.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile/browse:media:youtube" + }, + { + "duration": "112.0", + "name": "v8.browsing_mobile/browse:news:cnn" + }, + { + "duration": "74.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "63.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "106.0", + "name": "v8.browsing_mobile/browse:news:toi" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost" + }, + { + "duration": "27.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile/browse:shopping:amazon" + }, + { + "duration": "32.0", "name": "v8.browsing_mobile/browse:shopping:lazada" }, { - "duration": "124.0", + "duration": "73.0", "name": "v8.browsing_mobile/browse:social:facebook" }, { - "duration": "488.0", + "duration": "92.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "248.0", + "duration": "94.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "137.0", + "duration": "88.0", "name": "v8.browsing_mobile/browse:social:instagram" }, { - "duration": "163.0", + "duration": "90.0", "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "240.0", + "duration": "94.0", "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "79.0", + "duration": "88.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "52.0", "name": "v8.browsing_mobile/browse:social:twitter" }, { - "duration": "136.0", + "duration": "68.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "210.0", + "duration": "92.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "64.0", + "duration": "47.0", "name": "v8.browsing_mobile/browse:tools:maps" }, { @@ -4640,7 +4376,7 @@ "name": "wasm/AsmJsZenGarden" }, { - "duration": "22.0", + "duration": "15.0", "name": "wasm/WasmSpaceBuggy" }, { @@ -4656,39 +4392,39 @@ "name": "wasm/WasmTanks" }, { - "duration": "15.0", + "duration": "14.0", "name": "wasm/WasmZenGarden" }, { - "duration": "24.0", + "duration": "17.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "28.0", + "duration": "20.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "37.0", + "duration": "29.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "38.0", + "duration": "29.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "37.0", + "duration": "29.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "25.0", + "duration": "18.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "45.0", + "duration": "31.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "67.0", + "duration": "39.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json index cd64f47..bd9f39f 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel2_webview-perf_timing.json
@@ -1,62 +1,622 @@ [ { - "duration": "30.0", + "duration": "32.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "24.0", "name": "blink_perf.accessibility/textarea-append.html" }, { + "duration": "16.0", + "name": "blink_perf.bindings/append-child.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/create-element.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/document-implementation.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/first-child.html" + }, + { + "duration": "10.0", + "name": "blink_perf.bindings/gc-forest.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/gc-mini-tree.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/gc-tree.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/get-attribute-rare.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/get-attribute.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/get-element-by-id.html" + }, + { + "duration": "10.0", + "name": "blink_perf.bindings/get-elements-by-tag-name.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/id-getter.html" + }, + { + "duration": "11.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": "11.0", + "name": "blink_perf.bindings/named-property-enumerator.html" + }, + { + "duration": "18.0", + "name": "blink_perf.bindings/node-list-access.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/node-type.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/post-message.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/sequence-conversion-array.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/serialize-array.html" + }, + { + "duration": "5.0", + "name": "blink_perf.bindings/serialize-long-string.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/serialize-map.html" + }, + { + "duration": "5.0", + "name": "blink_perf.bindings/serialize-nested-array.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/set-attribute-rare.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/set-attribute.html" + }, + { + "duration": "17.0", + "name": "blink_perf.bindings/structured-clone-json-deserialize.html" + }, + { + "duration": "17.0", + "name": "blink_perf.bindings/structured-clone-json-serialize.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/typed-array-construct-from-array.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/typed-array-construct-from-typed.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/typed-array-set-from-typed.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/undefined-first-child.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/undefined-get-element-by-id.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/undefined-id-getter.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "5.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "64.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "63.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "63.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "17.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/drawimage.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/getImageData.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/getImageDataColorManaged.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/putImageData.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/toBlob_duration.html" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/transferFromImageBitmap.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/upload-webgl-to-texture.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "20.0", + "name": "blink_perf.css/AttributeDescendantSelector.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSPropertySetterGetter.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSPropertyUpdateValue.html" + }, + { + "duration": "9.0", + "name": "blink_perf.css/ChangeStyleChildClassSelector.html" + }, + { + "duration": "9.0", + "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" + }, + { + "duration": "9.0", + "name": "blink_perf.css/ChangeStyleElementSelector.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/ChangeStyleShallowTree.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/ChangeStyleUniversalSelector.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "14.0", + "name": "blink_perf.css/ClassDescendantSelector.html" + }, + { + "duration": "13.0", + "name": "blink_perf.css/ClassInvalidation.html" + }, + { + "duration": "9.0", + "name": "blink_perf.css/CustomPropertiesCascade.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CustomPropertiesRootInheritance.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CustomPropertiesVarAlias.html" + }, + { + "duration": "14.0", + "name": "blink_perf.css/FocusUpdate.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/LoadBootstrapBlog.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/LoadMaterializeStarterPage.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/LoadSemanticPageExample.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/PseudoClassSelectors.html" + }, + { + "duration": "15.0", + "name": "blink_perf.css/SelectorCountScaling.html" + }, + { + "duration": "33.0", + "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" + }, + { + "duration": "24.0", + "name": "blink_perf.dom/custom-element-default-style.html" + }, + { + "duration": "71.0", + "name": "blink_perf.dom/long-sibling-list.html" + }, + { + "duration": "8.0", + "name": "blink_perf.dom/modify-element-classname.html" + }, + { + "duration": "7.0", + "name": "blink_perf.dom/modify-element-id.html" + }, + { + "duration": "7.0", + "name": "blink_perf.dom/modify-element-title.html" + }, + { + "duration": "11.0", + "name": "blink_perf.dom/select-multiple-add.html" + }, + { + "duration": "12.0", + "name": "blink_perf.dom/select-single-add.html" + }, + { + "duration": "11.0", + "name": "blink_perf.dom/select-single-remove.html" + }, + { "duration": "22.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "24.0", + "duration": "21.0", "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "65.0", - "name": "blink_perf.image_decoder/decode-gif.html" - }, - { - "duration": "20.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "54.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" + "duration": "13.0", + "name": "blink_perf.events/is-input-pending-all-events.html" }, { "duration": "13.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "52.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "23.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "58.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "16.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "35.0", + "duration": "42.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "21.0", + "duration": "29.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "60.0", + "duration": "68.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "21.0", + "duration": "17.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -68,7 +628,7 @@ "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -80,11 +640,11 @@ "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { @@ -92,7 +652,7 @@ "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { @@ -100,7 +660,7 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { @@ -116,11 +676,19 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { - "duration": "17.0", + "duration": "15.0", "name": "blink_perf.layout/contain-content-style-change.html" }, { + "duration": "12.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { "duration": "11.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { @@ -140,7 +708,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { @@ -148,27 +716,27 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "21.0", + "duration": "15.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "21.0", + "duration": "15.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.layout/floats_10_1000.html" }, { @@ -188,103 +756,435 @@ "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "23.0", - "name": "blink_perf.owp_storage/blob-perf-files.html" - }, - { - "duration": "15.0", - "name": "blink_perf.owp_storage/blob-perf-ipc.html" - }, - { "duration": "11.0", - "name": "blink_perf.owp_storage/blob-perf-shm.html" + "name": "blink_perf.layout/hindi-line-layout.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { "duration": "14.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "11.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": "127.0", + "name": "blink_perf.layout/latin-ebook-resize.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/latin-ebook.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/layers_overlap_2d.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/layers_overlap_3d.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/line-layout-line-height.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/line-layout-repeat-append-select.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/line-layout-repeat-append.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/line-layout.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/long-line-nowrap-collapse.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/long-line-nowrap.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "12.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/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": "11.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/nested-grid.html" + }, + { + "duration": "38.0", + "name": "blink_perf.layout/nested-percent-height-tables.html" + }, + { + "duration": "82.0", + "name": "blink_perf.layout/subtree-detaching.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/word-break-break-all.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/word-break-break-word.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/word-wrap-break-word.html" + }, + { + "duration": "21.0", + "name": "blink_perf.owp_storage/blob-perf-files.html" + }, + { + "duration": "16.0", + "name": "blink_perf.owp_storage/blob-perf-ipc.html" + }, + { + "duration": "14.0", + "name": "blink_perf.owp_storage/blob-perf-shm.html" + }, + { + "duration": "16.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "15.0", + "duration": "17.0", + "name": "blink_perf.paint/appending-text.html" + }, + { + "duration": "24.0", + "name": "blink_perf.paint/color-changes.html" + }, + { + "duration": "14.0", + "name": "blink_perf.paint/complex-content-slow-scroll.html" + }, + { + "duration": "14.0", + "name": "blink_perf.paint/complex-iframe-filtered.html" + }, + { + "duration": "46.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "17.0", + "name": "blink_perf.paint/containment-resize.html" + }, + { + "duration": "16.0", + "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" + }, + { + "duration": "19.0", + "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" + }, + { + "duration": "16.0", + "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" + }, + { + "duration": "20.0", + "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" + }, + { + "duration": "16.0", + "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" + }, + { + "duration": "19.0", + "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" + }, + { + "duration": "14.0", + "name": "blink_perf.paint/large-table-collapsed-border-change.html" + }, + { + "duration": "19.0", + "name": "blink_perf.paint/large-table-repaint.html" + }, + { + "duration": "13.0", + "name": "blink_perf.paint/move-text-with-mask.html" + }, + { + "duration": "19.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "28.0", + "name": "blink_perf.paint/transform-changes.html" + }, + { + "duration": "17.0", + "name": "blink_perf.parser/css-parser-yui.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/html-parser-threaded.html" + }, + { + "duration": "21.0", + "name": "blink_perf.parser/html-parser.html" + }, + { + "duration": "72.0", + "name": "blink_perf.parser/html5-full-render.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/iframe-append-remove.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/innerHTML-setter-siblings.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/innerHTML-setter.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-attribute-complex.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-attribute.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-class-deep.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/query-selector-all-class-first.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-class-last.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-class.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-deep.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-first.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-id-deep.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/query-selector-all-id-first.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/query-selector-all-id-last.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-all-last.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-deep.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-first.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-id-deep.html" + }, + { + "duration": "12.0", + "name": "blink_perf.parser/query-selector-id-last.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/query-selector-last.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/simple-url.html" + }, + { + "duration": "11.0", + "name": "blink_perf.parser/textarea-parsing.html" + }, + { + "duration": "10.0", + "name": "blink_perf.parser/tiny-innerHTML.html" + }, + { + "duration": "16.0", + "name": "blink_perf.parser/url-parser.html" + }, + { + "duration": "10.0", + "name": "blink_perf.parser/xml-parser.html" + }, + { + "duration": "12.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html" }, { @@ -296,43 +1196,43 @@ "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "25.0", + "duration": "14.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-distribution.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "25.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "57.0", + "duration": "39.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -340,11 +1240,11 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { @@ -356,7 +1256,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { @@ -372,7 +1272,7 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { @@ -388,7 +1288,7 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "16.0", + "duration": "11.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { @@ -396,11 +1296,11 @@ "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.svg/Cactus.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.svg/Cowboy.html" }, { @@ -420,7 +1320,7 @@ "name": "blink_perf.svg/FlowerFromMyGarden.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { @@ -432,7 +1332,7 @@ "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.svg/GearFlowers.html" }, { @@ -452,7 +1352,7 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "60.0", + "duration": "82.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -480,83 +1380,103 @@ "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "13.0", + "duration": "40.0", + "name": "dromaeo/http://dromaeo.com?dom-attr" + }, + { + "duration": "37.0", + "name": "dromaeo/http://dromaeo.com?dom-modify" + }, + { + "duration": "52.0", + "name": "dromaeo/http://dromaeo.com?dom-query" + }, + { + "duration": "32.0", + "name": "dromaeo/http://dromaeo.com?dom-traverse" + }, + { + "duration": "9.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "281.0", + "duration": "9.0", + "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" + }, + { + "duration": "280.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "16.0", + "duration": "58.0", + "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" + }, + { + "duration": "10.0", "name": "loading.mobile/58Pic" }, { - "duration": "166.0", + "duration": "42.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.mobile/Amazon" }, { - "duration": "233.0", + "duration": "73.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "275.0", - "name": "loading.mobile/BOLNoticias_3g" - }, - { - "duration": "22.0", + "duration": "11.0", "name": "loading.mobile/Baidu" }, { - "duration": "173.0", + "duration": "69.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.mobile/Bradesco" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "23.0", + "duration": "12.0", "name": "loading.mobile/Dawn" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "168.0", + "duration": "51.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "22.0", + "duration": "15.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "156.0", + "duration": "54.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "148.0", + "duration": "50.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "20.0", + "duration": "10.0", "name": "loading.mobile/Dramaq" }, { @@ -564,311 +1484,271 @@ "name": "loading.mobile/Dramaq_3g" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "143.0", + "duration": "36.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/Facebook" }, { - "duration": "36.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "17.0", + "duration": "10.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "26.0", + "duration": "15.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "38.0", + "duration": "26.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "32.0", + "duration": "16.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "29.0", + "duration": "21.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "25.0", + "duration": "13.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "252.0", - "name": "loading.mobile/FlipKart_warm_3g" - }, - { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "65.0", + "duration": "71.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.mobile/GSShop" }, { - "duration": "14.0", + "duration": "8.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "245.0", - "name": "loading.mobile/GoogleBrazil_3g" - }, - { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "237.0", - "name": "loading.mobile/GoogleIndonesia_3g" - }, - { - "duration": "20.0", + "duration": "12.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.mobile/Hongkiat" }, { - "duration": "271.0", - "name": "loading.mobile/Hongkiat_3g" - }, - { - "duration": "20.0", + "duration": "11.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "25.0", + "duration": "14.0", "name": "loading.mobile/Kaskus" }, { - "duration": "18.0", + "duration": "15.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "14.0", + "duration": "9.0", "name": "loading.mobile/Locanto" }, { - "duration": "102.0", + "duration": "29.0", "name": "loading.mobile/Locanto_3g" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.mobile/OLX" }, { - "duration": "249.0", - "name": "loading.mobile/OLX_3g" - }, - { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/QQNews" }, { - "duration": "217.0", + "duration": "80.0", "name": "loading.mobile/QQNews_3g" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.mobile/SlideShare" }, { - "duration": "227.0", + "duration": "65.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "15.0", + "duration": "9.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "37.0", + "duration": "14.0", "name": "loading.mobile/Suumo_cold_3g" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.mobile/Suumo_hot" }, { - "duration": "27.0", + "duration": "15.0", "name": "loading.mobile/Suumo_hot_3g" }, { - "duration": "17.0", + "duration": "11.0", "name": "loading.mobile/Suumo_warm" }, { - "duration": "24.0", + "duration": "13.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.mobile/Thairath" }, { - "duration": "23.0", + "duration": "12.0", "name": "loading.mobile/TheStar" }, { - "duration": "21.0", + "duration": "11.0", "name": "loading.mobile/TribunNews" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/Twitter" }, { - "duration": "135.0", + "duration": "37.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "260.0", - "name": "loading.mobile/VoiceMemos_cold_3g" - }, - { - "duration": "22.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "49.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "19.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "46.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "191.0", + "duration": "59.0", "name": "loading.mobile/Wikipedia_3g" }, { - "duration": "21.0", + "duration": "11.0", "name": "loading.mobile/YahooNews" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.mobile/Youtube" }, { - "duration": "252.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "22.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "21.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "22.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "22.0", + "duration": "16.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "22.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "22.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "29.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "22.0", + "duration": "15.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "25.0", + "duration": "16.0", + "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" + }, + { + "duration": "19.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "24.0", + "duration": "18.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "27.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "25.0", + "duration": "18.0", + "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" + }, + { + "duration": "19.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "63.0", + "duration": "20.0", + "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" + }, + { + "duration": "59.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "22.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "63.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { @@ -880,15 +1760,15 @@ "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "70.0", + "duration": "67.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "62.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { @@ -896,27 +1776,27 @@ "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "59.0", + "duration": "60.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "59.0", + "duration": "60.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "61.0", + "duration": "62.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "63.0", + "duration": "64.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "21.0", + "duration": "16.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "31.0", + "duration": "26.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -936,19 +1816,19 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "19.0", + "duration": "24.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "35.0", + "duration": "36.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { @@ -964,7 +1844,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "19.0", + "duration": "22.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { @@ -972,23 +1852,23 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "26.0", + "duration": "30.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { @@ -996,623 +1876,559 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "62.0", + "duration": "64.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "86.0", + "duration": "87.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "33.0", + "duration": "35.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "43.0", + "duration": "28.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "30.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "21.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "33.0", + "duration": "19.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "20.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "32.0", + "duration": "24.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "53.0", + "duration": "21.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "39.0", + "duration": "24.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" + }, + { + "duration": "27.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" + }, + { + "duration": "24.0", "name": "rendering.mobile/aquarium" }, { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "65.0", + "duration": "39.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "31.0", + "duration": "13.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "26.0", + "duration": "19.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "33.0", + "duration": "21.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "16.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/blob" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.mobile/blogspot_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "28.0", + "duration": "11.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.mobile/booking.com_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", + "duration": "10.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "18.0", + "duration": "13.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "17.0", + "duration": "12.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "30.0", + "duration": "18.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "27.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { "duration": "16.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" + "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "13.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "42.0", + "duration": "19.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "21.0", + "duration": "13.0", "name": "rendering.mobile/card_flying" }, { - "duration": "14.0", + "duration": "9.0", "name": "rendering.mobile/cats_unscaled" }, { - "duration": "12.0", + "duration": "7.0", "name": "rendering.mobile/cats_viewport_width" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "31.0", + "duration": "16.0", "name": "rendering.mobile/cnn_2018" }, { - "duration": "38.0", + "duration": "16.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "25.0", + "duration": "13.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "28.0", + "duration": "17.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" + }, + { + "duration": "16.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "28.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "34.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "43.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "31.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "31.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "38.0", + "duration": "28.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "29.0", + "duration": "18.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "38.0", + "duration": "17.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "28.0", + "duration": "16.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.mobile/earth" }, { - "duration": "31.0", + "duration": "16.0", "name": "rendering.mobile/ebay_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", + "duration": "11.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "41.0", + "duration": "14.0", + "name": "rendering.mobile/ebay_mobile_pinch_2018" + }, + { + "duration": "24.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "35.0", + "duration": "18.0", "name": "rendering.mobile/espn_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", + "duration": "13.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "24.0", + "duration": "19.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.mobile/facebook_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "42.0", + "duration": "19.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "19.0", + "duration": "13.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "38.0", + "duration": "23.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.mobile/geo_apis" }, { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/gmail_2018" }, { - "duration": "20.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "19.0", + "duration": "11.0", "name": "rendering.mobile/google_calendar_2018" }, { - "duration": "18.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", + "duration": "21.0", "name": "rendering.mobile/google_docs_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", + "duration": "17.0", "name": "rendering.mobile/google_image_search_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "35.0", + "duration": "17.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "27.0", + "duration": "15.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "19.0", + "duration": "11.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/google_plus_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "39.0", + "duration": "18.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "23.0", + "duration": "14.0", + "name": "rendering.mobile/google_search_mobile_pinch_2018" + }, + { + "duration": "12.0", "name": "rendering.mobile/google_web_search_2018" }, { - "duration": "20.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "17.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "37.0", + "duration": "19.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "35.0", + "duration": "17.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "32.0", + "duration": "19.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.mobile/hakim" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { @@ -1620,1131 +2436,907 @@ "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "35.0", + "duration": "29.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "45.0", + "duration": "34.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "60.0", + "duration": "35.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "133.0", + "duration": "108.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "50.0", + "duration": "35.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "45.0", + "duration": "29.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "35.0", + "duration": "25.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "36.0", + "duration": "20.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "37.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "38.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "37.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "38.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "38.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "35.0", + "duration": "18.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "43.0", + "duration": "26.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "33.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "34.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "34.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "36.0", + "duration": "23.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "35.0", + "duration": "23.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "34.0", + "duration": "22.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "18.0", + "duration": "12.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "38.0", + "duration": "19.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "33.0", + "duration": "16.0", "name": "rendering.mobile/linkedin_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "60.0", + "duration": "37.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "39.0", + "duration": "31.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" + }, + { + "duration": "29.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "19.0", + "duration": "11.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/many_images" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "22.0", + "duration": "14.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "29.0", + "duration": "12.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "19.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "22.0", + "duration": "16.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "23.0", + "duration": "19.0", + "name": "rendering.mobile/microsoft_performance" + }, + { + "duration": "14.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "28.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "21.0", + "duration": "13.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "21.0", + "duration": "13.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "31.0", + "duration": "23.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "45.0", + "duration": "20.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "26.0", + "duration": "19.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "24.0", + "duration": "18.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "26.0", + "duration": "17.0", "name": "rendering.mobile/motionmark_anim_design_15" }, { - "duration": "30.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_anim_focus_25" }, { - "duration": "42.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_anim_images_50" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_anim_leaves_250" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_anim_multiply_175" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_anim_suits_125" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_html_composited_transforms_125" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" }, { - "duration": "33.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" }, { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" }, { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/motionmark_html_focus_20_15" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_html_leaves_20_50" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" }, { - "duration": "67.0", + "duration": "23.0", "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" }, { - "duration": "35.0", + "duration": "23.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "20.0", + "duration": "14.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "39.0", + "duration": "23.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "37.0", + "duration": "25.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "42.0", + "duration": "23.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "163.0", + "duration": "23.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/particles" }, { - "duration": "30.0", + "duration": "16.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "19.0", + "duration": "11.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.mobile/pinterest_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "21.0", + "duration": "8.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "19.0", + "duration": "13.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/raf" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "36.0", + "duration": "18.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "39.0", + "duration": "18.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.mobile/runway" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "15.0", + "duration": "9.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "15.0", + "duration": "9.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "15.0", + "duration": "9.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "43.0", + "duration": "18.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "20.0", + "duration": "11.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "37.0", + "duration": "15.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "29.0", + "duration": "12.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "19.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "38.0", + "duration": "20.0", "name": "rendering.mobile/stress_hidey_bars" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "34.0", + "duration": "24.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "22.0", + "duration": "9.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "13.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "43.0", + "duration": "21.0", "name": "rendering.mobile/techcrunch_2018" }, { - "duration": "39.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "45.0", + "duration": "19.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", + "duration": "15.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "12.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", + "duration": "9.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", + "duration": "9.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", + "duration": "9.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", + "duration": "8.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "25.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "25.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "12.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", + "duration": "10.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", + "duration": "9.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { "duration": "14.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "14.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", + "duration": "11.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", + "duration": "9.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "13.0", + "duration": "8.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "13.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "13.0", + "duration": "8.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "13.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "40.0", + "duration": "20.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "43.0", + "duration": "18.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.mobile/toggle_drawer" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "29.0", + "duration": "18.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.mobile/twitch_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/twitter_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/twitter_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/update_history_state" + "duration": "17.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { "duration": "20.0", + "name": "rendering.mobile/twitter_2018" + }, + { + "duration": "9.0", + "name": "rendering.mobile/twitter_mobile_2018" + }, + { + "duration": "15.0", + "name": "rendering.mobile/update_history_state" + }, + { + "duration": "11.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "24.0", + "duration": "15.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "37.0", + "duration": "28.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "36.0", + "duration": "19.0", "name": "rendering.mobile/wikipedia_2018" }, { - "duration": "39.0", + "duration": "18.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "40.0", + "duration": "20.0", "name": "rendering.mobile/wordpress_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "41.0", + "duration": "18.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "35.0", + "duration": "18.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "42.0", + "duration": "20.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "71.0", + "duration": "32.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "47.0", + "duration": "20.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "26.0", + "duration": "12.0", "name": "rendering.mobile/yahoo_answers_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/yahoo_news_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "36.0", + "duration": "15.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "32.0", + "duration": "20.0", "name": "rendering.mobile/yahoo_sports_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "19.0", + "duration": "10.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.mobile/youtube_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", + "duration": "10.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/yuv_decoding" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "43.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "28.0", + "duration": "14.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "25.0", + "duration": "13.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "28.0", + "duration": "14.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "24.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "30.0", + "duration": "16.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "47.0", + "duration": "29.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "38.0", + "duration": "13.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "36.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", + "duration": "14.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "35.0", + "duration": "19.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "37.0", + "duration": "20.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "42.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "28.0", + "duration": "15.0", "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "25.0", + "duration": "20.0", "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "28.0", + "duration": "15.0", "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "30.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "24.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "30.0", + "duration": "16.0", "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "47.0", + "duration": "26.0", "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "38.0", + "duration": "13.0", "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "35.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "28.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", + "duration": "14.0", "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "35.0", + "duration": "21.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "37.0", + "duration": "23.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "38.0", + "duration": "32.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "38.0", + "duration": "32.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "62.0", + "duration": "53.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "62.0", + "duration": "53.0", "name": "speedometer2/Speedometer2" }, { - "duration": "24.0", + "duration": "18.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "35.0", + "duration": "17.0", "name": "system_health.common_mobile/background:social:facebook" }, { @@ -2752,759 +3344,799 @@ "name": "system_health.common_mobile/browse:chrome:newtab" }, { - "duration": "10.0", + "duration": "9.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "95.0", + "duration": "72.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "63.0", + "duration": "42.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "88.0", + "duration": "40.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "67.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "112.0", + "duration": "86.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "109.0", + "duration": "57.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "89.0", + "duration": "60.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "76.0", + "duration": "57.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "72.0", + "duration": "52.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "60.0", + "duration": "45.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "162.0", + "duration": "102.0", "name": "system_health.common_mobile/browse:news:toi" }, { - "duration": "65.0", + "duration": "45.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "82.0", + "duration": "22.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "52.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "81.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "41.0", + "duration": "26.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "76.0", + "duration": "55.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "270.0", + "duration": "88.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "126.0", + "duration": "78.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "86.0", + "duration": "71.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "106.0", + "duration": "75.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "136.0", + "duration": "77.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "64.0", + "duration": "72.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "45.0", "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "82.0", + "duration": "55.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "113.0", + "duration": "73.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "51.0", + "duration": "39.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "21.0", + "duration": "22.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "27.0", + "duration": "17.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "35.0", + "duration": "22.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "36.0", + "duration": "24.0", "name": "system_health.common_mobile/load:games:spychase:2018" }, { - "duration": "27.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "30.0", + "duration": "19.0", "name": "system_health.common_mobile/load:media:flickr:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.common_mobile/load:media:google_images:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "35.0", + "duration": "21.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", + "duration": "16.0", "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "26.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:youtube:2018" }, { - "duration": "38.0", + "duration": "22.0", "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "37.0", + "duration": "22.0", "name": "system_health.common_mobile/load:news:cnn:2018" }, { - "duration": "29.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "28.0", + "duration": "18.0", "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "27.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "27.0", + "duration": "18.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "23.0", + "duration": "17.0", "name": "system_health.common_mobile/load:news:wikipedia:2018" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "28.0", + "duration": "20.0", "name": "system_health.common_mobile/load:search:baidu:2018" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "30.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:ebay:2018" }, { - "duration": "23.0", + "duration": "16.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.common_mobile/load:search:google:2018" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "22.0", + "duration": "16.0", "name": "system_health.common_mobile/load:search:yahoo:2018" }, { - "duration": "23.0", + "duration": "16.0", "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:search:yandex:2018" }, { - "duration": "23.0", + "duration": "16.0", "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "28.0", + "duration": "17.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "24.0", + "duration": "18.0", "name": "system_health.common_mobile/load:tools:stackoverflow:2018" }, { - "duration": "29.0", + "duration": "18.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "28.0", + "duration": "22.0", "name": "system_health.memory_mobile/background:media:imgur" }, { - "duration": "29.0", + "duration": "23.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "32.0", + "duration": "21.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "12.0", + "duration": "13.0", "name": "system_health.memory_mobile/browse:chrome:newtab" }, { + "duration": "12.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox" + }, + { "duration": "79.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "51.0", + "duration": "43.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "74.0", + "duration": "43.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "67.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "84.0", + "duration": "79.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { - "duration": "62.0", + "duration": "59.0", "name": "system_health.memory_mobile/browse:news:cnn" }, { - "duration": "55.0", + "duration": "60.0", "name": "system_health.memory_mobile/browse:news:cnn:2018" }, { - "duration": "60.0", + "duration": "58.0", "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "58.0", + "duration": "53.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "52.0", + "duration": "47.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "76.0", + "duration": "80.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "50.0", + "duration": "45.0", "name": "system_health.memory_mobile/browse:news:washingtonpost" }, { - "duration": "56.0", - "name": "system_health.memory_mobile/browse:shopping:amazon" - }, - { - "duration": "58.0", - "name": "system_health.memory_mobile/browse:shopping:avito" - }, - { - "duration": "35.0", - "name": "system_health.memory_mobile/browse:shopping:lazada" - }, - { - "duration": "60.0", - "name": "system_health.memory_mobile/browse:social:facebook" - }, - { - "duration": "81.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "75.0", - "name": "system_health.memory_mobile/browse:social:instagram" - }, - { - "duration": "74.0", - "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "74.0", - "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "52.0", - "name": "system_health.memory_mobile/browse:social:twitter" - }, - { - "duration": "58.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "48.0", - "name": "system_health.memory_mobile/browse:tools:maps" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:chrome:blank" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:games:bubbles" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:games:lazors" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:games:spychase" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:games:spychase:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:dailymotion" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:facebook_photos" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:media:flickr:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:google_images" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:media:google_images:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:media:imgur" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:imgur:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:media:soundcloud:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:media:youtube:2018" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:cnn:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:wikipedia:2018" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:search:baidu:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:ebay:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:google:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:search:yahoo:2018" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:yandex:2018" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "26.0", - "name": "system_health.webview_startup/load:chrome:blank" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "21.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "122.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" - }, - { - "duration": "93.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "116.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" - }, - { - "duration": "148.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" - }, - { - "duration": "211.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" - }, - { - "duration": "147.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" - }, - { - "duration": "102.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" - }, - { - "duration": "95.0", - "name": "v8.browsing_mobile-future/browse:news:qq" - }, - { - "duration": "78.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" - }, - { - "duration": "336.0", - "name": "v8.browsing_mobile-future/browse:news:toi" - }, - { - "duration": "94.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" - }, - { - "duration": "138.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" + "duration": "23.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" }, { "duration": "53.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" + "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "114.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" + "duration": "30.0", + "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "621.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" + "duration": "57.0", + "name": "system_health.memory_mobile/browse:social:facebook" }, { - "duration": "282.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + "duration": "70.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "138.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" + "duration": "70.0", + "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "190.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + "duration": "71.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "279.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + "duration": "73.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "81.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" + "duration": "67.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "143.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" + "duration": "47.0", + "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "243.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + "duration": "53.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "68.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" + "duration": "42.0", + "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "121.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" + "duration": "22.0", + "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "93.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + "duration": "20.0", + "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "115.0", - "name": "v8.browsing_mobile/browse:media:imgur" + "duration": "20.0", + "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "146.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" + "duration": "25.0", + "name": "system_health.memory_mobile/load:games:spychase" }, { - "duration": "98.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" + "duration": "26.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" }, { - "duration": "104.0", - "name": "v8.browsing_mobile/browse:news:qq" + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:dailymotion" }, { - "duration": "78.0", - "name": "v8.browsing_mobile/browse:news:reddit" + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:facebook_photos" }, { - "duration": "350.0", - "name": "v8.browsing_mobile/browse:news:toi" + "duration": "26.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:media:google_images" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:media:imgur" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:media:youtube" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:cnn" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:irctc" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:nytimes" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:qq" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:news:reddit" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:news:washingtonpost" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:wikipedia" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:search:baidu" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:search:ebay" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "20.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "19.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "5.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "5.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "5.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "5.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "10.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "71.0", + "name": "v8.browsing_mobile-future/browse:media:imgur" }, { "duration": "94.0", + "name": "v8.browsing_mobile-future/browse:media:youtube" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile-future/browse:news:cnn" + }, + { + "duration": "66.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:news:qq" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:news:reddit" + }, + { + "duration": "99.0", + "name": "v8.browsing_mobile-future/browse:news:toi" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost" + }, + { + "duration": "24.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "29.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:social:facebook" + }, + { + "duration": "87.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "86.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "85.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "85.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "41.0", + "name": "v8.browsing_mobile-future/browse:tools:maps" + }, + { + "duration": "11.0", + "name": "v8.browsing_mobile/browse:chrome:newtab" + }, + { + "duration": "11.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "82.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "100.0", + "name": "v8.browsing_mobile/browse:news:toi" + }, + { + "duration": "50.0", "name": "v8.browsing_mobile/browse:news:washingtonpost" }, { - "duration": "137.0", + "duration": "23.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "62.0", "name": "v8.browsing_mobile/browse:shopping:amazon" }, { - "duration": "119.0", - "name": "v8.browsing_mobile/browse:shopping:avito" - }, - { - "duration": "52.0", + "duration": "29.0", "name": "v8.browsing_mobile/browse:shopping:lazada" }, { - "duration": "114.0", + "duration": "62.0", "name": "v8.browsing_mobile/browse:social:facebook" }, { - "duration": "631.0", + "duration": "91.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "285.0", + "duration": "88.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "137.0", + "duration": "79.0", "name": "v8.browsing_mobile/browse:social:instagram" }, { - "duration": "188.0", + "duration": "88.0", "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "281.0", + "duration": "89.0", "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "81.0", + "duration": "87.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "48.0", "name": "v8.browsing_mobile/browse:social:twitter" }, { - "duration": "143.0", + "duration": "62.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "237.0", + "duration": "86.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "68.0", + "duration": "41.0", "name": "v8.browsing_mobile/browse:tools:maps" }, { @@ -3512,7 +4144,7 @@ "name": "wasm/AsmJsZenGarden" }, { - "duration": "20.0", + "duration": "16.0", "name": "wasm/WasmSpaceBuggy" }, { @@ -3520,47 +4152,47 @@ "name": "wasm/WasmStylizedRenderer" }, { - "duration": "9.0", + "duration": "10.0", "name": "wasm/WasmSunTemple" }, { - "duration": "16.0", + "duration": "18.0", "name": "wasm/WasmTanks" }, { - "duration": "8.0", + "duration": "10.0", "name": "wasm/WasmZenGarden" }, { - "duration": "20.0", + "duration": "15.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "25.0", + "duration": "17.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "35.0", + "duration": "26.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "35.0", + "duration": "26.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "35.0", + "duration": "26.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "22.0", + "duration": "16.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "43.0", + "duration": "28.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "65.0", + "duration": "35.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json index 86ce2b4..fa9f207 100644 --- a/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android_nexus5_perf_timing.json
@@ -1,110 +1,114 @@ [ { - "duration": "31.0", + "duration": "45.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "27.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "22.0", + "duration": "36.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "17.0", + "duration": "21.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "15.0", + "duration": "21.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "38.0", + "duration": "39.0", "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "74.0", + "duration": "52.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "148.0", + "duration": "104.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "14.0", + "duration": "19.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "14.0", + "duration": "19.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "131.0", + "duration": "82.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.bindings/node-type.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.bindings/post-message.html" }, { - "duration": "14.0", + "duration": "19.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "17.0", + "duration": "19.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.bindings/serialize-map.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.bindings/serialize-nested-array.html" }, { @@ -112,247 +116,395 @@ "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "14.0", + "duration": "19.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "15.0", + "duration": "21.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { + "duration": "12.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { "duration": "23.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "142.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "142.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "142.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "63.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "62.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "64.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "36.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { - "duration": "51.0", + "duration": "20.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "41.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "23.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "20.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "55.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "14.0", - "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" - }, - { - "duration": "12.0", - "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" - }, - { - "duration": "15.0", - "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { "duration": "18.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "17.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "18.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "22.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { - "duration": "19.0", + "duration": "22.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "22.0", "name": "blink_perf.canvas/drawimage.html" }, { "duration": "23.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "23.0", "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { - "duration": "55.0", - "name": "blink_perf.canvas/putImageData.html" + "duration": "21.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" }, { - "duration": "15.0", - "name": "blink_perf.canvas/toBlob_duration.html" - }, - { - "duration": "16.0", - "name": "blink_perf.canvas/toBlob_duration_jpeg.html" - }, - { - "duration": "9.0", - "name": "blink_perf.canvas/transferFromImageBitmap.html" - }, - { - "duration": "25.0", - "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" - }, - { - "duration": "17.0", - "name": "blink_perf.canvas/upload-video-to-sub-texture.html" - }, - { - "duration": "9.0", - "name": "blink_perf.canvas/upload-video-to-texture.html" - }, - { - "duration": "24.0", - "name": "blink_perf.canvas/upload-webgl-to-texture.html" - }, - { - "duration": "32.0", - "name": "blink_perf.css/AttributeDescendantSelector.html" - }, - { - "duration": "16.0", - "name": "blink_perf.css/CSSPropertySetterGetter.html" - }, - { - "duration": "16.0", - "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" - }, - { - "duration": "17.0", - "name": "blink_perf.css/CSSPropertyUpdateValue.html" + "duration": "23.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" }, { "duration": "12.0", - "name": "blink_perf.css/ChangeStyleChildClassSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleElementSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" - }, - { - "duration": "15.0", - "name": "blink_perf.css/ChangeStyleShallowTree.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleUniversalSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" - }, - { - "duration": "12.0", - "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" - }, - { - "duration": "32.0", - "name": "blink_perf.css/ClassDescendantSelector.html" - }, - { - "duration": "24.0", - "name": "blink_perf.css/ClassInvalidation.html" - }, - { - "duration": "26.0", - "name": "blink_perf.css/CustomPropertiesCascade.html" - }, - { - "duration": "13.0", - "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" - }, - { - "duration": "13.0", - "name": "blink_perf.css/CustomPropertiesRootInheritance.html" - }, - { - "duration": "10.0", - "name": "blink_perf.css/CustomPropertiesVarAlias.html" - }, - { - "duration": "22.0", - "name": "blink_perf.css/FocusUpdate.html" + "name": "blink_perf.canvas/gpu-bound-shader.html" }, { "duration": "14.0", - "name": "blink_perf.css/LoadBootstrapBlog.html" + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" }, { - "duration": "15.0", - "name": "blink_perf.css/LoadMaterializeStarterPage.html" + "duration": "23.0", + "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "17.0", - "name": "blink_perf.css/LoadSemanticPageExample.html" + "duration": "23.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "41.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "38.0", + "name": "blink_perf.canvas/toBlob_duration.html" + }, + { + "duration": "38.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "35.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + }, + { + "duration": "35.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" }, { "duration": "18.0", - "name": "blink_perf.css/PseudoClassSelectors.html" + "name": "blink_perf.canvas/transferFromImageBitmap.html" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { + "duration": "29.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" + }, + { + "duration": "41.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "23.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "30.0", + "name": "blink_perf.canvas/upload-video-to-texture.html" }, { "duration": "16.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { + "duration": "29.0", + "name": "blink_perf.canvas/upload-webgl-to-texture.html" + }, + { + "duration": "37.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "47.0", + "name": "blink_perf.css/AttributeDescendantSelector.html" + }, + { + "duration": "21.0", + "name": "blink_perf.css/CSSPropertySetterGetter.html" + }, + { + "duration": "22.0", + "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" + }, + { + "duration": "22.0", + "name": "blink_perf.css/CSSPropertyUpdateValue.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleChildClassSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleElementSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/ChangeStyleShallowTree.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" + }, + { + "duration": "17.0", + "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleUniversalSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" + }, + { + "duration": "18.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "31.0", + "name": "blink_perf.css/ClassDescendantSelector.html" + }, + { + "duration": "25.0", + "name": "blink_perf.css/ClassInvalidation.html" + }, + { + "duration": "27.0", + "name": "blink_perf.css/CustomPropertiesCascade.html" + }, + { + "duration": "17.0", + "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" + }, + { + "duration": "16.0", + "name": "blink_perf.css/CustomPropertiesRootInheritance.html" + }, + { + "duration": "14.0", + "name": "blink_perf.css/CustomPropertiesVarAlias.html" + }, + { + "duration": "23.0", + "name": "blink_perf.css/FocusUpdate.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/LoadBootstrapBlog.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/LoadMaterializeStarterPage.html" + }, + { + "duration": "21.0", + "name": "blink_perf.css/LoadSemanticPageExample.html" + }, + { + "duration": "23.0", + "name": "blink_perf.css/PseudoClassSelectors.html" + }, + { + "duration": "42.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "57.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "104.0", + "duration": "114.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { @@ -360,231 +512,231 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "10.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "29.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "28.0", + "duration": "64.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "25.0", + "duration": "27.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "18.0", + "duration": "21.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "10.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "10.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "18.0", + "duration": "21.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "15.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "34.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "30.0", + "duration": "33.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "20.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "duration": "23.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "65.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "25.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "86.0", - "name": "blink_perf.events/hit-test-lots-of-layers.html" - }, - { - "duration": "48.0", - "name": "blink_perf.image_decoder/decode-gif.html" - }, - { - "duration": "21.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "54.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" - }, - { - "duration": "18.0", - "name": "blink_perf.image_decoder/decode-lossy-webp.html" - }, - { - "duration": "28.0", - "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" - }, - { - "duration": "19.0", - "name": "blink_perf.image_decoder/decode-png-palette.html" - }, - { - "duration": "40.0", - "name": "blink_perf.image_decoder/decode-png.html" - }, - { - "duration": "26.0", - "name": "blink_perf.layout/ArabicLineLayout.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/Shapes/MultipleShapes.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/SimpleTextPathLineLayout.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/add-remove-inline-floats.html" - }, - { - "duration": "18.0", - "name": "blink_perf.layout/attach-inlines-2.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/attach-inlines.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/auto-grid-lots-of-data.html" - }, - { - "duration": "31.0", - "name": "blink_perf.layout/change-text-css-contain.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/chapter-reflow-once-random.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/chapter-reflow-once.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/chapter-reflow-thrice.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/chapter-reflow-twice.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/chapter-reflow.html" - }, - { - "duration": "12.0", - "name": "blink_perf.layout/character_fallback.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/character_fallback_aat.html" - }, - { - "duration": "20.0", - "name": "blink_perf.layout/fixed-grid-lots-of-data.html" - }, - { - "duration": "20.0", - "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-column-nowrap.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-column-wrap.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" - }, - { - "duration": "20.0", - "name": "blink_perf.layout/flexbox-lots-of-data.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-row-nowrap.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-row-wrap.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/flexbox-with-stretch-layout.html" - }, - { - "duration": "71.0", - "name": "blink_perf.layout/floats_100_100.html" - }, - { - "duration": "72.0", - "name": "blink_perf.layout/floats_100_100_nested.html" - }, - { - "duration": "45.0", - "name": "blink_perf.layout/floats_10_1000.html" + "duration": "61.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" }, { "duration": "59.0", - "name": "blink_perf.layout/floats_20_100.html" + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "34.0", - "name": "blink_perf.layout/floats_20_100_nested.html" + "duration": "88.0", + "name": "blink_perf.events/hit-test-lots-of-layers.html" + }, + { + "duration": "24.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "23.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "58.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "25.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "56.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "23.0", + "name": "blink_perf.image_decoder/decode-lossy-webp.html" + }, + { + "duration": "33.0", + "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" + }, + { + "duration": "24.0", + "name": "blink_perf.image_decoder/decode-png-palette.html" + }, + { + "duration": "45.0", + "name": "blink_perf.image_decoder/decode-png.html" + }, + { + "duration": "37.0", + "name": "blink_perf.layout/ArabicLineLayout.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { "duration": "18.0", - "name": "blink_perf.layout/floats_2_100.html" + "name": "blink_perf.layout/SimpleTextPathLineLayout.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/add-remove-inline-floats.html" + }, + { + "duration": "23.0", + "name": "blink_perf.layout/attach-inlines-2.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/attach-inlines.html" }, { "duration": "21.0", + "name": "blink_perf.layout/auto-grid-lots-of-data.html" + }, + { + "duration": "32.0", + "name": "blink_perf.layout/change-text-css-contain.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/chapter-reflow-once-random.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/chapter-reflow-once.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/chapter-reflow-thrice.html" + }, + { + "duration": "18.0", + "name": "blink_perf.layout/chapter-reflow-twice.html" + }, + { + "duration": "19.0", + "name": "blink_perf.layout/chapter-reflow.html" + }, + { + "duration": "25.0", + "name": "blink_perf.layout/character_fallback.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/character_fallback_aat.html" + }, + { + "duration": "66.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "33.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "21.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "25.0", + "name": "blink_perf.layout/fixed-grid-lots-of-data.html" + }, + { + "duration": "24.0", + "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" + }, + { + "duration": "21.0", + "name": "blink_perf.layout/flexbox-column-nowrap.html" + }, + { + "duration": "21.0", + "name": "blink_perf.layout/flexbox-column-wrap.html" + }, + { + "duration": "21.0", + "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" + }, + { + "duration": "25.0", + "name": "blink_perf.layout/flexbox-lots-of-data.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/flexbox-row-nowrap.html" + }, + { + "duration": "33.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/flexbox-row-wrap.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/flexbox-with-stretch-layout.html" + }, + { + "duration": "55.0", + "name": "blink_perf.layout/floats_100_100.html" + }, + { + "duration": "55.0", + "name": "blink_perf.layout/floats_100_100_nested.html" + }, + { + "duration": "46.0", + "name": "blink_perf.layout/floats_10_1000.html" + }, + { + "duration": "30.0", + "name": "blink_perf.layout/floats_20_100.html" + }, + { + "duration": "36.0", + "name": "blink_perf.layout/floats_20_100_nested.html" + }, + { + "duration": "22.0", + "name": "blink_perf.layout/floats_2_100.html" + }, + { + "duration": "25.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { @@ -592,207 +744,231 @@ "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "34.0", + "duration": "35.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "17.0", + "duration": "22.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "15.0", + "duration": "20.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "64.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "19.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "70.0", + "duration": "66.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "70.0", + "duration": "65.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "69.0", + "duration": "82.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "218.0", + "duration": "203.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "37.0", + "duration": "39.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "71.0", + "duration": "20.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "35.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "67.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "17.0", + "duration": "21.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "16.0", + "duration": "21.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "16.0", + "duration": "21.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "23.0", + "duration": "27.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "17.0", - "name": "blink_perf.layout/multicol/deeply-nested-tables.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" - }, - { - "duration": "16.0", - "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/multicol/tall-content-short-columns.html" - }, - { - "duration": "18.0", - "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/nested-grid.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/nested-percent-height-tables.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" - }, - { - "duration": "18.0", - "name": "blink_perf.layout/word-break-break-all.html" - }, - { - "duration": "18.0", - "name": "blink_perf.layout/word-break-break-word.html" - }, - { - "duration": "18.0", - "name": "blink_perf.layout/word-wrap-break-word.html" - }, - { - "duration": "30.0", - "name": "blink_perf.owp_storage/blob-perf-files.html" - }, - { - "duration": "27.0", - "name": "blink_perf.owp_storage/blob-perf-ipc.html" + "duration": "20.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { "duration": "19.0", - "name": "blink_perf.owp_storage/blob-perf-shm.html" - }, - { - "duration": "26.0", - "name": "blink_perf.owp_storage/blob-perf-tiny.html" - }, - { - "duration": "26.0", - "name": "blink_perf.owp_storage/idb-load-docs.html" + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { "duration": "23.0", - "name": "blink_perf.parser/css-parser-yui.html" + "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "90.0", - "name": "blink_perf.parser/html-parser-threaded.html" + "duration": "20.0", + "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "114.0", - "name": "blink_perf.parser/html-parser.html" + "duration": "22.0", + "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "316.0", - "name": "blink_perf.parser/html5-full-render.html" + "duration": "21.0", + "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "15.0", - "name": "blink_perf.parser/iframe-append-remove.html" + "duration": "22.0", + "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "17.0", - "name": "blink_perf.parser/innerHTML-setter-siblings.html" - }, - { - "duration": "15.0", - "name": "blink_perf.parser/innerHTML-setter.html" - }, - { - "duration": "16.0", - "name": "blink_perf.parser/query-selector-all-attribute-complex.html" - }, - { - "duration": "16.0", - "name": "blink_perf.parser/query-selector-all-attribute.html" - }, - { - "duration": "16.0", - "name": "blink_perf.parser/query-selector-all-class-deep.html" + "duration": "21.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { "duration": "19.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns.html" + }, + { + "duration": "22.0", + "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/nested-grid.html" + }, + { + "duration": "20.0", + "name": "blink_perf.layout/nested-percent-height-tables.html" + }, + { + "duration": "21.0", + "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" + }, + { + "duration": "24.0", + "name": "blink_perf.layout/word-break-break-all.html" + }, + { + "duration": "22.0", + "name": "blink_perf.layout/word-break-break-word.html" + }, + { + "duration": "23.0", + "name": "blink_perf.layout/word-wrap-break-word.html" + }, + { + "duration": "43.0", + "name": "blink_perf.owp_storage/blob-perf-files.html" + }, + { + "duration": "28.0", + "name": "blink_perf.owp_storage/blob-perf-ipc.html" + }, + { + "duration": "22.0", + "name": "blink_perf.owp_storage/blob-perf-shm.html" + }, + { + "duration": "28.0", + "name": "blink_perf.owp_storage/blob-perf-tiny.html" + }, + { + "duration": "29.0", + "name": "blink_perf.owp_storage/idb-load-docs.html" + }, + { + "duration": "38.0", + "name": "blink_perf.parser/css-parser-yui.html" + }, + { + "duration": "50.0", + "name": "blink_perf.parser/html-parser-threaded.html" + }, + { + "duration": "82.0", + "name": "blink_perf.parser/html-parser.html" + }, + { + "duration": "339.0", + "name": "blink_perf.parser/html5-full-render.html" + }, + { + "duration": "18.0", + "name": "blink_perf.parser/iframe-append-remove.html" + }, + { + "duration": "22.0", + "name": "blink_perf.parser/innerHTML-setter-siblings.html" + }, + { + "duration": "19.0", + "name": "blink_perf.parser/innerHTML-setter.html" + }, + { + "duration": "18.0", + "name": "blink_perf.parser/query-selector-all-attribute-complex.html" + }, + { + "duration": "18.0", + "name": "blink_perf.parser/query-selector-all-attribute.html" + }, + { + "duration": "20.0", + "name": "blink_perf.parser/query-selector-all-class-deep.html" + }, + { + "duration": "21.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { - "duration": "17.0", + "duration": "21.0", "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "15.0", + "duration": "20.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { @@ -800,7 +976,7 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "19.0", + "duration": "22.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -808,203 +984,203 @@ "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "17.0", + "duration": "21.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "19.0", + "duration": "24.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "22.0", + "duration": "28.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "37.0", + "duration": "34.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "51.0", + "duration": "49.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "16.0", + "duration": "28.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/imperative-api.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html" }, { - "duration": "47.0", + "duration": "43.0", "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html" }, { - "duration": "55.0", + "duration": "52.0", "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "92.0", + "duration": "46.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-distribution.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "91.0", + "duration": "46.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "294.0", + "duration": "207.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { @@ -1012,143 +1188,135 @@ "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "18.0", + "duration": "29.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "24.0", + "duration": "26.0", "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.svg/Cactus.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/CrawFishGanson.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.svg/Debian.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/FlowerFromMyGarden.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.svg/France.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/HarveyRayner.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/HereGear.html" }, { - "duration": "28.0", + "duration": "29.0", "name": "blink_perf.svg/MtSaintHelens.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.svg/Samurai.html" }, { - "duration": "308.0", - "name": "blink_perf.svg/SierpinskiCarpet.html" - }, - { - "duration": "23.0", + "duration": "18.0", "name": "blink_perf.svg/SvgCubics.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.svg/SvgHitTesting.html" }, { - "duration": "17.0", + "duration": "21.0", "name": "blink_perf.svg/SvgNestedUse.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.svg/UnderTheSee.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "24.0", + "duration": "26.0", "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "48.0", + "duration": "61.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { - "duration": "42.0", + "duration": "45.0", "name": "dromaeo/http://dromaeo.com?dom-modify" }, { - "duration": "56.0", + "duration": "59.0", "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "35.0", + "duration": "40.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "22.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { - "duration": "20.0", + "duration": "26.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "13.0", + "duration": "25.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "650.0", + "duration": "653.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "175.0", + "duration": "190.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { @@ -1156,179 +1324,175 @@ "name": "loading.mobile/58Pic" }, { - "duration": "63.0", + "duration": "45.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "36.0", + "duration": "26.0", "name": "loading.mobile/Amazon" }, { - "duration": "175.0", + "duration": "96.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "31.0", + "duration": "29.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "286.0", + "duration": "137.0", "name": "loading.mobile/BOLNoticias_3g" }, { - "duration": "27.0", + "duration": "29.0", "name": "loading.mobile/Baidu" }, { - "duration": "190.0", + "duration": "88.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "27.0", + "duration": "25.0", "name": "loading.mobile/Bradesco" }, { - "duration": "26.0", + "duration": "28.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "34.0", + "duration": "31.0", "name": "loading.mobile/Dawn" }, { - "duration": "21.0", + "duration": "23.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "124.0", + "duration": "55.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "30.0", + "duration": "28.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "33.0", + "duration": "37.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "25.0", + "duration": "26.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "36.0", + "duration": "26.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "32.0", + "duration": "29.0", "name": "loading.mobile/Dramaq" }, { - "duration": "275.0", + "duration": "178.0", "name": "loading.mobile/Dramaq_3g" }, { - "duration": "21.0", + "duration": "22.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "125.0", + "duration": "44.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "27.0", + "duration": "28.0", "name": "loading.mobile/Facebook" }, { - "duration": "261.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "25.0", + "duration": "23.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "38.0", + "duration": "34.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "54.0", + "duration": "41.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "30.0", + "duration": "26.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "51.0", + "duration": "38.0", "name": "loading.mobile/FlipBoard_warm_3g" }, { - "duration": "33.0", + "duration": "29.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "59.0", + "duration": "41.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "59.0", + "duration": "43.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "44.0", + "duration": "35.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "23.0", + "duration": "22.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "98.0", + "duration": "65.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "40.0", + "duration": "38.0", "name": "loading.mobile/GSShop" }, { - "duration": "19.0", + "duration": "21.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "22.0", + "duration": "23.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "19.0", + "duration": "20.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "24.0", + "duration": "31.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "27.0", + "duration": "24.0", "name": "loading.mobile/Hongkiat" }, { - "duration": "32.0", + "duration": "30.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "42.0", + "duration": "43.0", "name": "loading.mobile/Kaskus" }, { - "duration": "26.0", + "duration": "31.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "20.0", + "duration": "19.0", "name": "loading.mobile/Locanto" }, { - "duration": "43.0", + "duration": "33.0", "name": "loading.mobile/Locanto_3g" }, { @@ -1336,31 +1500,31 @@ "name": "loading.mobile/OLX" }, { - "duration": "208.0", + "duration": "76.0", "name": "loading.mobile/OLX_3g" }, { - "duration": "22.0", + "duration": "27.0", "name": "loading.mobile/QQNews" }, { - "duration": "186.0", + "duration": "78.0", "name": "loading.mobile/QQNews_3g" }, { - "duration": "23.0", + "duration": "22.0", "name": "loading.mobile/SlideShare" }, { - "duration": "103.0", + "duration": "76.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "20.0", + "duration": "22.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "34.0", + "duration": "25.0", "name": "loading.mobile/Suumo_cold_3g" }, { @@ -1368,7 +1532,7 @@ "name": "loading.mobile/Suumo_hot" }, { - "duration": "31.0", + "duration": "28.0", "name": "loading.mobile/Suumo_hot_3g" }, { @@ -1376,215 +1540,191 @@ "name": "loading.mobile/Suumo_warm" }, { - "duration": "28.0", + "duration": "25.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "28.0", + "duration": "25.0", "name": "loading.mobile/Thairath" }, { - "duration": "41.0", + "duration": "35.0", "name": "loading.mobile/TheStar" }, { - "duration": "38.0", + "duration": "42.0", "name": "loading.mobile/TribunNews" }, { - "duration": "202.0", - "name": "loading.mobile/TribunNews_3g" - }, - { - "duration": "21.0", + "duration": "20.0", "name": "loading.mobile/Twitter" }, { - "duration": "109.0", + "duration": "42.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "24.0", + "duration": "25.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "124.0", + "duration": "49.0", "name": "loading.mobile/VoiceMemos_cold_3g" }, { - "duration": "34.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "38.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "28.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "33.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "19.0", + "duration": "21.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "202.0", + "duration": "76.0", "name": "loading.mobile/Wikipedia_3g" }, { - "duration": "33.0", + "duration": "31.0", "name": "loading.mobile/YahooNews" }, { - "duration": "20.0", + "duration": "21.0", "name": "loading.mobile/Youtube" }, { - "duration": "298.0", + "duration": "175.0", "name": "loading.mobile/Youtube_3g" }, { - "duration": "27.0", + "duration": "31.0", "name": "media.mobile/mse.html?media=aac_audio.mp4" }, { - "duration": "35.0", + "duration": "40.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "35.0", + "duration": "41.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "30.0", + "duration": "33.0", "name": "media.mobile/mse.html?media=h264_video.mp4" }, { - "duration": "56.0", + "duration": "41.0", "name": "media.mobile/video.html?src=crowd.ogg&type=audio" }, { - "duration": "29.0", + "duration": "32.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm" }, { - "duration": "21.0", + "duration": "24.0", "name": "media.mobile/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "28.0", + "duration": "31.0", "name": "media.mobile/video.html?src=crowd720_vp9.webm" }, { - "duration": "35.0", + "duration": "37.0", "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "35.0", + "duration": "37.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "17.0", + "duration": "20.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "40.0", + "duration": "43.0", "name": "media.mobile/video.html?src=tulip2.mp4" }, { - "duration": "40.0", + "duration": "43.0", "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "21.0", + "duration": "25.0", "name": "media.mobile/video.html?src=tulip2.mp4&seek" }, { - "duration": "35.0", + "duration": "38.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "17.0", + "duration": "19.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "40.0", + "duration": "45.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "33.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "30.0", + "duration": "33.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "44.0", + "duration": "47.0", + "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "37.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio" }, { - "duration": "17.0", + "duration": "20.0", "name": "media.mobile/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "292.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "273.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "31.0", + "duration": "32.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "27.0", + "duration": "28.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { @@ -1596,11 +1736,11 @@ "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "28.0", + "duration": "29.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "29.0", + "duration": "33.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { @@ -1616,295 +1756,267 @@ "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "29.0", + "duration": "32.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "134.0", + "duration": "144.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "22.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "62.0", + "duration": "67.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "64.0", + "duration": "70.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { - "duration": "56.0", + "duration": "61.0", "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "65.0", + "duration": "78.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "61.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "63.0", + "duration": "68.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "56.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { - "duration": "58.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "66.0", + "duration": "71.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { - "duration": "62.0", + "duration": "67.0", "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "28.0", + "duration": "46.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "48.0", + "duration": "67.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { - "duration": "22.0", + "duration": "29.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "50.0", + "duration": "69.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "30.0", + "duration": "39.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { - "duration": "20.0", + "duration": "27.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "44.0", + "duration": "72.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "40.0", + "duration": "63.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "57.0", + "duration": "95.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "64.0", + "duration": "101.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "41.0", + "duration": "70.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "30.0", + "duration": "38.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { - "duration": "57.0", + "duration": "91.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "46.0", + "duration": "63.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "34.0", + "duration": "54.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "14.0", + "duration": "21.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "50.0", + "duration": "48.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "55.0", + "duration": "89.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "27.0", + "duration": "36.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "23.0", + "duration": "31.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "36.0", + "duration": "58.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "45.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" - }, - { - "duration": "102.0", + "duration": "119.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "63.0", + "duration": "85.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "73.0", + "duration": "61.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "59.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "66.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "37.0", + "duration": "38.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "30.0", - "name": "rendering.mobile/amazon_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "67.0", + "duration": "56.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "63.0", - "name": "rendering.mobile/androidpolice_mobile_sync_scroll_2018" + "duration": "36.0", + "name": "rendering.mobile/animometer_webgl" }, { - "duration": "34.0", - "name": "rendering.mobile/animometer_webgl" + "duration": "29.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" + }, + { + "duration": "26.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" }, { "duration": "47.0", "name": "rendering.mobile/aquarium" }, { - "duration": "43.0", + "duration": "45.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "33.0", + "duration": "35.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "35.0", + "duration": "31.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/baidu_mobile_sync_scroll_2018" - }, - { - "duration": "36.0", + "duration": "39.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "33.0", + "duration": "36.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "60.0", + "duration": "51.0", "name": "rendering.mobile/balls_svg_animations" }, { "duration": "39.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "35.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/bing_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/blob" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/blogspot_2018" }, { "duration": "28.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/blogspot_mobile_sync_scroll_2018" + "duration": "38.0", + "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "41.0", + "duration": "38.0", "name": "rendering.mobile/booking.com_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "27.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/booking.com_mobile_sync_scroll_2018" - }, - { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_balls_15" }, { @@ -1912,207 +2024,139 @@ "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "38.0", + "duration": "40.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "47.0", + "duration": "34.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "35.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "33.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { "duration": "34.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "33.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "26.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "56.0", + "duration": "46.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "83.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_sync_scroll_2018" - }, - { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "28.0", + "duration": "30.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "27.0", + "duration": "30.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/card_flying" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/cats_unscaled" }, { - "duration": "17.0", + "duration": "21.0", "name": "rendering.mobile/cats_viewport_width" }, { - "duration": "37.0", + "duration": "38.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "33.0", - "name": "rendering.mobile/cc_scroll_200_layer_grid" - }, - { - "duration": "34.0", + "duration": "37.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/cnn_2018" }, { - "duration": "64.0", + "duration": "47.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "57.0", - "name": "rendering.mobile/cnn_article_mobile_sync_scroll_2018" - }, - { - "duration": "37.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "40.0", + "duration": "43.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "42.0", - "name": "rendering.mobile/cnn_mobile_sync_scroll_2018" + "duration": "60.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "38.0", + "duration": "40.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/coordinated_animation" }, { @@ -2124,23 +2168,23 @@ "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "34.0", + "duration": "35.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { @@ -2168,7 +2212,7 @@ "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "34.0", + "duration": "35.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { @@ -2180,7 +2224,7 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { @@ -2188,7 +2232,7 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/css_transitions_inline_style" }, { @@ -2196,19 +2240,19 @@ "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "33.0", + "duration": "35.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "34.0", + "duration": "35.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "33.0", + "duration": "35.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "34.0", + "duration": "35.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { @@ -2232,43 +2276,43 @@ "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "33.0", + "duration": "45.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "28.0", + "duration": "31.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "30.0", + "duration": "33.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "30.0", + "duration": "33.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { @@ -2276,19 +2320,11 @@ "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "44.0", - "name": "rendering.mobile/deviantart_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/digg_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "35.0", "name": "rendering.mobile/dynamic_cube_map" }, { @@ -2296,71 +2332,51 @@ "name": "rendering.mobile/earth" }, { - "duration": "37.0", + "duration": "34.0", "name": "rendering.mobile/ebay_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", + "duration": "27.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/ebay_mobile_sync_scroll_2018" + "duration": "39.0", + "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "44.0", + "duration": "42.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/effect_games" }, { - "duration": "44.0", + "duration": "46.0", "name": "rendering.mobile/espn_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "46.0", - "name": "rendering.mobile/espn_mobile_2018" - }, - { "duration": "37.0", - "name": "rendering.mobile/espn_mobile_sync_scroll_2018" + "name": "rendering.mobile/espn_mobile_2018" }, { "duration": "35.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "31.0", + "duration": "34.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/facebook_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "45.0", + "duration": "40.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/facebook_mobile_sync_scroll_2018" - }, - { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/fill_shapes" }, { @@ -2368,104 +2384,64 @@ "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "41.0", + "duration": "43.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "32.0", + "duration": "28.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/forecast.io_mobile_sync_scroll_2018" - }, - { - "duration": "37.0", + "duration": "31.0", "name": "rendering.mobile/gmail_2018" }, { "duration": "33.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", "name": "rendering.mobile/google_calendar_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "40.0", + "duration": "45.0", "name": "rendering.mobile/google_docs_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", + "duration": "34.0", "name": "rendering.mobile/google_image_search_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "34.0", + "duration": "35.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/google_image_search_mobile_sync_scroll_2018" - }, - { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "44.0", + "duration": "37.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/google_news_mobile_sync_scroll_2018" - }, - { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/google_plus_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "43.0", + "duration": "40.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { "duration": "35.0", - "name": "rendering.mobile/google_plus_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/google_web_search_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/google_web_search_mobile_2018" + "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { "duration": "30.0", - "name": "rendering.mobile/google_web_search_mobile_sync_scroll_2018" + "name": "rendering.mobile/google_web_search_2018" + }, + { + "duration": "33.0", + "name": "rendering.mobile/google_web_search_mobile_2018" }, { "duration": "39.0", @@ -2473,10 +2449,6 @@ }, { "duration": "39.0", - "name": "rendering.mobile/gsp.ro_mobile_sync_scroll_2018" - }, - { - "duration": "41.0", "name": "rendering.mobile/guardian_pathological_2018" }, { @@ -2484,11 +2456,11 @@ "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/gws_google_expansion" }, { @@ -2496,35 +2468,35 @@ "name": "rendering.mobile/hakim" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "44.0", + "duration": "58.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "37.0", + "duration": "41.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "45.0", + "duration": "46.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "45.0", + "duration": "46.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "116.0", + "duration": "118.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "46.0", + "duration": "47.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "44.0", + "duration": "46.0", "name": "rendering.mobile/ie_chalkboard" }, { @@ -2532,63 +2504,75 @@ "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "34.0", + "duration": "36.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" + }, + { + "duration": "37.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" + }, + { + "duration": "36.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "36.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "34.0", + "duration": "37.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "50.0", + "duration": "36.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "52.0", + "duration": "56.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "42.0", + "duration": "38.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "42.0", + "duration": "39.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "40.0", + "duration": "38.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "44.0", + "duration": "41.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "44.0", + "duration": "41.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "40.0", + "duration": "39.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { @@ -2596,15 +2580,11 @@ "name": "rendering.mobile/js_poster_circle" }, { - "duration": "35.0", - "name": "rendering.mobile/js_scroll_200_layer_grid" - }, - { - "duration": "35.0", + "duration": "24.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/kevs_3d" }, { @@ -2612,39 +2592,35 @@ "name": "rendering.mobile/keyframed_animations" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "54.0", + "duration": "40.0", "name": "rendering.mobile/linkedin_2018" }, { - "duration": "50.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "70.0", + "duration": "75.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "63.0", - "name": "rendering.mobile/linkedin_mobile_sync_scroll_2018" + "duration": "68.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "43.0", + "duration": "57.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/list_recycle_transform" }, { @@ -2652,107 +2628,191 @@ "name": "rendering.mobile/man_in_blue" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/many_images" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "55.0", + "duration": "45.0", "name": "rendering.mobile/maps_perf_test" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "35.0", + "duration": "32.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "36.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "29.0", + "duration": "34.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "35.0", - "name": "rendering.mobile/microsoft_fireflies" + "duration": "29.0", + "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "27.0", - "name": "rendering.mobile/microsoft_fish_ie_tank" + "duration": "37.0", + "name": "rendering.mobile/microsoft_performance" }, { "duration": "28.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "30.0", + "duration": "36.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "67.0", + "duration": "51.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "59.0", - "name": "rendering.mobile/mlb_mobile_sync_scroll_2018" - }, - { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "29.0", + "duration": "33.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "29.0", - "name": "rendering.mobile/motion_mark_focus" + "duration": "31.0", + "name": "rendering.mobile/motionmark_anim_design_15" }, { - "duration": "44.0", + "duration": "28.0", + "name": "rendering.mobile/motionmark_anim_focus_25" + }, + { + "duration": "32.0", + "name": "rendering.mobile/motionmark_anim_images_50" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_anim_leaves_250" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_anim_multiply_175" + }, + { + "duration": "32.0", + "name": "rendering.mobile/motionmark_anim_suits_125" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_html_composited_transforms_125" + }, + { + "duration": "29.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" + }, + { + "duration": "30.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" + }, + { + "duration": "30.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" + }, + { + "duration": "29.0", + "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" + }, + { + "duration": "28.0", + "name": "rendering.mobile/motionmark_html_focus_20_15" + }, + { + "duration": "32.0", + "name": "rendering.mobile/motionmark_html_leaves_20_50" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" + }, + { + "duration": "30.0", + "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" + }, + { + "duration": "34.0", + "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" + }, + { + "duration": "43.0", "name": "rendering.mobile/new_tilings" }, { @@ -2760,15 +2820,15 @@ "name": "rendering.mobile/no_op_raf" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/no_op_touch_handler" }, { @@ -2780,11 +2840,11 @@ "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "59.0", + "duration": "51.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "54.0", + "duration": "51.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { @@ -2792,123 +2852,115 @@ "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "29.0", + "duration": "33.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "28.0", + "duration": "31.0", "name": "rendering.mobile/particles" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "32.0", + "duration": "43.0", "name": "rendering.mobile/pinterest_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/pinterest_mobile_sync_scroll_2018" - }, - { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/raf" }, { - "duration": "31.0", + "duration": "34.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "31.0", + "duration": "34.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "44.0", + "duration": "41.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "27.0", + "duration": "36.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/runway" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "48.0", + "duration": "42.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { "duration": "40.0", - "name": "rendering.mobile/sfgate_mobile_sync_scroll_2018" - }, - { - "duration": "40.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "50.0", + "duration": "41.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "36.0", + "duration": "37.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "34.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/sticky_using_webkit" }, { @@ -2916,15 +2968,19 @@ "name": "rendering.mobile/stress_hidey_bars" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "27.0", + "duration": "21.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "30.0", "name": "rendering.mobile/swipe_to_dismiss" }, { @@ -2932,283 +2988,111 @@ "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "51.0", + "duration": "43.0", "name": "rendering.mobile/techcrunch_2018" }, { - "duration": "45.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "52.0", + "duration": "43.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "44.0", - "name": "rendering.mobile/techcrunch_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "29.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "30.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { "duration": "30.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { "duration": "26.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "26.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "33.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { "duration": "33.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "28.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "30.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "27.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "43.0", + "duration": "42.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "44.0", - "name": "rendering.mobile/theverge_article_mobile_sync_scroll_2018" - }, - { - "duration": "52.0", + "duration": "43.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "45.0", - "name": "rendering.mobile/theverge_mobile_sync_scroll_2018" - }, - { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/toggle_drawer" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/touch_handler_scrolling" }, { @@ -3220,55 +3104,43 @@ "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "49.0", + "duration": "41.0", "name": "rendering.mobile/twitch_2018" }, { - "duration": "42.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" + "duration": "52.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { "duration": "48.0", "name": "rendering.mobile/twitter_2018" }, { - "duration": "46.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/twitter_mobile_sync_scroll_2018" - }, - { "duration": "30.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "29.0", + "duration": "34.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { "duration": "30.0", - "name": "rendering.mobile/usatoday_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { @@ -3276,31 +3148,31 @@ "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "52.0", + "duration": "32.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/web_animations_simultaneous" }, { @@ -3308,299 +3180,187 @@ "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "50.0", + "duration": "46.0", "name": "rendering.mobile/wikipedia_2018" }, { - "duration": "46.0", + "duration": "42.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "39.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_sync_scroll_2018" - }, - { - "duration": "44.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "38.0", + "duration": "41.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/wikipedia_mobile_sync_scroll_2018" - }, - { - "duration": "44.0", + "duration": "39.0", "name": "rendering.mobile/wordpress_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "45.0", + "duration": "37.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/wordpress_mobile_sync_scroll_2018" - }, - { - "duration": "39.0", + "duration": "41.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/worldjournal_mobile_sync_scroll_2018" - }, - { - "duration": "54.0", + "duration": "47.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "80.0", + "duration": "66.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "71.0", - "name": "rendering.mobile/wowwiki_mobile_sync_scroll_2018" - }, - { - "duration": "53.0", + "duration": "46.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "47.0", - "name": "rendering.mobile/wsj_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "28.0", "name": "rendering.mobile/yahoo_answers_2018" }, { "duration": "27.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { - "duration": "23.0", - "name": "rendering.mobile/yahoo_answers_mobile_sync_scroll_2018" - }, - { - "duration": "40.0", - "name": "rendering.mobile/yahoo_news_2018" - }, - { - "duration": "35.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "42.0", + "duration": "28.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "36.0", - "name": "rendering.mobile/yahoo_news_mobile_sync_scroll_2018" - }, - { - "duration": "42.0", + "duration": "41.0", "name": "rendering.mobile/yahoo_sports_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "24.0", + "duration": "30.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/youtube_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { "duration": "26.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "18.0", - "name": "rendering.mobile/youtube_mobile_sync_scroll_2018" - }, - { - "duration": "49.0", + "duration": "60.0", "name": "rendering.mobile/yuv_decoding" }, { - "duration": "50.0", + "duration": "60.0", "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "52.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "35.0", + "duration": "49.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "25.0", + "duration": "32.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "33.0", + "duration": "42.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "35.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "37.0", + "duration": "45.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "36.0", + "duration": "49.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "66.0", + "duration": "79.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "42.0", + "duration": "43.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "25.0", + "duration": "32.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "37.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "47.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "39.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "34.0", + "duration": "46.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "37.0", + "duration": "59.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "41.0", + "duration": "52.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "35.0", + "duration": "53.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "52.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "37.0", + "duration": "48.0", "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "25.0", + "duration": "30.0", "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "36.0", + "duration": "40.0", "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "35.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "25.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "37.0", + "duration": "43.0", "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "37.0", + "duration": "47.0", "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "68.0", + "duration": "78.0", "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "43.0", + "duration": "41.0", "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "25.0", + "duration": "31.0", "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "37.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "46.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "41.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "34.0", + "duration": "43.0", "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "42.0", + "duration": "58.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "42.0", + "duration": "51.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "36.0", + "duration": "49.0", "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" }, { @@ -3612,155 +3372,159 @@ "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "246.0", + "duration": "227.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "244.0", + "duration": "233.0", "name": "speedometer2/Speedometer2" }, { - "duration": "207.0", + "duration": "140.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "218.0", "name": "startup.mobile/intent:coldish:bbc" }, { - "duration": "176.0", + "duration": "178.0", "name": "startup.mobile/intent:warm:bbc" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "57.0", + "duration": "55.0", "name": "system_health.common_mobile/background:news:nytimes" }, { - "duration": "30.0", + "duration": "35.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "42.0", + "duration": "30.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "46.0", - "name": "system_health.common_mobile/background:tools:gmail" - }, - { - "duration": "127.0", - "name": "system_health.common_mobile/browse:chrome:newtab" - }, - { - "duration": "42.0", + "duration": "43.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "109.0", + "duration": "108.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "66.0", + "duration": "64.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { + "duration": "63.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { "duration": "91.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "129.0", + "duration": "134.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "208.0", + "duration": "207.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "171.0", + "duration": "159.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "78.0", + "duration": "76.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "66.0", + "duration": "74.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "73.0", + "duration": "77.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "250.0", + "duration": "240.0", "name": "system_health.common_mobile/browse:news:toi" }, { - "duration": "65.0", + "duration": "68.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "102.0", + "duration": "42.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "98.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "102.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "51.0", + "duration": "48.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "86.0", + "duration": "90.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "125.0", + "duration": "133.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "112.0", + "duration": "118.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "103.0", + "duration": "110.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "103.0", + "duration": "110.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "126.0", + "duration": "125.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "68.0", + "duration": "139.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "70.0", "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "81.0", + "duration": "86.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "102.0", + "duration": "107.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "58.0", + "duration": "61.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "23.0", + "duration": "36.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "31.0", + "duration": "33.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "24.0", + "duration": "27.0", "name": "system_health.common_mobile/load:games:lazors" }, { @@ -3768,147 +3532,199 @@ "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "32.0", + "duration": "41.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "33.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "28.0", + "duration": "29.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "28.0", + "duration": "37.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "29.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "28.0", + "duration": "31.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "29.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "28.0", + "duration": "41.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "29.0", "name": "system_health.common_mobile/load:media:soundcloud" }, { "duration": "28.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "29.0", "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "60.0", + "duration": "32.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "62.0", "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "39.0", + "duration": "51.0", + "name": "system_health.common_mobile/load:news:cnn:2018" + }, + { + "duration": "37.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "35.0", + "duration": "36.0", "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "27.0", + "duration": "31.0", "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "30.0", + "duration": "31.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "31.0", + "duration": "33.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "30.0", + "duration": "33.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "27.0", - "name": "system_health.common_mobile/load:search:baidu" - }, - { - "duration": "28.0", - "name": "system_health.common_mobile/load:search:ebay" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:search:google" - }, - { - "duration": "27.0", - "name": "system_health.common_mobile/load:search:taobao" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:search:yahoo" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:search:yandex" - }, - { - "duration": "27.0", - "name": "system_health.common_mobile/load:social:twitter" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:tools:docs" - }, - { - "duration": "30.0", - "name": "system_health.common_mobile/load:tools:drive" - }, - { - "duration": "25.0", - "name": "system_health.common_mobile/load:tools:dropbox" - }, - { - "duration": "41.0", - "name": "system_health.common_mobile/load:tools:gmail" - }, - { - "duration": "28.0", - "name": "system_health.common_mobile/load:tools:stackoverflow" - }, - { - "duration": "39.0", - "name": "system_health.common_mobile/load:tools:weather" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/background:media:imgur" - }, - { - "duration": "53.0", - "name": "system_health.memory_mobile/background:news:nytimes" + "duration": "29.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" }, { "duration": "34.0", + "name": "system_health.common_mobile/load:search:baidu" + }, + { + "duration": "38.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:search:ebay" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:search:google" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/load:search:taobao" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:search:yahoo" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:search:yandex" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:social:twitter" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:tools:docs" + }, + { + "duration": "31.0", + "name": "system_health.common_mobile/load:tools:drive" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:tools:dropbox" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:tools:stackoverflow" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "38.0", + "name": "system_health.common_mobile/load:tools:weather" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/background:media:imgur" + }, + { + "duration": "50.0", + "name": "system_health.memory_mobile/background:news:nytimes" + }, + { + "duration": "35.0", "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "44.0", + "duration": "31.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "121.0", - "name": "system_health.memory_mobile/browse:chrome:newtab" - }, - { "duration": "44.0", "name": "system_health.memory_mobile/browse:chrome:omnibox" }, { - "duration": "98.0", + "duration": "96.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "70.0", + "duration": "56.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { + "duration": "58.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { "duration": "81.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "98.0", + "duration": "96.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { @@ -3916,7 +3732,7 @@ "name": "system_health.memory_mobile/browse:news:cnn" }, { - "duration": "125.0", + "duration": "121.0", "name": "system_health.memory_mobile/browse:news:cnn:2018" }, { @@ -3924,55 +3740,63 @@ "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "62.0", + "duration": "66.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "69.0", + "duration": "70.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "164.0", + "duration": "161.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "58.0", + "duration": "59.0", "name": "system_health.memory_mobile/browse:news:washingtonpost" }, { - "duration": "77.0", + "duration": "38.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "76.0", "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "48.0", + "duration": "45.0", "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "88.0", + "duration": "87.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "92.0", + "duration": "90.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "88.0", + "duration": "89.0", "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "100.0", + "duration": "97.0", "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "62.0", + "duration": "106.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "61.0", "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "69.0", + "duration": "71.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "83.0", + "duration": "84.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" }, { @@ -3980,22 +3804,26 @@ "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "28.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "30.0", + "duration": "32.0", "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "29.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "37.0", + "duration": "36.0", "name": "system_health.memory_mobile/load:games:spychase" }, { + "duration": "37.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { "duration": "36.0", "name": "system_health.memory_mobile/load:media:dailymotion" }, @@ -4004,79 +3832,127 @@ "name": "system_health.memory_mobile/load:media:facebook_photos" }, { + "duration": "38.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { "duration": "32.0", "name": "system_health.memory_mobile/load:media:google_images" }, { - "duration": "31.0", + "duration": "35.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "32.0", "name": "system_health.memory_mobile/load:media:imgur" }, { + "duration": "38.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { "duration": "31.0", "name": "system_health.memory_mobile/load:media:soundcloud" }, { - "duration": "32.0", + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "31.0", "name": "system_health.memory_mobile/load:media:youtube" }, { - "duration": "58.0", + "duration": "33.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "60.0", "name": "system_health.memory_mobile/load:news:cnn" }, { - "duration": "37.0", + "duration": "50.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "35.0", "name": "system_health.memory_mobile/load:news:irctc" }, { - "duration": "38.0", + "duration": "37.0", "name": "system_health.memory_mobile/load:news:nytimes" }, { - "duration": "31.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:news:qq" }, { - "duration": "34.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:news:reddit" }, { - "duration": "34.0", + "duration": "33.0", "name": "system_health.memory_mobile/load:news:washingtonpost" }, { - "duration": "33.0", + "duration": "34.0", "name": "system_health.memory_mobile/load:news:wikipedia" }, { - "duration": "31.0", + "duration": "33.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "41.0", "name": "system_health.memory_mobile/load:search:baidu" }, { + "duration": "41.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { "duration": "31.0", "name": "system_health.memory_mobile/load:search:ebay" }, { - "duration": "30.0", + "duration": "35.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "32.0", "name": "system_health.memory_mobile/load:search:google" }, { - "duration": "31.0", + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "38.0", "name": "system_health.memory_mobile/load:search:taobao" }, { - "duration": "31.0", + "duration": "30.0", "name": "system_health.memory_mobile/load:search:yahoo" }, { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { "duration": "30.0", "name": "system_health.memory_mobile/load:search:yandex" }, { + "duration": "32.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { "duration": "31.0", "name": "system_health.memory_mobile/load:social:twitter" }, { - "duration": "30.0", + "duration": "31.0", "name": "system_health.memory_mobile/load:tools:docs" }, { @@ -4084,7 +3960,7 @@ "name": "system_health.memory_mobile/load:tools:drive" }, { - "duration": "29.0", + "duration": "31.0", "name": "system_health.memory_mobile/load:tools:dropbox" }, { @@ -4092,87 +3968,95 @@ "name": "system_health.memory_mobile/load:tools:stackoverflow" }, { - "duration": "40.0", + "duration": "33.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "38.0", "name": "system_health.memory_mobile/load:tools:weather" }, { - "duration": "19.0", + "duration": "22.0", "name": "tracing.tracing_with_background_memory_infra/Facebook" }, { - "duration": "20.0", + "duration": "24.0", "name": "tracing.tracing_with_background_memory_infra/Wikipedia" }, { - "duration": "14.0", + "duration": "18.0", "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" }, { - "duration": "15.0", + "duration": "19.0", "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" }, { - "duration": "14.0", + "duration": "18.0", "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" }, { - "duration": "16.0", + "duration": "19.0", "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" }, { - "duration": "17.0", + "duration": "20.0", "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" }, { - "duration": "23.0", + "duration": "27.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" }, { - "duration": "18.0", + "duration": "21.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { - "duration": "46.0", + "duration": "48.0", "name": "v8.browsing_mobile-future/browse:chrome:omnibox" }, { - "duration": "131.0", + "duration": "130.0", "name": "v8.browsing_mobile-future/browse:media:facebook_photos" }, { - "duration": "83.0", + "duration": "77.0", "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" }, { - "duration": "125.0", + "duration": "73.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "106.0", "name": "v8.browsing_mobile-future/browse:media:imgur" }, { - "duration": "163.0", + "duration": "161.0", "name": "v8.browsing_mobile-future/browse:media:youtube" }, { - "duration": "309.0", + "duration": "301.0", "name": "v8.browsing_mobile-future/browse:news:cnn" }, { - "duration": "245.0", + "duration": "219.0", "name": "v8.browsing_mobile-future/browse:news:cnn:2018" }, { - "duration": "105.0", + "duration": "88.0", "name": "v8.browsing_mobile-future/browse:news:cricbuzz" }, { - "duration": "104.0", + "duration": "87.0", "name": "v8.browsing_mobile-future/browse:news:qq" }, { - "duration": "85.0", + "duration": "89.0", "name": "v8.browsing_mobile-future/browse:news:reddit" }, { - "duration": "393.0", + "duration": "278.0", "name": "v8.browsing_mobile-future/browse:news:toi" }, { @@ -4180,51 +4064,47 @@ "name": "v8.browsing_mobile-future/browse:news:washingtonpost" }, { - "duration": "154.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" - }, - { - "duration": "148.0", - "name": "v8.browsing_mobile-future/browse:shopping:avito" - }, - { - "duration": "66.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" - }, - { - "duration": "112.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" - }, - { - "duration": "172.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "170.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "147.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" - }, - { - "duration": "158.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "181.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "91.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" - }, - { - "duration": "110.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" + "duration": "34.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" }, { "duration": "139.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "110.0", + "name": "v8.browsing_mobile-future/browse:social:facebook" + }, + { + "duration": "150.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "141.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "142.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "160.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "183.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "81.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "132.0", "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" }, { @@ -4236,123 +4116,131 @@ "name": "v8.browsing_mobile/browse:chrome:omnibox" }, { - "duration": "135.0", + "duration": "128.0", "name": "v8.browsing_mobile/browse:media:facebook_photos" }, { - "duration": "85.0", + "duration": "75.0", "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "115.0", + "duration": "75.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "104.0", "name": "v8.browsing_mobile/browse:media:imgur" }, { - "duration": "168.0", + "duration": "160.0", "name": "v8.browsing_mobile/browse:media:youtube" }, { - "duration": "312.0", + "duration": "300.0", "name": "v8.browsing_mobile/browse:news:cnn" }, { - "duration": "254.0", + "duration": "219.0", "name": "v8.browsing_mobile/browse:news:cnn:2018" }, { - "duration": "107.0", + "duration": "87.0", "name": "v8.browsing_mobile/browse:news:cricbuzz" }, { - "duration": "80.0", + "duration": "85.0", "name": "v8.browsing_mobile/browse:news:qq" }, { - "duration": "91.0", + "duration": "87.0", "name": "v8.browsing_mobile/browse:news:reddit" }, { - "duration": "401.0", + "duration": "279.0", "name": "v8.browsing_mobile/browse:news:toi" }, { - "duration": "86.0", + "duration": "80.0", "name": "v8.browsing_mobile/browse:news:washingtonpost" }, { - "duration": "154.0", + "duration": "33.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "138.0", "name": "v8.browsing_mobile/browse:shopping:amazon" }, { - "duration": "152.0", - "name": "v8.browsing_mobile/browse:shopping:avito" - }, - { - "duration": "66.0", + "duration": "57.0", "name": "v8.browsing_mobile/browse:shopping:lazada" }, { - "duration": "116.0", + "duration": "110.0", "name": "v8.browsing_mobile/browse:social:facebook" }, { - "duration": "170.0", + "duration": "161.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "168.0", + "duration": "150.0", "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "147.0", + "duration": "141.0", "name": "v8.browsing_mobile/browse:social:instagram" }, { - "duration": "146.0", + "duration": "143.0", "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "201.0", + "duration": "161.0", "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "81.0", + "duration": "184.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "79.0", "name": "v8.browsing_mobile/browse:social:twitter" }, { - "duration": "113.0", + "duration": "105.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "140.0", + "duration": "135.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "75.0", + "duration": "73.0", "name": "v8.browsing_mobile/browse:tools:maps" }, { - "duration": "11.0", + "duration": "19.0", "name": "wasm/AsmJsZenGarden" }, { - "duration": "38.0", + "duration": "39.0", "name": "wasm/WasmSpaceBuggy" }, { - "duration": "11.0", + "duration": "19.0", "name": "wasm/WasmStylizedRenderer" }, { - "duration": "11.0", + "duration": "19.0", "name": "wasm/WasmSunTemple" }, { - "duration": "20.0", + "duration": "29.0", "name": "wasm/WasmTanks" }, { - "duration": "11.0", + "duration": "19.0", "name": "wasm/WasmZenGarden" }, { @@ -4364,7 +4252,7 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "39.0", + "duration": "40.0", "name": "webrtc/codec_constraints_h264" }, { @@ -4372,7 +4260,7 @@ "name": "webrtc/codec_constraints_vp8" }, { - "duration": "39.0", + "duration": "40.0", "name": "webrtc/codec_constraints_vp9" }, { @@ -4380,11 +4268,11 @@ "name": "webrtc/hd_local_stream_10s" }, { - "duration": "44.0", + "duration": "47.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "62.0", + "duration": "72.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json index bdf1328..8093eee7 100644 --- a/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android_nexus5x_webview_perf_timing.json
@@ -1,14 +1,18 @@ [ { - "duration": "30.0", + "duration": "28.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/create-element.html" }, { @@ -20,67 +24,67 @@ "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "24.0", + "duration": "26.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "110.0", + "duration": "102.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "40.0", + "duration": "49.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "29.0", + "duration": "22.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "23.0", + "duration": "17.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "18.0", + "duration": "12.0", "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "23.0", + "duration": "12.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "25.0", + "duration": "15.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "23.0", + "duration": "14.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "23.0", + "duration": "17.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "210.0", + "duration": "137.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "97.0", + "duration": "59.0", "name": "blink_perf.bindings/node-type.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.bindings/post-message.html" }, { @@ -88,11 +92,11 @@ "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/serialize-array.html" }, { @@ -100,7 +104,7 @@ "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "11.0", + "duration": "16.0", "name": "blink_perf.bindings/serialize-map.html" }, { @@ -116,115 +120,243 @@ "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "24.0", - "name": "blink_perf.bindings/structured-clone-json-deserialize.html" - }, - { - "duration": "25.0", - "name": "blink_perf.bindings/structured-clone-json-serialize.html" - }, - { - "duration": "11.0", - "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" - }, - { - "duration": "17.0", - "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" - }, - { - "duration": "19.0", + "duration": "13.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "18.0", + "duration": "22.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "35.0", + "duration": "21.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "40.0", + "duration": "13.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "29.0", + "duration": "17.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "52.0", - "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" + "duration": "15.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "57.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "11.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { "duration": "23.0", - "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { "duration": "25.0", - "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "14.0", - "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" + "duration": "28.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "39.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "30.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "25.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "19.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/docs-resume.html" }, { "duration": "8.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "17.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "26.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "17.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { - "duration": "13.0", + "duration": "7.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "22.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { - "duration": "13.0", + "duration": "17.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "14.0", "name": "blink_perf.canvas/drawimage.html" }, { - "duration": "31.0", + "duration": "14.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "18.0", "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "35.0", + "duration": "12.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { - "duration": "33.0", + "duration": "12.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "16.0", + "duration": "12.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "21.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "22.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { + "duration": "17.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { "duration": "19.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "7.0", + "duration": "10.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "10.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { - "duration": "17.0", + "duration": "13.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { + "duration": "16.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { "duration": "17.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "28.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { + "duration": "26.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "38.0", + "duration": "37.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "26.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -236,7 +368,7 @@ "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { @@ -248,7 +380,7 @@ "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "16.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { @@ -284,7 +416,7 @@ "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -312,19 +444,19 @@ "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "28.0", + "duration": "24.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "14.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { @@ -332,19 +464,15 @@ "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "7.0", - "name": "blink_perf.css/CustomPropertiesVarAlias.html" - }, - { - "duration": "32.0", + "duration": "19.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "34.0", + "duration": "11.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "17.0", + "duration": "11.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { @@ -352,39 +480,23 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "24.0", + "duration": "61.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "28.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "58.0", + "duration": "54.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "86.0", + "duration": "40.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "18.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "17.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "27.0", + "duration": "85.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -392,79 +504,75 @@ "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "7.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "7.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "12.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { "duration": "13.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "20.0", + "duration": "14.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "25.0", + "duration": "22.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "12.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "34.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "29.0", + "duration": "38.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "15.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "49.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "15.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "51.0", + "duration": "36.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "35.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" + }, + { + "duration": "53.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "47.0", - "name": "blink_perf.image_decoder/decode-gif.html" - }, - { - "duration": "17.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "40.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" + "duration": "13.0", + "name": "blink_perf.events/is-input-pending-all-events.html" }, { "duration": "13.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "38.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "18.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "39.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "14.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { @@ -472,15 +580,15 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "41.0", + "duration": "42.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "26.0", + "duration": "23.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { @@ -492,7 +600,7 @@ "name": "blink_perf.layout/add-remove-inline-floats.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/attach-inlines-2.html" }, { @@ -500,15 +608,15 @@ "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "31.0", + "duration": "26.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { - "duration": "12.0", + "duration": "21.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -520,7 +628,7 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { @@ -528,67 +636,83 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "8.0", + "duration": "29.0", "name": "blink_perf.layout/character_fallback.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.layout/character_fallback_aat.html" }, { - "duration": "16.0", + "duration": "29.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "15.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "13.0", + "duration": "22.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "19.0", + "duration": "22.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "14.0", + "duration": "38.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { "duration": "18.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "23.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "57.0", + "duration": "42.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "89.0", + "duration": "42.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "25.0", + "duration": "23.0", "name": "blink_perf.layout/floats_10_1000.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.layout/floats_20_100.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.layout/floats_20_100_nested.html" }, { @@ -596,47 +720,55 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "22.0", + "duration": "18.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "22.0", + "duration": "19.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "12.0", + "duration": "17.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "27.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "13.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "34.0", + "duration": "38.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "33.0", + "duration": "41.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "33.0", + "duration": "32.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "243.0", + "duration": "217.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "33.0", + "duration": "30.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "9.0", + "duration": "18.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { @@ -644,34 +776,50 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "27.0", + "duration": "8.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "12.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "25.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "12.0", + "duration": "22.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "12.0", + "duration": "21.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { + "duration": "17.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "12.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { "duration": "14.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, @@ -680,11 +828,11 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { @@ -692,39 +840,35 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "13.0", + "duration": "17.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "12.0", + "duration": "23.0", "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "48.0", + "duration": "95.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "263.0", - "name": "blink_perf.layout/subtree-detaching.html" - }, - { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "11.0", + "duration": "16.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "11.0", + "duration": "16.0", "name": "blink_perf.layout/word-break-break-word.html" }, { @@ -732,11 +876,11 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "24.0", + "duration": "20.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { @@ -744,83 +888,27 @@ "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "17.0", + "duration": "22.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "27.0", - "name": "blink_perf.paint/appending-text.html" - }, - { - "duration": "36.0", - "name": "blink_perf.paint/color-changes.html" - }, - { - "duration": "26.0", - "name": "blink_perf.paint/complex-content-slow-scroll.html" - }, - { - "duration": "30.0", - "name": "blink_perf.paint/containment-resize.html" - }, - { - "duration": "31.0", - "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" - }, - { - "duration": "39.0", - "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" - }, - { - "duration": "25.0", - "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" - }, - { - "duration": "42.0", - "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" - }, - { - "duration": "29.0", - "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" - }, - { - "duration": "34.0", - "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" - }, - { - "duration": "24.0", - "name": "blink_perf.paint/large-table-collapsed-border-change.html" - }, - { - "duration": "38.0", - "name": "blink_perf.paint/large-table-repaint.html" - }, - { - "duration": "22.0", - "name": "blink_perf.paint/move-text-with-mask.html" - }, - { - "duration": "33.0", - "name": "blink_perf.paint/transform-changes.html" - }, - { - "duration": "22.0", + "duration": "19.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "39.0", + "duration": "23.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "64.0", + "duration": "51.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "139.0", + "duration": "164.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -828,19 +916,19 @@ "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "13.0", + "duration": "19.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "13.0", + "duration": "23.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "12.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { @@ -848,7 +936,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -856,31 +944,31 @@ "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "13.0", + "duration": "23.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "14.0", + "duration": "23.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "14.0", + "duration": "23.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { @@ -888,23 +976,23 @@ "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "13.0", + "duration": "18.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/simple-url.html" }, { @@ -912,39 +1000,39 @@ "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "14.0", + "duration": "17.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "16.0", + "duration": "13.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/Cactus.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { @@ -956,11 +1044,11 @@ "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/HereGear.html" }, { @@ -972,10 +1060,6 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "136.0", - "name": "blink_perf.svg/SierpinskiCarpet.html" - }, - { "duration": "8.0", "name": "blink_perf.svg/SvgHitTesting.html" }, @@ -988,7 +1072,7 @@ "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "46.0", + "duration": "42.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -996,403 +1080,367 @@ "name": "dromaeo/http://dromaeo.com?dom-modify" }, { - "duration": "54.0", + "duration": "53.0", "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "32.0", + "duration": "37.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "21.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { - "duration": "13.0", + "duration": "10.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "93.0", + "duration": "89.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.mobile/58Pic" }, { - "duration": "155.0", + "duration": "50.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.mobile/Amazon" }, { - "duration": "235.0", + "duration": "75.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "279.0", + "duration": "94.0", "name": "loading.mobile/BOLNoticias_3g" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.mobile/Baidu" }, { - "duration": "194.0", + "duration": "69.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/Bradesco" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "24.0", + "duration": "15.0", "name": "loading.mobile/Dawn" }, { - "duration": "16.0", + "duration": "13.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "159.0", + "duration": "66.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "23.0", + "duration": "16.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "157.0", + "duration": "61.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "137.0", + "duration": "62.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "130.0", + "duration": "82.0", "name": "loading.mobile/Dramaq_3g" }, { - "duration": "16.0", + "duration": "9.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "155.0", + "duration": "38.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "14.0", + "duration": "9.0", "name": "loading.mobile/Facebook" }, { - "duration": "39.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "25.0", + "duration": "17.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "56.0", + "duration": "29.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "36.0", + "duration": "21.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "34.0", + "duration": "24.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "28.0", + "duration": "15.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "302.0", + "duration": "124.0", "name": "loading.mobile/FlipKart_warm_3g" }, { - "duration": "17.0", + "duration": "16.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "169.0", + "duration": "62.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.mobile/GSShop" }, { - "duration": "14.0", + "duration": "9.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "14.0", + "duration": "9.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "23.0", + "duration": "14.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "29.0", + "duration": "16.0", "name": "loading.mobile/Kaskus" }, { - "duration": "20.0", + "duration": "17.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "15.0", + "duration": "10.0", "name": "loading.mobile/Locanto" }, { - "duration": "95.0", + "duration": "34.0", "name": "loading.mobile/Locanto_3g" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.mobile/OLX" }, { - "duration": "264.0", - "name": "loading.mobile/OLX_3g" - }, - { - "duration": "16.0", + "duration": "14.0", "name": "loading.mobile/QQNews" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.mobile/SlideShare" }, { - "duration": "206.0", + "duration": "82.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "15.0", + "duration": "10.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "37.0", + "duration": "16.0", "name": "loading.mobile/Suumo_cold_3g" }, { - "duration": "20.0", + "duration": "14.0", "name": "loading.mobile/Suumo_hot" }, { - "duration": "27.0", + "duration": "16.0", "name": "loading.mobile/Suumo_hot_3g" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/Suumo_warm" }, { - "duration": "25.0", + "duration": "14.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/Thairath" }, { - "duration": "27.0", + "duration": "16.0", "name": "loading.mobile/TheStar" }, { - "duration": "23.0", + "duration": "14.0", "name": "loading.mobile/TribunNews" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.mobile/Twitter" }, { - "duration": "146.0", + "duration": "51.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "237.0", + "duration": "71.0", "name": "loading.mobile/VoiceMemos_cold_3g" }, { - "duration": "25.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "48.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "45.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "15.0", + "duration": "9.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "212.0", + "duration": "61.0", "name": "loading.mobile/Wikipedia_3g" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.mobile/YahooNews" }, { - "duration": "16.0", + "duration": "9.0", "name": "loading.mobile/Youtube" }, { - "duration": "221.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "22.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "31.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "22.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "25.0", + "duration": "19.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "25.0", + "duration": "23.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "26.0", + "duration": "21.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "24.0", + "duration": "19.0", "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "23.0", + "duration": "21.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { - "duration": "80.0", + "duration": "81.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "24.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "62.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "65.0", + "duration": "67.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { @@ -1400,23 +1448,23 @@ "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "69.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "62.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { - "duration": "62.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://m.ynet.co.il" }, { - "duration": "63.0", + "duration": "64.0", "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "57.0", + "duration": "59.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { @@ -1432,355 +1480,319 @@ "name": "power.typical_10_mobile/https://en.wikipedia.org/wiki/File:Rotating_earth_(large).gif" }, { - "duration": "23.0", + "duration": "19.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "34.0", + "duration": "33.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "29.0", + "duration": "33.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "30.0", + "duration": "37.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "25.0", + "duration": "28.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "41.0", + "duration": "51.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "41.0", + "duration": "44.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "30.0", + "duration": "35.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "23.0", + "duration": "30.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { - "duration": "31.0", + "duration": "58.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "28.0", + "duration": "46.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "23.0", + "duration": "33.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "10.0", + "duration": "16.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "35.0", + "duration": "30.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "42.0", + "duration": "51.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "19.0", + "duration": "42.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "26.0", + "duration": "16.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "22.0", + "duration": "28.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "61.0", - "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" - }, - { - "duration": "108.0", + "duration": "102.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "49.0", + "duration": "59.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "53.0", + "duration": "48.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "37.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "33.0", + "duration": "41.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/amazon_mobile_sync_scroll_2018" - }, - { - "duration": "28.0", + "duration": "52.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "49.0", + "duration": "37.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "56.0", - "name": "rendering.mobile/androidpolice_mobile_sync_scroll_2018" - }, - { - "duration": "48.0", - "name": "rendering.mobile/aquarium" - }, - { - "duration": "146.0", - "name": "rendering.mobile/background_color_animation" - }, - { - "duration": "40.0", - "name": "rendering.mobile/background_color_animation_with_gradient" - }, - { - "duration": "35.0", - "name": "rendering.mobile/baidu_mobile_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/baidu_mobile_sync_scroll_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/balls_css_key_frame_animations" - }, - { - "duration": "30.0", - "name": "rendering.mobile/balls_css_transition_2_properties" - }, - { - "duration": "35.0", - "name": "rendering.mobile/balls_css_transition_40_properties" - }, - { - "duration": "75.0", - "name": "rendering.mobile/balls_css_transition_all_properties" - }, - { - "duration": "78.0", - "name": "rendering.mobile/balls_javascript_canvas" - }, - { - "duration": "32.0", - "name": "rendering.mobile/balls_javascript_css" - }, - { - "duration": "53.0", - "name": "rendering.mobile/balls_svg_animations" - }, - { - "duration": "41.0", - "name": "rendering.mobile/bing_mobile_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/bing_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/blob" - }, - { - "duration": "33.0", - "name": "rendering.mobile/blogspot_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/blogspot_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/blogspot_mobile_sync_scroll_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/boingboing_mobile_2018" - }, - { - "duration": "31.0", - "name": "rendering.mobile/booking.com_2018" - }, - { "duration": "26.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" + "name": "rendering.mobile/animometer_webgl" }, { - "duration": "25.0", - "name": "rendering.mobile/booking.com_mobile_2018" + "duration": "47.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { - "duration": "19.0", - "name": "rendering.mobile/booking.com_mobile_sync_scroll_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/bouncing_balls_15" - }, - { - "duration": "21.0", - "name": "rendering.mobile/bouncing_clipped_rectangles" - }, - { - "duration": "26.0", - "name": "rendering.mobile/bouncing_gradient_circles" - }, - { - "duration": "24.0", - "name": "rendering.mobile/bouncing_png_images" - }, - { - "duration": "33.0", - "name": "rendering.mobile/bouncing_svg_images" - }, - { - "duration": "30.0", - "name": "rendering.mobile/camera_to_webgl" - }, - { - "duration": "30.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "26.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "81.0", - "name": "rendering.mobile/canvas_animation_no_clear" - }, - { - "duration": "32.0", - "name": "rendering.mobile/canvas_arcs" - }, - { - "duration": "37.0", - "name": "rendering.mobile/canvas_font_cycler" - }, - { - "duration": "20.0", - "name": "rendering.mobile/canvas_lines" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_to_blob" - }, - { - "duration": "68.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_2018" - }, - { - "duration": "54.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_sync_scroll_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/card_expansion" - }, - { - "duration": "27.0", - "name": "rendering.mobile/card_expansion_animated" - }, - { - "duration": "43.0", - "name": "rendering.mobile/card_expansion_images_text" - }, - { - "duration": "24.0", - "name": "rendering.mobile/card_flying" - }, - { - "duration": "68.0", - "name": "rendering.mobile/cc_poster_circle" - }, - { - "duration": "30.0", - "name": "rendering.mobile/cc_scroll_200_layer_grid" - }, - { - "duration": "23.0", - "name": "rendering.mobile/cc_scroll_text_only" + "duration": "66.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" }, { "duration": "45.0", - "name": "rendering.mobile/chip_tune" + "name": "rendering.mobile/aquarium" + }, + { + "duration": "31.0", + "name": "rendering.mobile/background_color_animation" + }, + { + "duration": "43.0", + "name": "rendering.mobile/background_color_animation_with_gradient" }, { "duration": "30.0", - "name": "rendering.mobile/cnn_2018" + "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "46.0", - "name": "rendering.mobile/cnn_article_mobile_2018" + "duration": "22.0", + "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "62.0", - "name": "rendering.mobile/cnn_article_mobile_sync_scroll_2018" + "duration": "21.0", + "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "25.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" + "duration": "21.0", + "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "39.0", - "name": "rendering.mobile/cnn_mobile_2018" + "duration": "21.0", + "name": "rendering.mobile/balls_css_transition_all_properties" + }, + { + "duration": "35.0", + "name": "rendering.mobile/balls_javascript_canvas" + }, + { + "duration": "21.0", + "name": "rendering.mobile/balls_javascript_css" }, { "duration": "26.0", - "name": "rendering.mobile/cnn_mobile_sync_scroll_2018" + "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "38.0", + "duration": "23.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "26.0", + "name": "rendering.mobile/bing_mobile_2018" + }, + { + "duration": "30.0", + "name": "rendering.mobile/blob" + }, + { + "duration": "56.0", + "name": "rendering.mobile/blogspot_2018" + }, + { + "duration": "14.0", + "name": "rendering.mobile/blogspot_mobile_2018" + }, + { + "duration": "23.0", + "name": "rendering.mobile/blur_rotating_background" + }, + { + "duration": "18.0", + "name": "rendering.mobile/boingboing_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/booking.com_2018" + }, + { + "duration": "17.0", + "name": "rendering.mobile/booking.com_mobile_2018" + }, + { + "duration": "15.0", + "name": "rendering.mobile/bouncing_balls_15" + }, + { + "duration": "15.0", + "name": "rendering.mobile/bouncing_clipped_rectangles" + }, + { + "duration": "19.0", + "name": "rendering.mobile/bouncing_gradient_circles" + }, + { + "duration": "18.0", + "name": "rendering.mobile/bouncing_png_images" + }, + { + "duration": "18.0", + "name": "rendering.mobile/bouncing_svg_images" + }, + { + "duration": "23.0", + "name": "rendering.mobile/camera_to_webgl" + }, + { + "duration": "29.0", + "name": "rendering.mobile/canvas_05000_pixels_per_second" + }, + { + "duration": "16.0", + "name": "rendering.mobile/canvas_animation_no_clear" + }, + { + "duration": "24.0", + "name": "rendering.mobile/canvas_arcs" + }, + { + "duration": "28.0", + "name": "rendering.mobile/canvas_font_cycler" + }, + { + "duration": "19.0", + "name": "rendering.mobile/canvas_lines" + }, + { + "duration": "15.0", + "name": "rendering.mobile/canvas_to_blob" + }, + { + "duration": "28.0", + "name": "rendering.mobile/capitolvolkswagen_mobile_2018" + }, + { + "duration": "15.0", + "name": "rendering.mobile/card_expansion" + }, + { + "duration": "16.0", + "name": "rendering.mobile/card_expansion_animated" + }, + { + "duration": "16.0", + "name": "rendering.mobile/card_expansion_images_text" + }, + { + "duration": "15.0", + "name": "rendering.mobile/card_flying" + }, + { + "duration": "10.0", + "name": "rendering.mobile/cats_unscaled" + }, + { + "duration": "8.0", + "name": "rendering.mobile/cats_viewport_width" + }, + { + "duration": "25.0", + "name": "rendering.mobile/cc_poster_circle" + }, + { + "duration": "25.0", + "name": "rendering.mobile/cc_scroll_text_only" + }, + { + "duration": "33.0", + "name": "rendering.mobile/chip_tune" + }, + { + "duration": "22.0", + "name": "rendering.mobile/cnn_2018" + }, + { + "duration": "37.0", + "name": "rendering.mobile/cnn_article_mobile_2018" + }, + { + "duration": "28.0", + "name": "rendering.mobile/cnn_mobile_2018" + }, + { + "duration": "35.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" + }, + { + "duration": "19.0", "name": "rendering.mobile/cnn_pathological_2018" }, { @@ -1788,87 +1800,87 @@ "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "24.0", + "duration": "16.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "79.0", + "duration": "17.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "33.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "37.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "28.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "34.0", + "duration": "28.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "37.0", + "duration": "40.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "52.0", + "duration": "77.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "68.0", + "duration": "47.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "62.0", + "duration": "38.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "89.0", + "duration": "54.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "66.0", + "duration": "59.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "57.0", + "duration": "42.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "33.0", + "duration": "23.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "34.0", + "duration": "23.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "64.0", + "duration": "26.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "37.0", + "duration": "26.0", "name": "rendering.mobile/css_transitions_new_element" }, { @@ -1876,887 +1888,1411 @@ "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "32.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "49.0", + "duration": "41.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "37.0", + "duration": "26.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "23.0", - "name": "rendering.mobile/font_wipe" + "duration": "30.0", + "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "26.0", - "name": "rendering.mobile/google_news_ios" - }, - { - "duration": "25.0", - "name": "rendering.mobile/horizontal_vertical_expansion" - }, - { - "duration": "47.0", - "name": "rendering.mobile/idle_power_animated_gif" - }, - { - "duration": "35.0", - "name": "rendering.mobile/idle_power_blank" - }, - { - "duration": "72.0", - "name": "rendering.mobile/idle_power_css_animation" + "duration": "28.0", + "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { "duration": "46.0", - "name": "rendering.mobile/idle_power_request_animation_frame" + "name": "rendering.mobile/css_transitions_triggered_new_element" }, { "duration": "42.0", - "name": "rendering.mobile/ie_chalkboard" + "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "40.0", - "name": "rendering.mobile/ie_pirate_mark" - }, - { - "duration": "30.0", - "name": "rendering.mobile/infinite_scrolling" - }, - { - "duration": "38.0", - "name": "rendering.mobile/linkedin_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "81.0", - "name": "rendering.mobile/linkedin_pathological_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/list_animation_simple" - }, - { - "duration": "105.0", - "name": "rendering.mobile/list_recycle_transform" - }, - { - "duration": "27.0", - "name": "rendering.mobile/man_in_blue" - }, - { - "duration": "32.0", - "name": "rendering.mobile/many_images" - }, - { - "duration": "30.0", - "name": "rendering.mobile/many_planets_deep" - }, - { - "duration": "25.0", - "name": "rendering.mobile/mask_transition_animation" - }, - { - "duration": "33.0", - "name": "rendering.mobile/medium_texture_uploads" - }, - { - "duration": "24.0", - "name": "rendering.mobile/megi_dish" - }, - { - "duration": "28.0", - "name": "rendering.mobile/microsoft_asteroid_belt" - }, - { - "duration": "24.0", - "name": "rendering.mobile/microsoft_fireflies" - }, - { - "duration": "27.0", - "name": "rendering.mobile/microsoft_fish_ie_tank" - }, - { - "duration": "51.0", - "name": "rendering.mobile/microsoft_snow" - }, - { - "duration": "71.0", - "name": "rendering.mobile/microsoft_speed_reading" - }, - { - "duration": "58.0", - "name": "rendering.mobile/microsoft_tweet_map" - }, - { - "duration": "32.0", - "name": "rendering.mobile/microsoft_video_city" - }, - { - "duration": "77.0", - "name": "rendering.mobile/microsoft_worker_fountains" - }, - { - "duration": "41.0", - "name": "rendering.mobile/mix_10k" - }, - { - "duration": "33.0", - "name": "rendering.mobile/mix_blend_mode_animation_difference" - }, - { - "duration": "57.0", - "name": "rendering.mobile/mix_blend_mode_animation_hue" - }, - { - "duration": "42.0", - "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "37.0", - "name": "rendering.mobile/mix_blend_mode_animation_screen" - }, - { - "duration": "42.0", - "name": "rendering.mobile/mlb_mobile_2018" - }, - { - "duration": "33.0", - "name": "rendering.mobile/mlb_mobile_sync_scroll_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/mobile_news_sandbox" - }, - { - "duration": "51.0", - "name": "rendering.mobile/motion_mark_canvas_fill_shapes" - }, - { - "duration": "44.0", - "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "46.0", - "name": "rendering.mobile/motion_mark_focus" - }, - { - "duration": "55.0", - "name": "rendering.mobile/new_tilings" - }, - { - "duration": "28.0", - "name": "rendering.mobile/no_op_raf" - }, - { - "duration": "22.0", - "name": "rendering.mobile/no_op_scroll" - }, - { - "duration": "21.0", - "name": "rendering.mobile/no_op_settimeout" - }, - { - "duration": "24.0", - "name": "rendering.mobile/no_op_touch_handler" - }, - { - "duration": "31.0", - "name": "rendering.mobile/nvidia_vertex_buffer_object" - }, - { - "duration": "76.0", - "name": "rendering.mobile/nytimes_mobile_2018" - }, - { - "duration": "57.0", - "name": "rendering.mobile/overlay_background_color_css_transitions_page" - }, - { - "duration": "27.0", - "name": "rendering.mobile/parallax_effect" - }, - { - "duration": "34.0", - "name": "rendering.mobile/particles" - }, - { - "duration": "29.0", - "name": "rendering.mobile/pbs_pathological_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/physical_simulation" - }, - { - "duration": "35.0", - "name": "rendering.mobile/pinterest_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/pinterest_mobile_2018" - }, - { - "duration": "15.0", - "name": "rendering.mobile/pinterest_mobile_sync_scroll_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/put_get_image_data" - }, - { - "duration": "29.0", - "name": "rendering.mobile/raf" - }, - { - "duration": "29.0", - "name": "rendering.mobile/raf_animation" - }, - { - "duration": "29.0", - "name": "rendering.mobile/raf_canvas" - }, - { - "duration": "29.0", - "name": "rendering.mobile/raf_touch_animation" - }, - { - "duration": "35.0", - "name": "rendering.mobile/recode_pathological_2018" - }, - { - "duration": "42.0", - "name": "rendering.mobile/reddit_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/runway" - }, - { - "duration": "33.0", - "name": "rendering.mobile/san_angeles" - }, - { - "duration": "41.0", - "name": "rendering.mobile/sfgate_mobile_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/sfgate_mobile_sync_scroll_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/sticky_using_webkit" - }, - { - "duration": "34.0", - "name": "rendering.mobile/stress_hidey_bars" - }, - { - "duration": "34.0", - "name": "rendering.mobile/svg_icon_raster" - }, - { - "duration": "25.0", - "name": "rendering.mobile/swipe_to_dismiss" - }, - { - "duration": "26.0", - "name": "rendering.mobile/toggle_drawer" - }, - { - "duration": "27.0", - "name": "rendering.mobile/vertical_expansion" - }, - { - "duration": "41.0", - "name": "rendering.mobile/web_animation_value_type_color" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animation_value_type_length_3d" - }, - { - "duration": "31.0", - "name": "rendering.mobile/web_animation_value_type_length_complex" - }, - { - "duration": "57.0", - "name": "rendering.mobile/web_animation_value_type_length_simple" - }, - { - "duration": "76.0", - "name": "rendering.mobile/web_animation_value_type_path" - }, - { - "duration": "84.0", - "name": "rendering.mobile/web_animation_value_type_shadow" - }, - { - "duration": "41.0", - "name": "rendering.mobile/web_animation_value_type_transform_complex" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animation_value_type_transform_simple" - }, - { - "duration": "29.0", - "name": "rendering.mobile/web_animations_set_current_time" - }, - { - "duration": "31.0", - "name": "rendering.mobile/web_animations_simultaneous" - }, - { - "duration": "33.0", - "name": "rendering.mobile/web_animations_staggered_chaining" - }, - { - "duration": "41.0", - "name": "rendering.mobile/web_animations_staggered_triggering_page" - }, - { - "duration": "76.0", - "name": "rendering.mobile/wikipedia_2018" + "duration": "60.0", + "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { "duration": "39.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" + "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "31.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_sync_scroll_2018" + "duration": "27.0", + "name": "rendering.mobile/css_value_type_color" }, { - "duration": "32.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/wikipedia_mobile_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/wikipedia_mobile_sync_scroll_2018" + "duration": "48.0", + "name": "rendering.mobile/css_value_type_filter" }, { "duration": "39.0", - "name": "rendering.mobile/wordpress_2018" + "name": "rendering.mobile/css_value_type_length" }, { - "duration": "34.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" + "duration": "60.0", + "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "40.0", - "name": "rendering.mobile/wordpress_mobile_2018" + "duration": "27.0", + "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "33.0", - "name": "rendering.mobile/wordpress_mobile_sync_scroll_2018" + "duration": "41.0", + "name": "rendering.mobile/css_value_type_path" }, { - "duration": "33.0", - "name": "rendering.mobile/worldjournal_mobile_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/worldjournal_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/wow_wiki_pathological_2018" - }, - { - "duration": "61.0", - "name": "rendering.mobile/wowwiki_mobile_2018" - }, - { - "duration": "54.0", - "name": "rendering.mobile/wowwiki_mobile_sync_scroll_2018" + "duration": "59.0", + "name": "rendering.mobile/css_value_type_shadow" }, { "duration": "29.0", - "name": "rendering.mobile/yahoo_answers_2018" + "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "23.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" + "duration": "30.0", + "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "26.0", - "name": "rendering.mobile/yahoo_news_2018" + "duration": "24.0", + "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" + "duration": "19.0", + "name": "rendering.mobile/digg_mobile_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/dynamic_cube_map" }, { "duration": "43.0", - "name": "rendering.mobile/yahoo_news_mobile_2018" + "name": "rendering.mobile/earth" }, { - "duration": "30.0", - "name": "rendering.mobile/yahoo_news_mobile_sync_scroll_2018" - }, - { - "duration": "34.0", - "name": "rendering.mobile/yahoo_sports_2018" - }, - { - "duration": "30.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/yahoo_sports_pathological_2018" - }, - { - "duration": "39.0", - "name": "rendering.mobile/youtube_2018" - }, - { - "duration": "28.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/youtube_mobile_2018" + "duration": "24.0", + "name": "rendering.mobile/ebay_2018" }, { "duration": "18.0", - "name": "rendering.mobile/youtube_mobile_sync_scroll_2018" + "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/yuv_decoding" - }, - { - "duration": "37.0", - "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" - }, - { - "duration": "36.0", - "name": "rendering.mobile/zdnet_pathological_2018" - }, - { - "duration": "26.0", - "name": "rendering.mobile/zoom_in_animation" - }, - { - "duration": "36.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "29.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" - }, - { - "duration": "21.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" - }, - { - "duration": "76.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" + "duration": "19.0", + "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { "duration": "31.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" + "name": "rendering.mobile/ebay_scroll_2018" + }, + { + "duration": "27.0", + "name": "rendering.mobile/espn_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/espn_mobile_2018" + }, + { + "duration": "16.0", + "name": "rendering.mobile/espn_pathological_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/extra_large_texture_uploads" + }, + { + "duration": "21.0", + "name": "rendering.mobile/facebook_2018" + }, + { + "duration": "23.0", + "name": "rendering.mobile/facebook_mobile_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/fill_shapes" + }, + { + "duration": "29.0", + "name": "rendering.mobile/filter_terrain_svg" + }, + { + "duration": "24.0", + "name": "rendering.mobile/flickr_scroll_2018" + }, + { + "duration": "16.0", + "name": "rendering.mobile/font_wipe" + }, + { + "duration": "29.0", + "name": "rendering.mobile/forecast.io_mobile_2018" + }, + { + "duration": "32.0", + "name": "rendering.mobile/gmail_2018" + }, + { + "duration": "25.0", + "name": "rendering.mobile/google_calendar_2018" + }, + { + "duration": "34.0", + "name": "rendering.mobile/google_docs_2018" + }, + { + "duration": "27.0", + "name": "rendering.mobile/google_image_search_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/google_image_search_mobile_2018" + }, + { + "duration": "17.0", + "name": "rendering.mobile/google_news_ios" + }, + { + "duration": "22.0", + "name": "rendering.mobile/google_news_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/google_plus_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/google_plus_mobile_2018" + }, + { + "duration": "18.0", + "name": "rendering.mobile/google_search_mobile_pinch_2018" + }, + { + "duration": "13.0", + "name": "rendering.mobile/google_web_search_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/google_web_search_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/gsp.ro_mobile_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/guardian_pathological_2018" + }, + { + "duration": "29.0", + "name": "rendering.mobile/guimark_vector_chart" + }, + { + "duration": "17.0", + "name": "rendering.mobile/gws_boogie_expansion" + }, + { + "duration": "17.0", + "name": "rendering.mobile/gws_google_expansion" + }, + { + "duration": "16.0", + "name": "rendering.mobile/hakim" + }, + { + "duration": "16.0", + "name": "rendering.mobile/horizontal_vertical_expansion" + }, + { + "duration": "44.0", + "name": "rendering.mobile/idle_power_animated_gif" + }, + { + "duration": "31.0", + "name": "rendering.mobile/idle_power_blank" + }, + { + "duration": "96.0", + "name": "rendering.mobile/idle_power_css_animation" + }, + { + "duration": "42.0", + "name": "rendering.mobile/idle_power_request_animation_frame" + }, + { + "duration": "111.0", + "name": "rendering.mobile/idle_power_set_timeout_long" + }, + { + "duration": "36.0", + "name": "rendering.mobile/idle_power_set_timetout" + }, + { + "duration": "60.0", + "name": "rendering.mobile/ie_chalkboard" + }, + { + "duration": "44.0", + "name": "rendering.mobile/ie_pirate_mark" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_0" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_75" + }, + { + "duration": "22.0", + "name": "rendering.mobile/infinite_scroll_element_n_layers_99" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" + }, + { + "duration": "22.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" + }, + { + "duration": "23.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_0" + }, + { + "duration": "22.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_75" + }, + { + "duration": "27.0", + "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { "duration": "20.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" + "name": "rendering.mobile/infinite_scrolling" + }, + { + "duration": "20.0", + "name": "rendering.mobile/jarro_doverson" + }, + { + "duration": "47.0", + "name": "rendering.mobile/js_full_screen_invalidation" + }, + { + "duration": "24.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_0" + }, + { + "duration": "25.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_75" + }, + { + "duration": "26.0", + "name": "rendering.mobile/js_opacity_plus_n_layers_99" + }, + { + "duration": "27.0", + "name": "rendering.mobile/js_paint_plus_n_layers_0" + }, + { + "duration": "36.0", + "name": "rendering.mobile/js_paint_plus_n_layers_75" + }, + { + "duration": "28.0", + "name": "rendering.mobile/js_paint_plus_n_layers_99" + }, + { + "duration": "45.0", + "name": "rendering.mobile/js_poster_circle" + }, + { + "duration": "18.0", + "name": "rendering.mobile/js_scroll_text_only" + }, + { + "duration": "25.0", + "name": "rendering.mobile/keyframed_animations" + }, + { + "duration": "25.0", + "name": "rendering.mobile/large_texture_uploads" + }, + { + "duration": "37.0", + "name": "rendering.mobile/latimes_pathological_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/linkedin_2018" + }, + { + "duration": "49.0", + "name": "rendering.mobile/linkedin_mobile_2018" + }, + { + "duration": "40.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" + }, + { + "duration": "37.0", + "name": "rendering.mobile/linkedin_pathological_2018" + }, + { + "duration": "13.0", + "name": "rendering.mobile/list_animation_simple" + }, + { + "duration": "31.0", + "name": "rendering.mobile/list_recycle_transform" + }, + { + "duration": "25.0", + "name": "rendering.mobile/man_in_blue" + }, + { + "duration": "46.0", + "name": "rendering.mobile/many_images" + }, + { + "duration": "29.0", + "name": "rendering.mobile/many_planets_deep" + }, + { + "duration": "18.0", + "name": "rendering.mobile/mask_transition_animation" + }, + { + "duration": "41.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "27.0", + "name": "rendering.mobile/medium_texture_uploads" + }, + { + "duration": "29.0", + "name": "rendering.mobile/megi_dish" + }, + { + "duration": "19.0", + "name": "rendering.mobile/microsoft_asteroid_belt" + }, + { + "duration": "18.0", + "name": "rendering.mobile/microsoft_fish_ie_tank" + }, + { + "duration": "27.0", + "name": "rendering.mobile/microsoft_performance" + }, + { + "duration": "32.0", + "name": "rendering.mobile/microsoft_snow" + }, + { + "duration": "16.0", + "name": "rendering.mobile/microsoft_speed_reading" + }, + { + "duration": "27.0", + "name": "rendering.mobile/microsoft_tweet_map" + }, + { + "duration": "22.0", + "name": "rendering.mobile/microsoft_video_city" + }, + { + "duration": "26.0", + "name": "rendering.mobile/microsoft_worker_fountains" + }, + { + "duration": "16.0", + "name": "rendering.mobile/mix_10k" + }, + { + "duration": "31.0", + "name": "rendering.mobile/mix_blend_mode_animation_difference" + }, + { + "duration": "51.0", + "name": "rendering.mobile/mix_blend_mode_animation_hue" + }, + { + "duration": "32.0", + "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" + }, + { + "duration": "25.0", + "name": "rendering.mobile/mix_blend_mode_animation_screen" + }, + { + "duration": "26.0", + "name": "rendering.mobile/mlb_mobile_2018" + }, + { + "duration": "13.0", + "name": "rendering.mobile/mobile_news_sandbox" + }, + { + "duration": "62.0", + "name": "rendering.mobile/motion_mark_canvas_fill_shapes" + }, + { + "duration": "25.0", + "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_anim_design_15" + }, + { + "duration": "18.0", + "name": "rendering.mobile/motionmark_anim_focus_25" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_images_50" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_leaves_250" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_anim_multiply_175" + }, + { + "duration": "23.0", + "name": "rendering.mobile/motionmark_anim_suits_125" + }, + { + "duration": "34.0", + "name": "rendering.mobile/motionmark_html_composited_transforms_125" + }, + { + "duration": "29.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" + }, + { + "duration": "29.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" + }, + { + "duration": "23.0", + "name": "rendering.mobile/motionmark_html_focus_20_15" + }, + { + "duration": "25.0", + "name": "rendering.mobile/motionmark_html_leaves_20_50" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" + }, + { + "duration": "18.0", + "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" + }, + { + "duration": "29.0", + "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" + }, + { + "duration": "24.0", + "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" + }, + { + "duration": "31.0", + "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" + }, + { + "duration": "26.0", + "name": "rendering.mobile/new_tilings" + }, + { + "duration": "18.0", + "name": "rendering.mobile/no_op_raf" + }, + { + "duration": "16.0", + "name": "rendering.mobile/no_op_scroll" + }, + { + "duration": "16.0", + "name": "rendering.mobile/no_op_settimeout" + }, + { + "duration": "17.0", + "name": "rendering.mobile/no_op_touch_handler" + }, + { + "duration": "21.0", + "name": "rendering.mobile/nvidia_vertex_buffer_object" + }, + { + "duration": "30.0", + "name": "rendering.mobile/nyc_gov_scroll_2018" + }, + { + "duration": "29.0", + "name": "rendering.mobile/nytimes_mobile_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/nytimes_scroll_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/overlay_background_color_css_transitions_page" + }, + { + "duration": "22.0", + "name": "rendering.mobile/parallax_effect" + }, + { + "duration": "37.0", + "name": "rendering.mobile/particles" + }, + { + "duration": "18.0", + "name": "rendering.mobile/pbs_pathological_2018" + }, + { + "duration": "18.0", + "name": "rendering.mobile/physical_simulation" + }, + { + "duration": "45.0", + "name": "rendering.mobile/pinterest_2018" + }, + { + "duration": "15.0", + "name": "rendering.mobile/pinterest_mobile_2018" + }, + { + "duration": "20.0", + "name": "rendering.mobile/put_get_image_data" + }, + { + "duration": "18.0", + "name": "rendering.mobile/raf" + }, + { + "duration": "18.0", + "name": "rendering.mobile/raf_animation" + }, + { + "duration": "18.0", + "name": "rendering.mobile/raf_canvas" + }, + { + "duration": "18.0", + "name": "rendering.mobile/raf_touch_animation" + }, + { + "duration": "20.0", + "name": "rendering.mobile/recode_pathological_2018" + }, + { + "duration": "23.0", + "name": "rendering.mobile/reddit_mobile_2018" + }, + { + "duration": "22.0", + "name": "rendering.mobile/runway" + }, + { + "duration": "22.0", + "name": "rendering.mobile/san_angeles" + }, + { + "duration": "10.0", + "name": "rendering.mobile/second_batch_js_heavy" + }, + { + "duration": "15.0", + "name": "rendering.mobile/second_batch_js_light" + }, + { + "duration": "15.0", + "name": "rendering.mobile/second_batch_js_medium" + }, + { + "duration": "22.0", + "name": "rendering.mobile/sfgate_mobile_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/silk_finance" + }, + { + "duration": "17.0", + "name": "rendering.mobile/simple_text_page" + }, + { + "duration": "12.0", + "name": "rendering.mobile/simple_touch_drag" + }, + { + "duration": "20.0", + "name": "rendering.mobile/slashdot_mobile_2018" + }, + { + "duration": "14.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "20.0", + "name": "rendering.mobile/small_texture_uploads" + }, + { + "duration": "14.0", + "name": "rendering.mobile/spielzeugz" + }, + { + "duration": "14.0", + "name": "rendering.mobile/sticky_using_webkit" + }, + { + "duration": "22.0", + "name": "rendering.mobile/stress_hidey_bars" + }, + { + "duration": "14.0", + "name": "rendering.mobile/stroke_shapes" + }, + { + "duration": "25.0", + "name": "rendering.mobile/svg_icon_raster" + }, + { + "duration": "11.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "15.0", + "name": "rendering.mobile/swipe_to_dismiss" + }, + { + "duration": "15.0", + "name": "rendering.mobile/sync_scroll_offset" + }, + { + "duration": "28.0", + "name": "rendering.mobile/techcrunch_2018" + }, + { + "duration": "33.0", + "name": "rendering.mobile/techcrunch_mobile_2018" + }, + { + "duration": "17.0", + "name": "rendering.mobile/text_05000_pixels_per_second" + }, + { + "duration": "17.0", + "name": "rendering.mobile/text_10000_pixels_per_second" + }, + { + "duration": "13.0", + "name": "rendering.mobile/text_20000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.mobile/text_40000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.mobile/text_60000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.mobile/text_75000_pixels_per_second" + }, + { + "duration": "9.0", + "name": "rendering.mobile/text_90000_pixels_per_second" + }, + { + "duration": "18.0", + "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" + }, + { + "duration": "18.0", + "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" + }, + { + "duration": "19.0", + "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" + }, + { + "duration": "22.0", + "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" + }, + { + "duration": "17.0", + "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" + }, + { + "duration": "15.0", + "name": "rendering.mobile/text_hover_05000_pixels_per_second" + }, + { + "duration": "15.0", + "name": "rendering.mobile/text_hover_10000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.mobile/text_hover_20000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.mobile/text_hover_40000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.mobile/text_hover_60000_pixels_per_second" + }, + { + "duration": "9.0", + "name": "rendering.mobile/text_hover_75000_pixels_per_second" + }, + { + "duration": "9.0", + "name": "rendering.mobile/text_hover_90000_pixels_per_second" + }, + { + "duration": "28.0", + "name": "rendering.mobile/theverge_article_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/theverge_mobile_2018" + }, + { + "duration": "19.0", + "name": "rendering.mobile/toggle_drawer" + }, + { + "duration": "17.0", + "name": "rendering.mobile/touch_handler_scrolling" + }, + { + "duration": "26.0", + "name": "rendering.mobile/transform_transitions" + }, + { + "duration": "20.0", + "name": "rendering.mobile/transform_transitions_js_block" + }, + { + "duration": "24.0", + "name": "rendering.mobile/twitch_2018" + }, + { + "duration": "30.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" + }, + { + "duration": "25.0", + "name": "rendering.mobile/twitter_2018" + }, + { + "duration": "12.0", + "name": "rendering.mobile/twitter_mobile_2018" + }, + { + "duration": "27.0", + "name": "rendering.mobile/update_history_state" + }, + { + "duration": "14.0", + "name": "rendering.mobile/usatoday_mobile_2018" + }, + { + "duration": "17.0", + "name": "rendering.mobile/vertical_expansion" + }, + { + "duration": "21.0", + "name": "rendering.mobile/web_animation_value_type_color" + }, + { + "duration": "20.0", + "name": "rendering.mobile/web_animation_value_type_length_3d" + }, + { + "duration": "32.0", + "name": "rendering.mobile/web_animation_value_type_length_complex" + }, + { + "duration": "43.0", + "name": "rendering.mobile/web_animation_value_type_length_simple" + }, + { + "duration": "46.0", + "name": "rendering.mobile/web_animation_value_type_path" + }, + { + "duration": "67.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": "20.0", + "name": "rendering.mobile/web_animations_set_current_time" + }, + { + "duration": "20.0", + "name": "rendering.mobile/web_animations_simultaneous" + }, + { + "duration": "23.0", + "name": "rendering.mobile/web_animations_staggered_chaining" + }, + { + "duration": "19.0", + "name": "rendering.mobile/web_animations_staggered_infinite_iterations" + }, + { + "duration": "44.0", + "name": "rendering.mobile/web_animations_staggered_triggering_page" + }, + { + "duration": "35.0", + "name": "rendering.mobile/wikipedia_2018" + }, + { + "duration": "32.0", + "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/wikipedia_mobile_2018" + }, + { + "duration": "26.0", + "name": "rendering.mobile/wordpress_2018" + }, + { + "duration": "20.0", + "name": "rendering.mobile/wordpress_mobile_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/worldjournal_mobile_2018" + }, + { + "duration": "24.0", + "name": "rendering.mobile/wow_wiki_pathological_2018" + }, + { + "duration": "43.0", + "name": "rendering.mobile/wowwiki_mobile_2018" + }, + { + "duration": "30.0", + "name": "rendering.mobile/wsj_mobile_2018" + }, + { + "duration": "18.0", + "name": "rendering.mobile/yahoo_answers_2018" + }, + { + "duration": "31.0", + "name": "rendering.mobile/yahoo_news_mobile_2018" + }, + { + "duration": "20.0", + "name": "rendering.mobile/yahoo_sports_2018" + }, + { + "duration": "18.0", + "name": "rendering.mobile/yahoo_sports_pathological_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/youtube_2018" + }, + { + "duration": "12.0", + "name": "rendering.mobile/youtube_mobile_2018" + }, + { + "duration": "56.0", + "name": "rendering.mobile/yuv_decoding" + }, + { + "duration": "51.0", + "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" + }, + { + "duration": "19.0", + "name": "rendering.mobile/zdnet_pathological_2018" + }, + { + "duration": "21.0", + "name": "rendering.mobile/zoom_in_animation" + }, + { + "duration": "95.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" + }, + { + "duration": "56.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" + }, + { + "duration": "70.0", + "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { "duration": "25.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "24.0", + "duration": "31.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "37.0", + "duration": "34.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "27.0", + "duration": "17.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "19.0", + "duration": "21.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "57.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "27.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { "duration": "23.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "26.0", + "duration": "49.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "38.0", + "duration": "45.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "26.0", + "duration": "32.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "36.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "29.0", + "duration": "71.0", "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "21.0", + "duration": "17.0", "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "56.0", + "duration": "88.0", "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "31.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "20.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { "duration": "32.0", "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "30.0", + "duration": "31.0", "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "36.0", + "duration": "46.0", "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "27.0", + "duration": "43.0", "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "25.0", + "duration": "53.0", "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "32.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "27.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "23.0", + "duration": "35.0", "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "65.0", + "duration": "37.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "51.0", + "duration": "50.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "25.0", + "duration": "38.0", "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "74.0", + "duration": "63.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "69.0", + "duration": "72.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "121.0", + "duration": "103.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "122.0", + "duration": "101.0", "name": "speedometer2/Speedometer2" }, { - "duration": "25.0", + "duration": "20.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "48.0", + "duration": "41.0", "name": "system_health.common_mobile/background:news:nytimes" }, { - "duration": "26.0", + "duration": "24.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "36.0", + "duration": "18.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "37.0", - "name": "system_health.common_mobile/background:tools:gmail" - }, - { - "duration": "10.0", + "duration": "24.0", "name": "system_health.common_mobile/browse:chrome:newtab" }, { - "duration": "10.0", + "duration": "14.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "91.0", + "duration": "94.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "57.0", + "duration": "108.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "82.0", + "duration": "44.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "74.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "117.0", + "duration": "99.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "120.0", + "duration": "112.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "104.0", + "duration": "148.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "71.0", + "duration": "58.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "61.0", + "duration": "82.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "59.0", + "duration": "49.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "149.0", + "duration": "156.0", "name": "system_health.common_mobile/browse:news:toi" }, { - "duration": "59.0", + "duration": "49.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "77.0", + "duration": "31.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "62.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "80.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "39.0", + "duration": "29.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "72.0", + "duration": "61.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "149.0", + "duration": "121.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "122.0", + "duration": "133.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "92.0", + "duration": "102.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "90.0", + "duration": "118.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "110.0", + "duration": "117.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "59.0", - "name": "system_health.common_mobile/browse:social:twitter" - }, - { - "duration": "73.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "107.0", - "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + "duration": "98.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "49.0", + "name": "system_health.common_mobile/browse:social:twitter" + }, + { + "duration": "76.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "106.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "79.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "21.0", + "duration": "25.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "28.0", + "duration": "19.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "22.0", + "duration": "16.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "37.0", + "duration": "30.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "26.0", + "duration": "27.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "20.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "25.0", + "duration": "22.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "25.0", + "duration": "41.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "18.0", "name": "system_health.common_mobile/load:media:google_images" }, { "duration": "24.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "22.0", "name": "system_health.common_mobile/load:media:imgur" }, { - "duration": "25.0", + "duration": "26.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "17.0", "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "41.0", + "duration": "21.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "35.0", "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "31.0", + "duration": "63.0", + "name": "system_health.common_mobile/load:news:cnn:2018" + }, + { + "duration": "25.0", "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "28.0", + "duration": "30.0", "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "24.0", + "duration": "20.0", "name": "system_health.common_mobile/load:news:qq" }, { - "duration": "25.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:reddit" }, { - "duration": "27.0", + "duration": "20.0", "name": "system_health.common_mobile/load:news:washingtonpost" }, { - "duration": "25.0", + "duration": "19.0", "name": "system_health.common_mobile/load:news:wikipedia" }, { - "duration": "24.0", + "duration": "18.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "28.0", "name": "system_health.common_mobile/load:search:baidu" }, { - "duration": "25.0", + "duration": "27.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "17.0", "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "23.0", + "duration": "20.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "22.0", "name": "system_health.common_mobile/load:search:google" }, { - "duration": "25.0", + "duration": "60.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "18.0", "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "23.0", + "duration": "17.0", "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "23.0", + "duration": "27.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "17.0", "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "24.0", + "duration": "37.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "22.0", "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "24.0", + "duration": "18.0", "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "23.0", + "duration": "17.0", "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "36.0", - "name": "system_health.common_mobile/load:tools:gmail" - }, - { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:tools:stackoverflow" }, { - "duration": "30.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "21.0", "name": "system_health.common_mobile/load:tools:weather" }, { - "duration": "30.0", + "duration": "25.0", "name": "system_health.memory_mobile/background:media:imgur" }, { @@ -2764,75 +3300,67 @@ "name": "system_health.memory_mobile/background:search:google" }, { - "duration": "31.0", + "duration": "23.0", "name": "system_health.memory_mobile/background:social:facebook" }, { - "duration": "51.0", - "name": "system_health.memory_mobile/background:tools:gmail" - }, - { - "duration": "83.0", + "duration": "101.0", "name": "system_health.memory_mobile/browse:media:facebook_photos" }, { - "duration": "62.0", + "duration": "52.0", "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "77.0", + "duration": "47.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "71.0", "name": "system_health.memory_mobile/browse:media:imgur" }, { - "duration": "88.0", + "duration": "82.0", "name": "system_health.memory_mobile/browse:media:youtube" }, { - "duration": "90.0", + "duration": "92.0", "name": "system_health.memory_mobile/browse:news:cnn" }, { - "duration": "77.0", + "duration": "120.0", "name": "system_health.memory_mobile/browse:news:cnn:2018" }, { - "duration": "62.0", + "duration": "59.0", "name": "system_health.memory_mobile/browse:news:cricbuzz" }, { - "duration": "56.0", + "duration": "57.0", "name": "system_health.memory_mobile/browse:news:qq" }, { - "duration": "59.0", + "duration": "52.0", "name": "system_health.memory_mobile/browse:news:reddit" }, { - "duration": "95.0", + "duration": "118.0", "name": "system_health.memory_mobile/browse:news:toi" }, { - "duration": "53.0", - "name": "system_health.memory_mobile/browse:news:washingtonpost" + "duration": "26.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" }, { - "duration": "61.0", + "duration": "57.0", "name": "system_health.memory_mobile/browse:shopping:amazon" }, { - "duration": "38.0", + "duration": "37.0", "name": "system_health.memory_mobile/browse:shopping:lazada" }, { - "duration": "65.0", - "name": "system_health.memory_mobile/browse:social:facebook" - }, - { - "duration": "89.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "87.0", + "duration": "77.0", "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" }, { @@ -2840,407 +3368,463 @@ "name": "system_health.memory_mobile/browse:social:instagram" }, { - "duration": "79.0", - "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" + "duration": "77.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "55.0", + "duration": "50.0", "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "63.0", + "duration": "58.0", "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "78.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "51.0", + "duration": "52.0", "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "26.0", + "duration": "44.0", "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "27.0", + "duration": "22.0", "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "27.0", + "duration": "21.0", "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "33.0", + "duration": "28.0", "name": "system_health.memory_mobile/load:games:spychase" }, { - "duration": "36.0", - "name": "system_health.memory_mobile/load:media:dailymotion" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:facebook_photos" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:google_images" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:imgur" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "38.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "26.0", - "name": "system_health.webview_startup/load:chrome:blank" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "22.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "103.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" - }, - { - "duration": "72.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "98.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" - }, - { - "duration": "148.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" - }, - { - "duration": "175.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" - }, - { - "duration": "147.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" - }, - { - "duration": "91.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" - }, - { - "duration": "73.0", - "name": "v8.browsing_mobile-future/browse:news:qq" - }, - { - "duration": "68.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" - }, - { - "duration": "261.0", - "name": "v8.browsing_mobile-future/browse:news:toi" - }, - { - "duration": "74.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" - }, - { - "duration": "143.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" - }, - { - "duration": "108.0", - "name": "v8.browsing_mobile-future/browse:shopping:avito" - }, - { - "duration": "48.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" - }, - { - "duration": "315.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "212.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "136.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" - }, - { - "duration": "132.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "169.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "67.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" - }, - { - "duration": "106.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "132.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "61.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" - }, - { - "duration": "103.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" - }, - { - "duration": "71.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" - }, - { - "duration": "98.0", - "name": "v8.browsing_mobile/browse:media:imgur" - }, - { - "duration": "140.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" - }, - { - "duration": "87.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" - }, - { - "duration": "87.0", - "name": "v8.browsing_mobile/browse:news:qq" - }, - { - "duration": "73.0", - "name": "v8.browsing_mobile/browse:news:reddit" - }, - { - "duration": "261.0", - "name": "v8.browsing_mobile/browse:news:toi" - }, - { - "duration": "80.0", - "name": "v8.browsing_mobile/browse:news:washingtonpost" - }, - { - "duration": "131.0", - "name": "v8.browsing_mobile/browse:shopping:amazon" - }, - { - "duration": "106.0", - "name": "v8.browsing_mobile/browse:shopping:avito" - }, - { - "duration": "48.0", - "name": "v8.browsing_mobile/browse:shopping:lazada" - }, - { - "duration": "92.0", - "name": "v8.browsing_mobile/browse:social:facebook" - }, - { - "duration": "343.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "219.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "133.0", - "name": "v8.browsing_mobile/browse:social:instagram" - }, - { - "duration": "132.0", - "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "190.0", - "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "71.0", - "name": "v8.browsing_mobile/browse:social:twitter" - }, - { - "duration": "109.0", - "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "133.0", - "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "60.0", - "name": "v8.browsing_mobile/browse:tools:maps" - }, - { - "duration": "9.0", - "name": "wasm/AsmJsZenGarden" - }, - { - "duration": "28.0", - "name": "wasm/WasmSpaceBuggy" - }, - { - "duration": "9.0", - "name": "wasm/WasmStylizedRenderer" - }, - { - "duration": "9.0", - "name": "wasm/WasmSunTemple" - }, - { - "duration": "18.0", - "name": "wasm/WasmTanks" - }, - { - "duration": "9.0", - "name": "wasm/WasmZenGarden" - }, - { - "duration": "21.0", - "name": "webrtc/10s_datachannel_transfer" - }, - { - "duration": "27.0", - "name": "webrtc/canvas_capture_peer_connection" - }, - { - "duration": "36.0", - "name": "webrtc/codec_constraints_h264" - }, - { - "duration": "36.0", - "name": "webrtc/codec_constraints_vp8" - }, - { - "duration": "36.0", - "name": "webrtc/codec_constraints_vp9" + "duration": "33.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" }, { "duration": "24.0", + "name": "system_health.memory_mobile/load:media:dailymotion" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:facebook_photos" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:google_images" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:imgur" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:youtube" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:news:cnn" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/load:news:irctc" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:nytimes" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:qq" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:reddit" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:wikipedia" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:baidu" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:ebay" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "61.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "20.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "14.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "20.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox" + }, + { + "duration": "161.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "83.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "75.0", + "name": "v8.browsing_mobile-future/browse:media:imgur" + }, + { + "duration": "105.0", + "name": "v8.browsing_mobile-future/browse:media:youtube" + }, + { + "duration": "121.0", + "name": "v8.browsing_mobile-future/browse:news:cnn" + }, + { + "duration": "133.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:news:qq" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile-future/browse:news:reddit" + }, + { + "duration": "128.0", + "name": "v8.browsing_mobile-future/browse:news:toi" + }, + { + "duration": "34.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "127.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "90.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "117.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "124.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "128.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "150.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile-future/browse:tools:maps" + }, + { + "duration": "24.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "84.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "112.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "70.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "75.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "113.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "136.0", + "name": "v8.browsing_mobile/browse:news:toi" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost" + }, + { + "duration": "32.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "80.0", + "name": "v8.browsing_mobile/browse:shopping:amazon" + }, + { + "duration": "32.0", + "name": "v8.browsing_mobile/browse:shopping:lazada" + }, + { + "duration": "67.0", + "name": "v8.browsing_mobile/browse:social:facebook" + }, + { + "duration": "148.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" + }, + { + "duration": "116.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile/browse:social:instagram" + }, + { + "duration": "106.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "102.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "123.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:social:twitter" + }, + { + "duration": "85.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "130.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile/browse:tools:maps" + }, + { + "duration": "10.0", + "name": "wasm/AsmJsZenGarden" + }, + { + "duration": "20.0", + "name": "wasm/WasmSpaceBuggy" + }, + { + "duration": "10.0", + "name": "wasm/WasmStylizedRenderer" + }, + { + "duration": "10.0", + "name": "wasm/WasmSunTemple" + }, + { + "duration": "16.0", + "name": "wasm/WasmTanks" + }, + { + "duration": "13.0", + "name": "wasm/WasmZenGarden" + }, + { + "duration": "17.0", + "name": "webrtc/10s_datachannel_transfer" + }, + { + "duration": "20.0", + "name": "webrtc/canvas_capture_peer_connection" + }, + { + "duration": "33.0", + "name": "webrtc/codec_constraints_h264" + }, + { + "duration": "29.0", + "name": "webrtc/codec_constraints_vp8" + }, + { + "duration": "29.0", + "name": "webrtc/codec_constraints_vp9" + }, + { + "duration": "17.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "46.0", + "duration": "37.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "65.0", + "duration": "44.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json b/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json index df687bb1..655ddda 100644 --- a/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android_nexus6_webview_perf_timing.json
@@ -1,26 +1,30 @@ [ { - "duration": "33.0", + "duration": "29.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "23.0", + "duration": "20.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/first-child.html" }, { @@ -28,23 +32,23 @@ "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "41.0", + "duration": "39.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "81.0", + "duration": "84.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { @@ -60,11 +64,11 @@ "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/insert-before.html" }, { @@ -72,11 +76,11 @@ "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "159.0", + "duration": "119.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/node-type.html" }, { @@ -84,11 +88,11 @@ "name": "blink_perf.bindings/post-message.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { @@ -100,7 +104,7 @@ "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/serialize-map.html" }, { @@ -112,31 +116,23 @@ "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "36.0", + "duration": "37.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "35.0", + "duration": "37.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { "duration": "13.0", - "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" - }, - { - "duration": "13.0", - "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" - }, - { - "duration": "13.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -144,11 +140,11 @@ "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -156,87 +152,243 @@ "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "66.0", + "duration": "6.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "69.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "69.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "66.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "68.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "70.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "69.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "70.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "39.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "39.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "39.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "19.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" }, { "duration": "24.0", - "name": "blink_perf.canvas/createImageBitmapFromImageData.html" + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" }, { "duration": "10.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "19.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "10.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "10.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { "duration": "7.0", - "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" - }, - { - "duration": "14.0", - "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" - }, - { - "duration": "14.0", - "name": "blink_perf.canvas/drawimage.html" - }, - { - "duration": "25.0", - "name": "blink_perf.canvas/getImageData.html" - }, - { - "duration": "13.0", - "name": "blink_perf.canvas/getImageDataColorManaged.html" - }, - { - "duration": "25.0", - "name": "blink_perf.canvas/putImageData.html" - }, - { - "duration": "9.0", - "name": "blink_perf.canvas/toBlob_duration.html" - }, - { - "duration": "10.0", - "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { "duration": "7.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/drawimage.html" + }, + { + "duration": "15.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/getImageData.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/getImageDataColorManaged.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/putImageData.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "24.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "14.0", + "name": "blink_perf.canvas/toBlob_duration.html" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "11.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { "duration": "10.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { + "duration": "17.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { "duration": "10.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "32.0", + "duration": "18.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "27.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { @@ -248,79 +400,79 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -328,7 +480,7 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { @@ -348,51 +500,35 @@ "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "18.0", + "duration": "55.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "35.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "60.0", + "duration": "72.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "45.0", + "duration": "53.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "7.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "17.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "22.0", + "duration": "35.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -404,87 +540,83 @@ "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "7.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "7.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { "duration": "13.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "13.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "20.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "50.0", + "duration": "25.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "15.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "duration": "16.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "40.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "17.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "59.0", + "duration": "38.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "36.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" + }, + { + "duration": "61.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "52.0", + "duration": "14.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "14.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "37.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "20.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { - "duration": "46.0", + "duration": "38.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "29.0", + "duration": "24.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "42.0", + "duration": "35.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "26.0", + "duration": "22.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -500,7 +632,7 @@ "name": "blink_perf.layout/add-remove-inline-floats.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/attach-inlines-2.html" }, { @@ -508,11 +640,11 @@ "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "25.0", + "duration": "22.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { @@ -524,7 +656,7 @@ "name": "blink_perf.layout/chapter-reflow-once.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { @@ -536,7 +668,7 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "9.0", + "duration": "23.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -544,11 +676,23 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { - "duration": "15.0", - "name": "blink_perf.layout/fixed-grid-lots-of-data.html" + "duration": "43.0", + "name": "blink_perf.layout/contain-content-style-change.html" }, { "duration": "15.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "13.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "16.0", + "name": "blink_perf.layout/fixed-grid-lots-of-data.html" + }, + { + "duration": "16.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { @@ -560,7 +704,7 @@ "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { @@ -572,23 +716,27 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { + "duration": "21.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { "duration": "13.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "42.0", + "duration": "33.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "42.0", + "duration": "33.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.layout/floats_10_1000.html" }, { @@ -604,23 +752,31 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "34.0", + "duration": "17.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "13.0", + "duration": "14.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "36.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "14.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { @@ -628,30 +784,38 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "315.0", + "duration": "291.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "41.0", + "duration": "39.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { + "duration": "10.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "17.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { "duration": "38.0", "name": "blink_perf.layout/line-layout-line-height.html" }, @@ -664,7 +828,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -676,23 +840,31 @@ "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { + "duration": "12.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { "duration": "13.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "14.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "12.0", + "duration": "13.0", "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" }, { @@ -700,15 +872,15 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { @@ -716,15 +888,15 @@ "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "48.0", + "duration": "132.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "306.0", + "duration": "314.0", "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { @@ -740,11 +912,11 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "26.0", + "duration": "21.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { @@ -752,7 +924,7 @@ "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { @@ -760,75 +932,19 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "32.0", - "name": "blink_perf.paint/appending-text.html" - }, - { - "duration": "44.0", - "name": "blink_perf.paint/color-changes.html" - }, - { - "duration": "30.0", - "name": "blink_perf.paint/complex-content-slow-scroll.html" - }, - { - "duration": "40.0", - "name": "blink_perf.paint/containment-resize.html" - }, - { - "duration": "37.0", - "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" - }, - { - "duration": "50.0", - "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" - }, - { - "duration": "31.0", - "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" - }, - { - "duration": "54.0", - "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" - }, - { - "duration": "33.0", - "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" - }, - { - "duration": "42.0", - "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" - }, - { - "duration": "26.0", - "name": "blink_perf.paint/large-table-collapsed-border-change.html" - }, - { - "duration": "49.0", - "name": "blink_perf.paint/large-table-repaint.html" - }, - { - "duration": "28.0", - "name": "blink_perf.paint/move-text-with-mask.html" - }, - { - "duration": "52.0", - "name": "blink_perf.paint/transform-changes.html" - }, - { - "duration": "24.0", + "duration": "20.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "53.0", + "duration": "31.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "73.0", + "duration": "50.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "163.0", + "duration": "200.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -836,23 +952,23 @@ "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { @@ -860,19 +976,19 @@ "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": "12.0", + "duration": "13.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" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { @@ -880,19 +996,19 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "18.0", + "duration": "19.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" }, { @@ -900,19 +1016,19 @@ "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "17.0", + "duration": "12.0", "name": "blink_perf.parser/simple-url.html" }, { @@ -920,19 +1036,19 @@ "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "17.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -964,7 +1080,7 @@ "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { @@ -984,11 +1100,11 @@ "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" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { @@ -996,19 +1112,19 @@ "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v0-changing-classname-with-shadow-dom.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v0-changing-classname-without-shadow-dom.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.shadow_dom/v0-changing-select-with-shadow-dom.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { @@ -1016,15 +1132,15 @@ "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" }, { @@ -1032,7 +1148,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "53.0", + "duration": "26.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1040,15 +1156,15 @@ "name": "blink_perf.shadow_dom/v1-distribution.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "53.0", + "duration": "25.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "157.0", + "duration": "113.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1056,7 +1172,7 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { @@ -1068,7 +1184,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { @@ -1076,11 +1192,11 @@ "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" }, { @@ -1088,11 +1204,11 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1104,11 +1220,11 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "28.0", + "duration": "15.0", "name": "blink_perf.svg/Bamboo.html" }, { @@ -1124,11 +1240,11 @@ "name": "blink_perf.svg/CrawFishGanson.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/Debian.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { @@ -1144,7 +1260,7 @@ "name": "blink_perf.svg/France.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { @@ -1160,7 +1276,7 @@ "name": "blink_perf.svg/HereGear.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.svg/MtSaintHelens.html" }, { @@ -1168,15 +1284,15 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "191.0", + "duration": "183.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.svg/SvgCubics.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.svg/SvgHitTesting.html" }, { @@ -1192,11 +1308,11 @@ "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "48.0", + "duration": "43.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1212,19 +1328,15 @@ "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "22.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { - "duration": "25.0", + "duration": "10.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "15.0", + "duration": "10.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "401.0", + "duration": "390.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { @@ -1232,359 +1344,331 @@ "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "loading.mobile/58Pic" }, { - "duration": "116.0", + "duration": "47.0", "name": "loading.mobile/58Pic_3g" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/Amazon" }, { - "duration": "256.0", + "duration": "75.0", "name": "loading.mobile/Amazon_3g" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.mobile/BOLNoticias" }, { - "duration": "20.0", + "duration": "14.0", "name": "loading.mobile/Baidu" }, { - "duration": "202.0", + "duration": "67.0", "name": "loading.mobile/Baidu_3g" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.mobile/Bradesco" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.mobile/Dailymotion" }, { - "duration": "27.0", + "duration": "17.0", "name": "loading.mobile/Dawn" }, { - "duration": "16.0", + "duration": "11.0", "name": "loading.mobile/DevOpera_cold" }, { - "duration": "174.0", + "duration": "56.0", "name": "loading.mobile/DevOpera_cold_3g" }, { - "duration": "25.0", + "duration": "17.0", "name": "loading.mobile/DevOpera_hot" }, { - "duration": "120.0", + "duration": "54.0", "name": "loading.mobile/DevOpera_hot_3g" }, { - "duration": "33.0", + "duration": "14.0", "name": "loading.mobile/DevOpera_warm" }, { - "duration": "115.0", + "duration": "51.0", "name": "loading.mobile/DevOpera_warm_3g" }, { - "duration": "27.0", + "duration": "15.0", "name": "loading.mobile/Dramaq" }, { - "duration": "122.0", + "duration": "75.0", "name": "loading.mobile/Dramaq_3g" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/EnquiryIndianRail" }, { - "duration": "152.0", + "duration": "40.0", "name": "loading.mobile/EnquiryIndianRail_3g" }, { - "duration": "14.0", + "duration": "9.0", "name": "loading.mobile/Facebook" }, { - "duration": "39.0", - "name": "loading.mobile/Facebook_3g" - }, - { - "duration": "20.0", + "duration": "12.0", "name": "loading.mobile/FlipBoard_cold" }, { - "duration": "29.0", + "duration": "19.0", "name": "loading.mobile/FlipBoard_hot" }, { - "duration": "49.0", + "duration": "33.0", "name": "loading.mobile/FlipBoard_hot_3g" }, { - "duration": "24.0", + "duration": "15.0", "name": "loading.mobile/FlipBoard_warm" }, { - "duration": "25.0", + "duration": "15.0", "name": "loading.mobile/FlipKart_cold" }, { - "duration": "40.0", + "duration": "24.0", "name": "loading.mobile/FlipKart_hot" }, { - "duration": "37.0", + "duration": "31.0", "name": "loading.mobile/FlipKart_hot_3g" }, { - "duration": "30.0", + "duration": "18.0", "name": "loading.mobile/FlipKart_warm" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.mobile/FranceTVInfo" }, { - "duration": "165.0", + "duration": "94.0", "name": "loading.mobile/FranceTVInfo_3g" }, { - "duration": "29.0", + "duration": "21.0", "name": "loading.mobile/GSShop" }, { - "duration": "15.0", + "duration": "9.0", "name": "loading.mobile/GoogleBrazil" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/GoogleIndia" }, { - "duration": "15.0", + "duration": "9.0", "name": "loading.mobile/GoogleIndonesia" }, { - "duration": "21.0", + "duration": "15.0", "name": "loading.mobile/GoogleRedirectToGoogleJapan" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.mobile/Hongkiat" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.mobile/KapanLagi" }, { - "duration": "23.0", + "duration": "12.0", "name": "loading.mobile/LocalMoxie" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.mobile/Locanto" }, { - "duration": "69.0", + "duration": "33.0", "name": "loading.mobile/Locanto_3g" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.mobile/OLX" }, { - "duration": "16.0", + "duration": "17.0", "name": "loading.mobile/QQNews" }, { - "duration": "252.0", + "duration": "85.0", "name": "loading.mobile/QQNews_3g" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.mobile/SlideShare" }, { - "duration": "164.0", + "duration": "82.0", "name": "loading.mobile/SlideShare_3g" }, { - "duration": "15.0", + "duration": "10.0", "name": "loading.mobile/Suumo_cold" }, { - "duration": "39.0", + "duration": "15.0", "name": "loading.mobile/Suumo_cold_3g" }, { - "duration": "20.0", + "duration": "15.0", "name": "loading.mobile/Suumo_hot" }, { - "duration": "28.0", + "duration": "16.0", "name": "loading.mobile/Suumo_hot_3g" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.mobile/Suumo_warm" }, { - "duration": "26.0", + "duration": "14.0", "name": "loading.mobile/Suumo_warm_3g" }, { - "duration": "22.0", + "duration": "15.0", "name": "loading.mobile/Thairath" }, { - "duration": "31.0", + "duration": "17.0", "name": "loading.mobile/TheStar" }, { - "duration": "24.0", + "duration": "16.0", "name": "loading.mobile/TribunNews" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.mobile/Twitter" }, { - "duration": "159.0", + "duration": "38.0", "name": "loading.mobile/Twitter_3g" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.mobile/VoiceMemos_cold" }, { - "duration": "264.0", + "duration": "58.0", "name": "loading.mobile/VoiceMemos_cold_3g" }, { - "duration": "25.0", - "name": "loading.mobile/VoiceMemos_hot" - }, - { - "duration": "52.0", - "name": "loading.mobile/VoiceMemos_hot_3g" - }, - { - "duration": "21.0", - "name": "loading.mobile/VoiceMemos_warm" - }, - { - "duration": "48.0", - "name": "loading.mobile/VoiceMemos_warm_3g" - }, - { - "duration": "15.0", + "duration": "10.0", "name": "loading.mobile/Wikipedia" }, { - "duration": "229.0", - "name": "loading.mobile/Wikipedia_3g" - }, - { - "duration": "24.0", + "duration": "17.0", "name": "loading.mobile/YahooNews" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.mobile/Youtube" }, { - "duration": "239.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_m_youtube_com_results_q_science" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_www_baidu_com_s_word_google" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_http_yandex_ru_touchsearch_text_science" }, { - "duration": "23.0", + "duration": "17.0", "name": "memory.top_10_mobile/after_https_m_facebook_com_rihanna" }, { - "duration": "23.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "25.0", + "duration": "18.0", "name": "memory.top_10_mobile/after_https_www_google_co_uk_hl_en_q_science" }, { - "duration": "27.0", + "duration": "22.0", "name": "memory.top_10_mobile/http_en_m_wikipedia_org_wiki_Science" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_m_intl_taobao_com_group_purchase_html" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_m_youtube_com_results_q_science" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_search_yahoo_com_search__ylt_p_google" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_www_amazon_com_gp_aw_s_k_nexus" }, { - "duration": "26.0", + "duration": "24.0", "name": "memory.top_10_mobile/http_www_baidu_com_s_word_google" }, { - "duration": "26.0", + "duration": "20.0", "name": "memory.top_10_mobile/http_yandex_ru_touchsearch_text_science" }, { - "duration": "30.0", + "duration": "19.0", "name": "memory.top_10_mobile/https_m_facebook_com_rihanna" }, { - "duration": "25.0", + "duration": "20.0", "name": "memory.top_10_mobile/https_mobile_twitter_com_justinbieber_skip_interstitial_true" }, { - "duration": "29.0", + "duration": "21.0", "name": "memory.top_10_mobile/https_www_google_co_uk_hl_en_q_science" }, { @@ -1592,15 +1676,11 @@ "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "25.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { "duration": "61.0", "name": "power.typical_10_mobile/http://de.m.wikipedia.org/wiki/K%C3%B6lner_Dom" }, { - "duration": "63.0", + "duration": "66.0", "name": "power.typical_10_mobile/http://m.chiebukuro.yahoo.co.jp/detail/q10136829180" }, { @@ -1608,11 +1688,11 @@ "name": "power.typical_10_mobile/http://m.ebay.com/itm/351157205404" }, { - "duration": "68.0", + "duration": "63.0", "name": "power.typical_10_mobile/http://m.facebook.com/barackobama" }, { - "duration": "63.0", + "duration": "61.0", "name": "power.typical_10_mobile/http://m.huffpost.com/us/entry/6004486" }, { @@ -1624,7 +1704,7 @@ "name": "power.typical_10_mobile/http://siriuslymeg.tumblr.com/" }, { - "duration": "56.0", + "duration": "58.0", "name": "power.typical_10_mobile/http://wapbaike.baidu.com/" }, { @@ -1632,7 +1712,7 @@ "name": "power.typical_10_mobile/http://www.cnn.com/2014/03/31/showbiz/tv/himym-finale/index.html" }, { - "duration": "60.0", + "duration": "59.0", "name": "power.typical_10_mobile/http://www.rg.ru/2014/10/21/cska-site.html" }, { @@ -1644,7 +1724,7 @@ "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "36.0", + "duration": "41.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -1652,11 +1732,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "33.0", + "duration": "46.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { @@ -1664,39 +1744,39 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "34.0", + "duration": "45.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "28.0", + "duration": "41.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "37.0", + "duration": "56.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "42.0", + "duration": "60.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "32.0", + "duration": "52.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "25.0", + "duration": "28.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { - "duration": "37.0", + "duration": "43.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "54.0", + "duration": "40.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "24.0", + "duration": "34.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { @@ -1704,579 +1784,475 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "40.0", + "duration": "31.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "39.0", + "duration": "57.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "21.0", + "duration": "23.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "23.0", + "duration": "37.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "96.0", + "duration": "103.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "49.0", + "duration": "59.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "54.0", + "duration": "41.0", "name": "rendering.mobile/accu_weather_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/accu_weather_desktop_gpu_raster_2018" + "duration": "31.0", + "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/amazon_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/amazon_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "26.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/amazon_mobile_sync_scroll_2018" - }, - { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "48.0", + "duration": "39.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "45.0", - "name": "rendering.mobile/androidpolice_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "43.0", + "duration": "26.0", + "name": "rendering.mobile/animometer_webgl_attrib_arrays" + }, + { + "duration": "33.0", + "name": "rendering.mobile/animometer_webgl_multi_draw" + }, + { + "duration": "37.0", "name": "rendering.mobile/aquarium" }, { - "duration": "47.0", + "duration": "27.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "29.0", + "duration": "41.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "22.0", - "name": "rendering.mobile/baidu_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "26.0", + "duration": "20.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "28.0", + "duration": "22.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "46.0", + "duration": "31.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "30.0", + "duration": "24.0", + "name": "rendering.mobile/basic_stream" + }, + { + "duration": "22.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/bing_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "20.0", "name": "rendering.mobile/blob" }, { - "duration": "27.0", + "duration": "22.0", "name": "rendering.mobile/blogspot_2018" }, { - "duration": "22.0", - "name": "rendering.mobile/blogspot_desktop_gpu_raster_2018" - }, - { - "duration": "28.0", + "duration": "14.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/blogspot_mobile_sync_scroll_2018" + "duration": "27.0", + "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/booking.com_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/booking.com_desktop_gpu_raster_2018" - }, - { - "duration": "26.0", + "duration": "13.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/booking.com_mobile_sync_scroll_2018" - }, - { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "21.0", + "duration": "16.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "20.0", + "duration": "15.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "18.0", + "duration": "13.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "26.0", + "duration": "19.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "34.0", - "name": "rendering.mobile/canvas_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "35.0", - "name": "rendering.mobile/canvas_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", - "name": "rendering.mobile/canvas_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", - "name": "rendering.mobile/canvas_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/canvas_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/canvas_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/canvas_50000_pixels_per_second_desktop_gpu_raster" - }, - { "duration": "21.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second_desktop_gpu_raster" + "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/canvas_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/canvas_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "23.0", - "name": "rendering.mobile/canvas_animation_no_clear" - }, - { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "20.0", + "duration": "15.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "20.0", + "duration": "15.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "45.0", + "duration": "28.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/capitolvolkswagen_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "16.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "28.0", + "duration": "16.0", "name": "rendering.mobile/card_flying" }, { - "duration": "19.0", + "duration": "10.0", "name": "rendering.mobile/cats_unscaled" }, { - "duration": "17.0", + "duration": "8.0", "name": "rendering.mobile/cats_viewport_width" }, { - "duration": "33.0", + "duration": "26.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "30.0", - "name": "rendering.mobile/cc_scroll_200_layer_grid" - }, - { - "duration": "22.0", + "duration": "17.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "27.0", + "duration": "21.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "31.0", + "duration": "19.0", "name": "rendering.mobile/cnn_2018" }, { - "duration": "41.0", + "duration": "26.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/cnn_article_mobile_sync_scroll_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/cnn_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", + "duration": "23.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "28.0", - "name": "rendering.mobile/cnn_mobile_sync_scroll_2018" + "duration": "29.0", + "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "27.0", + "duration": "21.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "33.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "28.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "62.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "38.0", + "duration": "27.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "35.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "38.0", + "duration": "28.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "32.0", + "duration": "24.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "33.0", + "duration": "25.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "31.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "31.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "32.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "40.0", + "duration": "36.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "29.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "51.0", + "duration": "45.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "42.0", + "duration": "23.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/deviantart_mobile_sync_scroll_2018" - }, - { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/digg_mobile_sync_scroll_2018" - }, - { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "28.0", + "duration": "19.0", "name": "rendering.mobile/earth" }, { - "duration": "31.0", + "duration": "19.0", "name": "rendering.mobile/ebay_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/ebay_desktop_gpu_raster_2018" - }, - { - "duration": "28.0", + "duration": "14.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/ebay_mobile_sync_scroll_2018" + "duration": "19.0", + "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "44.0", + "duration": "27.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/espn_2018" }, { - "duration": "30.0", - "name": "rendering.mobile/espn_desktop_gpu_raster_2018" - }, - { - "duration": "32.0", + "duration": "18.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/espn_mobile_sync_scroll_2018" - }, - { - "duration": "27.0", + "duration": "17.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "27.0", + "duration": "21.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.mobile/facebook_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/facebook_desktop_gpu_raster_2018" - }, - { - "duration": "40.0", + "duration": "25.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/facebook_mobile_sync_scroll_2018" - }, - { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/fill_shapes" }, { @@ -2284,1927 +2260,1803 @@ "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "41.0", + "duration": "26.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/forecast.io_mobile_sync_scroll_2018" - }, - { - "duration": "21.0", + "duration": "14.0", "name": "rendering.mobile/geo_apis" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/gmail_2018" }, { - "duration": "24.0", - "name": "rendering.mobile/gmail_desktop_gpu_raster_2018" - }, - { - "duration": "21.0", + "duration": "15.0", "name": "rendering.mobile/google_calendar_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/google_calendar_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", + "duration": "25.0", "name": "rendering.mobile/google_docs_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/google_docs_desktop_gpu_raster_2018" - }, - { - "duration": "26.0", + "duration": "19.0", "name": "rendering.mobile/google_image_search_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/google_image_search_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", + "duration": "22.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "29.0", - "name": "rendering.mobile/google_image_search_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "18.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/google_news_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/google_plus_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/google_plus_desktop_gpu_raster_2018" - }, - { - "duration": "37.0", + "duration": "24.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "31.0", - "name": "rendering.mobile/google_plus_mobile_sync_scroll_2018" + "duration": "18.0", + "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/google_web_search_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/google_web_search_desktop_gpu_raster_2018" - }, - { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "25.0", - "name": "rendering.mobile/google_web_search_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "23.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "33.0", - "name": "rendering.mobile/gsp.ro_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "22.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "36.0", + "duration": "25.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "23.0", + "duration": "17.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "22.0", + "duration": "17.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/hakim" }, { - "duration": "30.0", + "duration": "17.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "41.0", + "duration": "43.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "35.0", + "duration": "30.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "44.0", + "duration": "37.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "51.0", + "duration": "38.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "140.0", + "duration": "116.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "52.0", + "duration": "38.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "41.0", + "duration": "36.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "48.0", + "duration": "29.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "30.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "31.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "30.0", + "duration": "23.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" + }, + { + "duration": "24.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" + }, + { + "duration": "24.0", + "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "23.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "30.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "31.0", + "duration": "24.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "62.0", + "duration": "22.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "58.0", + "duration": "44.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "36.0", + "duration": "26.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "36.0", + "duration": "27.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "36.0", + "duration": "27.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "39.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "38.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "39.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "38.0", + "duration": "27.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "30.0", - "name": "rendering.mobile/js_scroll_200_layer_grid" - }, - { - "duration": "30.0", + "duration": "13.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "33.0", + "duration": "22.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "45.0", + "duration": "27.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "48.0", + "duration": "22.0", "name": "rendering.mobile/linkedin_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/linkedin_desktop_gpu_raster_2018" - }, - { - "duration": "67.0", + "duration": "53.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "54.0", - "name": "rendering.mobile/linkedin_mobile_sync_scroll_2018" + "duration": "43.0", + "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "37.0", + "duration": "41.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "38.0", + "duration": "22.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "30.0", + "duration": "16.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "36.0", + "duration": "23.0", "name": "rendering.mobile/many_images" }, { - "duration": "34.0", + "duration": "19.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "39.0", + "duration": "19.0", + "name": "rendering.mobile/masonry" + }, + { + "duration": "23.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "31.0", - "name": "rendering.mobile/microsoft_fireflies" - }, - { - "duration": "31.0", + "duration": "19.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "30.0", + "duration": "22.0", + "name": "rendering.mobile/microsoft_performance" + }, + { + "duration": "18.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "37.0", + "duration": "27.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "37.0", + "duration": "27.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "43.0", + "duration": "26.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "35.0", + "duration": "25.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "54.0", + "duration": "28.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/mlb_mobile_sync_scroll_2018" - }, - { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "30.0", + "duration": "21.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "37.0", - "name": "rendering.mobile/motion_mark_focus" + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_design_15" }, { - "duration": "49.0", + "duration": "18.0", + "name": "rendering.mobile/motionmark_anim_focus_25" + }, + { + "duration": "20.0", + "name": "rendering.mobile/motionmark_anim_images_50" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_leaves_250" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_multiply_175" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_anim_suits_125" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_composited_transforms_125" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_blend_circles_25" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_circles_250" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_clipped_rects_100" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_filter_circles_15" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_gradient_circles_250" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_svg_images_50" + }, + { + "duration": "20.0", + "name": "rendering.mobile/motionmark_html_css_bouncing_tagged_images_225" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_dom_particles_svg_masks_25" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_html_focus_20_15" + }, + { + "duration": "21.0", + "name": "rendering.mobile/motionmark_html_leaves_20_50" + }, + { + "duration": "20.0", + "name": "rendering.mobile/motionmark_svg_bouncing_circles_250" + }, + { + "duration": "19.0", + "name": "rendering.mobile/motionmark_svg_bouncing_clipped_rects_100" + }, + { + "duration": "20.0", + "name": "rendering.mobile/motionmark_svg_bouncing_gradient_circles_200" + }, + { + "duration": "20.0", + "name": "rendering.mobile/motionmark_svg_bouncing_png_images_200" + }, + { + "duration": "21.0", + "name": "rendering.mobile/motionmark_svg_bouncing_svg_images_50" + }, + { + "duration": "30.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "34.0", + "duration": "21.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "27.0", + "duration": "18.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "45.0", + "duration": "28.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "53.0", + "duration": "28.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "47.0", + "duration": "30.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "51.0", + "duration": "24.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "32.0", + "duration": "19.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "38.0", + "duration": "21.0", "name": "rendering.mobile/particles" }, { - "duration": "35.0", + "duration": "19.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "43.0", + "duration": "22.0", "name": "rendering.mobile/pinterest_2018" }, { - "duration": "35.0", - "name": "rendering.mobile/pinterest_desktop_gpu_raster_2018" - }, - { - "duration": "30.0", + "duration": "10.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "18.0", - "name": "rendering.mobile/pinterest_mobile_sync_scroll_2018" - }, - { - "duration": "25.0", + "duration": "16.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.mobile/raf" }, { - "duration": "34.0", + "duration": "20.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "35.0", + "duration": "28.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "42.0", + "duration": "25.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "48.0", + "duration": "33.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "31.0", + "duration": "17.0", "name": "rendering.mobile/runway" }, { - "duration": "38.0", + "duration": "22.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "20.0", + "duration": "11.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "20.0", + "duration": "11.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "51.0", + "duration": "23.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "41.0", - "name": "rendering.mobile/sfgate_mobile_sync_scroll_2018" - }, - { - "duration": "43.0", + "duration": "27.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "29.0", + "duration": "18.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "50.0", + "duration": "23.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "38.0", + "duration": "14.0", + "name": "rendering.mobile/slide_drawer" + }, + { + "duration": "23.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "39.0", + "duration": "24.0", "name": "rendering.mobile/stress_hidey_bars" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "37.0", + "duration": "26.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "29.0", + "duration": "11.0", + "name": "rendering.mobile/swipe_action" + }, + { + "duration": "17.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "50.0", + "duration": "30.0", "name": "rendering.mobile/techcrunch_2018" }, { - "duration": "44.0", - "name": "rendering.mobile/techcrunch_desktop_gpu_raster_2018" - }, - { - "duration": "53.0", + "duration": "25.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/techcrunch_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "30.0", - "name": "rendering.mobile/text_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "28.0", - "name": "rendering.mobile/text_15000_pixels_per_second" - }, - { - "duration": "27.0", - "name": "rendering.mobile/text_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "26.0", + "duration": "14.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "24.0", - "name": "rendering.mobile/text_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", - "name": "rendering.mobile/text_30000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "12.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_50000_pixels_per_second" - }, - { - "duration": "20.0", - "name": "rendering.mobile/text_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "11.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "19.0", + "duration": "10.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", + "duration": "10.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.mobile/text_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "31.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "33.0", + "duration": "20.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "29.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "28.0", - "name": "rendering.mobile/text_constant_full_page_raster_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "27.0", + "duration": "16.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "26.0", - "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "24.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "23.0", - "name": "rendering.mobile/text_constant_full_page_raster_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "13.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "12.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", + "duration": "12.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "20.0", + "duration": "12.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "22.0", + "duration": "15.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.mobile/text_hover_15000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "58.0", + "duration": "12.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second" - }, - { - "duration": "18.0", - "name": "rendering.mobile/text_hover_30000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "18.0", + "duration": "10.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.mobile/text_hover_50000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", + "duration": "10.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "17.0", + "duration": "10.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "16.0", + "duration": "9.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second_desktop_gpu_raster" - }, - { - "duration": "44.0", + "duration": "25.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/theverge_article_mobile_sync_scroll_2018" - }, - { - "duration": "55.0", + "duration": "24.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/theverge_mobile_sync_scroll_2018" - }, - { - "duration": "30.0", + "duration": "19.0", "name": "rendering.mobile/toggle_drawer" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "38.0", + "duration": "22.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "34.0", + "duration": "21.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "42.0", + "duration": "20.0", "name": "rendering.mobile/twitch_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/twitch_desktop_gpu_raster_2018" + "duration": "24.0", + "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "40.0", + "duration": "27.0", "name": "rendering.mobile/twitter_2018" }, { - "duration": "42.0", - "name": "rendering.mobile/twitter_desktop_gpu_raster_2018" - }, - { - "duration": "40.0", + "duration": "13.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/twitter_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "19.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "27.0", - "name": "rendering.mobile/usatoday_mobile_sync_scroll_2018" - }, - { - "duration": "32.0", + "duration": "19.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "35.0", + "duration": "22.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "34.0", + "duration": "22.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "35.0", + "duration": "22.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "33.0", + "duration": "27.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "55.0", + "duration": "45.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "46.0", + "duration": "34.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "35.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "39.0", + "duration": "24.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "32.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "38.0", + "duration": "24.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "46.0", + "duration": "27.0", "name": "rendering.mobile/wikipedia_2018" }, { - "duration": "47.0", + "duration": "24.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_sync_scroll_2018" - }, - { - "duration": "38.0", - "name": "rendering.mobile/wikipedia_desktop_gpu_raster_2018" - }, - { - "duration": "37.0", + "duration": "24.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/wikipedia_mobile_sync_scroll_2018" - }, - { - "duration": "46.0", + "duration": "24.0", "name": "rendering.mobile/wordpress_2018" }, { - "duration": "40.0", - "name": "rendering.mobile/wordpress_desktop_gpu_raster_2018" - }, - { - "duration": "49.0", + "duration": "22.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "39.0", - "name": "rendering.mobile/wordpress_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", + "duration": "23.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "38.0", - "name": "rendering.mobile/worldjournal_mobile_sync_scroll_2018" - }, - { - "duration": "43.0", + "duration": "27.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "74.0", + "duration": "42.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "64.0", - "name": "rendering.mobile/wowwiki_mobile_sync_scroll_2018" - }, - { - "duration": "54.0", + "duration": "28.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/wsj_mobile_sync_scroll_2018" - }, - { - "duration": "33.0", + "duration": "14.0", "name": "rendering.mobile/yahoo_answers_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/yahoo_answers_desktop_gpu_raster_2018" - }, - { - "duration": "29.0", + "duration": "19.0", "name": "rendering.mobile/yahoo_news_2018" }, { - "duration": "43.0", - "name": "rendering.mobile/yahoo_news_desktop_gpu_raster_2018" - }, - { - "duration": "43.0", + "duration": "14.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "34.0", - "name": "rendering.mobile/yahoo_news_mobile_sync_scroll_2018" - }, - { - "duration": "39.0", + "duration": "22.0", "name": "rendering.mobile/yahoo_sports_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/yahoo_sports_desktop_gpu_raster_2018" - }, - { - "duration": "23.0", + "duration": "14.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "39.0", + "duration": "21.0", "name": "rendering.mobile/youtube_2018" }, { - "duration": "32.0", - "name": "rendering.mobile/youtube_desktop_gpu_raster_2018" - }, - { - "duration": "31.0", + "duration": "13.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "21.0", - "name": "rendering.mobile/youtube_mobile_sync_scroll_2018" - }, - { - "duration": "38.0", + "duration": "32.0", "name": "rendering.mobile/yuv_decoding" }, { - "duration": "39.0", + "duration": "32.0", "name": "rendering.mobile/yuv_decoding_gpu_rasterization_and_decoding" }, { - "duration": "33.0", + "duration": "21.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "30.0", + "duration": "17.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "38.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "26.0", + "duration": "23.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "22.0", + "duration": "16.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "26.0", + "duration": "20.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "27.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "21.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "29.0", + "duration": "22.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "27.0", + "duration": "23.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "44.0", + "duration": "40.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "31.0", + "duration": "19.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "20.0", + "duration": "15.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "36.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "36.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", + "duration": "21.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "32.0", + "duration": "29.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "28.0", + "duration": "24.0", "name": "smoothness.gpu_rasterization.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "38.0", - "name": "smoothness.tough_pinch_zoom_cases/accu_weather_pinch_2018" - }, - { - "duration": "26.0", + "duration": "23.0", "name": "smoothness.tough_pinch_zoom_cases/amazon_pinch_2018" }, { - "duration": "22.0", + "duration": "16.0", "name": "smoothness.tough_pinch_zoom_cases/blogspot_pinch_2018" }, { - "duration": "26.0", + "duration": "20.0", "name": "smoothness.tough_pinch_zoom_cases/booking_pinch_2018" }, { - "duration": "27.0", - "name": "smoothness.tough_pinch_zoom_cases/cnn_pinch_2018" - }, - { - "duration": "21.0", - "name": "smoothness.tough_pinch_zoom_cases/ebay_pinch_2018" - }, - { - "duration": "29.0", + "duration": "22.0", "name": "smoothness.tough_pinch_zoom_cases/espn_pinch_2018" }, { - "duration": "27.0", + "duration": "23.0", "name": "smoothness.tough_pinch_zoom_cases/facebook_pinch_2018" }, { - "duration": "44.0", + "duration": "40.0", "name": "smoothness.tough_pinch_zoom_cases/gmail_pinch_2018" }, { - "duration": "31.0", + "duration": "19.0", "name": "smoothness.tough_pinch_zoom_cases/google_calendar_pinch_2018" }, { - "duration": "20.0", + "duration": "15.0", "name": "smoothness.tough_pinch_zoom_cases/google_image_pinch_2018" }, { - "duration": "36.0", - "name": "smoothness.tough_pinch_zoom_cases/google_search_pinch_2018" - }, - { - "duration": "35.0", - "name": "smoothness.tough_pinch_zoom_cases/linkedin_pinch_2018" - }, - { - "duration": "30.0", - "name": "smoothness.tough_pinch_zoom_cases/twitch_pinch_2018" - }, - { - "duration": "25.0", + "duration": "21.0", "name": "smoothness.tough_pinch_zoom_cases/twitter_pinch_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_news_pinch_2018" }, { - "duration": "32.0", + "duration": "29.0", "name": "smoothness.tough_pinch_zoom_cases/yahoo_sports_pinch_2018" }, { - "duration": "28.0", + "duration": "24.0", "name": "smoothness.tough_pinch_zoom_cases/youtube_pinch_2018" }, { - "duration": "94.0", + "duration": "86.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "94.0", + "duration": "85.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "152.0", + "duration": "137.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "151.0", + "duration": "135.0", "name": "speedometer2/Speedometer2" }, { - "duration": "27.0", + "duration": "20.0", "name": "system_health.common_mobile/background:media:imgur" }, { - "duration": "50.0", + "duration": "40.0", "name": "system_health.common_mobile/background:news:nytimes" }, { - "duration": "30.0", + "duration": "22.0", "name": "system_health.common_mobile/background:search:google" }, { - "duration": "47.0", + "duration": "18.0", "name": "system_health.common_mobile/background:social:facebook" }, { - "duration": "39.0", - "name": "system_health.common_mobile/background:tools:gmail" - }, - { "duration": "10.0", "name": "system_health.common_mobile/browse:chrome:newtab" }, { - "duration": "10.0", + "duration": "9.0", "name": "system_health.common_mobile/browse:chrome:omnibox" }, { - "duration": "93.0", + "duration": "83.0", "name": "system_health.common_mobile/browse:media:facebook_photos" }, { - "duration": "57.0", + "duration": "46.0", "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll" }, { - "duration": "82.0", + "duration": "46.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "73.0", "name": "system_health.common_mobile/browse:media:imgur" }, { - "duration": "116.0", + "duration": "105.0", "name": "system_health.common_mobile/browse:media:youtube" }, { - "duration": "143.0", + "duration": "122.0", "name": "system_health.common_mobile/browse:news:cnn" }, { - "duration": "116.0", + "duration": "92.0", "name": "system_health.common_mobile/browse:news:cnn:2018" }, { - "duration": "71.0", + "duration": "56.0", "name": "system_health.common_mobile/browse:news:cricbuzz" }, { - "duration": "61.0", + "duration": "63.0", "name": "system_health.common_mobile/browse:news:qq" }, { - "duration": "61.0", + "duration": "55.0", "name": "system_health.common_mobile/browse:news:reddit" }, { - "duration": "167.0", + "duration": "143.0", "name": "system_health.common_mobile/browse:news:toi" }, { - "duration": "59.0", + "duration": "51.0", "name": "system_health.common_mobile/browse:news:washingtonpost" }, { - "duration": "87.0", + "duration": "28.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "69.0", "name": "system_health.common_mobile/browse:shopping:amazon" }, { - "duration": "86.0", - "name": "system_health.common_mobile/browse:shopping:avito" - }, - { - "duration": "45.0", + "duration": "31.0", "name": "system_health.common_mobile/browse:shopping:lazada" }, { - "duration": "95.0", + "duration": "66.0", "name": "system_health.common_mobile/browse:social:facebook" }, { - "duration": "144.0", + "duration": "105.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll" }, { - "duration": "110.0", + "duration": "89.0", "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "93.0", + "duration": "85.0", "name": "system_health.common_mobile/browse:social:instagram" }, { - "duration": "93.0", + "duration": "87.0", "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll" }, { - "duration": "104.0", + "duration": "93.0", "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll" }, { - "duration": "60.0", + "duration": "99.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "53.0", "name": "system_health.common_mobile/browse:social:twitter" }, { - "duration": "82.0", + "duration": "64.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "102.0", + "duration": "85.0", "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "49.0", + "duration": "42.0", "name": "system_health.common_mobile/browse:tools:maps" }, { - "duration": "23.0", + "duration": "26.0", "name": "system_health.common_mobile/load:chrome:blank" }, { - "duration": "28.0", + "duration": "21.0", "name": "system_health.common_mobile/load:games:bubbles" }, { - "duration": "22.0", + "duration": "16.0", "name": "system_health.common_mobile/load:games:lazors" }, { - "duration": "37.0", + "duration": "27.0", "name": "system_health.common_mobile/load:games:spychase" }, { - "duration": "27.0", + "duration": "29.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "21.0", "name": "system_health.common_mobile/load:media:dailymotion" }, { - "duration": "25.0", + "duration": "18.0", "name": "system_health.common_mobile/load:media:facebook_photos" }, { - "duration": "25.0", + "duration": "24.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "18.0", "name": "system_health.common_mobile/load:media:google_images" }, { - "duration": "25.0", + "duration": "19.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "18.0", "name": "system_health.common_mobile/load:media:imgur" }, { "duration": "25.0", - "name": "system_health.common_mobile/load:media:youtube" - }, - { - "duration": "43.0", - "name": "system_health.common_mobile/load:news:cnn" - }, - { - "duration": "33.0", - "name": "system_health.common_mobile/load:news:irctc" - }, - { - "duration": "29.0", - "name": "system_health.common_mobile/load:news:nytimes" - }, - { - "duration": "24.0", - "name": "system_health.common_mobile/load:news:qq" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:news:reddit" - }, - { - "duration": "27.0", - "name": "system_health.common_mobile/load:news:washingtonpost" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:news:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.common_mobile/load:search:baidu" - }, - { - "duration": "26.0", - "name": "system_health.common_mobile/load:search:ebay" - }, - { - "duration": "23.0", - "name": "system_health.common_mobile/load:search:google" - }, - { - "duration": "25.0", - "name": "system_health.common_mobile/load:search:taobao" - }, - { - "duration": "23.0", - "name": "system_health.common_mobile/load:search:yahoo" - }, - { - "duration": "24.0", - "name": "system_health.common_mobile/load:search:yandex" - }, - { - "duration": "24.0", - "name": "system_health.common_mobile/load:social:twitter" - }, - { - "duration": "24.0", - "name": "system_health.common_mobile/load:tools:docs" - }, - { - "duration": "27.0", - "name": "system_health.common_mobile/load:tools:drive" - }, - { - "duration": "23.0", - "name": "system_health.common_mobile/load:tools:dropbox" - }, - { - "duration": "37.0", - "name": "system_health.common_mobile/load:tools:gmail" - }, - { - "duration": "25.0", - "name": "system_health.common_mobile/load:tools:stackoverflow" - }, - { - "duration": "31.0", - "name": "system_health.common_mobile/load:tools:weather" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/background:media:imgur" - }, - { - "duration": "46.0", - "name": "system_health.memory_mobile/background:news:nytimes" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/background:search:google" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/background:social:facebook" - }, - { - "duration": "39.0", - "name": "system_health.memory_mobile/background:tools:gmail" - }, - { - "duration": "86.0", - "name": "system_health.memory_mobile/browse:media:facebook_photos" - }, - { - "duration": "54.0", - "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" - }, - { - "duration": "76.0", - "name": "system_health.memory_mobile/browse:media:imgur" - }, - { - "duration": "90.0", - "name": "system_health.memory_mobile/browse:media:youtube" - }, - { - "duration": "108.0", - "name": "system_health.memory_mobile/browse:news:cnn" - }, - { - "duration": "84.0", - "name": "system_health.memory_mobile/browse:news:cnn:2018" - }, - { - "duration": "66.0", - "name": "system_health.memory_mobile/browse:news:cricbuzz" - }, - { - "duration": "57.0", - "name": "system_health.memory_mobile/browse:news:qq" - }, - { - "duration": "59.0", - "name": "system_health.memory_mobile/browse:news:reddit" - }, - { - "duration": "106.0", - "name": "system_health.memory_mobile/browse:news:toi" - }, - { - "duration": "54.0", - "name": "system_health.memory_mobile/browse:news:washingtonpost" - }, - { - "duration": "66.0", - "name": "system_health.memory_mobile/browse:shopping:amazon" - }, - { - "duration": "68.0", - "name": "system_health.memory_mobile/browse:shopping:avito" - }, - { - "duration": "40.0", - "name": "system_health.memory_mobile/browse:shopping:lazada" - }, - { - "duration": "67.0", - "name": "system_health.memory_mobile/browse:social:facebook" - }, - { - "duration": "86.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll" - }, - { - "duration": "88.0", - "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "82.0", - "name": "system_health.memory_mobile/browse:social:instagram" - }, - { - "duration": "81.0", - "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" - }, - { - "duration": "81.0", - "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "57.0", - "name": "system_health.memory_mobile/browse:social:twitter" - }, - { - "duration": "67.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "80.0", - "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "50.0", - "name": "system_health.memory_mobile/browse:tools:maps" - }, - { - "duration": "26.0", - "name": "system_health.memory_mobile/load:chrome:blank" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:games:bubbles" - }, - { - "duration": "27.0", - "name": "system_health.memory_mobile/load:games:lazors" - }, - { - "duration": "34.0", - "name": "system_health.memory_mobile/load:games:spychase" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:media:dailymotion" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:facebook_photos" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:google_images" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:imgur" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:media:youtube" - }, - { - "duration": "42.0", - "name": "system_health.memory_mobile/load:news:cnn" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:news:irctc" - }, - { - "duration": "32.0", - "name": "system_health.memory_mobile/load:news:nytimes" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:news:qq" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:reddit" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:washingtonpost" - }, - { - "duration": "30.0", - "name": "system_health.memory_mobile/load:news:wikipedia" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:baidu" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:ebay" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:google" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:taobao" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:yahoo" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:search:yandex" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:social:twitter" - }, - { - "duration": "28.0", - "name": "system_health.memory_mobile/load:tools:docs" - }, - { - "duration": "31.0", - "name": "system_health.memory_mobile/load:tools:dropbox" - }, - { - "duration": "29.0", - "name": "system_health.memory_mobile/load:tools:stackoverflow" - }, - { - "duration": "33.0", - "name": "system_health.memory_mobile/load:tools:weather" - }, - { - "duration": "29.0", - "name": "system_health.webview_startup/load:chrome:blank" + "name": "system_health.common_mobile/load:media:imgur:2018" }, { "duration": "18.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" + "name": "system_health.common_mobile/load:media:youtube" }, { - "duration": "19.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + "duration": "22.0", + "name": "system_health.common_mobile/load:media:youtube:2018" }, { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + "duration": "36.0", + "name": "system_health.common_mobile/load:news:cnn" }, { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + "duration": "31.0", + "name": "system_health.common_mobile/load:news:cnn:2018" }, { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + "duration": "24.0", + "name": "system_health.common_mobile/load:news:irctc" }, { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + "duration": "23.0", + "name": "system_health.common_mobile/load:news:nytimes" }, { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + "duration": "22.0", + "name": "system_health.common_mobile/load:news:qq" + }, + { + "duration": "20.0", + "name": "system_health.common_mobile/load:news:reddit" + }, + { + "duration": "21.0", + "name": "system_health.common_mobile/load:news:washingtonpost" + }, + { + "duration": "21.0", + "name": "system_health.common_mobile/load:news:wikipedia" + }, + { + "duration": "20.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:search:baidu" }, { "duration": "25.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + "name": "system_health.common_mobile/load:search:baidu:2018" }, { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + "duration": "19.0", + "name": "system_health.common_mobile/load:search:ebay" }, { - "duration": "109.0", - "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + "duration": "21.0", + "name": "system_health.common_mobile/load:search:ebay:2018" }, { - "duration": "73.0", - "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + "duration": "18.0", + "name": "system_health.common_mobile/load:search:google" }, { - "duration": "97.0", - "name": "v8.browsing_mobile-future/browse:media:imgur" + "duration": "19.0", + "name": "system_health.common_mobile/load:search:google:2018" }, { - "duration": "146.0", - "name": "v8.browsing_mobile-future/browse:media:youtube" + "duration": "19.0", + "name": "system_health.common_mobile/load:search:taobao" }, { - "duration": "215.0", - "name": "v8.browsing_mobile-future/browse:news:cnn" + "duration": "17.0", + "name": "system_health.common_mobile/load:search:yahoo" }, { - "duration": "166.0", - "name": "v8.browsing_mobile-future/browse:news:cnn:2018" + "duration": "17.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" }, { - "duration": "111.0", - "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + "duration": "17.0", + "name": "system_health.common_mobile/load:search:yandex" }, { - "duration": "73.0", - "name": "v8.browsing_mobile-future/browse:news:qq" + "duration": "20.0", + "name": "system_health.common_mobile/load:search:yandex:2018" }, { - "duration": "73.0", - "name": "v8.browsing_mobile-future/browse:news:reddit" + "duration": "18.0", + "name": "system_health.common_mobile/load:social:twitter" }, { - "duration": "269.0", - "name": "v8.browsing_mobile-future/browse:news:toi" + "duration": "18.0", + "name": "system_health.common_mobile/load:tools:docs" }, { - "duration": "74.0", - "name": "v8.browsing_mobile-future/browse:news:washingtonpost" + "duration": "20.0", + "name": "system_health.common_mobile/load:tools:drive" }, { - "duration": "160.0", - "name": "v8.browsing_mobile-future/browse:shopping:amazon" + "duration": "17.0", + "name": "system_health.common_mobile/load:tools:dropbox" }, { - "duration": "131.0", - "name": "v8.browsing_mobile-future/browse:shopping:avito" + "duration": "18.0", + "name": "system_health.common_mobile/load:tools:stackoverflow" + }, + { + "duration": "20.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:tools:weather" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/background:media:imgur" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/background:news:nytimes" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/background:search:google" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/background:social:facebook" + }, + { + "duration": "13.0", + "name": "system_health.memory_mobile/browse:chrome:newtab" + }, + { + "duration": "12.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox" + }, + { + "duration": "81.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "45.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "71.0", + "name": "system_health.memory_mobile/browse:media:imgur" + }, + { + "duration": "85.0", + "name": "system_health.memory_mobile/browse:media:youtube" + }, + { + "duration": "106.0", + "name": "system_health.memory_mobile/browse:news:cnn" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:news:cnn:2018" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz" + }, + { + "duration": "62.0", + "name": "system_health.memory_mobile/browse:news:qq" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/browse:news:reddit" + }, + { + "duration": "107.0", + "name": "system_health.memory_mobile/browse:news:toi" + }, + { + "duration": "50.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "61.0", + "name": "system_health.memory_mobile/browse:shopping:amazon" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/browse:shopping:lazada" + }, + { + "duration": "63.0", + "name": "system_health.memory_mobile/browse:social:facebook" + }, + { + "duration": "75.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "78.0", + "name": "system_health.memory_mobile/browse:social:instagram" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "81.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "52.0", - "name": "v8.browsing_mobile-future/browse:shopping:lazada" + "name": "system_health.memory_mobile/browse:social:twitter" }, { - "duration": "96.0", - "name": "v8.browsing_mobile-future/browse:social:facebook" + "duration": "57.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "231.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll" + "duration": "44.0", + "name": "system_health.memory_mobile/browse:tools:maps" }, { - "duration": "174.0", - "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + "duration": "23.0", + "name": "system_health.memory_mobile/load:chrome:blank" }, { - "duration": "134.0", - "name": "v8.browsing_mobile-future/browse:social:instagram" + "duration": "23.0", + "name": "system_health.memory_mobile/load:games:bubbles" }, { - "duration": "132.0", - "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + "duration": "21.0", + "name": "system_health.memory_mobile/load:games:lazors" }, { - "duration": "160.0", - "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:spychase" }, { - "duration": "68.0", - "name": "v8.browsing_mobile-future/browse:social:twitter" + "duration": "29.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" }, { - "duration": "105.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll" + "duration": "26.0", + "name": "system_health.memory_mobile/load:media:dailymotion" }, { - "duration": "136.0", - "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:facebook_photos" }, { - "duration": "60.0", - "name": "v8.browsing_mobile-future/browse:tools:maps" + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" }, { - "duration": "123.0", - "name": "v8.browsing_mobile/browse:media:facebook_photos" + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:google_images" }, { - "duration": "88.0", - "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + "duration": "24.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" }, { - "duration": "112.0", - "name": "v8.browsing_mobile/browse:media:imgur" + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:imgur" }, { - "duration": "194.0", - "name": "v8.browsing_mobile/browse:news:cnn:2018" + "duration": "27.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" }, { - "duration": "100.0", - "name": "v8.browsing_mobile/browse:news:cricbuzz" + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:youtube" }, { - "duration": "87.0", - "name": "v8.browsing_mobile/browse:news:qq" + "duration": "24.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" }, { - "duration": "83.0", - "name": "v8.browsing_mobile/browse:news:reddit" + "duration": "39.0", + "name": "system_health.memory_mobile/load:news:cnn" }, { - "duration": "322.0", - "name": "v8.browsing_mobile/browse:news:toi" + "duration": "33.0", + "name": "system_health.memory_mobile/load:news:cnn:2018" }, { - "duration": "88.0", - "name": "v8.browsing_mobile/browse:news:washingtonpost" + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:irctc" }, { - "duration": "142.0", - "name": "v8.browsing_mobile/browse:shopping:amazon" + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:nytimes" }, { - "duration": "130.0", - "name": "v8.browsing_mobile/browse:shopping:avito" + "duration": "26.0", + "name": "system_health.memory_mobile/load:news:qq" }, { - "duration": "58.0", - "name": "v8.browsing_mobile/browse:shopping:lazada" + "duration": "24.0", + "name": "system_health.memory_mobile/load:news:reddit" }, { - "duration": "114.0", - "name": "v8.browsing_mobile/browse:social:facebook" + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:washingtonpost" }, { - "duration": "311.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:wikipedia" }, { - "duration": "221.0", - "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" }, { - "duration": "164.0", - "name": "v8.browsing_mobile/browse:social:instagram" + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:baidu" }, { - "duration": "165.0", - "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" }, { - "duration": "204.0", - "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:ebay" }, { - "duration": "79.0", - "name": "v8.browsing_mobile/browse:social:twitter" + "duration": "25.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:google" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:taobao" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yahoo" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:yandex" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:social:twitter" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:docs" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:dropbox" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:tools:weather" + }, + { + "duration": "20.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "10.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "11.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "13.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "11.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab" + }, + { + "duration": "10.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox" + }, + { + "duration": "94.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "80.0", + "name": "v8.browsing_mobile-future/browse:media:imgur" }, { "duration": "121.0", + "name": "v8.browsing_mobile-future/browse:media:youtube" + }, + { + "duration": "177.0", + "name": "v8.browsing_mobile-future/browse:news:cnn" + }, + { + "duration": "125.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz" + }, + { + "duration": "70.0", + "name": "v8.browsing_mobile-future/browse:news:qq" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile-future/browse:news:reddit" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "82.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon" + }, + { + "duration": "37.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile-future/browse:social:facebook" + }, + { + "duration": "110.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "102.0", + "name": "v8.browsing_mobile-future/browse:social:instagram" + }, + { + "duration": "106.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "117.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "129.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:social:twitter" + }, + { + "duration": "104.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:tools:maps" + }, + { + "duration": "11.0", + "name": "v8.browsing_mobile/browse:chrome:newtab" + }, + { + "duration": "10.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox" + }, + { + "duration": "94.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "80.0", + "name": "v8.browsing_mobile/browse:media:imgur" + }, + { + "duration": "125.0", + "name": "v8.browsing_mobile/browse:news:cnn:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz" + }, + { + "duration": "71.0", + "name": "v8.browsing_mobile/browse:news:qq" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:news:reddit" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "92.0", + "name": "v8.browsing_mobile/browse:shopping:amazon" + }, + { + "duration": "38.0", + "name": "v8.browsing_mobile/browse:shopping:lazada" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile/browse:social:facebook" + }, + { + "duration": "116.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll" + }, + { + "duration": "110.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "102.0", + "name": "v8.browsing_mobile/browse:social:instagram" + }, + { + "duration": "106.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll" + }, + { + "duration": "117.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "128.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile/browse:social:twitter" + }, + { + "duration": "76.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll" }, { - "duration": "164.0", + "duration": "103.0", "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "73.0", + "duration": "47.0", "name": "v8.browsing_mobile/browse:tools:maps" }, { @@ -4212,7 +4064,7 @@ "name": "wasm/AsmJsZenGarden" }, { - "duration": "27.0", + "duration": "20.0", "name": "wasm/WasmSpaceBuggy" }, { @@ -4224,7 +4076,7 @@ "name": "wasm/WasmSunTemple" }, { - "duration": "18.0", + "duration": "15.0", "name": "wasm/WasmTanks" }, { @@ -4232,35 +4084,35 @@ "name": "wasm/WasmZenGarden" }, { - "duration": "22.0", + "duration": "17.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "28.0", + "duration": "21.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "37.0", + "duration": "30.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "38.0", + "duration": "30.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "38.0", + "duration": "30.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "24.0", + "duration": "18.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "46.0", + "duration": "36.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "65.0", + "duration": "50.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
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 b6aff32..e050dfa 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,10 +1,14 @@ [ { - "duration": "29.0", + "duration": "26.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "18.0", + "duration": "15.0", "name": "blink_perf.bindings/append-child.html" }, { @@ -32,7 +36,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "22.0", + "duration": "17.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -60,7 +64,7 @@ "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.bindings/indexed-getter.html" }, { @@ -72,7 +76,7 @@ "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "34.0", + "duration": "21.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -116,11 +120,11 @@ "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -160,51 +164,151 @@ "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "13.0", + "duration": "6.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "14.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "14.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "13.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "14.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "19.0", + "duration": "7.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "15.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { + "duration": "11.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "12.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "9.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "7.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { "duration": "7.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { - "duration": "11.0", + "duration": "8.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { "duration": "12.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/drawimage.html" }, { "duration": "12.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/getImageData.html" }, { @@ -212,39 +316,95 @@ "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { + "duration": "11.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { "duration": "12.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "11.0", "name": "blink_perf.canvas/putImageData.html" }, { + "duration": "11.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "13.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { "duration": "7.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "6.0", + "duration": "7.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { + "duration": "12.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { "duration": "13.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "7.0", + "duration": "9.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "8.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "22.0", + "duration": "12.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "17.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -260,83 +420,83 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "10.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ClassInvalidation.html" }, { @@ -356,19 +516,19 @@ "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -380,31 +540,15 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "15.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "6.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "13.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -412,7 +556,7 @@ "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/modify-element-id.html" }, { @@ -420,83 +564,79 @@ "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "6.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "6.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "12.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "12.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "19.0", + "duration": "16.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "12.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "21.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "12.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "14.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "15.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { "duration": "11.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "22.0", - "name": "blink_perf.image_decoder/decode-gif.html" + "duration": "11.0", + "name": "blink_perf.events/is-input-pending-all-events.html" }, { - "duration": "12.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "14.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" - }, - { - "duration": "12.0", - "name": "blink_perf.image_decoder/decode-lossy-webp.html" - }, - { - "duration": "13.0", - "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" - }, - { - "duration": "12.0", - "name": "blink_perf.image_decoder/decode-png-palette.html" - }, - { - "duration": "14.0", - "name": "blink_perf.image_decoder/decode-png.html" + "duration": "11.0", + "name": "blink_perf.events/is-input-pending-default-events.html" }, { "duration": "19.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "16.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-lossy-webp.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-png-palette.html" + }, + { + "duration": "17.0", + "name": "blink_perf.image_decoder/decode-png.html" + }, + { + "duration": "15.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -524,7 +664,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { @@ -556,6 +696,18 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "9.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "16.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, @@ -576,7 +728,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { @@ -584,19 +736,23 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { + "duration": "12.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { "duration": "11.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -632,6 +788,14 @@ "name": "blink_perf.layout/hindi-line-layout.html" }, { + "duration": "7.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "14.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "11.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, @@ -664,7 +828,15 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "10.0", + "duration": "7.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "9.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { @@ -693,6 +865,14 @@ }, { "duration": "11.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "11.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "12.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { @@ -704,7 +884,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { @@ -716,7 +896,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -724,7 +904,7 @@ "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/nested-grid.html" }, { @@ -732,7 +912,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "40.0", + "duration": "35.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -752,99 +932,111 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "18.0", + "duration": "16.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": "10.0", + "duration": "14.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": "15.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.paint/color-changes.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "12.0", + "duration": "15.0", + "name": "blink_perf.paint/complex-iframe-filtered.html" + }, + { + "duration": "24.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "15.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "14.0", + "duration": "16.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "15.0", "name": "blink_perf.paint/transform-changes.html" }, { - "duration": "19.0", + "duration": "16.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "23.0", + "duration": "24.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -872,7 +1064,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -888,19 +1080,19 @@ "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "13.0", + "duration": "12.0", "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" }, { @@ -916,7 +1108,7 @@ "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { @@ -944,11 +1136,11 @@ "name": "blink_perf.parser/url-parser.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -968,7 +1160,7 @@ "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "13.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { @@ -992,7 +1184,7 @@ "name": "blink_perf.shadow_dom/imperative-api.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { @@ -1048,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "14.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1060,11 +1252,11 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "14.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "23.0", + "duration": "19.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1120,7 +1312,7 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "14.0", + "duration": "10.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { @@ -1136,7 +1328,7 @@ "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.svg/CrawFishGanson.html" }, { @@ -1176,7 +1368,7 @@ "name": "blink_perf.svg/HereGear.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.svg/MtSaintHelens.html" }, { @@ -1184,11 +1376,11 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.svg/SvgCubics.html" }, { @@ -1196,7 +1388,7 @@ "name": "blink_perf.svg/SvgHitTesting.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.svg/SvgNestedUse.html" }, { @@ -1212,7 +1404,7 @@ "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "42.0", + "duration": "39.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1220,39 +1412,35 @@ "name": "dromaeo/http://dromaeo.com?dom-modify" }, { - "duration": "53.0", + "duration": "52.0", "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "32.0", + "duration": "33.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "17.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { - "duration": "11.0", + "duration": "8.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "179.0", + "duration": "175.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "32.0", + "duration": "25.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/24h_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/24h_warm" }, { @@ -1260,619 +1448,607 @@ "name": "loading.desktop/AirBnB_cold" }, { - "duration": "34.0", + "duration": "24.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "14.0", + "duration": "11.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/AllRecipes_cold" }, { - "duration": "41.0", + "duration": "16.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "29.0", + "duration": "21.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "14.0", + "duration": "12.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "25.0", + "duration": "14.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "20.0", + "duration": "21.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "15.0", + "duration": "11.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "16.0", + "duration": "11.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "30.0", + "duration": "20.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "20.0", + "duration": "12.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "27.0", + "duration": "19.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "16.0", + "duration": "11.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "14.0", + "duration": "12.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "14.0", + "duration": "11.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "14.0", + "duration": "11.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "16.0", + "duration": "19.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "24.0", + "duration": "13.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "35.0", + "duration": "19.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "15.0", + "duration": "11.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "15.0", + "duration": "11.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "14.0", + "duration": "11.0", "name": "loading.desktop/Orange_cold" }, { - "duration": "17.0", + "duration": "12.0", "name": "loading.desktop/Orange_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "18.0", + "duration": "12.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "24.0", + "duration": "16.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/REI_cold" }, { - "duration": "20.0", + "duration": "13.0", "name": "loading.desktop/REI_warm" }, { - "duration": "15.0", + "duration": "12.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "18.0", + "duration": "13.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "26.0", + "duration": "18.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "25.0", + "duration": "18.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "18.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "25.0", - "name": "loading.desktop/TheOnion_warm" - }, - { - "duration": "18.0", + "duration": "12.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "20.0", + "duration": "12.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "26.0", + "duration": "15.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "25.0", + "duration": "13.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "34.0", + "duration": "18.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "39.0", + "duration": "15.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "22.0", - "name": "loading.desktop/Walgreens_cold" - }, - { - "duration": "32.0", - "name": "loading.desktop/Walgreens_warm" - }, - { - "duration": "15.0", + "duration": "11.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "17.0", + "duration": "13.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "18.0", + "duration": "13.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "25.0", + "duration": "16.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "16.0", + "duration": "12.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "20.0", + "duration": "12.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "29.0", + "duration": "17.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "19.0", + "duration": "13.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "16.0", + "duration": "11.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "21.0", + "duration": "14.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "15.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "16.0", + "duration": "13.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "16.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "16.0", + "duration": "11.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "28.0", + "duration": "12.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + }, + { + "duration": "19.0", "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "25.0", + "duration": "18.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "25.0", + "duration": "18.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "23.0", + "duration": "17.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "13.0", + "duration": "11.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "23.0", + "duration": "17.0", "name": "media.desktop/video.html?src=crowd720_vp9.webm" }, { - "duration": "25.0", + "duration": "18.0", "name": "media.desktop/video.html?src=garden2_10s.mp4" }, { - "duration": "15.0", + "duration": "11.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "24.0", + "duration": "17.0", "name": "media.desktop/video.html?src=garden2_10s.webm" }, { - "duration": "14.0", + "duration": "11.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { - "duration": "16.0", + "duration": "12.0", "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" + "duration": "18.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" }, { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" - }, - { - "duration": "32.0", - "name": "media.desktop/video.html?src=tulip2.mp4" - }, - { - "duration": "32.0", - "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.mp4&seek" - }, - { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" - }, - { - "duration": "37.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm" - }, - { - "duration": "25.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" - }, - { - "duration": "15.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" - }, - { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.wav&type=audio" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" - }, - { - "duration": "23.0", - "name": "memory.desktop/TrivialAnimationPageSharedPageState" - }, - { - "duration": "22.0", - "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" - }, - { - "duration": "22.0", - "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" - }, - { - "duration": "22.0", - "name": "memory.desktop/TrivialCanvasPageSharedPageState" - }, - { - "duration": "23.0", - "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" - }, - { - "duration": "22.0", - "name": "memory.desktop/TrivialGifPageSharedPageState" + "duration": "11.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { "duration": "24.0", + "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" + }, + { + "duration": "24.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" + }, + { + "duration": "11.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" + }, + { + "duration": "25.0", + "name": "media.desktop/video.html?src=tulip2.mp4" + }, + { + "duration": "25.0", + "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" + }, + { + "duration": "11.0", + "name": "media.desktop/video.html?src=tulip2.mp4&seek" + }, + { + "duration": "24.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" + }, + { + "duration": "11.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" + }, + { + "duration": "26.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm" + }, + { + "duration": "18.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" + }, + { + "duration": "12.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" + }, + { + "duration": "52.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "24.0", + "name": "media.desktop/video.html?src=tulip2.wav&type=audio" + }, + { + "duration": "12.0", + "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialAnimationPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" + }, + { + "duration": "19.0", + "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialCanvasPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialGifPageSharedPageState" + }, + { + "duration": "19.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "22.0", + "duration": "18.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "37.0", + "duration": "31.0", "name": "memory.desktop/WebWorker" }, { - "duration": "162.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "154.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "46.0", + "duration": "43.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "65.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "47.0", + "duration": "37.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "44.0", + "duration": "36.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "46.0", + "duration": "37.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "46.0", + "duration": "37.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "44.0", + "duration": "37.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "44.0", + "duration": "39.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "50.0", + "duration": "39.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "46.0", + "duration": "37.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "547.0", + "duration": "43.0", "name": "power.desktop/abcnews" }, { - "duration": "43.0", + "duration": "37.0", "name": "power.desktop/indiatimes" }, { - "duration": "55.0", + "duration": "37.0", "name": "power.desktop/instagram" }, { - "duration": "43.0", + "duration": "37.0", "name": "power.desktop/microsoft" }, { - "duration": "45.0", + "duration": "37.0", "name": "power.desktop/sina" }, { - "duration": "45.0", + "duration": "37.0", "name": "power.desktop/slideshare" }, { - "duration": "56.0", + "duration": "39.0", "name": "power.desktop/uol" }, { - "duration": "15.0", + "duration": "13.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "20.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -1880,19 +2056,19 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { @@ -1900,7 +2076,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { @@ -1908,11 +2084,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" }, { @@ -1920,23 +2096,23 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "28.0", + "duration": "15.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { @@ -1944,211 +2120,211 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "99.0", + "duration": "102.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" }, { - "duration": "78.0", + "duration": "80.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "23.0", + "duration": "19.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "41.0", + "duration": "19.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "10.0", + "duration": "17.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "35.0", + "duration": "20.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "10.0", + "duration": "13.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "25.0", + "duration": "15.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "14.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "15.0", "name": "rendering.desktop/aquarium" }, { - "duration": "37.0", + "duration": "21.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "31.0", + "duration": "19.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "40.0", + "duration": "18.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "31.0", + "duration": "17.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.desktop/blob" }, { - "duration": "38.0", + "duration": "16.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "10.0", + "duration": "13.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "32.0", + "duration": "12.0", + "name": "rendering.desktop/blur_rotating_background" + }, + { + "duration": "13.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "10.0", + "duration": "13.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "19.0", + "duration": "13.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "19.0", + "duration": "12.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "20.0", + "duration": "13.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "30.0", + "duration": "13.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "69.0", + "duration": "18.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "23.0", + "duration": "14.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "22.0", + "duration": "14.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "12.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "11.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "11.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "13.0", + "duration": "11.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "13.0", + "duration": "11.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "20.0", + "duration": "13.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/cats_unscaled" }, { @@ -2156,1323 +2332,1643 @@ "name": "rendering.desktop/cats_viewport_width" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "27.0", - "name": "rendering.desktop/cc_scroll_200_layer_grid" - }, - { - "duration": "20.0", + "duration": "14.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "10.0", + "duration": "14.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "26.0", + "duration": "17.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "25.0", + "duration": "16.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "29.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "30.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "30.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "30.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "31.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "30.0", + "duration": "17.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "30.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "29.0", + "duration": "19.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "41.0", + "duration": "17.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.desktop/earth" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "10.0", + "duration": "15.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.desktop/effect_games" }, { - "duration": "41.0", + "duration": "18.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "10.0", + "duration": "14.0", "name": "rendering.desktop/espn_pinch_2018" }, { - "duration": "25.0", + "duration": "17.0", "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "10.0", + "duration": "12.0", "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "19.0", + "duration": "13.0", "name": "rendering.desktop/geo_apis" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "36.0", + "duration": "22.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "10.0", + "duration": "13.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "18.0", + "duration": "12.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "10.0", + "duration": "13.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "42.0", + "duration": "15.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "10.0", + "duration": "12.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "10.0", + "duration": "12.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/hakim" }, { - "duration": "38.0", + "duration": "27.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "33.0", + "duration": "19.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "28.0", + "duration": "18.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "28.0", + "duration": "18.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "18.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "36.0", + "duration": "21.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "32.0", + "duration": "20.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "31.0", + "duration": "20.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "27.0", - "name": "rendering.desktop/js_scroll_200_layer_grid" - }, - { - "duration": "27.0", + "duration": "19.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "25.0", + "duration": "19.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "10.0", + "duration": "16.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.desktop/many_images" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.desktop/many_planets_deep" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "29.0", + "duration": "17.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "27.0", + "duration": "17.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "20.0", + "duration": "12.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "20.0", + "duration": "13.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "20.0", - "name": "rendering.desktop/microsoft_snow" - }, - { - "duration": "19.0", - "name": "rendering.desktop/microsoft_speed_reading" - }, - { - "duration": "19.0", - "name": "rendering.desktop/microsoft_tweet_map" - }, - { - "duration": "24.0", - "name": "rendering.desktop/microsoft_video_city" - }, - { - "duration": "21.0", - "name": "rendering.desktop/microsoft_worker_fountains" - }, - { - "duration": "19.0", - "name": "rendering.desktop/mix_10k" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_difference" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_hue" - }, - { - "duration": "28.0", - "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_screen" - }, - { - "duration": "29.0", - "name": "rendering.desktop/motion_mark_canvas_fill_shapes" - }, - { - "duration": "27.0", - "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "32.0", - "name": "rendering.desktop/motion_mark_focus" - }, - { - "duration": "33.0", - "name": "rendering.desktop/new_tilings" - }, - { - "duration": "24.0", - "name": "rendering.desktop/nvidia_vertex_buffer_object" - }, - { - "duration": "48.0", - "name": "rendering.desktop/overlay_background_color_css_transitions_page" - }, - { - "duration": "23.0", - "name": "rendering.desktop/particles" - }, - { - "duration": "34.0", - "name": "rendering.desktop/pinterest_2018" - }, - { - "duration": "21.0", - "name": "rendering.desktop/put_get_image_data" - }, - { - "duration": "23.0", - "name": "rendering.desktop/raf" - }, - { - "duration": "23.0", - "name": "rendering.desktop/raf_animation" - }, - { - "duration": "23.0", - "name": "rendering.desktop/raf_canvas" - }, - { - "duration": "23.0", - "name": "rendering.desktop/raf_touch_animation" - }, - { - "duration": "20.0", - "name": "rendering.desktop/runway" - }, - { - "duration": "24.0", - "name": "rendering.desktop/san_angeles" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_heavy" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_light" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_medium" - }, - { - "duration": "21.0", - "name": "rendering.desktop/simple_text_page" - }, - { - "duration": "16.0", - "name": "rendering.desktop/simple_touch_drag" - }, - { - "duration": "27.0", - "name": "rendering.desktop/small_texture_uploads" - }, - { - "duration": "24.0", - "name": "rendering.desktop/smash_cat" - }, - { - "duration": "18.0", - "name": "rendering.desktop/spielzeugz" - }, - { - "duration": "19.0", - "name": "rendering.desktop/stroke_shapes" - }, - { - "duration": "20.0", - "name": "rendering.desktop/sync_scroll_offset" - }, - { - "duration": "32.0", - "name": "rendering.desktop/techcrunch_2018" - }, - { - "duration": "22.0", - "name": "rendering.desktop/text_05000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.desktop/text_10000_pixels_per_second" - }, - { - "duration": "18.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.desktop/text_20000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_40000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_60000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_75000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_90000_pixels_per_second" - }, - { - "duration": "27.0", - "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" - }, - { - "duration": "25.0", - "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" - }, - { "duration": "17.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" - }, - { - "duration": "20.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.desktop/text_hover_05000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.desktop/text_hover_10000_pixels_per_second" - }, - { - "duration": "18.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.desktop/text_hover_20000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_hover_40000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_hover_60000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_hover_75000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_hover_90000_pixels_per_second" - }, - { - "duration": "22.0", - "name": "rendering.desktop/touch_handler_scrolling" - }, - { - "duration": "30.0", - "name": "rendering.desktop/transform_transitions" - }, - { - "duration": "25.0", - "name": "rendering.desktop/transform_transitions_js_block" - }, - { - "duration": "24.0", - "name": "rendering.desktop/twitch_2018" - }, - { - "duration": "10.0", - "name": "rendering.desktop/twitch_pinch_2018" - }, - { - "duration": "31.0", - "name": "rendering.desktop/twitter_2018" - }, - { - "duration": "10.0", - "name": "rendering.desktop/twitter_pinch_2018" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animation_value_type_color" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animation_value_type_length_3d" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animation_value_type_length_complex" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animation_value_type_length_simple" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animation_value_type_path" - }, - { - "duration": "28.0", - "name": "rendering.desktop/web_animation_value_type_shadow" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animation_value_type_transform_complex" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animation_value_type_transform_simple" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animations_many_keyframes" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animations_set_current_time" - }, - { - "duration": "27.0", - "name": "rendering.desktop/web_animations_simultaneous" - }, - { - "duration": "29.0", - "name": "rendering.desktop/web_animations_staggered_chaining" - }, - { - "duration": "25.0", - "name": "rendering.desktop/web_animations_staggered_infinite_iterations" - }, - { - "duration": "29.0", - "name": "rendering.desktop/web_animations_staggered_triggering_page" - }, - { - "duration": "29.0", - "name": "rendering.desktop/wikipedia_2018" - }, - { - "duration": "28.0", - "name": "rendering.desktop/wordpress_2018" - }, - { - "duration": "17.0", - "name": "rendering.desktop/yahoo_answers_2018" - }, - { - "duration": "33.0", - "name": "rendering.desktop/yahoo_news_2018" - }, - { - "duration": "10.0", - "name": "rendering.desktop/yahoo_news_pinch_2018" - }, - { - "duration": "38.0", - "name": "rendering.desktop/yahoo_sports_2018" - }, - { - "duration": "10.0", - "name": "rendering.desktop/yahoo_sports_pinch_2018" - }, - { - "duration": "24.0", - "name": "rendering.desktop/youtube_2018" - }, - { - "duration": "10.0", - "name": "rendering.desktop/youtube_pinch_2018" - }, - { - "duration": "24.0", - "name": "rendering.desktop/yuv_decoding" - }, - { - "duration": "40.0", - "name": "speedometer-future/http://browserbench.org/Speedometer/" - }, - { - "duration": "39.0", - "name": "speedometer/http://browserbench.org/Speedometer/" - }, - { - "duration": "69.0", - "name": "speedometer2-future/Speedometer2" - }, - { - "duration": "68.0", - "name": "speedometer2/Speedometer2" - }, - { - "duration": "77.0", - "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "107.0", - "name": "system_health.common_desktop/browse:media:imgur" - }, - { - "duration": "73.0", - "name": "system_health.common_desktop/browse:media:pinterest" - }, - { - "duration": "116.0", - "name": "system_health.common_desktop/browse:media:tumblr" - }, - { - "duration": "77.0", - "name": "system_health.common_desktop/browse:media:youtube" - }, - { - "duration": "74.0", - "name": "system_health.common_desktop/browse:news:cnn" - }, - { - "duration": "56.0", - "name": "system_health.common_desktop/browse:news:cnn:2018" - }, - { - "duration": "59.0", - "name": "system_health.common_desktop/browse:news:flipboard" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/browse:news:hackernews" - }, - { - "duration": "84.0", - "name": "system_health.common_desktop/browse:news:nytimes" - }, - { - "duration": "67.0", - "name": "system_health.common_desktop/browse:news:reddit" - }, - { - "duration": "53.0", - "name": "system_health.common_desktop/browse:search:google" - }, - { - "duration": "54.0", - "name": "system_health.common_desktop/browse:search:google:2018" - }, - { - "duration": "41.0", - "name": "system_health.common_desktop/browse:search:google_india" - }, - { - "duration": "76.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "90.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "88.0", - "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "53.0", - "name": "system_health.common_desktop/browse:social:twitter" - }, - { - "duration": "78.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "75.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "84.0", - "name": "system_health.common_desktop/browse:tools:earth" - }, - { - "duration": "61.0", - "name": "system_health.common_desktop/browse:tools:maps" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "42.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "21.0", - "name": "system_health.common_desktop/load:chrome:blank" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:games:bubbles" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:games:lazors" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:games:miniclip" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:games:spychase" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:media:9gag" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:media:dailymotion" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:media:google_images" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:media:imgur" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:media:soundcloud" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:media:youtube" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:news:bbc" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:news:cnn" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:news:flipboard" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:news:hackernews" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:news:nytimes" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:news:qq" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:news:reddit" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:news:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:amazon" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:search:baidu" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:search:ebay" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:search:google" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:taobao" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:search:yahoo" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:search:yandex" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:social:instagram" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:social:pinterest" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:social:vk" - }, - { - "duration": "41.0", - "name": "system_health.common_desktop/load:tools:docs" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:tools:drive" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:tools:dropbox" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:tools:gmail" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:tools:stackoverflow" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:tools:weather" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "137.0", - "name": "system_health.common_desktop/long_running:tools:gmail-background" - }, - { - "duration": "147.0", - "name": "system_health.common_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "130.0", - "name": "system_health.common_desktop/multitab:misc:typical24" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/play:media:google_play_music" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/play:media:soundcloud" - }, - { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "71.0", - "name": "system_health.memory_desktop/browse:media:imgur" - }, - { - "duration": "64.0", - "name": "system_health.memory_desktop/browse:media:pinterest" - }, - { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:media:youtube" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:news:cnn" - }, - { - "duration": "40.0", - "name": "system_health.memory_desktop/browse:news:cnn:2018" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:news:hackernews" - }, - { - "duration": "51.0", - "name": "system_health.memory_desktop/browse:news:nytimes" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:news:reddit" - }, - { - "duration": "49.0", - "name": "system_health.memory_desktop/browse:search:google" - }, - { - "duration": "48.0", - "name": "system_health.memory_desktop/browse:search:google:2018" - }, - { - "duration": "38.0", - "name": "system_health.memory_desktop/browse:search:google_india" - }, - { - "duration": "66.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:social:twitter" - }, - { - "duration": "64.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "62.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "57.0", - "name": "system_health.memory_desktop/browse:tools:earth" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "31.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:chrome:blank" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:games:bubbles" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:games:lazors" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:games:miniclip" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:games:spychase" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:media:9gag" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:media:dailymotion" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:media:google_images" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load:media:imgur" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:media:soundcloud" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:media:youtube" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:news:bbc" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:news:cnn" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:news:flipboard" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:news:hackernews" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:news:nytimes" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:news:qq" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:news:reddit" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:news:wikipedia" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:search:amazon" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:baidu" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:search:ebay" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:google" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:search:taobao" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:yahoo" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:search:yandex" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:social:instagram" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:social:pinterest" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:social:vk" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:tools:docs" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:tools:drive" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:tools:dropbox" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:tools:gmail" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:tools:stackoverflow" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:tools:weather" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "155.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/play:media:soundcloud" - }, - { - "duration": "81.0", - "name": "tab_switching.typical_25/multitab:misc:typical24" + "name": "rendering.desktop/microsoft_performance" }, { "duration": "12.0", + "name": "rendering.desktop/microsoft_snow" + }, + { + "duration": "13.0", + "name": "rendering.desktop/microsoft_speed_reading" + }, + { + "duration": "12.0", + "name": "rendering.desktop/microsoft_tweet_map" + }, + { + "duration": "13.0", + "name": "rendering.desktop/microsoft_video_city" + }, + { + "duration": "13.0", + "name": "rendering.desktop/microsoft_worker_fountains" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_10k" + }, + { + "duration": "16.0", + "name": "rendering.desktop/mix_blend_mode_animation_difference" + }, + { + "duration": "16.0", + "name": "rendering.desktop/mix_blend_mode_animation_hue" + }, + { + "duration": "17.0", + "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" + }, + { + "duration": "16.0", + "name": "rendering.desktop/mix_blend_mode_animation_screen" + }, + { + "duration": "17.0", + "name": "rendering.desktop/motion_mark_canvas_fill_shapes" + }, + { + "duration": "17.0", + "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" + }, + { + "duration": "20.0", + "name": "rendering.desktop/new_tilings" + }, + { + "duration": "14.0", + "name": "rendering.desktop/nvidia_vertex_buffer_object" + }, + { + "duration": "17.0", + "name": "rendering.desktop/overlay_background_color_css_transitions_page" + }, + { + "duration": "14.0", + "name": "rendering.desktop/particles" + }, + { + "duration": "21.0", + "name": "rendering.desktop/pinterest_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/put_get_image_data" + }, + { + "duration": "14.0", + "name": "rendering.desktop/raf" + }, + { + "duration": "14.0", + "name": "rendering.desktop/raf_animation" + }, + { + "duration": "14.0", + "name": "rendering.desktop/raf_canvas" + }, + { + "duration": "14.0", + "name": "rendering.desktop/raf_touch_animation" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_amazon_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_cnn_2018" + }, + { + "duration": "13.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": "12.0", + "name": "rendering.desktop/repaint_reddit_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_theverge_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_twitter_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_wikipedia_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/repaint_yahoo_homepage_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/runway" + }, + { + "duration": "14.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": "14.0", + "name": "rendering.desktop/simple_text_page" + }, + { + "duration": "11.0", + "name": "rendering.desktop/simple_touch_drag" + }, + { + "duration": "16.0", + "name": "rendering.desktop/small_texture_uploads" + }, + { + "duration": "15.0", + "name": "rendering.desktop/smash_cat" + }, + { + "duration": "12.0", + "name": "rendering.desktop/spielzeugz" + }, + { + "duration": "12.0", + "name": "rendering.desktop/stroke_shapes" + }, + { + "duration": "13.0", + "name": "rendering.desktop/sync_scroll_offset" + }, + { + "duration": "20.0", + "name": "rendering.desktop/techcrunch_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/text_05000_pixels_per_second" + }, + { + "duration": "13.0", + "name": "rendering.desktop/text_10000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.desktop/text_20000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_40000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_60000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_75000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_90000_pixels_per_second" + }, + { + "duration": "14.0", + "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" + }, + { + "duration": "14.0", + "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" + }, + { + "duration": "14.0", + "name": "rendering.desktop/text_hover_05000_pixels_per_second" + }, + { + "duration": "13.0", + "name": "rendering.desktop/text_hover_10000_pixels_per_second" + }, + { + "duration": "12.0", + "name": "rendering.desktop/text_hover_20000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_hover_40000_pixels_per_second" + }, + { + "duration": "10.0", + "name": "rendering.desktop/text_hover_60000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_hover_75000_pixels_per_second" + }, + { + "duration": "11.0", + "name": "rendering.desktop/text_hover_90000_pixels_per_second" + }, + { + "duration": "13.0", + "name": "rendering.desktop/touch_handler_scrolling" + }, + { + "duration": "17.0", + "name": "rendering.desktop/transform_transitions" + }, + { + "duration": "17.0", + "name": "rendering.desktop/transform_transitions_js_block" + }, + { + "duration": "13.0", + "name": "rendering.desktop/twitch_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/twitch_pinch_2018" + }, + { + "duration": "15.0", + "name": "rendering.desktop/twitter_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/twitter_pinch_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_color" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_length_3d" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_length_complex" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_length_simple" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_path" + }, + { + "duration": "17.0", + "name": "rendering.desktop/web_animation_value_type_shadow" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_transform_complex" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animation_value_type_transform_simple" + }, + { + "duration": "17.0", + "name": "rendering.desktop/web_animations_many_keyframes" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animations_set_current_time" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animations_simultaneous" + }, + { + "duration": "17.0", + "name": "rendering.desktop/web_animations_staggered_chaining" + }, + { + "duration": "16.0", + "name": "rendering.desktop/web_animations_staggered_infinite_iterations" + }, + { + "duration": "17.0", + "name": "rendering.desktop/web_animations_staggered_triggering_page" + }, + { + "duration": "15.0", + "name": "rendering.desktop/wikipedia_2018" + }, + { + "duration": "15.0", + "name": "rendering.desktop/wordpress_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/yahoo_answers_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/yahoo_news_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/yahoo_news_pinch_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/yahoo_sports_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/yahoo_sports_pinch_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/youtube_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/youtube_pinch_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/yuv_decoding" + }, + { + "duration": "35.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "35.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "64.0", + "name": "speedometer2-future/Speedometer2" + }, + { + "duration": "63.0", + "name": "speedometer2/Speedometer2" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "40.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:media:pinterest" + }, + { + "duration": "86.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "57.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:media:youtube" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:media:youtube:2018" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:cnn" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/browse:news:cnn:2018" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:flipboard" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:flipboard:2018" + }, + { + "duration": "48.0", + "name": "system_health.common_desktop/browse:news:hackernews" + }, + { + "duration": "51.0", + "name": "system_health.common_desktop/browse:news:hackernews:2018" + }, + { + "duration": "53.0", + "name": "system_health.common_desktop/browse:news:nytimes" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:news:nytimes:2018" + }, + { + "duration": "50.0", + "name": "system_health.common_desktop/browse:news:reddit" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:reddit:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:search:google" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:search:google:2018" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/browse:search:google_india" + }, + { + "duration": "32.0", + "name": "system_health.common_desktop/browse:search:google_india:2018" + }, + { + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "66.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "65.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "57.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/browse:social:twitter" + }, + { + "duration": "44.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": "62.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "55.0", + "name": "system_health.common_desktop/browse:tools:earth" + }, + { + "duration": "49.0", + "name": "system_health.common_desktop/browse:tools:maps" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" + }, + { + "duration": "27.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:games:bubbles" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:games:miniclip" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:spychase" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:dailymotion" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:google_images" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:imgur" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:soundcloud" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:youtube" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:bbc" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:cnn" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:cnn:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:hackernews" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:nytimes" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:qq" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:reddit" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:wikipedia" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:search:amazon" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:baidu" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:ebay" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:google" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:taobao" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:yahoo" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:yandex" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:social:instagram" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:social:pinterest" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:vk" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:tools:docs" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:tools:drive" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:tools:dropbox" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:tools:gmail" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:tools:stackoverflow" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:tools:weather" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "119.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "119.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "66.0", + "name": "system_health.common_desktop/multitab:misc:typical24" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/multitab:misc:typical24:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/play:media:soundcloud" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "65.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:media:pinterest" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:youtube" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:media:youtube:2018" + }, + { + "duration": "61.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:news:cnn" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/browse:news:cnn:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2018" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:news:hackernews" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:news:nytimes" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:news:reddit" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:news:reddit:2018" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:search:google" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:search:google:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/browse:search:google_india" + }, + { + "duration": "31.0", + "name": "system_health.memory_desktop/browse:search:google_india:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "52.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:social:twitter" + }, + { + "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": "59.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "50.0", + "name": "system_health.memory_desktop/browse:tools:earth" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" + }, + { + "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": "16.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:bubbles" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:miniclip" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:spychase" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:dailymotion" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:google_images" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:imgur" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:youtube" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:bbc" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:cnn" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:cnn:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:hackernews" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:nytimes" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:qq" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:reddit" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:wikipedia" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:amazon" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:baidu" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:ebay" + }, + { + "duration": "16.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" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:taobao" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:yahoo" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:yandex" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:instagram" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:pinterest" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:social:vk" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:docs" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:drive" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:dropbox" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:gmail" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:weather" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "127.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/multitab:misc:typical24:2018" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/play:media:soundcloud" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "65.0", + "name": "tab_switching.typical_25/multitab:misc:typical24" + }, + { + "duration": "11.0", "name": "tracing.tracing_with_background_memory_infra/Facebook" }, { @@ -3496,407 +3992,463 @@ "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" }, { - "duration": "13.0", + "duration": "11.0", "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" }, { - "duration": "17.0", + "duration": "12.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" }, { - "duration": "13.0", + "duration": "11.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { - "duration": "97.0", + "duration": "63.0", "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" }, { - "duration": "82.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" + "duration": "41.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" }, { - "duration": "101.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" + "duration": "88.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" }, { - "duration": "121.0", - "name": "v8.browsing_desktop-future/browse:news:cnn" - }, - { - "duration": "77.0", - "name": "v8.browsing_desktop-future/browse:news:cnn:2018" - }, - { - "duration": "66.0", - "name": "v8.browsing_desktop-future/browse:news:flipboard" - }, - { - "duration": "56.0", - "name": "v8.browsing_desktop-future/browse:news:hackernews" - }, - { - "duration": "119.0", - "name": "v8.browsing_desktop-future/browse:news:nytimes" + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" }, { "duration": "67.0", - "name": "v8.browsing_desktop-future/browse:news:reddit" + "name": "v8.browsing_desktop-future/browse:media:youtube:2018" }, { - "duration": "61.0", - "name": "v8.browsing_desktop-future/browse:search:google" + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" }, { - "duration": "61.0", - "name": "v8.browsing_desktop-future/browse:search:google:2018" + "duration": "42.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" + }, + { + "duration": "63.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2018" }, { "duration": "46.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" + "name": "v8.browsing_desktop-future/browse:search:google:2018" }, { - "duration": "104.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll" + "duration": "33.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2018" }, { - "duration": "194.0", + "duration": "66.0", "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "124.0", + "duration": "65.0", "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" }, { "duration": "60.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "120.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll" + "duration": "46.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" }, { - "duration": "116.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "110.0", - "name": "v8.browsing_desktop-future/browse:tools:earth" - }, - { - "duration": "77.0", - "name": "v8.browsing_desktop-future/browse:tools:maps" - }, - { - "duration": "107.0", - "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "82.0", - "name": "v8.browsing_desktop/browse:media:pinterest" - }, - { - "duration": "100.0", - "name": "v8.browsing_desktop/browse:media:youtube" - }, - { - "duration": "109.0", - "name": "v8.browsing_desktop/browse:news:cnn" - }, - { - "duration": "73.0", - "name": "v8.browsing_desktop/browse:news:cnn:2018" - }, - { - "duration": "71.0", - "name": "v8.browsing_desktop/browse:news:flipboard" - }, - { - "duration": "59.0", - "name": "v8.browsing_desktop/browse:news:hackernews" - }, - { - "duration": "129.0", - "name": "v8.browsing_desktop/browse:news:nytimes" - }, - { - "duration": "72.0", - "name": "v8.browsing_desktop/browse:news:reddit" - }, - { - "duration": "60.0", - "name": "v8.browsing_desktop/browse:search:google" + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" }, { "duration": "61.0", - "name": "v8.browsing_desktop/browse:search:google:2018" + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "45.0", - "name": "v8.browsing_desktop/browse:search:google_india" + "duration": "55.0", + "name": "v8.browsing_desktop-future/browse:tools:earth" }, { - "duration": "104.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" + "duration": "50.0", + "name": "v8.browsing_desktop-future/browse:tools:maps" }, { - "duration": "188.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + "duration": "63.0", + "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "127.0", - "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" + "duration": "41.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop/browse:media:pinterest" + }, + { + "duration": "88.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" }, { "duration": "62.0", - "name": "v8.browsing_desktop/browse:social:twitter" + "name": "v8.browsing_desktop/browse:media:youtube" }, { - "duration": "119.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:youtube:2018" }, { - "duration": "111.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + "duration": "65.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" }, { - "duration": "132.0", - "name": "v8.browsing_desktop/browse:tools:earth" - }, - { - "duration": "81.0", - "name": "v8.browsing_desktop/browse:tools:maps" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + "duration": "51.0", + "name": "v8.browsing_desktop/browse:news:cnn" }, { "duration": "41.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + "name": "v8.browsing_desktop/browse:news:cnn:2018" }, { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + "duration": "48.0", + "name": "v8.browsing_desktop/browse:news:flipboard" }, { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + "duration": "47.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2018" }, { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + "duration": "52.0", + "name": "v8.browsing_desktop/browse:news:hackernews" }, { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + "duration": "53.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2018" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + "duration": "52.0", + "name": "v8.browsing_desktop/browse:news:nytimes" + }, + { + "duration": "63.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2018" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop/browse:news:reddit" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop/browse:news:reddit:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop/browse:search:google" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:search:google:2018" }, { "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + "name": "v8.browsing_desktop/browse:search:google_india" }, { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + "duration": "33.0", + "name": "v8.browsing_desktop/browse:search:google_india:2018" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + "duration": "64.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + "duration": "66.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + "duration": "65.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "68.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" - }, - { - "duration": "56.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + "duration": "57.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "45.0", + "name": "v8.browsing_desktop/browse:social:twitter" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "63.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "55.0", + "name": "v8.browsing_desktop/browse:tools:earth" + }, + { + "duration": "50.0", + "name": "v8.browsing_desktop/browse:tools:maps" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + }, + { + "duration": "60.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "34.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" }, { - "duration": "41.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" }, { - "duration": "32.0", + "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": "37.0", + "duration": "33.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": "35.0", + "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": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" }, { - "duration": "37.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" }, { - "duration": "34.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" }, { - "duration": "34.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" }, { - "duration": "36.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" }, { - "duration": "34.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" }, { - "duration": "36.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" }, { - "duration": "34.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" }, { - "duration": "31.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" }, { - "duration": "36.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" }, { - "duration": "34.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" }, { - "duration": "34.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" }, { @@ -3904,339 +4456,339 @@ "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" }, { - "duration": "34.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://weibo.com_cold" }, { - "duration": "40.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://weibo.com_hot" }, { - "duration": "37.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://weibo.com_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" }, { - "duration": "37.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" }, { - "duration": "35.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" }, { - "duration": "42.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" }, { - "duration": "37.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" }, { - "duration": "35.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" }, { - "duration": "37.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" }, { - "duration": "34.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" }, { - "duration": "43.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" }, { - "duration": "40.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" }, { - "duration": "38.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" }, { - "duration": "46.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" }, { - "duration": "42.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" }, { - "duration": "67.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" }, { - "duration": "77.0", + "duration": "39.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" }, { - "duration": "72.0", + "duration": "38.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" }, { - "duration": "35.0", + "duration": "38.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" }, { - "duration": "40.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" }, { - "duration": "37.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" }, { - "duration": "32.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" }, { - "duration": "35.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" }, { - "duration": "32.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" }, { - "duration": "37.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" }, { - "duration": "35.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" }, { - "duration": "52.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" }, { - "duration": "77.0", + "duration": "37.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" }, { - "duration": "67.0", + "duration": "35.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" }, { - "duration": "32.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" }, { - "duration": "34.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" }, { - "duration": "44.0", + "duration": "35.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" }, { - "duration": "38.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" }, { - "duration": "36.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" }, { - "duration": "41.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" }, { - "duration": "37.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" }, { - "duration": "34.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" }, { - "duration": "34.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" }, { - "duration": "39.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" }, { - "duration": "36.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" }, { - "duration": "42.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" }, { - "duration": "40.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" }, { - "duration": "42.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" }, { - "duration": "39.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" }, { - "duration": "67.0", + "duration": "43.0", "name": "wasm/AsmJsZenGarden" }, { - "duration": "14.0", + "duration": "11.0", "name": "wasm/WasmSpaceBuggy" }, { - "duration": "27.0", + "duration": "19.0", "name": "wasm/WasmStylizedRenderer" }, { - "duration": "24.0", + "duration": "16.0", "name": "wasm/WasmSunTemple" }, { - "duration": "21.0", + "duration": "16.0", "name": "wasm/WasmTanks" }, { - "duration": "28.0", + "duration": "20.0", "name": "wasm/WasmZenGarden" }, { - "duration": "41.0", + "duration": "20.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "24.0", + "duration": "17.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "33.0", + "duration": "27.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "33.0", + "duration": "27.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "33.0", + "duration": "26.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "22.0", + "duration": "16.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "55.0", + "duration": "31.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "63.0", + "duration": "32.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json index ff302a8..1eb25d8 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-10_12_laptop_low_end-perf_timing.json
@@ -1,6 +1,10 @@ [ { "duration": "26.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", "name": "blink_perf.accessibility/textarea-append.html" }, { @@ -32,7 +36,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "21.0", + "duration": "15.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -68,11 +72,11 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "28.0", + "duration": "16.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -108,7 +112,7 @@ "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { @@ -132,7 +136,7 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { @@ -148,7 +152,7 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -156,55 +160,155 @@ "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "14.0", + "duration": "2.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "16.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "16.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "15.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "16.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "3.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "11.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "12.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { "duration": "13.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "3.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { - "duration": "11.0", + "duration": "3.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "12.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { "duration": "4.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { + "duration": "4.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { "duration": "3.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "3.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { - "duration": "6.0", + "duration": "4.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "9.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { "duration": "8.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "8.0", "name": "blink_perf.canvas/drawimage.html" }, { "duration": "8.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "8.0", "name": "blink_perf.canvas/getImageData.html" }, { @@ -212,39 +316,95 @@ "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "6.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { "duration": "8.0", "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "27.0", - "name": "blink_perf.canvas/toBlob_duration.html" + "duration": "8.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "11.0", + "name": "blink_perf.canvas/sheets-render.html" }, { "duration": "4.0", - "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "28.0", + "name": "blink_perf.canvas/toBlob_duration.html" + }, + { + "duration": "29.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" }, { "duration": "3.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg.html" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { "duration": "9.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { + "duration": "9.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "2.0", + "duration": "4.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { "duration": "5.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "17.0", + "duration": "9.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "15.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -260,83 +420,83 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ClassInvalidation.html" }, { @@ -356,19 +516,19 @@ "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -380,31 +540,15 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "14.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "26.0", + "duration": "32.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "2.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "9.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "2.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "17.0", + "duration": "11.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -420,18 +564,6 @@ "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "2.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "2.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "2.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { "duration": "8.0", "name": "blink_perf.dom/select-multiple-add.html" }, @@ -440,63 +572,71 @@ "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "7.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "7.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "9.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "17.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "8.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "12.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "12.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { "duration": "9.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "24.0", + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "25.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "19.0", + "duration": "21.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "19.0", + "duration": "21.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -524,7 +664,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "13.0", + "duration": "9.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { @@ -540,15 +680,15 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -556,11 +696,23 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "8.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { "duration": "9.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { @@ -576,7 +728,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { @@ -584,19 +736,23 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { + "duration": "9.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { "duration": "8.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -604,7 +760,7 @@ "name": "blink_perf.layout/floats_10_1000.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/floats_20_100.html" }, { @@ -616,7 +772,7 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { @@ -624,7 +780,7 @@ "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -632,27 +788,35 @@ "name": "blink_perf.layout/hindi-line-layout.html" }, { + "duration": "3.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "7.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "99.0", + "duration": "24.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "16.0", + "duration": "5.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -664,7 +828,15 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "7.0", + "duration": "2.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "4.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "6.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { @@ -688,15 +860,23 @@ "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "14.0", - "name": "blink_perf.layout/multicol/deeply-nested-tables.html" + "duration": "7.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { "duration": "8.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" }, { @@ -704,23 +884,23 @@ "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { @@ -732,7 +912,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "49.0", + "duration": "42.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -752,43 +932,51 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "11.0", + "duration": "16.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "15.0", + "duration": "19.0", "name": "blink_perf.paint/color-changes.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "12.0", + "duration": "13.0", + "name": "blink_perf.paint/complex-iframe-filtered.html" + }, + { + "duration": "31.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "14.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { @@ -796,7 +984,7 @@ "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { @@ -804,47 +992,51 @@ "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "13.0", + "duration": "19.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "17.0", "name": "blink_perf.paint/transform-changes.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "9.0", + "duration": "5.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "8.0", + "duration": "4.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "36.0", + "duration": "22.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -860,11 +1052,11 @@ "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { @@ -892,7 +1084,7 @@ "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { @@ -900,7 +1092,7 @@ "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { @@ -1048,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "13.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1060,11 +1252,11 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "13.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "25.0", + "duration": "20.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1104,11 +1296,11 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1176,7 +1368,7 @@ "name": "blink_perf.svg/HereGear.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.svg/MtSaintHelens.html" }, { @@ -1184,7 +1376,7 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "31.0", + "duration": "33.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -1212,7 +1404,7 @@ "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "36.0", + "duration": "37.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1228,647 +1420,631 @@ "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "14.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { "duration": "4.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "205.0", + "duration": "197.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "35.0", + "duration": "28.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/24h_cold" }, { - "duration": "29.0", + "duration": "11.0", "name": "loading.desktop/24h_warm" }, { - "duration": "29.0", + "duration": "14.0", "name": "loading.desktop/AirBnB_cold" }, { - "duration": "43.0", + "duration": "36.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "46.0", + "duration": "21.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "30.0", + "duration": "14.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "45.0", + "duration": "27.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "26.0", + "duration": "10.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "35.0", + "duration": "15.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "28.0", + "duration": "11.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "26.0", + "duration": "10.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "27.0", + "duration": "11.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "35.0", + "duration": "8.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "24.0", + "duration": "9.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "23.0", + "duration": "8.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "29.0", + "duration": "12.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "39.0", + "duration": "22.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "32.0", + "duration": "14.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "21.0", + "duration": "7.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "40.0", + "duration": "10.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "28.0", + "duration": "26.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "34.0", + "duration": "18.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "26.0", + "duration": "10.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "26.0", + "duration": "11.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "26.0", + "duration": "9.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "20.0", + "duration": "7.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "33.0", + "duration": "7.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "28.0", + "duration": "11.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "23.0", + "duration": "8.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "29.0", + "duration": "11.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "24.0", + "duration": "9.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "31.0", + "duration": "13.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "30.0", + "duration": "13.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "36.0", + "duration": "13.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "55.0", + "duration": "24.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "21.0", + "duration": "7.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "24.0", + "duration": "9.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "20.0", + "duration": "7.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/Orange_cold" }, { - "duration": "23.0", + "duration": "21.0", "name": "loading.desktop/Orange_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "27.0", + "duration": "10.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "23.0", + "duration": "8.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "29.0", + "duration": "13.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "24.0", + "duration": "9.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "30.0", + "duration": "14.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/REI_cold" }, { - "duration": "27.0", + "duration": "11.0", "name": "loading.desktop/REI_warm" }, { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "25.0", + "duration": "10.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "32.0", + "duration": "16.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "30.0", + "duration": "28.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "26.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "36.0", - "name": "loading.desktop/TheOnion_warm" - }, - { - "duration": "28.0", + "duration": "11.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "36.0", + "duration": "18.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "27.0", + "duration": "10.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "38.0", + "duration": "17.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "37.0", + "duration": "12.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "51.0", + "duration": "21.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "30.0", + "duration": "11.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "41.0", + "duration": "18.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "28.0", - "name": "loading.desktop/Walgreens_cold" - }, - { - "duration": "42.0", - "name": "loading.desktop/Walgreens_warm" - }, - { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "25.0", + "duration": "10.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "33.0", + "duration": "16.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "28.0", + "duration": "13.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "55.0", + "duration": "21.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "25.0", + "duration": "11.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "27.0", + "duration": "11.0", "name": "loading.desktop/uol.com.br_cold" }, { - "duration": "41.0", + "duration": "20.0", "name": "loading.desktop/uol.com.br_warm" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "27.0", + "duration": "11.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "16.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "21.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "18.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "17.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "25.0", - "name": "media.desktop/video.html?src=crowd.ogg&type=audio" - }, - { - "duration": "25.0", - "name": "media.desktop/video.html?src=crowd1080.mp4" - }, - { - "duration": "25.0", - "name": "media.desktop/video.html?src=crowd1080.webm" - }, - { - "duration": "23.0", - "name": "media.desktop/video.html?src=crowd1080_vp9.webm" - }, - { - "duration": "14.0", - "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" - }, - { - "duration": "23.0", - "name": "media.desktop/video.html?src=crowd720_vp9.webm" - }, - { - "duration": "28.0", - "name": "media.desktop/video.html?src=garden2_10s.mp4" - }, - { - "duration": "18.0", - "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" - }, - { - "duration": "24.0", - "name": "media.desktop/video.html?src=garden2_10s.webm" - }, - { - "duration": "15.0", - "name": "media.desktop/video.html?src=garden2_10s.webm&seek" - }, - { - "duration": "19.0", - "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" - }, - { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" - }, - { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" - }, - { - "duration": "32.0", - "name": "media.desktop/video.html?src=tulip2.mp4" - }, - { - "duration": "33.0", - "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" - }, - { - "duration": "14.0", - "name": "media.desktop/video.html?src=tulip2.mp4&seek" - }, - { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" - }, - { - "duration": "31.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm" - }, - { - "duration": "25.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" + "duration": "8.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" }, { "duration": "16.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" + "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "30.0", - "name": "media.desktop/video.html?src=tulip2.wav&type=audio" + "duration": "14.0", + "name": "media.desktop/video.html?src=crowd1080.mp4" }, { "duration": "13.0", + "name": "media.desktop/video.html?src=crowd1080.webm" + }, + { + "duration": "13.0", + "name": "media.desktop/video.html?src=crowd1080_vp9.webm" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" + }, + { + "duration": "13.0", + "name": "media.desktop/video.html?src=crowd720_vp9.webm" + }, + { + "duration": "15.0", + "name": "media.desktop/video.html?src=garden2_10s.mp4" + }, + { + "duration": "8.0", + "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" + }, + { + "duration": "13.0", + "name": "media.desktop/video.html?src=garden2_10s.webm" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=garden2_10s.webm&seek" + }, + { + "duration": "9.0", + "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" + }, + { + "duration": "14.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" + }, + { + "duration": "20.0", + "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" + }, + { + "duration": "20.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" + }, + { + "duration": "6.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" + }, + { + "duration": "20.0", + "name": "media.desktop/video.html?src=tulip2.mp4" + }, + { + "duration": "21.0", + "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip2.mp4&seek" + }, + { + "duration": "20.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" + }, + { + "duration": "6.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm" + }, + { + "duration": "14.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" + }, + { + "duration": "8.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "20.0", + "name": "media.desktop/video.html?src=tulip2.wav&type=audio" + }, + { + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "20.0", + "duration": "12.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "20.0", + "duration": "12.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "20.0", + "duration": "11.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "55.0", + "duration": "46.0", "name": "memory.desktop/WebWorker" }, { - "duration": "183.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "177.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "47.0", + "duration": "46.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "102.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "43.0", + "duration": "32.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "42.0", + "duration": "32.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "44.0", + "duration": "33.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "43.0", + "duration": "32.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "44.0", + "duration": "33.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "43.0", + "duration": "32.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "46.0", + "duration": "35.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "43.0", + "duration": "32.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "132.0", + "duration": "42.0", "name": "power.desktop/abcnews" }, { - "duration": "49.0", + "duration": "33.0", "name": "power.desktop/indiatimes" }, { - "duration": "51.0", + "duration": "41.0", "name": "power.desktop/instagram" }, { - "duration": "49.0", + "duration": "33.0", "name": "power.desktop/microsoft" }, { - "duration": "52.0", + "duration": "35.0", "name": "power.desktop/sina" }, { - "duration": "51.0", + "duration": "34.0", "name": "power.desktop/slideshare" }, { - "duration": "62.0", + "duration": "37.0", "name": "power.desktop/uol" }, { @@ -1876,7 +2052,7 @@ "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -1888,7 +2064,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { @@ -1896,7 +2072,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { @@ -1904,11 +2080,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" }, { @@ -1924,7 +2100,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { @@ -1932,11 +2108,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "5.0", + "duration": "7.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "23.0", + "duration": "10.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { @@ -1944,7 +2120,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { @@ -1956,7 +2132,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { @@ -1968,2239 +2144,2635 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "18.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "56.0", + "duration": "21.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "70.0", + "duration": "25.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "43.0", + "duration": "13.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "42.0", + "duration": "11.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "37.0", + "duration": "14.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "30.0", + "duration": "10.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "75.0", + "duration": "12.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "17.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "15.0", "name": "rendering.desktop/aquarium" }, { - "duration": "47.0", + "duration": "17.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "32.0", + "duration": "15.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "33.0", + "duration": "13.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "60.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "41.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "41.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "41.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "42.0", + "duration": "13.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "34.0", + "duration": "14.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "29.0", + "duration": "11.0", "name": "rendering.desktop/blob" }, { - "duration": "44.0", + "duration": "14.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "36.0", + "duration": "11.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "27.0", - "name": "rendering.desktop/booking.com_2018" - }, - { - "duration": "36.0", - "name": "rendering.desktop/booking_pinch_2018" - }, - { - "duration": "20.0", - "name": "rendering.desktop/bouncing_balls_15" - }, - { - "duration": "26.0", - "name": "rendering.desktop/bouncing_balls_shadow" - }, - { - "duration": "26.0", - "name": "rendering.desktop/bouncing_clipped_rectangles" - }, - { - "duration": "28.0", - "name": "rendering.desktop/bouncing_gradient_circles" - }, - { - "duration": "16.0", - "name": "rendering.desktop/bouncing_png_images" - }, - { - "duration": "32.0", - "name": "rendering.desktop/bouncing_svg_images" - }, - { - "duration": "131.0", - "name": "rendering.desktop/camera_to_webgl" - }, - { - "duration": "21.0", - "name": "rendering.desktop/canvas_05000_pixels_per_second" - }, - { - "duration": "21.0", - "name": "rendering.desktop/canvas_10000_pixels_per_second" - }, - { - "duration": "18.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "16.0", - "name": "rendering.desktop/canvas_20000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/canvas_40000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/canvas_60000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/canvas_75000_pixels_per_second" - }, - { - "duration": "12.0", - "name": "rendering.desktop/canvas_90000_pixels_per_second" - }, - { - "duration": "47.0", - "name": "rendering.desktop/canvas_animation_no_clear" - }, - { - "duration": "24.0", - "name": "rendering.desktop/canvas_arcs" - }, - { - "duration": "19.0", - "name": "rendering.desktop/canvas_font_cycler" - }, - { - "duration": "20.0", - "name": "rendering.desktop/canvas_lines" - }, - { - "duration": "17.0", - "name": "rendering.desktop/canvas_to_blob" - }, - { - "duration": "13.0", - "name": "rendering.desktop/cats_unscaled" - }, - { - "duration": "11.0", - "name": "rendering.desktop/cats_viewport_width" - }, - { - "duration": "29.0", - "name": "rendering.desktop/cc_poster_circle" - }, - { - "duration": "25.0", - "name": "rendering.desktop/cc_scroll_200_layer_grid" - }, - { - "duration": "19.0", - "name": "rendering.desktop/cc_scroll_text_only" - }, - { - "duration": "29.0", - "name": "rendering.desktop/chip_tune" - }, - { - "duration": "46.0", - "name": "rendering.desktop/cnn_2018" - }, - { - "duration": "47.0", - "name": "rendering.desktop/cnn_pinch_2018" - }, - { - "duration": "48.0", - "name": "rendering.desktop/compositor_heavy_animation" - }, - { - "duration": "28.0", - "name": "rendering.desktop/crafty_mind" - }, - { - "duration": "30.0", - "name": "rendering.desktop/css_animations_many_keyframes" - }, - { - "duration": "27.0", - "name": "rendering.desktop/css_animations_simultaneous_inline_style" - }, - { - "duration": "28.0", - "name": "rendering.desktop/css_animations_simultaneous_new_element" - }, - { - "duration": "28.0", - "name": "rendering.desktop/css_animations_simultaneous_style_element" - }, - { - "duration": "27.0", - "name": "rendering.desktop/css_animations_simultaneous_updating_class" - }, - { - "duration": "26.0", - "name": "rendering.desktop/css_animations_staggered_infinite_iterations" - }, - { - "duration": "32.0", - "name": "rendering.desktop/css_animations_staggered_inline_style" - }, - { - "duration": "34.0", - "name": "rendering.desktop/css_animations_staggered_new_element" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_animations_staggered_style_element" - }, - { - "duration": "33.0", - "name": "rendering.desktop/css_animations_staggered_updating_class" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_animations_triggered_inline_style" - }, - { - "duration": "36.0", - "name": "rendering.desktop/css_animations_triggered_new_element" - }, - { - "duration": "34.0", - "name": "rendering.desktop/css_animations_triggered_style_element" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_animations_triggered_updating_class" - }, - { - "duration": "30.0", - "name": "rendering.desktop/css_opacity_plus_n_layers_99" - }, - { - "duration": "28.0", - "name": "rendering.desktop/css_transitions_inline_style" - }, - { - "duration": "29.0", - "name": "rendering.desktop/css_transitions_new_element" - }, - { - "duration": "29.0", - "name": "rendering.desktop/css_transitions_staggered_inline_style" - }, - { - "duration": "31.0", - "name": "rendering.desktop/css_transitions_staggered_new_element" - }, - { - "duration": "30.0", - "name": "rendering.desktop/css_transitions_staggered_style_element" - }, - { - "duration": "29.0", - "name": "rendering.desktop/css_transitions_staggered_updating_class" - }, - { - "duration": "28.0", - "name": "rendering.desktop/css_transitions_style_element" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_transitions_triggered_inline_style" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_transitions_triggered_new_element" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_transitions_triggered_style_element" - }, - { - "duration": "35.0", - "name": "rendering.desktop/css_transitions_triggered_updating_class" - }, - { - "duration": "28.0", - "name": "rendering.desktop/css_transitions_updating_class" - }, - { - "duration": "25.0", - "name": "rendering.desktop/css_value_type_color" - }, - { - "duration": "45.0", - "name": "rendering.desktop/css_value_type_filter" - }, - { - "duration": "33.0", - "name": "rendering.desktop/css_value_type_length" - }, - { - "duration": "26.0", - "name": "rendering.desktop/css_value_type_length_complex" - }, - { - "duration": "25.0", - "name": "rendering.desktop/css_value_type_length_simple" - }, - { - "duration": "33.0", - "name": "rendering.desktop/css_value_type_path" - }, - { - "duration": "32.0", - "name": "rendering.desktop/css_value_type_shadow" - }, - { - "duration": "33.0", - "name": "rendering.desktop/css_value_type_transform_complex" - }, - { - "duration": "30.0", - "name": "rendering.desktop/css_value_type_transform_simple" - }, - { - "duration": "28.0", - "name": "rendering.desktop/dynamic_cube_map" - }, - { - "duration": "23.0", - "name": "rendering.desktop/earth" - }, - { - "duration": "31.0", - "name": "rendering.desktop/ebay_2018" - }, - { - "duration": "30.0", - "name": "rendering.desktop/ebay_pinch_2018" - }, - { - "duration": "26.0", - "name": "rendering.desktop/effect_games" - }, - { - "duration": "46.0", - "name": "rendering.desktop/espn_2018" - }, - { - "duration": "47.0", - "name": "rendering.desktop/espn_pinch_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/extra_large_texture_uploads" - }, - { - "duration": "38.0", - "name": "rendering.desktop/facebook_2018" - }, - { - "duration": "37.0", - "name": "rendering.desktop/facebook_pinch_2018" - }, - { - "duration": "25.0", - "name": "rendering.desktop/fill_shapes" - }, - { - "duration": "38.0", - "name": "rendering.desktop/filter_terrain_svg" - }, - { - "duration": "25.0", - "name": "rendering.desktop/geo_apis" - }, - { - "duration": "31.0", - "name": "rendering.desktop/gmail_2018" - }, - { - "duration": "52.0", - "name": "rendering.desktop/gmail_move_2018" - }, - { - "duration": "50.0", - "name": "rendering.desktop/gmail_pinch_2018" - }, - { - "duration": "28.0", - "name": "rendering.desktop/google_calendar_2018" - }, - { - "duration": "44.0", - "name": "rendering.desktop/google_calendar_pinch_2018" - }, - { - "duration": "43.0", - "name": "rendering.desktop/google_docs_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/google_image_pinch_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/google_image_search_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/google_plus_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/google_search_pinch_2018" - }, - { - "duration": "29.0", - "name": "rendering.desktop/google_web_search_2018" - }, - { - "duration": "33.0", - "name": "rendering.desktop/guimark_vector_chart" - }, - { - "duration": "29.0", - "name": "rendering.desktop/hakim" - }, - { - "duration": "46.0", - "name": "rendering.desktop/ie_chalkboard" - }, - { - "duration": "36.0", - "name": "rendering.desktop/ie_pirate_mark" - }, - { - "duration": "27.0", - "name": "rendering.desktop/infinite_scroll_element_n_layers_99" - }, - { - "duration": "27.0", - "name": "rendering.desktop/infinite_scroll_root_n_layers_99" - }, - { - "duration": "33.0", - "name": "rendering.desktop/jarro_doverson" - }, - { - "duration": "32.0", - "name": "rendering.desktop/js_full_screen_invalidation" - }, - { - "duration": "29.0", - "name": "rendering.desktop/js_opacity_plus_n_layers_99" - }, - { - "duration": "31.0", - "name": "rendering.desktop/js_paint_plus_n_layers_99" - }, - { - "duration": "29.0", - "name": "rendering.desktop/js_poster_circle" - }, - { - "duration": "25.0", - "name": "rendering.desktop/js_scroll_200_layer_grid" - }, - { - "duration": "26.0", - "name": "rendering.desktop/js_scroll_text_only" - }, - { - "duration": "29.0", - "name": "rendering.desktop/kevs_3d" - }, - { - "duration": "24.0", - "name": "rendering.desktop/keyframed_animations" - }, - { - "duration": "37.0", - "name": "rendering.desktop/large_texture_uploads" - }, - { - "duration": "35.0", - "name": "rendering.desktop/linkedin_2018" - }, - { - "duration": "43.0", - "name": "rendering.desktop/linkedin_pinch_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/man_in_blue" - }, - { - "duration": "33.0", - "name": "rendering.desktop/many_images" - }, - { - "duration": "23.0", - "name": "rendering.desktop/many_planets_deep" - }, - { - "duration": "33.0", - "name": "rendering.desktop/maps_move_2018" - }, - { - "duration": "45.0", - "name": "rendering.desktop/maps_perf_test" - }, - { - "duration": "26.0", - "name": "rendering.desktop/medium_texture_uploads" - }, - { - "duration": "28.0", - "name": "rendering.desktop/megi_dish" - }, - { - "duration": "25.0", - "name": "rendering.desktop/microsoft_asteroid_belt" - }, - { - "duration": "40.0", - "name": "rendering.desktop/microsoft_fireflies" - }, - { - "duration": "25.0", - "name": "rendering.desktop/microsoft_fish_ie_tank" - }, - { - "duration": "25.0", - "name": "rendering.desktop/microsoft_snow" - }, - { - "duration": "24.0", - "name": "rendering.desktop/microsoft_speed_reading" - }, - { - "duration": "35.0", - "name": "rendering.desktop/microsoft_tweet_map" - }, - { - "duration": "35.0", - "name": "rendering.desktop/microsoft_video_city" - }, - { - "duration": "25.0", - "name": "rendering.desktop/microsoft_worker_fountains" - }, - { - "duration": "18.0", - "name": "rendering.desktop/mix_10k" - }, - { - "duration": "25.0", - "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "47.0", - "name": "rendering.desktop/mix_blend_mode_animation_screen" - }, - { - "duration": "30.0", - "name": "rendering.desktop/motion_mark_canvas_fill_shapes" - }, - { - "duration": "26.0", - "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "34.0", - "name": "rendering.desktop/motion_mark_focus" - }, - { - "duration": "52.0", - "name": "rendering.desktop/new_tilings" - }, - { - "duration": "25.0", - "name": "rendering.desktop/nvidia_vertex_buffer_object" - }, - { - "duration": "47.0", - "name": "rendering.desktop/overlay_background_color_css_transitions_page" - }, - { - "duration": "21.0", - "name": "rendering.desktop/particles" - }, - { - "duration": "34.0", - "name": "rendering.desktop/pinterest_2018" - }, - { - "duration": "20.0", - "name": "rendering.desktop/put_get_image_data" - }, - { - "duration": "21.0", - "name": "rendering.desktop/raf" - }, - { - "duration": "21.0", - "name": "rendering.desktop/raf_animation" - }, - { - "duration": "21.0", - "name": "rendering.desktop/raf_canvas" - }, - { - "duration": "22.0", - "name": "rendering.desktop/raf_touch_animation" - }, - { - "duration": "21.0", - "name": "rendering.desktop/runway" - }, - { - "duration": "23.0", - "name": "rendering.desktop/san_angeles" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_heavy" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_light" - }, - { - "duration": "13.0", - "name": "rendering.desktop/second_batch_js_medium" - }, - { - "duration": "20.0", - "name": "rendering.desktop/simple_text_page" + "duration": "7.0", + "name": "rendering.desktop/blur_rotating_background" }, { "duration": "9.0", - "name": "rendering.desktop/simple_touch_drag" - }, - { - "duration": "24.0", - "name": "rendering.desktop/small_texture_uploads" - }, - { - "duration": "26.0", - "name": "rendering.desktop/smash_cat" - }, - { - "duration": "25.0", - "name": "rendering.desktop/spielzeugz" - }, - { - "duration": "20.0", - "name": "rendering.desktop/stroke_shapes" - }, - { - "duration": "8.0", - "name": "rendering.desktop/sync_scroll_offset" - }, - { - "duration": "40.0", - "name": "rendering.desktop/techcrunch_2018" - }, - { - "duration": "20.0", - "name": "rendering.desktop/text_05000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.desktop/text_10000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.desktop/text_20000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/text_40000_pixels_per_second" - }, - { - "duration": "12.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "12.0", - "name": "rendering.desktop/text_60000_pixels_per_second" - }, - { - "duration": "12.0", - "name": "rendering.desktop/text_75000_pixels_per_second" + "name": "rendering.desktop/booking.com_2018" }, { "duration": "11.0", - "name": "rendering.desktop/text_90000_pixels_per_second" + "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "26.0", - "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" + "duration": "10.0", + "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "24.0", - "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" + "duration": "9.0", + "name": "rendering.desktop/bouncing_balls_shadow" + }, + { + "duration": "9.0", + "name": "rendering.desktop/bouncing_clipped_rectangles" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_gradient_circles" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_png_images" + }, + { + "duration": "9.0", + "name": "rendering.desktop/bouncing_svg_images" }, { "duration": "20.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" + "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "18.0", - "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" + "duration": "9.0", + "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" + "duration": "9.0", + "name": "rendering.desktop/canvas_10000_pixels_per_second" + }, + { + "duration": "7.0", + "name": "rendering.desktop/canvas_20000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_40000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_60000_pixels_per_second" + }, + { + "duration": "7.0", + "name": "rendering.desktop/canvas_75000_pixels_per_second" + }, + { + "duration": "7.0", + "name": "rendering.desktop/canvas_90000_pixels_per_second" + }, + { + "duration": "9.0", + "name": "rendering.desktop/canvas_animation_no_clear" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_arcs" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_font_cycler" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_lines" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_to_blob" + }, + { + "duration": "9.0", + "name": "rendering.desktop/cats_unscaled" + }, + { + "duration": "7.0", + "name": "rendering.desktop/cats_viewport_width" }, { "duration": "16.0", - "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" + "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "15.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" + "duration": "10.0", + "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "15.0", - "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" + "duration": "11.0", + "name": "rendering.desktop/chip_tune" }, { - "duration": "15.0", - "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" + "duration": "21.0", + "name": "rendering.desktop/cnn_2018" }, { - "duration": "14.0", - "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" - }, - { - "duration": "20.0", - "name": "rendering.desktop/text_hover_05000_pixels_per_second" - }, - { - "duration": "19.0", - "name": "rendering.desktop/text_hover_10000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "15.0", - "name": "rendering.desktop/text_hover_20000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" + "duration": "25.0", + "name": "rendering.desktop/cnn_pinch_2018" }, { "duration": "13.0", - "name": "rendering.desktop/text_hover_40000_pixels_per_second" + "name": "rendering.desktop/compositor_heavy_animation" + }, + { + "duration": "8.0", + "name": "rendering.desktop/crafty_mind" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_animations_many_keyframes" }, { "duration": "12.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" + "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { "duration": "12.0", - "name": "rendering.desktop/text_hover_60000_pixels_per_second" + "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { "duration": "12.0", - "name": "rendering.desktop/text_hover_75000_pixels_per_second" + "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { "duration": "12.0", - "name": "rendering.desktop/text_hover_90000_pixels_per_second" + "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "20.0", - "name": "rendering.desktop/touch_handler_scrolling" - }, - { - "duration": "27.0", - "name": "rendering.desktop/transform_transitions" - }, - { - "duration": "26.0", - "name": "rendering.desktop/transform_transitions_js_block" - }, - { - "duration": "37.0", - "name": "rendering.desktop/twitch_2018" - }, - { - "duration": "43.0", - "name": "rendering.desktop/twitch_pinch_2018" - }, - { - "duration": "38.0", - "name": "rendering.desktop/twitter_2018" - }, - { - "duration": "34.0", - "name": "rendering.desktop/twitter_pinch_2018" - }, - { - "duration": "25.0", - "name": "rendering.desktop/web_animation_value_type_color" - }, - { - "duration": "32.0", - "name": "rendering.desktop/web_animation_value_type_length_3d" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animation_value_type_length_complex" - }, - { - "duration": "25.0", - "name": "rendering.desktop/web_animation_value_type_length_simple" - }, - { - "duration": "32.0", - "name": "rendering.desktop/web_animation_value_type_path" - }, - { - "duration": "32.0", - "name": "rendering.desktop/web_animation_value_type_shadow" - }, - { - "duration": "32.0", - "name": "rendering.desktop/web_animation_value_type_transform_complex" - }, - { - "duration": "30.0", - "name": "rendering.desktop/web_animation_value_type_transform_simple" - }, - { - "duration": "30.0", - "name": "rendering.desktop/web_animations_many_keyframes" - }, - { - "duration": "29.0", - "name": "rendering.desktop/web_animations_set_current_time" - }, - { - "duration": "29.0", - "name": "rendering.desktop/web_animations_simultaneous" - }, - { - "duration": "33.0", - "name": "rendering.desktop/web_animations_staggered_chaining" - }, - { - "duration": "26.0", - "name": "rendering.desktop/web_animations_staggered_infinite_iterations" - }, - { - "duration": "35.0", - "name": "rendering.desktop/web_animations_staggered_triggering_page" - }, - { - "duration": "36.0", - "name": "rendering.desktop/wikipedia_2018" - }, - { - "duration": "32.0", - "name": "rendering.desktop/wordpress_2018" - }, - { - "duration": "25.0", - "name": "rendering.desktop/yahoo_answers_2018" - }, - { - "duration": "40.0", - "name": "rendering.desktop/yahoo_news_2018" - }, - { - "duration": "42.0", - "name": "rendering.desktop/yahoo_news_pinch_2018" - }, - { - "duration": "43.0", - "name": "rendering.desktop/yahoo_sports_2018" - }, - { - "duration": "45.0", - "name": "rendering.desktop/yahoo_sports_pinch_2018" - }, - { - "duration": "33.0", - "name": "rendering.desktop/youtube_2018" - }, - { - "duration": "39.0", - "name": "rendering.desktop/youtube_pinch_2018" - }, - { - "duration": "29.0", - "name": "rendering.desktop/yuv_decoding" - }, - { - "duration": "65.0", - "name": "speedometer-future/http://browserbench.org/Speedometer/" - }, - { - "duration": "63.0", - "name": "speedometer/http://browserbench.org/Speedometer/" - }, - { - "duration": "106.0", - "name": "speedometer2-future/Speedometer2" - }, - { - "duration": "104.0", - "name": "speedometer2/Speedometer2" - }, - { - "duration": "80.0", - "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "110.0", - "name": "system_health.common_desktop/browse:media:imgur" - }, - { - "duration": "79.0", - "name": "system_health.common_desktop/browse:media:pinterest" - }, - { - "duration": "124.0", - "name": "system_health.common_desktop/browse:media:tumblr" - }, - { - "duration": "83.0", - "name": "system_health.common_desktop/browse:media:youtube" - }, - { - "duration": "98.0", - "name": "system_health.common_desktop/browse:news:cnn" - }, - { - "duration": "69.0", - "name": "system_health.common_desktop/browse:news:cnn:2018" - }, - { - "duration": "64.0", - "name": "system_health.common_desktop/browse:news:flipboard" - }, - { - "duration": "60.0", - "name": "system_health.common_desktop/browse:news:hackernews" - }, - { - "duration": "91.0", - "name": "system_health.common_desktop/browse:news:nytimes" - }, - { - "duration": "75.0", - "name": "system_health.common_desktop/browse:news:reddit" - }, - { - "duration": "61.0", - "name": "system_health.common_desktop/browse:search:google" - }, - { - "duration": "60.0", - "name": "system_health.common_desktop/browse:search:google:2018" - }, - { - "duration": "42.0", - "name": "system_health.common_desktop/browse:search:google_india" - }, - { - "duration": "74.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "94.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "88.0", - "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "58.0", - "name": "system_health.common_desktop/browse:social:twitter" - }, - { - "duration": "85.0", - "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll" - }, - { - "duration": "80.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "75.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "70.0", - "name": "system_health.common_desktop/browse:tools:earth" - }, - { - "duration": "40.0", - "name": "system_health.common_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "40.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:chrome:blank" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:games:bubbles" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:games:lazors" - }, - { - "duration": "32.0", - "name": "system_health.common_desktop/load:games:miniclip" - }, - { - "duration": "38.0", - "name": "system_health.common_desktop/load:games:spychase" - }, - { - "duration": "38.0", - "name": "system_health.common_desktop/load:media:9gag" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:media:dailymotion" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:media:google_images" - }, - { - "duration": "40.0", - "name": "system_health.common_desktop/load:media:imgur" - }, - { - "duration": "35.0", - "name": "system_health.common_desktop/load:media:soundcloud" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/load:media:youtube" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:news:bbc" - }, - { - "duration": "36.0", - "name": "system_health.common_desktop/load:news:cnn" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:news:flipboard" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:news:hackernews" - }, - { - "duration": "32.0", - "name": "system_health.common_desktop/load:news:nytimes" - }, - { - "duration": "37.0", - "name": "system_health.common_desktop/load:news:qq" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:news:reddit" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:news:wikipedia" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:search:amazon" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:search:baidu" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:search:ebay" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:search:google" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:search:taobao" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:search:yahoo" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:search:yandex" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:social:instagram" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:social:pinterest" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:social:vk" - }, - { - "duration": "48.0", - "name": "system_health.common_desktop/load:tools:docs" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/load:tools:drive" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:tools:dropbox" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/load:tools:gmail" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:tools:stackoverflow" - }, - { - "duration": "34.0", - "name": "system_health.common_desktop/load:tools:weather" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "143.0", - "name": "system_health.common_desktop/long_running:tools:gmail-background" - }, - { - "duration": "202.0", - "name": "system_health.common_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "63.0", - "name": "system_health.common_desktop/play:media:google_play_music" - }, - { - "duration": "60.0", - "name": "system_health.common_desktop/play:media:soundcloud" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "78.0", - "name": "system_health.memory_desktop/browse:media:imgur" - }, - { - "duration": "71.0", - "name": "system_health.memory_desktop/browse:media:pinterest" - }, - { - "duration": "112.0", - "name": "system_health.memory_desktop/browse:media:tumblr" - }, - { - "duration": "72.0", - "name": "system_health.memory_desktop/browse:media:youtube" - }, - { - "duration": "54.0", - "name": "system_health.memory_desktop/browse:news:cnn:2018" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:news:flipboard" - }, - { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:news:nytimes" - }, - { - "duration": "64.0", - "name": "system_health.memory_desktop/browse:news:reddit" - }, - { - "duration": "52.0", - "name": "system_health.memory_desktop/browse:search:google" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:search:google:2018" - }, - { - "duration": "39.0", - "name": "system_health.memory_desktop/browse:search:google_india" - }, - { - "duration": "66.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "76.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "73.0", - "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "54.0", - "name": "system_health.memory_desktop/browse:social:twitter" - }, - { - "duration": "71.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "69.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "59.0", - "name": "system_health.memory_desktop/browse:tools:earth" - }, - { - "duration": "34.0", - "name": "system_health.memory_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "37.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "19.0", - "name": "system_health.memory_desktop/load:chrome:blank" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:games:bubbles" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:games:lazors" - }, - { - "duration": "34.0", - "name": "system_health.memory_desktop/load:games:spychase" - }, - { - "duration": "32.0", - "name": "system_health.memory_desktop/load:media:9gag" - }, - { - "duration": "29.0", - "name": "system_health.memory_desktop/load:media:dailymotion" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:media:google_images" - }, - { - "duration": "32.0", - "name": "system_health.memory_desktop/load:media:imgur" - }, - { - "duration": "31.0", - "name": "system_health.memory_desktop/load:media:soundcloud" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/load:media:youtube" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:news:bbc" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/load:news:cnn" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:news:flipboard" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:news:hackernews" - }, - { - "duration": "29.0", - "name": "system_health.memory_desktop/load:news:nytimes" - }, - { - "duration": "32.0", - "name": "system_health.memory_desktop/load:news:qq" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:news:reddit" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:news:wikipedia" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:search:amazon" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:search:baidu" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:search:ebay" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:search:google" - }, - { - "duration": "29.0", - "name": "system_health.memory_desktop/load:search:taobao" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:search:yahoo" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:search:yandex" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:social:instagram" - }, - { - "duration": "29.0", - "name": "system_health.memory_desktop/load:social:pinterest" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:social:vk" - }, - { - "duration": "35.0", - "name": "system_health.memory_desktop/load:tools:docs" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:tools:drive" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:tools:dropbox" - }, - { - "duration": "29.0", - "name": "system_health.memory_desktop/load:tools:gmail" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:tools:stackoverflow" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/load:tools:weather" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "186.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-background" - }, - { - "duration": "189.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "54.0", - "name": "system_health.memory_desktop/play:media:soundcloud" - }, - { - "duration": "20.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "18.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "20.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + "duration": "12.0", + "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + "name": "rendering.desktop/css_animations_staggered_inline_style" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_staggered_new_element" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_staggered_style_element" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_staggered_updating_class" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_triggered_inline_style" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_triggered_new_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_animations_triggered_style_element" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_animations_triggered_updating_class" + }, + { + "duration": "15.0", + "name": "rendering.desktop/css_opacity_plus_n_layers_99" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_transitions_inline_style" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_transitions_new_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_staggered_inline_style" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_staggered_new_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_staggered_style_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_staggered_updating_class" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_transitions_style_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_triggered_inline_style" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_triggered_new_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_triggered_style_element" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_transitions_triggered_updating_class" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_transitions_updating_class" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_value_type_color" + }, + { + "duration": "14.0", + "name": "rendering.desktop/css_value_type_filter" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_value_type_length" + }, + { + "duration": "16.0", + "name": "rendering.desktop/css_value_type_length_complex" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_value_type_length_simple" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_value_type_path" + }, + { + "duration": "12.0", + "name": "rendering.desktop/css_value_type_shadow" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_value_type_transform_complex" + }, + { + "duration": "13.0", + "name": "rendering.desktop/css_value_type_transform_simple" + }, + { + "duration": "11.0", + "name": "rendering.desktop/dynamic_cube_map" + }, + { + "duration": "10.0", + "name": "rendering.desktop/earth" + }, + { + "duration": "9.0", + "name": "rendering.desktop/ebay_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/ebay_pinch_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/effect_games" + }, + { + "duration": "20.0", + "name": "rendering.desktop/espn_2018" + }, + { + "duration": "15.0", + "name": "rendering.desktop/espn_pinch_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/extra_large_texture_uploads" + }, + { + "duration": "9.0", + "name": "rendering.desktop/facebook_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/facebook_pinch_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/fill_shapes" + }, + { + "duration": "14.0", + "name": "rendering.desktop/filter_terrain_svg" + }, + { + "duration": "8.0", + "name": "rendering.desktop/geo_apis" + }, + { + "duration": "7.0", + "name": "rendering.desktop/gmail_2018" + }, + { + "duration": "33.0", + "name": "rendering.desktop/gmail_move_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/gmail_pinch_2018" + }, + { + "duration": "6.0", + "name": "rendering.desktop/google_calendar_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/google_calendar_pinch_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/google_docs_2018" + }, + { + "duration": "9.0", + "name": "rendering.desktop/google_image_pinch_2018" + }, + { + "duration": "9.0", + "name": "rendering.desktop/google_image_search_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/google_plus_2018" + }, + { + "duration": "9.0", + "name": "rendering.desktop/google_search_pinch_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/google_web_search_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/guimark_vector_chart" + }, + { + "duration": "8.0", + "name": "rendering.desktop/hakim" + }, + { + "duration": "24.0", + "name": "rendering.desktop/ie_chalkboard" + }, + { + "duration": "16.0", + "name": "rendering.desktop/ie_pirate_mark" + }, + { + "duration": "14.0", + "name": "rendering.desktop/infinite_scroll_element_n_layers_99" + }, + { + "duration": "14.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "14.0", + "name": "rendering.desktop/infinite_scroll_root_n_layers_99" + }, + { + "duration": "9.0", + "name": "rendering.desktop/jarro_doverson" + }, + { + "duration": "17.0", + "name": "rendering.desktop/js_full_screen_invalidation" + }, + { + "duration": "16.0", + "name": "rendering.desktop/js_opacity_plus_n_layers_99" + }, + { + "duration": "16.0", + "name": "rendering.desktop/js_paint_plus_n_layers_99" + }, + { + "duration": "15.0", + "name": "rendering.desktop/js_poster_circle" + }, + { + "duration": "15.0", + "name": "rendering.desktop/js_scroll_text_only" + }, + { + "duration": "8.0", + "name": "rendering.desktop/kevs_3d" + }, + { + "duration": "12.0", + "name": "rendering.desktop/keyframed_animations" + }, + { + "duration": "13.0", + "name": "rendering.desktop/large_texture_uploads" + }, + { + "duration": "10.0", + "name": "rendering.desktop/linkedin_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/linkedin_pinch_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/man_in_blue" + }, + { + "duration": "10.0", + "name": "rendering.desktop/many_images" + }, + { + "duration": "11.0", + "name": "rendering.desktop/many_planets_deep" + }, + { + "duration": "13.0", + "name": "rendering.desktop/maps_move_2018" + }, + { + "duration": "32.0", + "name": "rendering.desktop/maps_perf_test" + }, + { + "duration": "12.0", + "name": "rendering.desktop/medium_texture_uploads" + }, + { + "duration": "12.0", + "name": "rendering.desktop/megi_dish" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_asteroid_belt" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_fireflies" + }, + { + "duration": "8.0", + "name": "rendering.desktop/microsoft_fish_ie_tank" + }, + { + "duration": "13.0", + "name": "rendering.desktop/microsoft_performance" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_snow" + }, + { + "duration": "8.0", + "name": "rendering.desktop/microsoft_speed_reading" + }, + { + "duration": "8.0", + "name": "rendering.desktop/microsoft_tweet_map" + }, + { + "duration": "10.0", + "name": "rendering.desktop/microsoft_video_city" + }, + { + "duration": "8.0", + "name": "rendering.desktop/microsoft_worker_fountains" + }, + { + "duration": "8.0", + "name": "rendering.desktop/mix_10k" + }, + { + "duration": "12.0", + "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_blend_mode_animation_screen" + }, + { + "duration": "14.0", + "name": "rendering.desktop/motion_mark_canvas_fill_shapes" + }, + { + "duration": "13.0", + "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { "duration": "18.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + "name": "rendering.desktop/new_tilings" }, { - "duration": "97.0", - "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" + "duration": "10.0", + "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "220.0", - "name": "v8.browsing_desktop-future/browse:media:imgur" + "duration": "14.0", + "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "90.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" + "duration": "10.0", + "name": "rendering.desktop/particles" }, { - "duration": "163.0", - "name": "v8.browsing_desktop-future/browse:media:tumblr" + "duration": "17.0", + "name": "rendering.desktop/pinterest_2018" }, { - "duration": "107.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" + "duration": "9.0", + "name": "rendering.desktop/put_get_image_data" }, { - "duration": "94.0", - "name": "v8.browsing_desktop-future/browse:news:cnn:2018" + "duration": "9.0", + "name": "rendering.desktop/raf" }, { - "duration": "126.0", - "name": "v8.browsing_desktop-future/browse:news:nytimes" + "duration": "9.0", + "name": "rendering.desktop/raf_animation" }, { - "duration": "84.0", - "name": "v8.browsing_desktop-future/browse:news:reddit" + "duration": "9.0", + "name": "rendering.desktop/raf_canvas" }, { - "duration": "68.0", - "name": "v8.browsing_desktop-future/browse:search:google" + "duration": "10.0", + "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "68.0", - "name": "v8.browsing_desktop-future/browse:search:google:2018" + "duration": "11.0", + "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "46.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" + "duration": "9.0", + "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "97.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll" + "duration": "9.0", + "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "169.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + "duration": "8.0", + "name": "rendering.desktop/repaint_google_search_2018" }, { - "duration": "109.0", - "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" + "duration": "9.0", + "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "67.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" + "duration": "9.0", + "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "109.0", - "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll" + "duration": "8.0", + "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "90.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + "duration": "9.0", + "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "87.0", - "name": "v8.browsing_desktop-future/browse:tools:earth" + "duration": "9.0", + "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "97.0", - "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" + "duration": "8.0", + "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "221.0", - "name": "v8.browsing_desktop/browse:media:imgur" + "duration": "8.0", + "name": "rendering.desktop/runway" }, { - "duration": "90.0", - "name": "v8.browsing_desktop/browse:media:pinterest" + "duration": "10.0", + "name": "rendering.desktop/san_angeles" }, { - "duration": "165.0", - "name": "v8.browsing_desktop/browse:media:tumblr" + "duration": "7.0", + "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "107.0", - "name": "v8.browsing_desktop/browse:media:youtube" + "duration": "7.0", + "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "98.0", - "name": "v8.browsing_desktop/browse:news:cnn:2018" + "duration": "7.0", + "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "126.0", - "name": "v8.browsing_desktop/browse:news:nytimes" + "duration": "9.0", + "name": "rendering.desktop/simple_text_page" }, { - "duration": "84.0", - "name": "v8.browsing_desktop/browse:news:reddit" + "duration": "13.0", + "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "68.0", - "name": "v8.browsing_desktop/browse:search:google" + "duration": "12.0", + "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "68.0", - "name": "v8.browsing_desktop/browse:search:google:2018" + "duration": "8.0", + "name": "rendering.desktop/smash_cat" }, { - "duration": "46.0", - "name": "v8.browsing_desktop/browse:search:google_india" + "duration": "8.0", + "name": "rendering.desktop/spielzeugz" }, { - "duration": "97.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" + "duration": "8.0", + "name": "rendering.desktop/stroke_shapes" }, { - "duration": "169.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + "duration": "12.0", + "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "109.0", - "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" + "duration": "12.0", + "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "67.0", - "name": "v8.browsing_desktop/browse:social:twitter" + "duration": "9.0", + "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "110.0", - "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll" + "duration": "9.0", + "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "86.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + "duration": "7.0", + "name": "rendering.desktop/text_20000_pixels_per_second" }, { - "duration": "87.0", - "name": "v8.browsing_desktop/browse:tools:earth" + "duration": "7.0", + "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + "duration": "6.0", + "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + "duration": "6.0", + "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" + "duration": "6.0", + "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + "duration": "10.0", + "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + "duration": "9.0", + "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + "duration": "7.0", + "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + "duration": "7.0", + "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + "duration": "6.0", + "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + "duration": "6.0", + "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + "duration": "6.0", + "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + "duration": "9.0", + "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + "duration": "9.0", + "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + "duration": "8.0", + "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + "duration": "7.0", + "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + "duration": "7.0", + "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + "duration": "7.0", + "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + "duration": "6.0", + "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + "duration": "9.0", + "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + "duration": "12.0", + "name": "rendering.desktop/transform_transitions" }, { - "duration": "43.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + "duration": "12.0", + "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + "duration": "9.0", + "name": "rendering.desktop/twitch_2018" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + "duration": "18.0", + "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + "duration": "12.0", + "name": "rendering.desktop/twitter_2018" }, { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + "duration": "11.0", + "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "47.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + "duration": "12.0", + "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "69.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + "duration": "13.0", + "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "58.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + "duration": "12.0", + "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "43.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + "duration": "12.0", + "name": "rendering.desktop/web_animation_value_type_length_simple" + }, + { + "duration": "12.0", + "name": "rendering.desktop/web_animation_value_type_path" + }, + { + "duration": "12.0", + "name": "rendering.desktop/web_animation_value_type_shadow" + }, + { + "duration": "13.0", + "name": "rendering.desktop/web_animation_value_type_transform_complex" + }, + { + "duration": "13.0", + "name": "rendering.desktop/web_animation_value_type_transform_simple" + }, + { + "duration": "15.0", + "name": "rendering.desktop/web_animations_many_keyframes" + }, + { + "duration": "13.0", + "name": "rendering.desktop/web_animations_set_current_time" + }, + { + "duration": "13.0", + "name": "rendering.desktop/web_animations_simultaneous" + }, + { + "duration": "14.0", + "name": "rendering.desktop/web_animations_staggered_chaining" + }, + { + "duration": "15.0", + "name": "rendering.desktop/web_animations_staggered_infinite_iterations" + }, + { + "duration": "14.0", + "name": "rendering.desktop/web_animations_staggered_triggering_page" + }, + { + "duration": "18.0", + "name": "rendering.desktop/wikipedia_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/wordpress_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/yahoo_answers_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/yahoo_news_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/yahoo_news_pinch_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/yahoo_sports_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/yahoo_sports_pinch_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/youtube_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/youtube_pinch_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/yuv_decoding" + }, + { + "duration": "56.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { "duration": "54.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "49.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + "duration": "96.0", + "name": "speedometer2-future/Speedometer2" }, { - "duration": "38.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": "96.0", + "name": "speedometer2/Speedometer2" }, { - "duration": "44.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": "41.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": "33.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + "duration": "60.0", + "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" }, { "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" - }, - { - "duration": "40.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": "39.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" - }, - { - "duration": "46.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" - }, - { - "duration": "43.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": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" - }, - { - "duration": "33.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": "45.0", - "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" - }, - { - "duration": "54.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": "46.0", - "name": "v8.runtime_stats.top_25/http://weibo.com_hot" - }, - { - "duration": "43.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": "45.0", - "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" - }, - { - "duration": "42.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": "43.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" - }, - { - "duration": "43.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" - }, - { - "duration": "51.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" - }, - { - "duration": "58.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" - }, - { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" - }, - { - "duration": "48.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" - }, - { - "duration": "45.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": "46.0", - "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" - }, - { - "duration": "72.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" - }, - { - "duration": "85.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + "name": "system_health.common_desktop/browse:media:googleplaystore:2018" }, { "duration": "79.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": "45.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" - }, - { - "duration": "47.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" - }, - { - "duration": "43.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": "45.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" - }, - { - "duration": "42.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": "44.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" - }, - { - "duration": "41.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": "44.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" - }, - { - "duration": "48.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" - }, - { - "duration": "59.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + "name": "system_health.common_desktop/browse:media:imgur" }, { "duration": "58.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + "name": "system_health.common_desktop/browse:media:pinterest" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" + "duration": "87.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" + "duration": "101.0", + "name": "system_health.common_desktop/browse:media:tumblr" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" + "duration": "59.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" }, { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + "duration": "65.0", + "name": "system_health.common_desktop/browse:media:youtube" }, { - "duration": "50.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" - }, - { - "duration": "46.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" - }, - { - "duration": "45.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" - }, - { - "duration": "54.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" - }, - { - "duration": "45.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" - }, - { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" - }, - { - "duration": "52.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" - }, - { - "duration": "48.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": "49.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" - }, - { - "duration": "45.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" - }, - { - "duration": "27.0", - "name": "wasm/WasmSpaceBuggy" - }, - { - "duration": "34.0", - "name": "wasm/WasmTanks" + "duration": "62.0", + "name": "system_health.common_desktop/browse:media:youtube:2018" }, { "duration": "63.0", - "name": "wasm/WasmZenGarden" + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_desktop/browse:news:cnn" + }, + { + "duration": "48.0", + "name": "system_health.common_desktop/browse:news:cnn:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:news:flipboard" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/browse:news:flipboard:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:hackernews" + }, + { + "duration": "56.0", + "name": "system_health.common_desktop/browse:news:hackernews:2018" + }, + { + "duration": "68.0", + "name": "system_health.common_desktop/browse:news:nytimes" + }, + { + "duration": "79.0", + "name": "system_health.common_desktop/browse:news:nytimes:2018" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:news:reddit" + }, + { + "duration": "51.0", + "name": "system_health.common_desktop/browse:news:reddit:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:search:google" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/browse:search:google:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_desktop/browse:search:google_india" + }, + { + "duration": "30.0", + "name": "system_health.common_desktop/browse:search:google_india:2018" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "66.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "42.0", - "name": "webrtc/10s_datachannel_transfer" + "name": "system_health.common_desktop/browse:social:twitter" }, { - "duration": "23.0", - "name": "webrtc/canvas_capture_peer_connection" + "duration": "42.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" }, { - "duration": "33.0", - "name": "webrtc/codec_constraints_h264" + "duration": "67.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll" }, { - "duration": "33.0", - "name": "webrtc/codec_constraints_vp8" + "duration": "60.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "33.0", - "name": "webrtc/codec_constraints_vp9" + "duration": "61.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "22.0", - "name": "webrtc/hd_local_stream_10s" + "duration": "58.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "53.0", + "name": "system_health.common_desktop/browse:tools:earth" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:games:bubbles" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:games:miniclip" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:games:spychase" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:dailymotion" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:google_images" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:imgur" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:soundcloud" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:youtube" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:bbc" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:cnn" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:cnn:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:hackernews" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:nytimes" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:qq" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:reddit" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:wikipedia" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:amazon" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:baidu" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:ebay" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:google" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:taobao" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:yahoo" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:yandex" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:social:instagram" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:social:pinterest" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:vk" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:docs" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:tools:drive" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:dropbox" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:tools:gmail" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:stackoverflow" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:tools:weather" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "122.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "136.0", + "name": "system_health.common_desktop/multitab:misc:typical24" + }, + { + "duration": "122.0", + "name": "system_health.common_desktop/multitab:misc:typical24:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/play:media:soundcloud" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "67.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:media:pinterest" + }, + { + "duration": "84.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "96.0", + "name": "system_health.memory_desktop/browse:media:tumblr" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:media:youtube" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:youtube:2018" + }, + { + "duration": "61.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:news:cnn:2018" + }, + { + "duration": "44.0", + "name": "system_health.memory_desktop/browse:news:flipboard" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2018" + }, + { + "duration": "49.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:news:nytimes" + }, + { + "duration": "67.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2018" }, { "duration": "50.0", + "name": "system_health.memory_desktop/browse:news:reddit" + }, + { + "duration": "44.0", + "name": "system_health.memory_desktop/browse:news:reddit:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:search:google" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:search:google_india" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/browse:search:google_india:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "63.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "51.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:social:twitter" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "50.0", + "name": "system_health.memory_desktop/browse:tools:earth" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" + }, + { + "duration": "23.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": "12.0", + "name": "system_health.memory_desktop/load:games:bubbles" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:spychase" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:dailymotion" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:google_images" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:imgur" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:soundcloud" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:youtube" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:bbc" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:cnn" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:cnn:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:hackernews" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:nytimes" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:qq" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:reddit" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:wikipedia" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:amazon" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:baidu" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:ebay" + }, + { + "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": "12.0", + "name": "system_health.memory_desktop/load:search:google" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:taobao" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yahoo" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yandex" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:social:instagram" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:social:pinterest" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:vk" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:tools:docs" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:drive" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:dropbox" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:gmail" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:weather" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" + }, + { + "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" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "138.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "137.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/play:media:soundcloud" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "5.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "9.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" + }, + { + "duration": "80.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2018" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2018" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" + }, + { + "duration": "84.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2018" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop-future/browse:search:google:2018" + }, + { + "duration": "31.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2018" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "69.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop-future/browse:tools:earth" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:media:pinterest" + }, + { + "duration": "91.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "107.0", + "name": "v8.browsing_desktop/browse:media:tumblr" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop/browse:media:youtube" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop/browse:media:youtube:2018" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:news:cnn:2018" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2018" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop/browse:news:nytimes" + }, + { + "duration": "83.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2018" + }, + { + "duration": "63.0", + "name": "v8.browsing_desktop/browse:news:reddit" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:news:reddit:2018" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:search:google" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:search:google:2018" + }, + { + "duration": "32.0", + "name": "v8.browsing_desktop/browse:search:google_india" + }, + { + "duration": "31.0", + "name": "v8.browsing_desktop/browse:search:google_india:2018" + }, + { + "duration": "69.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "69.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "v8.browsing_desktop/browse:social:twitter" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "71.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop/browse:tools:earth" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + }, + { + "duration": "53.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + }, + { + "duration": "42.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + }, + { + "duration": "23.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": "30.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": "28.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": "23.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "37.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "28.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": "29.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "8.0", + "name": "wasm/WasmSpaceBuggy" + }, + { + "duration": "16.0", + "name": "wasm/WasmTanks" + }, + { + "duration": "26.0", + "name": "wasm/WasmZenGarden" + }, + { + "duration": "19.0", + "name": "webrtc/10s_datachannel_transfer" + }, + { + "duration": "12.0", + "name": "webrtc/canvas_capture_peer_connection" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_h264" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_vp8" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_vp9" + }, + { + "duration": "12.0", + "name": "webrtc/hd_local_stream_10s" + }, + { + "duration": "27.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "52.0", + "duration": "32.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json index 92b42d5..0b1c56ccc 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-10_13_laptop_high_end-perf_timing.json
@@ -1,6 +1,10 @@ [ { - "duration": "23.0", + "duration": "24.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "18.0", "name": "blink_perf.accessibility/textarea-append.html" }, { @@ -32,7 +36,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "16.0", + "duration": "12.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -68,11 +72,11 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "26.0", + "duration": "16.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -116,7 +120,7 @@ "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { @@ -160,51 +164,151 @@ "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "12.0", + "duration": "1.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "13.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "12.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "13.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "3.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": "8.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { "duration": "12.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "9.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "8.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "3.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { + "duration": "3.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "6.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { + "duration": "3.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "2.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "3.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "3.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { - "duration": "8.0", + "duration": "4.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { "duration": "7.0", "name": "blink_perf.canvas/drawimage.html" }, { "duration": "8.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "8.0", "name": "blink_perf.canvas/getImageData.html" }, { @@ -212,39 +316,95 @@ "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { "duration": "8.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "7.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "7.0", "name": "blink_perf.canvas/putImageData.html" }, { - "duration": "17.0", + "duration": "8.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "3.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { + "duration": "18.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { + "duration": "18.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { + "duration": "3.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { "duration": "2.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { + "duration": "4.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { "duration": "9.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "2.0", + "duration": "4.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "3.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { + "duration": "5.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { "duration": "3.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { - "duration": "16.0", + "duration": "7.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { + "duration": "14.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -260,83 +420,83 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "6.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "6.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "6.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "6.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/ClassInvalidation.html" }, { @@ -356,19 +516,19 @@ "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "7.0", + "duration": "10.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "7.0", + "duration": "11.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -380,11 +540,7 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "13.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "21.0", + "duration": "27.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { @@ -392,19 +548,7 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "2.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "7.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "1.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "16.0", + "duration": "12.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -420,18 +564,6 @@ "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "2.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "2.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "1.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { "duration": "7.0", "name": "blink_perf.dom/select-multiple-add.html" }, @@ -444,59 +576,67 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "7.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "8.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { "duration": "12.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "8.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "18.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "8.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "13.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "13.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { "duration": "7.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "17.0", + "duration": "7.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "7.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "18.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -528,11 +668,11 @@ "name": "blink_perf.layout/change-text-css-contain.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { @@ -540,11 +680,11 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow.html" }, { @@ -556,6 +696,18 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "6.0", + "name": "blink_perf.layout/contain-content-style-change.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": "8.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, @@ -584,23 +736,27 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { + "duration": "8.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { "duration": "7.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_10_1000.html" }, { @@ -624,7 +780,7 @@ "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -632,27 +788,35 @@ "name": "blink_perf.layout/hindi-line-layout.html" }, { + "duration": "2.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "7.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "114.0", + "duration": "19.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "18.0", + "duration": "4.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -664,6 +828,14 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { + "duration": "2.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "3.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { "duration": "5.0", "name": "blink_perf.layout/line-layout-line-height.html" }, @@ -688,11 +860,19 @@ "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { "duration": "7.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "7.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { @@ -700,7 +880,7 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { @@ -732,7 +912,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "44.0", + "duration": "37.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -752,83 +932,95 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.paint/color-changes.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "10.0", + "duration": "12.0", + "name": "blink_perf.paint/complex-iframe-filtered.html" + }, + { + "duration": "26.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "11.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "11.0", + "duration": "16.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "17.0", "name": "blink_perf.paint/transform-changes.html" }, { @@ -836,19 +1028,19 @@ "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "7.0", + "duration": "4.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "32.0", + "duration": "18.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -872,7 +1064,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -880,7 +1072,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" }, { @@ -888,15 +1080,15 @@ "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" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -932,15 +1124,15 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -976,7 +1168,7 @@ "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" }, { @@ -1032,7 +1224,7 @@ "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { @@ -1048,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "12.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1060,11 +1252,11 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "12.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "22.0", + "duration": "16.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1124,7 +1316,7 @@ "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/Bamboo.html" }, { @@ -1168,7 +1360,7 @@ "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.svg/HarveyRayner.html" }, { @@ -1184,7 +1376,7 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "33.0", + "duration": "28.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -1196,7 +1388,7 @@ "name": "blink_perf.svg/SvgHitTesting.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.svg/SvgNestedUse.html" }, { @@ -1208,7 +1400,7 @@ "name": "blink_perf.svg/WorldIso.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/Worldcup.html" }, { @@ -1228,10 +1420,6 @@ "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "11.0", - "name": "dummy_benchmark.histogram_benchmark_1/dummy_page.html" - }, - { "duration": "4.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, @@ -1240,639 +1428,627 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "190.0", + "duration": "181.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "31.0", + "duration": "24.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/24h_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/24h_warm" }, { - "duration": "24.0", + "duration": "11.0", "name": "loading.desktop/AirBnB_cold" }, { - "duration": "34.0", + "duration": "20.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "16.0", + "duration": "6.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/AllRecipes_cold" }, { - "duration": "33.0", + "duration": "15.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "26.0", + "duration": "13.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "40.0", + "duration": "34.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "16.0", + "duration": "6.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "26.0", + "duration": "11.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "30.0", + "duration": "7.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "32.0", + "duration": "9.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "16.0", + "duration": "7.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "33.0", + "duration": "17.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "25.0", + "duration": "10.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "28.0", + "duration": "15.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "22.0", + "duration": "8.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "16.0", + "duration": "7.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "16.0", + "duration": "6.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "28.0", + "duration": "6.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "25.0", + "duration": "10.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "29.0", + "duration": "7.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "27.0", + "duration": "10.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "37.0", + "duration": "16.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "16.0", + "duration": "7.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "16.0", + "duration": "7.0", "name": "loading.desktop/Orange_cold" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/Orange_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "26.0", + "duration": "12.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/REI_cold" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/REI_warm" }, { - "duration": "17.0", + "duration": "16.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "26.0", + "duration": "15.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "27.0", + "duration": "14.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "19.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "28.0", - "name": "loading.desktop/TheOnion_warm" - }, - { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "25.0", + "duration": "10.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "24.0", + "duration": "9.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "34.0", + "duration": "16.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "23.0", + "duration": "8.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "31.0", + "duration": "12.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "23.0", - "name": "loading.desktop/Walgreens_cold" - }, - { - "duration": "33.0", - "name": "loading.desktop/Walgreens_warm" - }, - { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "20.0", + "duration": "7.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "30.0", + "duration": "14.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "21.0", + "duration": "9.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "30.0", + "duration": "15.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "18.0", + "duration": "6.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "21.0", + "duration": "8.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "22.0", + "duration": "19.0", "name": "loading.desktop/uol.com.br_cold" }, { - "duration": "31.0", + "duration": "14.0", "name": "loading.desktop/uol.com.br_warm" }, { - "duration": "19.0", + "duration": "7.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "14.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "15.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "15.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "13.0", + "duration": "7.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "22.0", + "duration": "7.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + }, + { + "duration": "15.0", "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "20.0", + "duration": "12.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "11.0", + "duration": "6.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "20.0", + "duration": "12.0", "name": "media.desktop/video.html?src=crowd720_vp9.webm" }, { - "duration": "22.0", + "duration": "13.0", "name": "media.desktop/video.html?src=garden2_10s.mp4" }, { - "duration": "13.0", + "duration": "6.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=garden2_10s.webm" }, { - "duration": "11.0", + "duration": "6.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { - "duration": "12.0", + "duration": "6.0", "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { - "duration": "27.0", + "duration": "13.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" + }, + { + "duration": "6.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" + }, + { + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "27.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "10.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "28.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { - "duration": "29.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "11.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.mp4&seek" }, { - "duration": "27.0", + "duration": "22.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "10.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "29.0", + "duration": "22.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "12.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "27.0", + "duration": "23.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio" }, { - "duration": "10.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "17.0", + "duration": "11.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "17.0", + "duration": "11.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "18.0", + "duration": "11.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "17.0", + "duration": "11.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "18.0", + "duration": "11.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "17.0", + "duration": "11.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "18.0", + "duration": "11.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "18.0", + "duration": "11.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "45.0", + "duration": "39.0", "name": "memory.desktop/WebWorker" }, { - "duration": "166.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "161.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "44.0", + "duration": "41.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "61.0", - "name": "oortonline_tbmv2/http://oortonline.gl/#run" - }, - { - "duration": "40.0", + "duration": "32.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "40.0", + "duration": "32.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "40.0", + "duration": "32.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "40.0", + "duration": "32.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "41.0", + "duration": "32.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "42.0", + "duration": "32.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "42.0", + "duration": "34.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "40.0", + "duration": "32.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "133.0", + "duration": "38.0", "name": "power.desktop/abcnews" }, { - "duration": "46.0", + "duration": "32.0", "name": "power.desktop/indiatimes" }, { - "duration": "47.0", + "duration": "32.0", "name": "power.desktop/instagram" }, { - "duration": "46.0", + "duration": "32.0", "name": "power.desktop/microsoft" }, { - "duration": "48.0", + "duration": "33.0", "name": "power.desktop/sina" }, { - "duration": "46.0", + "duration": "32.0", "name": "power.desktop/slideshare" }, { - "duration": "53.0", + "duration": "34.0", "name": "power.desktop/uol" }, { @@ -1900,7 +2076,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { @@ -1936,11 +2112,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "21.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { @@ -1948,7 +2124,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { @@ -1964,7 +2140,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "95.0", + "duration": "94.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" }, { @@ -1972,2247 +2148,2639 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "17.0", + "duration": "12.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "45.0", + "duration": "17.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "49.0", + "duration": "18.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "36.0", + "duration": "11.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "32.0", + "duration": "9.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "26.0", + "duration": "11.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "14.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "10.0", "name": "rendering.desktop/aquarium" }, { - "duration": "37.0", + "duration": "14.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "23.0", + "duration": "15.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "33.0", + "duration": "12.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "38.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "33.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "34.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "28.0", + "duration": "12.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "28.0", + "duration": "10.0", "name": "rendering.desktop/blob" }, { - "duration": "37.0", + "duration": "12.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "30.0", + "duration": "9.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "23.0", - "name": "rendering.desktop/booking.com_2018" - }, - { - "duration": "30.0", - "name": "rendering.desktop/booking_pinch_2018" - }, - { - "duration": "16.0", - "name": "rendering.desktop/bouncing_balls_15" - }, - { - "duration": "17.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": "14.0", - "name": "rendering.desktop/bouncing_png_images" - }, - { - "duration": "24.0", - "name": "rendering.desktop/bouncing_svg_images" - }, - { - "duration": "95.0", - "name": "rendering.desktop/camera_to_webgl" - }, - { - "duration": "18.0", - "name": "rendering.desktop/canvas_05000_pixels_per_second" - }, - { - "duration": "17.0", - "name": "rendering.desktop/canvas_10000_pixels_per_second" - }, - { - "duration": "14.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "13.0", - "name": "rendering.desktop/canvas_20000_pixels_per_second" - }, - { - "duration": "12.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "11.0", - "name": "rendering.desktop/canvas_40000_pixels_per_second" - }, - { - "duration": "10.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "10.0", - "name": "rendering.desktop/canvas_60000_pixels_per_second" - }, - { - "duration": "10.0", - "name": "rendering.desktop/canvas_75000_pixels_per_second" - }, - { - "duration": "10.0", - "name": "rendering.desktop/canvas_90000_pixels_per_second" - }, - { - "duration": "18.0", - "name": "rendering.desktop/canvas_animation_no_clear" - }, - { - "duration": "17.0", - "name": "rendering.desktop/canvas_arcs" - }, - { - "duration": "16.0", - "name": "rendering.desktop/canvas_font_cycler" - }, - { - "duration": "16.0", - "name": "rendering.desktop/canvas_lines" - }, - { - "duration": "15.0", - "name": "rendering.desktop/canvas_to_blob" - }, - { - "duration": "10.0", - "name": "rendering.desktop/cats_unscaled" + "duration": "7.0", + "name": "rendering.desktop/blur_rotating_background" }, { "duration": "8.0", + "name": "rendering.desktop/booking.com_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/booking_pinch_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_balls_15" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_balls_shadow" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_clipped_rectangles" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_gradient_circles" + }, + { + "duration": "7.0", + "name": "rendering.desktop/bouncing_png_images" + }, + { + "duration": "8.0", + "name": "rendering.desktop/bouncing_svg_images" + }, + { + "duration": "16.0", + "name": "rendering.desktop/camera_to_webgl" + }, + { + "duration": "9.0", + "name": "rendering.desktop/canvas_05000_pixels_per_second" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_10000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_20000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_40000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_60000_pixels_per_second" + }, + { + "duration": "7.0", + "name": "rendering.desktop/canvas_75000_pixels_per_second" + }, + { + "duration": "6.0", + "name": "rendering.desktop/canvas_90000_pixels_per_second" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_animation_no_clear" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_arcs" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_font_cycler" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_lines" + }, + { + "duration": "8.0", + "name": "rendering.desktop/canvas_to_blob" + }, + { + "duration": "7.0", + "name": "rendering.desktop/cats_unscaled" + }, + { + "duration": "6.0", "name": "rendering.desktop/cats_viewport_width" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "22.0", - "name": "rendering.desktop/cc_scroll_200_layer_grid" - }, - { - "duration": "17.0", + "duration": "10.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "36.0", + "duration": "10.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "35.0", + "duration": "16.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "28.0", + "duration": "7.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "37.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "11.0", "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/earth" }, { - "duration": "26.0", + "duration": "9.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/effect_games" }, { - "duration": "36.0", + "duration": "16.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "36.0", + "duration": "12.0", "name": "rendering.desktop/espn_pinch_2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "26.0", + "duration": "8.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "27.0", + "duration": "9.0", "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "29.0", + "duration": "13.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "18.0", + "duration": "7.0", "name": "rendering.desktop/geo_apis" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "40.0", + "duration": "21.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "39.0", + "duration": "10.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "19.0", + "duration": "7.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "31.0", + "duration": "13.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "36.0", + "duration": "17.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "26.0", + "duration": "8.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "25.0", + "duration": "8.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "25.0", + "duration": "9.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "24.0", + "duration": "8.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "22.0", + "duration": "7.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/hakim" }, { - "duration": "43.0", + "duration": "23.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "31.0", + "duration": "15.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "24.0", + "duration": "17.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "24.0", + "duration": "14.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "14.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "26.0", + "duration": "8.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "32.0", + "duration": "16.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "25.0", + "duration": "15.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "22.0", - "name": "rendering.desktop/js_scroll_200_layer_grid" - }, - { - "duration": "22.0", + "duration": "14.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "25.0", + "duration": "8.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "28.0", + "duration": "9.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "36.0", + "duration": "11.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "25.0", + "duration": "7.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/many_images" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/many_planets_deep" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "45.0", + "duration": "29.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "24.0", + "duration": "8.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "24.0", + "duration": "8.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "21.0", + "duration": "13.0", + "name": "rendering.desktop/microsoft_performance" + }, + { + "duration": "8.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "21.0", + "duration": "7.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "22.0", + "duration": "8.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "25.0", + "duration": "8.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/mix_10k" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "34.0", + "duration": "12.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { - "duration": "31.0", - "name": "rendering.desktop/motion_mark_focus" - }, - { - "duration": "39.0", + "duration": "16.0", "name": "rendering.desktop/new_tilings" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/particles" }, { - "duration": "30.0", + "duration": "8.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/raf" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "17.0", + "duration": "10.0", + "name": "rendering.desktop/repaint_amazon_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_cnn_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_facebook_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_google_search_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_instagram_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_reddit_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_theverge_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_twitter_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_wikipedia_2018" + }, + { + "duration": "8.0", + "name": "rendering.desktop/repaint_yahoo_homepage_2018" + }, + { + "duration": "8.0", "name": "rendering.desktop/runway" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "10.0", + "duration": "6.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "10.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "10.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/simple_text_page" }, { - "duration": "7.0", + "duration": "11.0", "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/smash_cat" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "16.0", + "duration": "8.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "7.0", + "duration": "11.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "34.0", + "duration": "18.0", "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "16.0", + "duration": "8.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "12.0", + "duration": "7.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { - "duration": "11.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "10.0", + "duration": "8.0", "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "13.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "9.0", + "duration": "6.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "9.0", + "duration": "7.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "9.0", + "duration": "6.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "13.0", + "duration": "8.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "12.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "11.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "10.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "10.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "10.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "10.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "16.0", + "duration": "9.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "12.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "11.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" - }, - { - "duration": "10.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "10.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" - }, - { - "duration": "9.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "9.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "9.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/transform_transitions" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "26.0", + "duration": "8.0", "name": "rendering.desktop/twitch_2018" }, { - "duration": "36.0", + "duration": "16.0", "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "33.0", + "duration": "11.0", "name": "rendering.desktop/twitter_2018" }, { - "duration": "29.0", + "duration": "10.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "32.0", + "duration": "11.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "28.0", + "duration": "11.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "20.0", + "duration": "7.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "61.0", + "duration": "10.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "57.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "71.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "75.0", + "duration": "14.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "27.0", + "duration": "8.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "32.0", + "duration": "10.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/yuv_decoding" }, { - "duration": "49.0", + "duration": "40.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "46.0", + "duration": "39.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "80.0", + "duration": "74.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "78.0", + "duration": "72.0", "name": "speedometer2/Speedometer2" }, { - "duration": "74.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "100.0", - "name": "system_health.common_desktop/browse:media:imgur" - }, - { - "duration": "72.0", - "name": "system_health.common_desktop/browse:media:pinterest" - }, - { - "duration": "114.0", - "name": "system_health.common_desktop/browse:media:tumblr" - }, - { - "duration": "78.0", - "name": "system_health.common_desktop/browse:media:youtube" - }, - { - "duration": "72.0", - "name": "system_health.common_desktop/browse:news:cnn" - }, - { - "duration": "56.0", - "name": "system_health.common_desktop/browse:news:cnn:2018" - }, - { - "duration": "58.0", - "name": "system_health.common_desktop/browse:news:flipboard" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/browse:news:hackernews" - }, - { - "duration": "76.0", - "name": "system_health.common_desktop/browse:news:nytimes" - }, - { - "duration": "64.0", - "name": "system_health.common_desktop/browse:news:reddit" - }, - { - "duration": "57.0", - "name": "system_health.common_desktop/browse:search:google" - }, - { - "duration": "57.0", - "name": "system_health.common_desktop/browse:search:google:2018" - }, - { - "duration": "41.0", - "name": "system_health.common_desktop/browse:search:google_india" - }, - { - "duration": "68.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "82.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "79.0", - "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "54.0", - "name": "system_health.common_desktop/browse:social:twitter" - }, - { - "duration": "78.0", - "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll" - }, - { - "duration": "74.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" + "duration": "34.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2018" }, { "duration": "71.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "62.0", - "name": "system_health.common_desktop/browse:tools:earth" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "36.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "18.0", - "name": "system_health.common_desktop/load:chrome:blank" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "21.0", - "name": "system_health.common_desktop/load:games:bubbles" - }, - { - "duration": "19.0", - "name": "system_health.common_desktop/load:games:lazors" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:games:miniclip" - }, - { - "duration": "34.0", - "name": "system_health.common_desktop/load:games:spychase" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:media:9gag" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:media:dailymotion" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:media:google_images" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:media:imgur" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:media:soundcloud" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:media:youtube" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:news:bbc" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:news:cnn" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:news:flipboard" - }, - { - "duration": "19.0", - "name": "system_health.common_desktop/load:news:hackernews" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:news:nytimes" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:news:qq" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:news:reddit" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:news:wikipedia" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:search:amazon" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:baidu" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:search:ebay" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:search:google" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:search:taobao" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:search:yahoo" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:yandex" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:social:instagram" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:social:pinterest" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:social:vk" - }, - { - "duration": "34.0", - "name": "system_health.common_desktop/load:tools:docs" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:tools:drive" - }, - { - "duration": "20.0", - "name": "system_health.common_desktop/load:tools:dropbox" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:tools:gmail" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:tools:stackoverflow" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:tools:weather" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "140.0", - "name": "system_health.common_desktop/long_running:tools:gmail-background" - }, - { - "duration": "138.0", - "name": "system_health.common_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "60.0", - "name": "system_health.common_desktop/play:media:google_play_music" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/play:media:soundcloud" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "79.0", - "name": "system_health.memory_desktop/browse:media:imgur" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:media:pinterest" - }, - { - "duration": "105.0", - "name": "system_health.memory_desktop/browse:media:tumblr" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:media:youtube" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:news:cnn:2018" - }, - { - "duration": "52.0", - "name": "system_health.memory_desktop/browse:news:flipboard" + "name": "system_health.common_desktop/browse:media:imgur" }, { "duration": "57.0", - "name": "system_health.memory_desktop/browse:news:nytimes" + "name": "system_health.common_desktop/browse:media:pinterest" }, { - "duration": "56.0", - "name": "system_health.memory_desktop/browse:news:reddit" - }, - { - "duration": "54.0", - "name": "system_health.memory_desktop/browse:search:google" - }, - { - "duration": "53.0", - "name": "system_health.memory_desktop/browse:search:google:2018" - }, - { - "duration": "37.0", - "name": "system_health.memory_desktop/browse:search:google_india" - }, - { - "duration": "62.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "72.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "69.0", - "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:social:twitter" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "54.0", - "name": "system_health.memory_desktop/browse:tools:earth" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "34.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "17.0", - "name": "system_health.memory_desktop/load:chrome:blank" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "18.0", - "name": "system_health.memory_desktop/load:games:bubbles" - }, - { - "duration": "18.0", - "name": "system_health.memory_desktop/load:games:lazors" - }, - { - "duration": "31.0", - "name": "system_health.memory_desktop/load:games:spychase" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:media:9gag" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:media:dailymotion" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:media:google_images" - }, - { - "duration": "28.0", - "name": "system_health.memory_desktop/load:media:imgur" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:media:soundcloud" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:media:youtube" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:news:bbc" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:news:cnn" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:news:flipboard" - }, - { - "duration": "18.0", - "name": "system_health.memory_desktop/load:news:hackernews" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:news:nytimes" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:news:qq" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load:news:reddit" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:news:wikipedia" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:search:amazon" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:search:baidu" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:search:ebay" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load:search:google" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:search:taobao" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:search:yahoo" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:search:yandex" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:social:instagram" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:social:pinterest" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:social:vk" - }, - { - "duration": "27.0", - "name": "system_health.memory_desktop/load:tools:docs" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load:tools:drive" - }, - { - "duration": "18.0", - "name": "system_health.memory_desktop/load:tools:dropbox" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:tools:gmail" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:tools:stackoverflow" - }, - { - "duration": "26.0", - "name": "system_health.memory_desktop/load:tools:weather" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "168.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-background" - }, - { - "duration": "164.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/play:media:soundcloud" - }, - { - "duration": "15.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "13.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" - }, - { - "duration": "16.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" - }, - { - "duration": "86.0", - "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" - }, - { - "duration": "286.0", - "name": "v8.browsing_desktop-future/browse:media:imgur" - }, - { - "duration": "81.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" - }, - { - "duration": "140.0", - "name": "v8.browsing_desktop-future/browse:media:tumblr" - }, - { - "duration": "96.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" - }, - { - "duration": "77.0", - "name": "v8.browsing_desktop-future/browse:news:cnn:2018" - }, - { - "duration": "107.0", - "name": "v8.browsing_desktop-future/browse:news:nytimes" - }, - { - "duration": "70.0", - "name": "v8.browsing_desktop-future/browse:news:reddit" - }, - { - "duration": "62.0", - "name": "v8.browsing_desktop-future/browse:search:google" - }, - { - "duration": "62.0", - "name": "v8.browsing_desktop-future/browse:search:google:2018" - }, - { - "duration": "42.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" - }, - { - "duration": "86.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "142.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "94.0", - "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "60.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" - }, - { - "duration": "96.0", - "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll" - }, - { - "duration": "91.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "83.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "78.0", - "name": "v8.browsing_desktop-future/browse:tools:earth" - }, - { - "duration": "86.0", - "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" - }, - { - "duration": "324.0", - "name": "v8.browsing_desktop/browse:media:imgur" - }, - { - "duration": "81.0", - "name": "v8.browsing_desktop/browse:media:pinterest" - }, - { - "duration": "142.0", - "name": "v8.browsing_desktop/browse:media:tumblr" - }, - { - "duration": "98.0", - "name": "v8.browsing_desktop/browse:media:youtube" - }, - { - "duration": "75.0", - "name": "v8.browsing_desktop/browse:news:cnn:2018" - }, - { - "duration": "113.0", - "name": "v8.browsing_desktop/browse:news:nytimes" - }, - { - "duration": "70.0", - "name": "v8.browsing_desktop/browse:news:reddit" - }, - { - "duration": "67.0", - "name": "v8.browsing_desktop/browse:search:google" - }, - { - "duration": "62.0", - "name": "v8.browsing_desktop/browse:search:google:2018" - }, - { - "duration": "42.0", - "name": "v8.browsing_desktop/browse:search:google_india" - }, - { - "duration": "85.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "142.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + "duration": "84.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" }, { "duration": "95.0", - "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "60.0", - "name": "v8.browsing_desktop/browse:social:twitter" - }, - { - "duration": "97.0", - "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll" - }, - { - "duration": "90.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "83.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "79.0", - "name": "v8.browsing_desktop/browse:tools:earth" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" - }, - { - "duration": "44.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" - }, - { - "duration": "65.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + "name": "system_health.common_desktop/browse:media:tumblr" }, { "duration": "54.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" - }, - { - "duration": "48.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": "35.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": "41.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": "38.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": "30.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" - }, - { - "duration": "30.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" - }, - { - "duration": "29.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" - }, - { - "duration": "28.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" - }, - { - "duration": "29.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" - }, - { - "duration": "28.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" - }, - { - "duration": "28.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" - }, - { - "duration": "51.0", - "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://weibo.com_cold" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://weibo.com_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://weibo.com_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" - }, - { - "duration": "37.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": "56.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" - }, - { - "duration": "35.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": "38.0", - "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" - }, - { - "duration": "43.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" - }, - { - "duration": "35.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": "38.0", - "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + "name": "system_health.common_desktop/browse:media:tumblr:2018" }, { "duration": "58.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + "name": "system_health.common_desktop/browse:media:youtube" }, { - "duration": "70.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + "duration": "60.0", + "name": "system_health.common_desktop/browse:media:youtube:2018" }, { - "duration": "65.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + "duration": "62.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" }, { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + "duration": "52.0", + "name": "system_health.common_desktop/browse:news:cnn" }, { "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + "name": "system_health.common_desktop/browse:news:cnn:2018" }, { "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + "name": "system_health.common_desktop/browse:news:flipboard" }, { "duration": "41.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + "name": "system_health.common_desktop/browse:news:flipboard:2018" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + "duration": "43.0", + "name": "system_health.common_desktop/browse:news:hackernews" }, { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" - }, - { - "duration": "35.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": "37.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" - }, - { - "duration": "56.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" - }, - { - "duration": "56.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + "duration": "49.0", + "name": "system_health.common_desktop/browse:news:hackernews:2018" }, { "duration": "54.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + "name": "system_health.common_desktop/browse:news:nytimes" }, { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" + "duration": "62.0", + "name": "system_health.common_desktop/browse:news:nytimes:2018" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" + "duration": "49.0", + "name": "system_health.common_desktop/browse:news:reddit" }, { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" + "duration": "44.0", + "name": "system_health.common_desktop/browse:news:reddit:2018" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + "duration": "43.0", + "name": "system_health.common_desktop/browse:search:google" }, { - "duration": "50.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + "duration": "43.0", + "name": "system_health.common_desktop/browse:search:google:2018" }, { - "duration": "45.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + "duration": "31.0", + "name": "system_health.common_desktop/browse:search:google_india" }, { - "duration": "30.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + "duration": "29.0", + "name": "system_health.common_desktop/browse:search:google_india:2018" }, { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + "duration": "59.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + "duration": "64.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "55.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "40.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + "name": "system_health.common_desktop/browse:social:twitter" }, { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + "duration": "40.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" }, { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + "duration": "64.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + "duration": "58.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + "duration": "59.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + "duration": "56.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "46.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" - }, - { - "duration": "43.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" - }, - { - "duration": "50.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + "duration": "49.0", + "name": "system_health.common_desktop/browse:tools:earth" }, { "duration": "19.0", - "name": "wasm/WasmSpaceBuggy" + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" }, { "duration": "23.0", - "name": "wasm/WasmTanks" + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" }, { - "duration": "47.0", - "name": "wasm/WasmZenGarden" + "duration": "14.0", + "name": "system_health.common_desktop/load:chrome:blank" }, { - "duration": "34.0", - "name": "webrtc/10s_datachannel_transfer" + "duration": "13.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" }, { - "duration": "20.0", - "name": "webrtc/canvas_capture_peer_connection" + "duration": "13.0", + "name": "system_health.common_desktop/load:games:bubbles" }, { - "duration": "30.0", - "name": "webrtc/codec_constraints_h264" + "duration": "12.0", + "name": "system_health.common_desktop/load:games:lazors" }, { - "duration": "30.0", - "name": "webrtc/codec_constraints_vp8" + "duration": "13.0", + "name": "system_health.common_desktop/load:games:miniclip" }, { - "duration": "30.0", - "name": "webrtc/codec_constraints_vp9" + "duration": "16.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:games:spychase" }, { "duration": "19.0", - "name": "webrtc/hd_local_stream_10s" + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:media:dailymotion" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:media:google_images" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:imgur" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:soundcloud" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:youtube" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:bbc" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:cnn" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:cnn:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:news:hackernews" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:nytimes" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:qq" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:reddit" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:news:wikipedia" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:search:amazon" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:baidu" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:ebay" + }, + { + "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" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:taobao" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:yahoo" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:search:yandex" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:social:instagram" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:pinterest" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:social:vk" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:tools:docs" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:drive" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:tools:dropbox" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:gmail" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/load:tools:stackoverflow" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:tools:weather" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "121.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "95.0", + "name": "system_health.common_desktop/multitab:misc:typical24" + }, + { + "duration": "78.0", + "name": "system_health.common_desktop/multitab:misc:typical24:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/play:media:google_play_music" }, { "duration": "39.0", - "name": "webrtc/multiple_peerconnections" + "name": "system_health.common_desktop/play:media:soundcloud" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "32.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "63.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:pinterest" + }, + { + "duration": "82.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "93.0", + "name": "system_health.memory_desktop/browse:media:tumblr" + }, + { + "duration": "53.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:youtube" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:media:youtube:2018" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/browse:news:cnn:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:news:flipboard" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2018" + }, + { + "duration": "44.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2018" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:news:nytimes" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2018" + }, + { + "duration": "44.0", + "name": "system_health.memory_desktop/browse:news:reddit" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:reddit:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:search:google" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:search:google_india" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/browse:search:google_india:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/browse:social:twitter" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:tools:earth" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" + }, + { + "duration": "22.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:games:bubbles" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:spychase" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:dailymotion" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:google_images" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:imgur" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:soundcloud" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:youtube" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:bbc" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:cnn" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:cnn:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:hackernews" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:nytimes" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:qq" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:reddit" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:wikipedia" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:amazon" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:baidu" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:ebay" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:google" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:taobao" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yahoo" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yandex" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:social:instagram" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:social:pinterest" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:social:vk" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:docs" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:drive" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:dropbox" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:gmail" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:tools:weather" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "132.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "129.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "37.0", + "name": "system_health.memory_desktop/play:media:soundcloud" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "87.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" }, { "duration": "43.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2018" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2018" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop-future/browse:search:google:2018" + }, + { + "duration": "30.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2018" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "55.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop-future/browse:tools:earth" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "70.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:pinterest" + }, + { + "duration": "87.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "99.0", + "name": "v8.browsing_desktop/browse:media:tumblr" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:media:youtube" + }, + { + "duration": "63.0", + "name": "v8.browsing_desktop/browse:media:youtube:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop/browse:news:cnn:2018" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2018" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop/browse:news:nytimes" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:news:reddit" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop/browse:news:reddit:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop/browse:search:google" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop/browse:search:google:2018" + }, + { + "duration": "32.0", + "name": "v8.browsing_desktop/browse:search:google_india" + }, + { + "duration": "30.0", + "name": "v8.browsing_desktop/browse:search:google_india:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "55.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop/browse:social:twitter" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:tools:earth" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + }, + { + "duration": "51.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + }, + { + "duration": "22.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": "29.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": "28.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": "22.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "28.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": "29.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "22.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" + }, + { + "duration": "23.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "7.0", + "name": "wasm/WasmSpaceBuggy" + }, + { + "duration": "13.0", + "name": "wasm/WasmTanks" + }, + { + "duration": "16.0", + "name": "wasm/WasmZenGarden" + }, + { + "duration": "17.0", + "name": "webrtc/10s_datachannel_transfer" + }, + { + "duration": "12.0", + "name": "webrtc/canvas_capture_peer_connection" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_h264" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_vp8" + }, + { + "duration": "22.0", + "name": "webrtc/codec_constraints_vp9" + }, + { + "duration": "12.0", + "name": "webrtc/hd_local_stream_10s" + }, + { + "duration": "25.0", + "name": "webrtc/multiple_peerconnections" + }, + { + "duration": "29.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
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 323807d..03bdc24 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,10 +1,14 @@ [ { - "duration": "20.0", + "duration": "21.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "19.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/append-child.html" }, { @@ -12,15 +16,15 @@ "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" }, { @@ -32,7 +36,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -40,15 +44,15 @@ "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { @@ -56,7 +60,7 @@ "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/id-setter.html" }, { @@ -68,15 +72,15 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "28.0", + "duration": "19.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/node-type.html" }, { @@ -96,7 +100,7 @@ "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { @@ -120,7 +124,7 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -144,7 +148,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { @@ -152,107 +156,263 @@ "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "12.0", + "duration": "3.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "13.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "13.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "12.0", - "name": "blink_perf.bindings/worker-structured-clone-json-serialize.html" + "duration": "13.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "5.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "3.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { "duration": "9.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "10.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { + "duration": "9.0", + "name": "blink_perf.canvas/createImageBitmapFromImageData_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/docs-paper.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/docs-resume.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/docs-resume_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/docs-table.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/docs-table_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { + "duration": "5.0", + "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "10.0", "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html" }, { "duration": "4.0", + "name": "blink_perf.canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "4.0", "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d.html" }, { + "duration": "6.0", + "name": "blink_perf.canvas/draw-hw-accelerated-canvas-2d-to-sw-canvas-2d_RAF.html?RAF" + }, + { "duration": "4.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { "duration": "4.0", + "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "4.0", "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d.html" }, { - "duration": "6.0", + "duration": "5.0", + "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d_RAF.html?RAF" + }, + { "duration": "9.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { "duration": "9.0", + "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" + }, + { + "duration": "9.0", "name": "blink_perf.canvas/drawimage.html" }, { "duration": "10.0", + "name": "blink_perf.canvas/drawimage_RAF.html?RAF" + }, + { + "duration": "10.0", "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { - "duration": "9.0", + "duration": "8.0", + "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/getImageData_RAF.html?RAF" + }, + { + "duration": "4.0", + "name": "blink_perf.canvas/gpu-bound-shader.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/gpu-bound-shader_RAF.html?RAF" + }, + { + "duration": "8.0", "name": "blink_perf.canvas/putImageData.html" }, { + "duration": "9.0", + "name": "blink_perf.canvas/putImageData_RAF.html?RAF" + }, + { + "duration": "10.0", + "name": "blink_perf.canvas/sheets-render.html" + }, + { + "duration": "5.0", + "name": "blink_perf.canvas/sheets-render_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/toBlob_duration.html" }, { "duration": "5.0", + "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "4.0", + "duration": "5.0", + "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { + "duration": "6.0", + "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { + "duration": "8.0", + "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" + }, + { "duration": "11.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { - "duration": "4.0", + "duration": "6.0", + "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" + }, + { + "duration": "5.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { + "duration": "6.0", + "name": "blink_perf.canvas/upload-video-to-texture_RAF.html?RAF" + }, + { "duration": "5.0", "name": "blink_perf.canvas/upload-webgl-to-texture.html" }, { + "duration": "7.0", + "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" + }, + { "duration": "12.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { @@ -260,79 +420,79 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -340,11 +500,11 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { @@ -356,19 +516,19 @@ "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -376,35 +536,19 @@ "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "6.0", - "name": "blink_perf.dom/addRange.html" - }, - { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "4.0", - "name": "blink_perf.dom/delete-in-password-field.html" - }, - { - "duration": "10.0", - "name": "blink_perf.dom/div-editable.html" - }, - { - "duration": "4.0", - "name": "blink_perf.dom/inner_html_with_selection.html" - }, - { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -420,18 +564,6 @@ "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "4.0", - "name": "blink_perf.dom/move-down-with-hidden-elements.html" - }, - { - "duration": "4.0", - "name": "blink_perf.dom/move-up-with-hidden-elements.html" - }, - { - "duration": "4.0", - "name": "blink_perf.dom/remove_child_with_selection.html" - }, - { "duration": "9.0", "name": "blink_perf.dom/select-multiple-add.html" }, @@ -444,67 +576,75 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "9.0", - "name": "blink_perf.dom/textarea-dom.html" - }, - { - "duration": "9.0", - "name": "blink_perf.dom/textarea-edit.html" - }, - { - "duration": "28.0", + "duration": "38.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "10.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" - }, - { - "duration": "17.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" - }, - { - "duration": "9.0", - "name": "blink_perf.events/hit-test-lots-of-layers.html" - }, - { - "duration": "14.0", - "name": "blink_perf.image_decoder/decode-gif.html" + "duration": "11.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { "duration": "11.0", - "name": "blink_perf.image_decoder/decode-jpeg.html" - }, - { - "duration": "13.0", - "name": "blink_perf.image_decoder/decode-lossless-webp.html" - }, - { - "duration": "10.0", - "name": "blink_perf.image_decoder/decode-lossy-webp.html" - }, - { - "duration": "12.0", - "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" - }, - { - "duration": "11.0", - "name": "blink_perf.image_decoder/decode-png-palette.html" - }, - { - "duration": "14.0", - "name": "blink_perf.image_decoder/decode-png.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { "duration": "15.0", - "name": "blink_perf.layout/ArabicLineLayout.html" + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" }, { - "duration": "6.0", - "name": "blink_perf.layout/Shapes/MultipleShapes.html" + "duration": "16.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" + }, + { + "duration": "10.0", + "name": "blink_perf.events/hit-test-lots-of-layers.html" + }, + { + "duration": "10.0", + "name": "blink_perf.events/is-input-pending-all-events.html" }, { "duration": "11.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "12.0", + "name": "blink_perf.image_decoder/decode-jpeg.html" + }, + { + "duration": "14.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "11.0", + "name": "blink_perf.image_decoder/decode-lossy-webp.html" + }, + { + "duration": "13.0", + "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" + }, + { + "duration": "12.0", + "name": "blink_perf.image_decoder/decode-png-palette.html" + }, + { + "duration": "15.0", + "name": "blink_perf.image_decoder/decode-png.html" + }, + { + "duration": "16.0", + "name": "blink_perf.layout/ArabicLineLayout.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/Shapes/MultipleShapes.html" + }, + { + "duration": "10.0", "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { @@ -512,23 +652,23 @@ "name": "blink_perf.layout/add-remove-inline-floats.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/attach-inlines-2.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/change-text-css-contain.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -536,7 +676,7 @@ "name": "blink_perf.layout/chapter-reflow-once.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { @@ -544,11 +684,11 @@ "name": "blink_perf.layout/chapter-reflow-twice.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -556,6 +696,18 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "7.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { "duration": "10.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, @@ -580,23 +732,27 @@ "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "9.0", + "duration": "10.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { + "duration": "8.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -616,22 +772,30 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "16.0", + "duration": "4.0", "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" }, { - "duration": "15.0", + "duration": "10.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { + "duration": "5.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "12.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "9.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, @@ -640,15 +804,15 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "37.0", + "duration": "35.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { @@ -660,10 +824,18 @@ "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "4.0", + "duration": "14.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { + "duration": "4.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { "duration": "7.0", "name": "blink_perf.layout/line-layout-line-height.html" }, @@ -672,7 +844,7 @@ "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { @@ -680,7 +852,7 @@ "name": "blink_perf.layout/line-layout.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { @@ -693,14 +865,22 @@ }, { "duration": "9.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "9.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { @@ -708,11 +888,11 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { @@ -724,7 +904,7 @@ "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/nested-grid.html" }, { @@ -736,7 +916,7 @@ "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { @@ -752,103 +932,115 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "13.0", + "duration": "18.0", "name": "blink_perf.paint/color-changes.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "11.0", + "duration": "12.0", + "name": "blink_perf.paint/complex-iframe-filtered.html" + }, + { + "duration": "25.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "12.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { "duration": "14.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "15.0", "name": "blink_perf.paint/transform-changes.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "24.0", + "duration": "21.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -872,7 +1064,7 @@ "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" }, { @@ -888,19 +1080,19 @@ "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "10.0", + "duration": "9.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" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { @@ -908,15 +1100,15 @@ "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { @@ -928,7 +1120,7 @@ "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/simple-url.html" }, { @@ -960,7 +1152,7 @@ "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { @@ -976,11 +1168,11 @@ "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "4.0", + "duration": "3.0", "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" }, { @@ -1048,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "11.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1060,19 +1252,19 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "11.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { @@ -1108,7 +1300,7 @@ "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1120,7 +1312,7 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { @@ -1128,7 +1320,7 @@ "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.svg/Cactus.html" }, { @@ -1144,7 +1336,7 @@ "name": "blink_perf.svg/Debian.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.svg/DropsOnABlade.html" }, { @@ -1156,7 +1348,7 @@ "name": "blink_perf.svg/FoodLeifLodahl.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.svg/France.html" }, { @@ -1200,7 +1392,7 @@ "name": "blink_perf.svg/SvgNestedUse.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.svg/UnderTheSee.html" }, { @@ -1212,7 +1404,7 @@ "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "36.0", + "duration": "34.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1228,631 +1420,627 @@ "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "9.0", + "duration": "3.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "169.0", + "duration": "171.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { - "duration": "23.0", + "duration": "21.0", "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.desktop/24h_cold" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/24h_warm" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/AirBnB_cold" }, { - "duration": "35.0", + "duration": "23.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "14.0", + "duration": "20.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "55.0", + "duration": "25.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "26.0", + "duration": "15.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "39.0", + "duration": "25.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "15.0", + "duration": "20.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "24.0", + "duration": "13.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "29.0", + "duration": "18.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "20.0", + "duration": "11.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "22.0", + "duration": "12.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "20.0", + "duration": "12.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "25.0", + "duration": "15.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "32.0", + "duration": "23.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "30.0", + "duration": "18.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "20.0", + "duration": "11.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "24.0", + "duration": "15.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "26.0", + "duration": "18.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "21.0", + "duration": "13.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "14.0", + "duration": "8.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "15.0", + "duration": "9.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "15.0", + "duration": "9.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "17.0", + "duration": "11.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "27.0", + "duration": "16.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "20.0", + "duration": "11.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "34.0", + "duration": "13.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "25.0", + "duration": "14.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "23.0", + "duration": "15.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "29.0", + "duration": "14.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "46.0", + "duration": "22.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "20.0", + "duration": "11.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "21.0", + "duration": "23.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "29.0", + "duration": "19.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "22.0", + "duration": "13.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "28.0", + "duration": "17.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "19.0", + "duration": "12.0", "name": "loading.desktop/REI_cold" }, { - "duration": "24.0", + "duration": "15.0", "name": "loading.desktop/REI_warm" }, { - "duration": "16.0", + "duration": "9.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "25.0", + "duration": "16.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "32.0", + "duration": "21.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "24.0", + "duration": "17.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "31.0", + "duration": "23.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "24.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "24.0", + "duration": "21.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "32.0", + "duration": "21.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "31.0", + "duration": "18.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "32.0", + "duration": "16.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "57.0", + "duration": "24.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "27.0", + "duration": "14.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "36.0", + "duration": "21.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "26.0", - "name": "loading.desktop/Walgreens_cold" - }, - { - "duration": "36.0", - "name": "loading.desktop/Walgreens_warm" - }, - { - "duration": "14.0", + "duration": "9.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "17.0", + "duration": "10.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "39.0", + "duration": "13.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "29.0", + "duration": "18.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "20.0", + "duration": "12.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "27.0", + "duration": "15.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "36.0", + "duration": "23.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "16.0", + "duration": "10.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "18.0", + "duration": "11.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "29.0", + "duration": "16.0", "name": "loading.desktop/uol.com.br_cold" }, { - "duration": "39.0", + "duration": "23.0", "name": "loading.desktop/uol.com.br_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "22.0", + "duration": "14.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "15.0", + "duration": "9.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "16.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "16.0", + "duration": "9.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "15.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "22.0", - "name": "media.desktop/video.html?src=crowd.ogg&type=audio" - }, - { - "duration": "24.0", - "name": "media.desktop/video.html?src=crowd1080.mp4" - }, - { - "duration": "24.0", - "name": "media.desktop/video.html?src=crowd1080.webm" - }, - { - "duration": "22.0", - "name": "media.desktop/video.html?src=crowd1080_vp9.webm" - }, - { - "duration": "12.0", - "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" - }, - { - "duration": "21.0", - "name": "media.desktop/video.html?src=crowd720_vp9.webm" - }, - { - "duration": "24.0", - "name": "media.desktop/video.html?src=garden2_10s.mp4" - }, - { - "duration": "14.0", - "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" - }, - { - "duration": "23.0", - "name": "media.desktop/video.html?src=garden2_10s.webm" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=garden2_10s.webm&seek" + "duration": "8.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" }, { "duration": "15.0", - "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" + "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "29.0", - "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" + "duration": "15.0", + "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "29.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" - }, - { - "duration": "12.0", - "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" - }, - { - "duration": "31.0", - "name": "media.desktop/video.html?src=tulip2.mp4" - }, - { - "duration": "32.0", - "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" - }, - { - "duration": "13.0", - "name": "media.desktop/video.html?src=tulip2.mp4&seek" - }, - { - "duration": "29.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" - }, - { - "duration": "12.0", - "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" - }, - { - "duration": "31.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm" - }, - { - "duration": "24.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" + "duration": "15.0", + "name": "media.desktop/video.html?src=crowd1080.webm" }, { "duration": "14.0", - "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" - }, - { - "duration": "29.0", - "name": "media.desktop/video.html?src=tulip2.wav&type=audio" - }, - { - "duration": "12.0", - "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialAnimationPageSharedPageState" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialCanvasPageSharedPageState" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" - }, - { - "duration": "27.0", - "name": "memory.desktop/TrivialGifPageSharedPageState" - }, - { - "duration": "29.0", - "name": "memory.desktop/TrivialScrollingPageSharedPageState" - }, - { - "duration": "28.0", - "name": "memory.desktop/TrivialWebGLPageSharedPageState" - }, - { - "duration": "48.0", - "name": "memory.desktop/WebWorker" - }, - { - "duration": "164.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "146.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "40.0", - "name": "octane/http://chromium.github.io/octane/index.html?auto=1" - }, - { - "duration": "46.0", - "name": "power.desktop/TrivialAnimationPageSharedPageState" - }, - { - "duration": "43.0", - "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" - }, - { - "duration": "45.0", - "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" - }, - { - "duration": "45.0", - "name": "power.desktop/TrivialCanvasPageSharedPageState" - }, - { - "duration": "44.0", - "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" - }, - { - "duration": "43.0", - "name": "power.desktop/TrivialGifPageSharedPageState" - }, - { - "duration": "49.0", - "name": "power.desktop/TrivialScrollingPageSharedPageState" - }, - { - "duration": "46.0", - "name": "power.desktop/TrivialWebGLPageSharedPageState" - }, - { - "duration": "52.0", - "name": "power.desktop/abcnews" - }, - { - "duration": "44.0", - "name": "power.desktop/indiatimes" - }, - { - "duration": "48.0", - "name": "power.desktop/instagram" - }, - { - "duration": "44.0", - "name": "power.desktop/microsoft" - }, - { - "duration": "48.0", - "name": "power.desktop/sina" - }, - { - "duration": "46.0", - "name": "power.desktop/slideshare" - }, - { - "duration": "55.0", - "name": "power.desktop/uol" + "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { "duration": "7.0", + "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" + }, + { + "duration": "14.0", + "name": "media.desktop/video.html?src=crowd720_vp9.webm" + }, + { + "duration": "16.0", + "name": "media.desktop/video.html?src=garden2_10s.mp4" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" + }, + { + "duration": "14.0", + "name": "media.desktop/video.html?src=garden2_10s.webm" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=garden2_10s.webm&seek" + }, + { + "duration": "9.0", + "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" + }, + { + "duration": "16.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" + }, + { + "duration": "8.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.mp4" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip2.mp4&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm" + }, + { + "duration": "15.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" + }, + { + "duration": "8.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" + }, + { + "duration": "23.0", + "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" + }, + { + "duration": "22.0", + "name": "media.desktop/video.html?src=tulip2.wav&type=audio" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" + }, + { + "duration": "21.0", + "name": "memory.desktop/TrivialAnimationPageSharedPageState" + }, + { + "duration": "21.0", + "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" + }, + { + "duration": "21.0", + "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" + }, + { + "duration": "22.0", + "name": "memory.desktop/TrivialCanvasPageSharedPageState" + }, + { + "duration": "22.0", + "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" + }, + { + "duration": "21.0", + "name": "memory.desktop/TrivialGifPageSharedPageState" + }, + { + "duration": "22.0", + "name": "memory.desktop/TrivialScrollingPageSharedPageState" + }, + { + "duration": "21.0", + "name": "memory.desktop/TrivialWebGLPageSharedPageState" + }, + { + "duration": "40.0", + "name": "memory.desktop/WebWorker" + }, + { + "duration": "38.0", + "name": "octane/http://chromium.github.io/octane/index.html?auto=1" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialAnimationPageSharedPageState" + }, + { + "duration": "34.0", + "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialCanvasPageSharedPageState" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" + }, + { + "duration": "34.0", + "name": "power.desktop/TrivialGifPageSharedPageState" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialScrollingPageSharedPageState" + }, + { + "duration": "35.0", + "name": "power.desktop/TrivialWebGLPageSharedPageState" + }, + { + "duration": "42.0", + "name": "power.desktop/abcnews" + }, + { + "duration": "36.0", + "name": "power.desktop/indiatimes" + }, + { + "duration": "36.0", + "name": "power.desktop/instagram" + }, + { + "duration": "35.0", + "name": "power.desktop/microsoft" + }, + { + "duration": "39.0", + "name": "power.desktop/sina" + }, + { + "duration": "36.0", + "name": "power.desktop/slideshare" + }, + { + "duration": "38.0", + "name": "power.desktop/uol" + }, + { + "duration": "6.0", "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { @@ -1864,7 +2052,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { @@ -1908,23 +2096,23 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "27.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { @@ -1932,7 +2120,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { @@ -1944,2227 +2132,2623 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "26.0", + "duration": "20.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "39.0", + "duration": "16.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "6.0", + "duration": "17.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "34.0", + "duration": "13.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "6.0", + "duration": "10.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "30.0", + "duration": "11.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "12.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "13.0", "name": "rendering.desktop/aquarium" }, { - "duration": "47.0", + "duration": "22.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "31.0", + "duration": "21.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "33.0", + "duration": "15.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "33.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "35.0", + "duration": "14.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/blob" }, { - "duration": "39.0", + "duration": "22.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "6.0", + "duration": "15.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "23.0", + "duration": "8.0", + "name": "rendering.desktop/blur_rotating_background" + }, + { + "duration": "11.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "15.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "30.0", + "duration": "10.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "43.0", + "duration": "13.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "22.0", + "duration": "11.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "8.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "7.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "13.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/cats_unscaled" }, { - "duration": "14.0", + "duration": "7.0", "name": "rendering.desktop/cats_viewport_width" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "26.0", - "name": "rendering.desktop/cc_scroll_200_layer_grid" - }, - { - "duration": "19.0", + "duration": "10.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "6.0", + "duration": "13.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "30.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "29.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "28.0", + "duration": "17.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "35.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "34.0", + "duration": "15.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "30.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "28.0", + "duration": "12.0", "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/earth" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "6.0", + "duration": "19.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/effect_games" }, { - "duration": "35.0", + "duration": "18.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "6.0", + "duration": "12.0", "name": "rendering.desktop/espn_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "28.0", + "duration": "16.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/geo_apis" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "55.0", + "duration": "41.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "18.0", + "duration": "7.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "6.0", + "duration": "10.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "30.0", + "duration": "12.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "6.0", + "duration": "9.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "6.0", + "duration": "9.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/hakim" }, { - "duration": "36.0", + "duration": "25.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "33.0", + "duration": "18.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "26.0", + "duration": "15.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "25.0", + "duration": "11.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "36.0", + "duration": "18.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "31.0", + "duration": "17.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "32.0", + "duration": "17.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "31.0", + "duration": "17.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "26.0", - "name": "rendering.desktop/js_scroll_200_layer_grid" - }, - { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "22.0", + "duration": "11.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "6.0", + "duration": "15.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "35.0", + "duration": "10.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/many_images" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/many_planets_deep" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "27.0", + "duration": "15.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "31.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "21.0", + "duration": "14.0", + "name": "rendering.desktop/microsoft_performance" + }, + { + "duration": "10.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "19.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "19.0", + "duration": "10.0", "name": "rendering.desktop/mix_10k" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_difference" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { - "duration": "27.0", + "duration": "15.0", "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { - "duration": "28.0", - "name": "rendering.desktop/motion_mark_focus" - }, - { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/new_tilings" }, { - "duration": "24.0", + "duration": "11.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "48.0", + "duration": "15.0", "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/particles" }, { - "duration": "33.0", + "duration": "21.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/raf" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "22.0", + "duration": "11.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "19.0", + "duration": "11.0", + "name": "rendering.desktop/repaint_amazon_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_cnn_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_facebook_2018" + }, + { + "duration": "9.0", + "name": "rendering.desktop/repaint_google_search_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_instagram_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_reddit_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_theverge_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_twitter_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_wikipedia_2018" + }, + { + "duration": "10.0", + "name": "rendering.desktop/repaint_yahoo_homepage_2018" + }, + { + "duration": "9.0", "name": "rendering.desktop/runway" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/simple_text_page" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "24.0", + "duration": "12.0", "name": "rendering.desktop/smash_cat" }, { - "duration": "18.0", + "duration": "10.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "33.0", + "duration": "20.0", "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "13.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "12.0", + "duration": "7.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "12.0", + "duration": "6.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "12.0", + "duration": "8.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "24.0", + "duration": "11.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "8.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" - }, - { - "duration": "13.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "12.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" - }, - { - "duration": "12.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "11.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/transform_transitions" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/twitch_2018" }, { - "duration": "6.0", + "duration": "14.0", "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "31.0", + "duration": "14.0", "name": "rendering.desktop/twitter_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "30.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { - "duration": "24.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "30.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "33.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "6.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "6.0", + "duration": "11.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/yuv_decoding" }, { - "duration": "53.0", + "duration": "36.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { - "duration": "36.0", + "duration": "35.0", "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "72.0", + "duration": "66.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "72.0", + "duration": "65.0", "name": "speedometer2/Speedometer2" }, { - "duration": "76.0", + "duration": "62.0", "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "98.0", + "duration": "40.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "73.0", "name": "system_health.common_desktop/browse:media:imgur" }, { - "duration": "70.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:media:pinterest" }, { - "duration": "114.0", - "name": "system_health.common_desktop/browse:media:tumblr" + "duration": "84.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" }, { - "duration": "79.0", + "duration": "55.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "59.0", "name": "system_health.common_desktop/browse:media:youtube" }, { - "duration": "95.0", - "name": "system_health.common_desktop/browse:news:cnn" - }, - { - "duration": "65.0", - "name": "system_health.common_desktop/browse:news:cnn:2018" - }, - { - "duration": "62.0", - "name": "system_health.common_desktop/browse:news:flipboard" - }, - { - "duration": "58.0", - "name": "system_health.common_desktop/browse:news:hackernews" - }, - { - "duration": "122.0", - "name": "system_health.common_desktop/browse:news:nytimes" - }, - { - "duration": "75.0", - "name": "system_health.common_desktop/browse:news:reddit" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/browse:search:google" - }, - { - "duration": "55.0", - "name": "system_health.common_desktop/browse:search:google:2018" - }, - { - "duration": "41.0", - "name": "system_health.common_desktop/browse:search:google_india" - }, - { - "duration": "76.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" - }, - { - "duration": "91.0", - "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "89.0", - "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "52.0", - "name": "system_health.common_desktop/browse:social:twitter" - }, - { - "duration": "78.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "74.0", - "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "77.0", - "name": "system_health.common_desktop/browse:tools:earth" - }, - { - "duration": "63.0", - "name": "system_health.common_desktop/browse:tools:maps" - }, - { - "duration": "33.0", - "name": "system_health.common_desktop/browse_accessibility:media:youtube" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "35.0", - "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "18.0", - "name": "system_health.common_desktop/load:chrome:blank" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:games:bubbles" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:games:lazors" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:games:miniclip" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:games:spychase" - }, - { - "duration": "39.0", - "name": "system_health.common_desktop/load:media:9gag" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:media:dailymotion" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:media:google_images" - }, - { - "duration": "29.0", - "name": "system_health.common_desktop/load:media:imgur" - }, - { - "duration": "30.0", - "name": "system_health.common_desktop/load:media:soundcloud" - }, - { - "duration": "26.0", - "name": "system_health.common_desktop/load:media:youtube" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:news:bbc" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:news:cnn" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:news:flipboard" - }, - { - "duration": "21.0", - "name": "system_health.common_desktop/load:news:hackernews" - }, - { - "duration": "28.0", - "name": "system_health.common_desktop/load:news:nytimes" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:news:qq" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:news:reddit" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:news:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:amazon" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:search:baidu" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:search:ebay" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:search:google" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:search:taobao" - }, - { - "duration": "22.0", - "name": "system_health.common_desktop/load:search:yahoo" - }, - { - "duration": "23.0", - "name": "system_health.common_desktop/load:search:yandex" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:social:instagram" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load:social:pinterest" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:social:vk" - }, - { - "duration": "38.0", - "name": "system_health.common_desktop/load:tools:docs" - }, - { - "duration": "34.0", - "name": "system_health.common_desktop/load:tools:drive" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:tools:dropbox" - }, - { - "duration": "27.0", - "name": "system_health.common_desktop/load:tools:gmail" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load:tools:stackoverflow" - }, - { - "duration": "31.0", - "name": "system_health.common_desktop/load:tools:weather" - }, - { - "duration": "25.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "24.0", - "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "44.0", - "name": "system_health.common_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "130.0", - "name": "system_health.common_desktop/long_running:tools:gmail-background" - }, - { - "duration": "137.0", - "name": "system_health.common_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "57.0", - "name": "system_health.common_desktop/play:media:google_play_music" - }, - { - "duration": "57.0", - "name": "system_health.common_desktop/play:media:soundcloud" - }, - { - "duration": "71.0", - "name": "system_health.memory_desktop/browse:media:imgur" - }, - { - "duration": "62.0", - "name": "system_health.memory_desktop/browse:media:pinterest" + "duration": "61.0", + "name": "system_health.common_desktop/browse:media:youtube:2018" }, { "duration": "61.0", - "name": "system_health.memory_desktop/browse:media:youtube" + "name": "system_health.common_desktop/browse:media:youtubetv:2019" }, { - "duration": "62.0", - "name": "system_health.memory_desktop/browse:news:cnn" + "duration": "70.0", + "name": "system_health.common_desktop/browse:news:cnn" }, { - "duration": "47.0", - "name": "system_health.memory_desktop/browse:news:cnn:2018" - }, - { - "duration": "51.0", - "name": "system_health.memory_desktop/browse:news:flipboard" - }, - { - "duration": "68.0", - "name": "system_health.memory_desktop/browse:news:nytimes" - }, - { - "duration": "62.0", - "name": "system_health.memory_desktop/browse:news:reddit" + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:cnn:2018" }, { "duration": "49.0", - "name": "system_health.memory_desktop/browse:search:google" + "name": "system_health.common_desktop/browse:news:flipboard" }, { - "duration": "48.0", - "name": "system_health.memory_desktop/browse:search:google:2018" + "duration": "49.0", + "name": "system_health.common_desktop/browse:news:flipboard:2018" }, { - "duration": "37.0", - "name": "system_health.memory_desktop/browse:search:google_india" + "duration": "50.0", + "name": "system_health.common_desktop/browse:news:hackernews" }, { - "duration": "67.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" + "duration": "62.0", + "name": "system_health.common_desktop/browse:news:hackernews:2018" }, { - "duration": "69.0", - "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + "duration": "97.0", + "name": "system_health.common_desktop/browse:news:nytimes" }, { - "duration": "65.0", - "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "47.0", - "name": "system_health.memory_desktop/browse:social:twitter" - }, - { - "duration": "64.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" + "duration": "72.0", + "name": "system_health.common_desktop/browse:news:nytimes:2018" }, { "duration": "63.0", - "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + "name": "system_health.common_desktop/browse:news:reddit" }, { - "duration": "56.0", - "name": "system_health.memory_desktop/browse:tools:earth" + "duration": "49.0", + "name": "system_health.common_desktop/browse:news:reddit:2018" }, { - "duration": "52.0", - "name": "system_health.memory_desktop/browse:tools:maps" + "duration": "47.0", + "name": "system_health.common_desktop/browse:search:google" }, { - "duration": "27.0", - "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + "duration": "45.0", + "name": "system_health.common_desktop/browse:search:google:2018" }, { - "duration": "22.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" - }, - { - "duration": "30.0", - "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" - }, - { - "duration": "16.0", - "name": "system_health.memory_desktop/load:chrome:blank" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:games:bubbles" - }, - { - "duration": "19.0", - "name": "system_health.memory_desktop/load:games:lazors" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:games:miniclip" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:games:spychase" + "duration": "33.0", + "name": "system_health.common_desktop/browse:search:google_india" }, { "duration": "32.0", - "name": "system_health.memory_desktop/load:media:9gag" + "name": "system_health.common_desktop/browse:search:google_india:2018" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:media:dailymotion" + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:media:google_images" + "duration": "70.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "24.0", - "name": "system_health.memory_desktop/load:media:imgur" + "duration": "65.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "24.0", - "name": "system_health.memory_desktop/load:media:soundcloud" + "duration": "58.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "23.0", - "name": "system_health.memory_desktop/load:media:youtube" + "duration": "43.0", + "name": "system_health.common_desktop/browse:social:twitter" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "56.0", + "name": "system_health.common_desktop/browse:tools:earth" + }, + { + "duration": "49.0", + "name": "system_health.common_desktop/browse:tools:maps" }, { "duration": "22.0", - "name": "system_health.memory_desktop/load:news:bbc" + "name": "system_health.common_desktop/browse_accessibility:media:youtube" }, { - "duration": "25.0", - "name": "system_health.memory_desktop/load:news:cnn" + "duration": "17.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" + }, + { + "duration": "26.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:games:bubbles" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:games:miniclip" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" }, { "duration": "20.0", - "name": "system_health.memory_desktop/load:news:flipboard" + "name": "system_health.common_desktop/load:games:spychase" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:dailymotion" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:google_images" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:imgur" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:imgur:2018" }, { "duration": "19.0", - "name": "system_health.memory_desktop/load:news:hackernews" + "name": "system_health.common_desktop/load:media:soundcloud" }, { - "duration": "25.0", - "name": "system_health.memory_desktop/load:news:nytimes" + "duration": "19.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" }, { - "duration": "24.0", - "name": "system_health.memory_desktop/load:news:qq" + "duration": "16.0", + "name": "system_health.common_desktop/load:media:youtube" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:bbc" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:news:cnn" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:cnn:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:hackernews" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:nytimes" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" }, { "duration": "20.0", - "name": "system_health.memory_desktop/load:news:reddit" + "name": "system_health.common_desktop/load:news:qq" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:news:wikipedia" + "duration": "19.0", + "name": "system_health.common_desktop/load:news:qq:2018" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:amazon" + "duration": "16.0", + "name": "system_health.common_desktop/load:news:reddit" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:wikipedia" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_desktop/load:search:amazon" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:baidu" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:ebay" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:google" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:search:taobao" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:yahoo" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:yandex" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:instagram" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:pinterest" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:vk" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:vk:2018" }, { "duration": "20.0", - "name": "system_health.memory_desktop/load:search:baidu" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:ebay" + "name": "system_health.common_desktop/load:tools:docs" }, { "duration": "20.0", - "name": "system_health.memory_desktop/load:search:google" + "name": "system_health.common_desktop/load:tools:drive" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:search:taobao" + "duration": "16.0", + "name": "system_health.common_desktop/load:tools:dropbox" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:tools:gmail" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:tools:stackoverflow" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" }, { "duration": "20.0", - "name": "system_health.memory_desktop/load:search:yahoo" + "name": "system_health.common_desktop/load:tools:weather" }, { - "duration": "22.0", - "name": "system_health.memory_desktop/load:search:yandex" + "duration": "16.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:social:instagram" + "duration": "15.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" }, { - "duration": "22.0", - "name": "system_health.memory_desktop/load:social:pinterest" + "duration": "16.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:social:vk" + "duration": "16.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "118.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/play:media:soundcloud" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "37.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "64.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:pinterest" + }, + { + "duration": "81.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "52.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:media:youtube" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:media:youtube:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:news:cnn" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:cnn:2018" + }, + { + "duration": "50.0", + "name": "system_health.memory_desktop/browse:news:flipboard" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2018" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:news:nytimes" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2018" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:news:reddit" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:news:reddit:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:search:google" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:search:google_india" + }, + { + "duration": "29.0", + "name": "system_health.memory_desktop/browse:search:google_india:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" + }, + { + "duration": "63.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" + }, + { + "duration": "51.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:social:twitter" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "49.0", + "name": "system_health.memory_desktop/browse:tools:earth" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:tools:maps" + }, + { + "duration": "20.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" }, { "duration": "23.0", - "name": "system_health.memory_desktop/load:tools:docs" - }, - { - "duration": "23.0", - "name": "system_health.memory_desktop/load:tools:drive" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load:tools:dropbox" - }, - { - "duration": "22.0", - "name": "system_health.memory_desktop/load:tools:gmail" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load:tools:stackoverflow" - }, - { - "duration": "25.0", - "name": "system_health.memory_desktop/load:tools:weather" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" - }, - { - "duration": "20.0", - "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" - }, - { - "duration": "21.0", - "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" - }, - { - "duration": "144.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-background" - }, - { - "duration": "141.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/Facebook" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/Wikipedia" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" - }, - { - "duration": "10.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" - }, - { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" - }, - { - "duration": "11.0", - "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" }, { "duration": "13.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:games:bubbles" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:miniclip" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:spychase" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:dailymotion" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:google_images" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:imgur" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:youtube" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:bbc" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:cnn" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:cnn:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:hackernews" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:nytimes" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:qq" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:reddit" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:wikipedia" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_desktop/load:search:amazon" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:baidu" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_desktop/load:search:ebay" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:google" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:taobao" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:yahoo" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:yandex" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:instagram" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:pinterest" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:vk" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:tools:docs" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:drive" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:dropbox" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:gmail" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:weather" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "125.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "124.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/Facebook" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/Wikipedia" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" + }, + { + "duration": "6.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" + }, + { + "duration": "8.0", + "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" + }, + { + "duration": "7.0", + "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" + }, + { + "duration": "8.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { - "duration": "275.0", + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" + }, + { + "duration": "86.0", "name": "v8.browsing_desktop-future/browse:media:imgur" }, { - "duration": "81.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" + "duration": "87.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" }, { - "duration": "104.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" }, { - "duration": "160.0", - "name": "v8.browsing_desktop-future/browse:news:cnn" + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2018" }, { - "duration": "89.0", + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "48.0", "name": "v8.browsing_desktop-future/browse:news:cnn:2018" }, { - "duration": "62.0", - "name": "v8.browsing_desktop-future/browse:search:google" + "duration": "51.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" }, { - "duration": "62.0", + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" + }, + { + "duration": "75.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" + }, + { + "duration": "50.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2018" + }, + { + "duration": "48.0", "name": "v8.browsing_desktop-future/browse:search:google:2018" }, { - "duration": "45.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" + "duration": "32.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2018" }, { - "duration": "206.0", + "duration": "70.0", "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "127.0", + "duration": "66.0", "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" }, { - "duration": "60.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" - }, - { - "duration": "121.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "114.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "112.0", - "name": "v8.browsing_desktop-future/browse:tools:earth" - }, - { - "duration": "85.0", - "name": "v8.browsing_desktop-future/browse:tools:maps" - }, - { - "duration": "81.0", - "name": "v8.browsing_desktop/browse:media:pinterest" - }, - { - "duration": "105.0", - "name": "v8.browsing_desktop/browse:media:youtube" - }, - { - "duration": "165.0", - "name": "v8.browsing_desktop/browse:news:cnn" - }, - { - "duration": "89.0", - "name": "v8.browsing_desktop/browse:news:cnn:2018" - }, - { - "duration": "148.0", - "name": "v8.browsing_desktop/browse:news:nytimes" - }, - { - "duration": "83.0", - "name": "v8.browsing_desktop/browse:news:reddit" - }, - { - "duration": "62.0", - "name": "v8.browsing_desktop/browse:search:google" - }, - { - "duration": "62.0", - "name": "v8.browsing_desktop/browse:search:google:2018" + "duration": "69.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": "64.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop-future/browse:tools:earth" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop-future/browse:tools:maps" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:pinterest" + }, + { + "duration": "86.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop/browse:media:youtube" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop/browse:media:youtube:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "81.0", + "name": "v8.browsing_desktop/browse:news:cnn" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop/browse:news:cnn:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2018" + }, + { + "duration": "91.0", + "name": "v8.browsing_desktop/browse:news:nytimes" + }, + { + "duration": "75.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:news:reddit" + }, + { + "duration": "50.0", + "name": "v8.browsing_desktop/browse:news:reddit:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop/browse:search:google" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:search:google:2018" + }, + { + "duration": "32.0", "name": "v8.browsing_desktop/browse:search:google_india" }, { - "duration": "207.0", + "duration": "32.0", + "name": "v8.browsing_desktop/browse:search:google_india:2018" + }, + { + "duration": "70.0", "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "127.0", + "duration": "65.0", "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" }, { "duration": "59.0", - "name": "v8.browsing_desktop/browse:social:twitter" - }, - { - "duration": "121.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "114.0", - "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" - }, - { - "duration": "112.0", - "name": "v8.browsing_desktop/browse:tools:earth" - }, - { - "duration": "85.0", - "name": "v8.browsing_desktop/browse:tools:maps" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" - }, - { - "duration": "46.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" - }, - { - "duration": "73.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" - }, - { - "duration": "59.0", - "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" - }, - { - "duration": "46.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" - }, - { - "duration": "34.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": "37.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": "35.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": "34.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" - }, - { - "duration": "36.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": "36.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" - }, - { - "duration": "31.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": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" - }, - { - "duration": "31.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": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" - }, - { - "duration": "31.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": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" - }, - { - "duration": "53.0", - "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" - }, - { - "duration": "39.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": "36.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": "37.0", - "name": "v8.runtime_stats.top_25/http://weibo.com_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" - }, - { - "duration": "38.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": "32.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" - }, - { - "duration": "32.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" - }, - { - "duration": "34.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": "36.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" - }, - { - "duration": "58.0", - "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" - }, - { - "duration": "38.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": "36.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" - }, - { - "duration": "42.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" - }, - { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" - }, - { - "duration": "38.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": "65.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" - }, - { - "duration": "73.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" - }, - { - "duration": "69.0", - "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" - }, - { - "duration": "39.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": "33.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" - }, - { - "duration": "40.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" - }, - { - "duration": "50.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" - }, - { - "duration": "45.0", - "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" - }, - { - "duration": "31.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" - }, - { - "duration": "33.0", - "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" - }, - { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" - }, - { - "duration": "37.0", - "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" - }, - { - "duration": "38.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" - }, - { - "duration": "35.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" - }, - { - "duration": "34.0", - "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" - }, - { - "duration": "39.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": "38.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" }, { "duration": "44.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + "name": "v8.browsing_desktop/browse:social:twitter" }, { - "duration": "41.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" - }, - { - "duration": "36.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + "duration": "45.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" }, { "duration": "64.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "39.0", - "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + "duration": "64.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "17.0", - "name": "wasm/WasmSpaceBuggy" + "duration": "61.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop/browse:tools:earth" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop/browse:tools:maps" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" }, { "duration": "24.0", - "name": "wasm/WasmTanks" + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + }, + { + "duration": "63.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "31.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": "31.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": "28.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": "25.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "62.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" }, { "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "33.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "24.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + }, + { + "duration": "29.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "28.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "29.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": "33.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": "26.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "8.0", + "name": "wasm/WasmSpaceBuggy" + }, + { + "duration": "17.0", + "name": "wasm/WasmTanks" + }, + { + "duration": "18.0", "name": "wasm/WasmZenGarden" }, { - "duration": "36.0", + "duration": "21.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "23.0", + "duration": "14.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "32.0", + "duration": "24.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "32.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "32.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "21.0", + "duration": "13.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "55.0", + "duration": "31.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "58.0", + "duration": "32.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json b/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json index 9327540..c82f1a8 100644 --- a/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win_7_nvidia_gpu_perf_timing.json
@@ -1,6 +1,10 @@ [ { - "duration": "21.0", + "duration": "22.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "19.0", "name": "blink_perf.accessibility/textarea-append.html" }, { @@ -12,19 +16,19 @@ "name": "blink_perf.bindings/create-element.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.bindings/gc-forest.html" }, { @@ -32,11 +36,11 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { @@ -44,15 +48,15 @@ "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/id-getter.html" }, { @@ -64,7 +68,7 @@ "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/insert-before.html" }, { @@ -72,7 +76,7 @@ "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "24.0", + "duration": "17.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -80,11 +84,11 @@ "name": "blink_perf.bindings/node-type.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.bindings/post-message.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { @@ -92,7 +96,7 @@ "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.bindings/serialize-array.html" }, { @@ -108,11 +112,11 @@ "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/set-attribute.html" }, { @@ -136,7 +140,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -156,7 +160,7 @@ "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { @@ -168,11 +172,11 @@ "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { @@ -196,19 +200,19 @@ "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.canvas/createImageBitmapFromImageData.html" }, { @@ -220,7 +224,7 @@ "name": "blink_perf.canvas/docs-paper.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.canvas/docs-paper_RAF.html?RAF" }, { @@ -240,11 +244,11 @@ "name": "blink_perf.canvas/docs-table_RAF.html?RAF" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.canvas/draw-dynamic-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -268,7 +272,7 @@ "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { @@ -280,7 +284,7 @@ "name": "blink_perf.canvas/draw-static-webgl-to-hw-accelerated-canvas-2d_RAF.html?RAF" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.canvas/draw-video-to-hw-accelerated-canvas-2d.html" }, { @@ -292,7 +296,7 @@ "name": "blink_perf.canvas/drawimage-not-pixelaligned.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/drawimage-not-pixelaligned_RAF.html?RAF" }, { @@ -300,7 +304,7 @@ "name": "blink_perf.canvas/drawimage.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/drawimage_RAF.html?RAF" }, { @@ -308,15 +312,15 @@ "name": "blink_perf.canvas/getImageData.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/getImageDataColorManaged.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/getImageDataColorManaged_RAF.html?RAF" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.canvas/getImageData_RAF.html?RAF" }, { @@ -336,7 +340,7 @@ "name": "blink_perf.canvas/putImageData_RAF.html?RAF" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.canvas/sheets-render.html" }, { @@ -352,11 +356,11 @@ "name": "blink_perf.canvas/toBlob_duration_RAF.html?RAF" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.canvas/toBlob_duration_jpeg.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.canvas/toBlob_duration_jpeg_RAF.html?RAF" }, { @@ -364,19 +368,19 @@ "name": "blink_perf.canvas/transferFromImageBitmap.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.canvas/transferFromImageBitmap_RAF.html?RAF" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.canvas/upload-canvas-2d-to-texture_RAF.html?RAF" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.canvas/upload-video-to-sub-texture.html" }, { @@ -384,7 +388,7 @@ "name": "blink_perf.canvas/upload-video-to-sub-texture_RAF.html?RAF" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.canvas/upload-video-to-texture.html" }, { @@ -416,7 +420,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { @@ -428,23 +432,23 @@ "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { @@ -452,23 +456,23 @@ "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { @@ -476,19 +480,19 @@ "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -496,11 +500,11 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { @@ -508,27 +512,27 @@ "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { @@ -536,11 +540,11 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { @@ -572,27 +576,43 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "30.0", + "duration": "9.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "8.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "17.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "9.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "15.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "14.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { "duration": "9.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "17.0", + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "35.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { @@ -600,11 +620,11 @@ "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { @@ -612,11 +632,11 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "15.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "14.0", + "duration": "9.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -624,7 +644,7 @@ "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { @@ -648,7 +668,7 @@ "name": "blink_perf.layout/change-text-css-contain.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -672,10 +692,22 @@ "name": "blink_perf.layout/character_fallback.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "7.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "10.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { "duration": "8.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, @@ -688,11 +720,11 @@ "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { @@ -712,15 +744,15 @@ "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -744,11 +776,11 @@ "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -760,11 +792,15 @@ "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "8.0", + "duration": "9.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "7.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { @@ -776,11 +812,11 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "35.0", + "duration": "37.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -792,6 +828,14 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { + "duration": "3.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "4.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { "duration": "7.0", "name": "blink_perf.layout/line-layout-line-height.html" }, @@ -808,11 +852,11 @@ "name": "blink_perf.layout/line-layout.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { @@ -832,11 +876,11 @@ "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { @@ -852,7 +896,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" }, { @@ -868,7 +912,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "47.0", + "duration": "39.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -888,31 +932,31 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.paint/appending-text.html" }, { - "duration": "13.0", + "duration": "18.0", "name": "blink_perf.paint/color-changes.html" }, { @@ -920,11 +964,15 @@ "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.paint/complex-iframe-filtered.html" }, { - "duration": "12.0", + "duration": "28.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "13.0", "name": "blink_perf.paint/containment-resize.html" }, { @@ -932,15 +980,15 @@ "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-background-change-with-invisible-collapsed-borders.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-background-change-with-visible-collapsed-borders.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { @@ -948,7 +996,7 @@ "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { @@ -956,11 +1004,11 @@ "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { @@ -969,22 +1017,26 @@ }, { "duration": "14.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "15.0", "name": "blink_perf.paint/transform-changes.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "8.0", + "duration": "5.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "23.0", + "duration": "20.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -1012,7 +1064,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -1028,15 +1080,15 @@ "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" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1052,11 +1104,11 @@ "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { @@ -1068,7 +1120,7 @@ "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/simple-url.html" }, { @@ -1076,11 +1128,11 @@ "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1104,11 +1156,11 @@ "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { @@ -1148,7 +1200,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { @@ -1168,7 +1220,7 @@ "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { @@ -1176,11 +1228,11 @@ "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v0-shadow-reprojection.html" }, { @@ -1188,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "12.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1200,11 +1252,11 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "12.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "22.0", + "duration": "18.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1224,11 +1276,11 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { @@ -1276,11 +1328,11 @@ "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/CrawFishGanson.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/Debian.html" }, { @@ -1308,11 +1360,11 @@ "name": "blink_perf.svg/GearFlowers.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/HarveyRayner.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/HereGear.html" }, { @@ -1324,7 +1376,7 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "27.0", + "duration": "24.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -1340,7 +1392,7 @@ "name": "blink_perf.svg/SvgNestedUse.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/UnderTheSee.html" }, { @@ -1352,7 +1404,7 @@ "name": "blink_perf.svg/Worldcup.html" }, { - "duration": "33.0", + "duration": "34.0", "name": "dromaeo/http://dromaeo.com?dom-attr" }, { @@ -1368,11 +1420,11 @@ "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "3.0", + "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "172.0", + "duration": "173.0", "name": "jetstream/http://browserbench.org/JetStream/" }, { @@ -1380,607 +1432,607 @@ "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/24h_cold" }, { - "duration": "23.0", + "duration": "12.0", "name": "loading.desktop/24h_warm" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/AirBnB_cold" }, { - "duration": "36.0", + "duration": "23.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "42.0", + "duration": "24.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "24.0", + "duration": "13.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "40.0", + "duration": "23.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "15.0", + "duration": "7.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "30.0", + "duration": "17.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "23.0", + "duration": "11.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "23.0", + "duration": "14.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "25.0", + "duration": "13.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "33.0", + "duration": "21.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "34.0", + "duration": "17.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "21.0", + "duration": "10.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "18.0", + "duration": "9.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "27.0", + "duration": "16.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "23.0", + "duration": "11.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "18.0", + "duration": "9.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "22.0", + "duration": "12.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "15.0", + "duration": "8.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "16.0", + "duration": "9.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "16.0", + "duration": "9.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "19.0", + "duration": "11.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "25.0", + "duration": "15.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "20.0", + "duration": "10.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "24.0", + "duration": "12.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "26.0", + "duration": "13.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "18.0", + "duration": "9.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "23.0", + "duration": "14.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "25.0", + "duration": "12.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "28.0", + "duration": "13.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "53.0", + "duration": "20.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "18.0", + "duration": "9.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "21.0", + "duration": "11.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "20.0", + "duration": "10.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "21.0", + "duration": "10.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "21.0", + "duration": "12.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "29.0", + "duration": "18.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "22.0", + "duration": "12.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "27.0", + "duration": "15.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/REI_cold" }, { - "duration": "24.0", + "duration": "14.0", "name": "loading.desktop/REI_warm" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "26.0", + "duration": "15.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "34.0", + "duration": "21.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "23.0", + "duration": "16.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "33.0", + "duration": "23.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "24.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "24.0", + "duration": "13.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "34.0", + "duration": "19.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "23.0", + "duration": "12.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "32.0", + "duration": "17.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "33.0", + "duration": "15.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "47.0", + "duration": "22.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "27.0", + "duration": "13.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "38.0", + "duration": "19.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "17.0", + "duration": "9.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "29.0", + "duration": "17.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "27.0", + "duration": "14.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "37.0", + "duration": "22.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "16.0", + "duration": "8.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "19.0", + "duration": "10.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "29.0", + "duration": "14.0", "name": "loading.desktop/uol.com.br_cold" }, { - "duration": "44.0", + "duration": "22.0", "name": "loading.desktop/uol.com.br_warm" }, { - "duration": "18.0", + "duration": "10.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "23.0", + "duration": "13.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "15.0", + "duration": "7.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "18.0", + "duration": "9.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "18.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "17.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "21.0", + "duration": "7.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + }, + { + "duration": "13.0", "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "25.0", + "duration": "15.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "23.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "14.0", + "duration": "6.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "21.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd720_vp9.webm" }, { - "duration": "24.0", + "duration": "14.0", "name": "media.desktop/video.html?src=garden2_10s.mp4" }, { - "duration": "17.0", + "duration": "8.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "22.0", + "duration": "13.0", "name": "media.desktop/video.html?src=garden2_10s.webm" }, { - "duration": "15.0", + "duration": "7.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { - "duration": "16.0", + "duration": "8.0", "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { - "duration": "29.0", + "duration": "15.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" + }, + { + "duration": "8.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" + }, + { + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "29.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "13.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "32.0", + "duration": "22.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { - "duration": "33.0", + "duration": "22.0", "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "14.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.mp4&seek" }, { - "duration": "29.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "13.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "32.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "24.0", + "duration": "14.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "16.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "32.0", + "duration": "22.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "29.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio" }, { - "duration": "14.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "28.0", + "duration": "21.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "28.0", + "duration": "22.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "47.0", + "duration": "40.0", "name": "memory.desktop/WebWorker" }, { - "duration": "177.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "161.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "38.0", + "duration": "40.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "48.0", + "duration": "34.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "43.0", + "duration": "39.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "47.0", + "duration": "34.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "47.0", + "duration": "34.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "45.0", + "duration": "35.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "43.0", + "duration": "34.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "46.0", + "duration": "34.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "47.0", + "duration": "34.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "51.0", + "duration": "43.0", "name": "power.desktop/abcnews" }, { - "duration": "44.0", + "duration": "35.0", "name": "power.desktop/indiatimes" }, { - "duration": "49.0", + "duration": "35.0", "name": "power.desktop/instagram" }, { - "duration": "44.0", + "duration": "35.0", "name": "power.desktop/microsoft" }, { - "duration": "50.0", + "duration": "39.0", "name": "power.desktop/sina" }, { - "duration": "47.0", + "duration": "35.0", "name": "power.desktop/slideshare" }, { - "duration": "61.0", + "duration": "38.0", "name": "power.desktop/uol" }, { @@ -1996,11 +2048,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { @@ -2036,19 +2088,19 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "17.0", + "duration": "13.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { @@ -2060,7 +2112,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { @@ -2068,11 +2120,11 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "100.0", + "duration": "101.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" }, { @@ -2084,999 +2136,967 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "32.0", + "duration": "16.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "13.0", + "duration": "16.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "14.0", + "duration": "10.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "24.0", + "duration": "10.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "12.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "12.0", "name": "rendering.desktop/aquarium" }, { - "duration": "36.0", + "duration": "16.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "22.0", + "duration": "11.0", "name": "rendering.desktop/blob" }, { - "duration": "36.0", + "duration": "15.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "15.0", + "duration": "11.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "22.0", + "duration": "8.0", + "name": "rendering.desktop/blur_rotating_background" + }, + { + "duration": "10.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "13.0", + "duration": "10.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "27.0", + "duration": "10.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "35.0", + "duration": "13.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "7.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "6.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "15.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "6.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "15.0", + "duration": "5.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "15.0", + "duration": "5.0", "name": "rendering.desktop/cats_unscaled" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/cats_viewport_width" }, { - "duration": "27.0", + "duration": "16.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "21.0", + "duration": "12.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "22.0", + "duration": "12.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "14.0", + "duration": "12.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "26.0", + "duration": "16.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "23.0", + "duration": "11.0", "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/earth" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "13.0", + "duration": "15.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/effect_games" }, { - "duration": "25.0", + "duration": "9.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "13.0", + "duration": "11.0", "name": "rendering.desktop/espn_pinch_2018" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "14.0", + "duration": "10.0", "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "19.0", + "duration": "10.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/geo_apis" }, { - "duration": "22.0", + "duration": "8.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "53.0", + "duration": "21.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "13.0", + "duration": "11.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "18.0", + "duration": "7.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "15.0", + "duration": "10.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "34.0", + "duration": "13.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "15.0", + "duration": "10.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "26.0", + "duration": "10.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "15.0", + "duration": "8.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/hakim" }, { - "duration": "35.0", + "duration": "24.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "31.0", + "duration": "17.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "30.0", + "duration": "16.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "26.0", + "duration": "15.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "14.0", + "duration": "11.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/many_images" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/many_planets_deep" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "19.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "19.0", + "duration": "13.0", + "name": "rendering.desktop/microsoft_performance" + }, + { + "duration": "10.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/mix_10k" }, { - "duration": "21.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_difference" }, { - "duration": "22.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { - "duration": "30.0", + "duration": "16.0", "name": "rendering.desktop/new_tilings" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "55.0", + "duration": "16.0", "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/particles" }, { - "duration": "26.0", + "duration": "10.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/raf" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/repaint_google_search_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/runway" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "16.0", + "duration": "6.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/simple_text_page" }, { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/smash_cat" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "21.0", + "duration": "11.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "16.0", + "duration": "7.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "14.0", + "duration": "6.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "16.0", + "duration": "9.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "15.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "15.0", + "duration": "4.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "21.0", + "duration": "10.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "8.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "14.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" - }, - { - "duration": "14.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "13.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "14.0", + "duration": "4.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "20.0", + "duration": "10.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/transform_transitions" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/twitch_2018" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "29.0", + "duration": "13.0", "name": "rendering.desktop/twitter_2018" }, { - "duration": "14.0", + "duration": "10.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "24.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "25.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "12.0", + "duration": "10.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "29.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "16.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "22.0", + "duration": "8.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "15.0", + "duration": "10.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "22.0", + "duration": "11.0", "name": "rendering.desktop/yuv_decoding" }, { - "duration": "36.0", + "duration": "35.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { @@ -3084,1703 +3104,1607 @@ "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "88.0", + "duration": "63.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "67.0", + "duration": "61.0", "name": "speedometer2/Speedometer2" }, { - "duration": "86.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "55.0", + "duration": "39.0", "name": "system_health.common_desktop/browse:media:googleplaystore:2018" }, { - "duration": "133.0", + "duration": "73.0", "name": "system_health.common_desktop/browse:media:imgur" }, { - "duration": "72.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:media:pinterest" }, { - "duration": "99.0", + "duration": "85.0", "name": "system_health.common_desktop/browse:media:pinterest:2018" }, { - "duration": "119.0", - "name": "system_health.common_desktop/browse:media:tumblr" - }, - { - "duration": "74.0", + "duration": "56.0", "name": "system_health.common_desktop/browse:media:tumblr:2018" }, { - "duration": "84.0", + "duration": "59.0", "name": "system_health.common_desktop/browse:media:youtube" }, { - "duration": "84.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:media:youtube:2018" }, { - "duration": "104.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:news:cnn" }, { - "duration": "67.0", + "duration": "44.0", "name": "system_health.common_desktop/browse:news:cnn:2018" }, { - "duration": "60.0", + "duration": "44.0", "name": "system_health.common_desktop/browse:news:flipboard" }, { - "duration": "59.0", + "duration": "44.0", "name": "system_health.common_desktop/browse:news:flipboard:2018" }, { - "duration": "60.0", + "duration": "46.0", "name": "system_health.common_desktop/browse:news:hackernews" }, { - "duration": "78.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:news:hackernews:2018" }, { - "duration": "108.0", + "duration": "68.0", "name": "system_health.common_desktop/browse:news:nytimes" }, { - "duration": "96.0", + "duration": "68.0", "name": "system_health.common_desktop/browse:news:nytimes:2018" }, { - "duration": "84.0", + "duration": "59.0", "name": "system_health.common_desktop/browse:news:reddit" }, { - "duration": "81.0", + "duration": "47.0", "name": "system_health.common_desktop/browse:news:reddit:2018" }, { - "duration": "58.0", + "duration": "46.0", "name": "system_health.common_desktop/browse:search:google" }, { - "duration": "59.0", + "duration": "45.0", "name": "system_health.common_desktop/browse:search:google:2018" }, { - "duration": "43.0", + "duration": "33.0", "name": "system_health.common_desktop/browse:search:google_india" }, { - "duration": "43.0", + "duration": "31.0", "name": "system_health.common_desktop/browse:search:google_india:2018" }, { - "duration": "85.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "102.0", + "duration": "68.0", "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "106.0", + "duration": "66.0", "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "54.0", + "duration": "59.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "42.0", "name": "system_health.common_desktop/browse:social:twitter" }, { - "duration": "55.0", + "duration": "43.0", "name": "system_health.common_desktop/browse:social:twitter:2018" }, { - "duration": "82.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "89.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "82.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "77.0", + "duration": "51.0", "name": "system_health.common_desktop/browse:tools:earth" }, { - "duration": "63.0", + "duration": "47.0", "name": "system_health.common_desktop/browse:tools:maps" }, { - "duration": "34.0", + "duration": "22.0", "name": "system_health.common_desktop/browse_accessibility:media:youtube" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" }, { - "duration": "36.0", + "duration": "25.0", "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" }, { - "duration": "18.0", + "duration": "12.0", "name": "system_health.common_desktop/load:chrome:blank" }, { - "duration": "22.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "23.0", + "duration": "16.0", "name": "system_health.common_desktop/load:games:alphabetty:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:games:bubbles" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.common_desktop/load:games:lazors" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load:games:miniclip" }, { - "duration": "33.0", + "duration": "20.0", "name": "system_health.common_desktop/load:games:miniclip:2018" }, { - "duration": "30.0", + "duration": "19.0", "name": "system_health.common_desktop/load:games:spychase" }, { - "duration": "30.0", + "duration": "19.0", "name": "system_health.common_desktop/load:games:spychase:2018" }, { - "duration": "37.0", + "duration": "25.0", "name": "system_health.common_desktop/load:media:9gag" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:dailymotion" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:facebook_photos:2018" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:flickr:2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.common_desktop/load:media:google_images" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:google_images:2018" }, { - "duration": "29.0", + "duration": "17.0", "name": "system_health.common_desktop/load:media:imgur" }, { - "duration": "25.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:imgur:2018" }, { - "duration": "31.0", + "duration": "18.0", "name": "system_health.common_desktop/load:media:soundcloud" }, { - "duration": "28.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:soundcloud:2018" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:youtube" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:youtube:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_desktop/load:news:bbc" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:bbc:2018" }, { - "duration": "31.0", + "duration": "20.0", "name": "system_health.common_desktop/load:news:cnn" }, { - "duration": "28.0", + "duration": "18.0", "name": "system_health.common_desktop/load:news:cnn:2018" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:flipboard" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.common_desktop/load:news:hackernews" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.common_desktop/load:news:hackernews:2018" }, { - "duration": "28.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:nytimes" }, { - "duration": "29.0", + "duration": "19.0", "name": "system_health.common_desktop/load:news:nytimes:2018" }, { - "duration": "29.0", + "duration": "19.0", "name": "system_health.common_desktop/load:news:qq" }, { - "duration": "29.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:qq:2018" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:reddit" }, { - "duration": "28.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:reddit:2018" }, { - "duration": "23.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:wikipedia" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:wikipedia:2018" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:amazon" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:amazon:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:baidu" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:baidu:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:ebay" }, { - "duration": "25.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:ebay:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:flipkart:2018" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:google" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:google:2018" }, { - "duration": "24.0", + "duration": "38.0", "name": "system_health.common_desktop/load:search:taobao" }, { - "duration": "25.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:taobao:2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yahoo" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yahoo:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yandex" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:yandex:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_desktop/load:social:instagram" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:social:instagram:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.common_desktop/load:social:pinterest" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:social:vk" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:social:vk:2018" }, { - "duration": "42.0", + "duration": "20.0", "name": "system_health.common_desktop/load:tools:docs" }, { - "duration": "34.0", + "duration": "19.0", "name": "system_health.common_desktop/load:tools:drive" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:tools:dropbox" }, { - "duration": "28.0", + "duration": "16.0", "name": "system_health.common_desktop/load:tools:gmail" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:tools:stackoverflow" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.common_desktop/load:tools:stackoverflow:2018" }, { - "duration": "32.0", + "duration": "19.0", "name": "system_health.common_desktop/load:tools:weather" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load_accessibility:media:wikipedia" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load_accessibility:shopping:amazon" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" }, { - "duration": "141.0", + "duration": "118.0", "name": "system_health.common_desktop/long_running:tools:gmail-background" }, { - "duration": "555.0", - "name": "system_health.common_desktop/multitab:misc:typical24" - }, - { - "duration": "310.0", - "name": "system_health.common_desktop/multitab:misc:typical24:2018" - }, - { - "duration": "59.0", + "duration": "41.0", "name": "system_health.common_desktop/play:media:google_play_music" }, { - "duration": "59.0", + "duration": "43.0", "name": "system_health.common_desktop/play:media:soundcloud" }, { - "duration": "53.0", + "duration": "41.0", "name": "system_health.common_desktop/play:media:soundcloud:2018" }, { - "duration": "43.0", + "duration": "36.0", "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" }, { - "duration": "70.0", + "duration": "63.0", "name": "system_health.memory_desktop/browse:media:imgur" }, { - "duration": "62.0", + "duration": "55.0", "name": "system_health.memory_desktop/browse:media:pinterest" }, { - "duration": "88.0", + "duration": "81.0", "name": "system_health.memory_desktop/browse:media:pinterest:2018" }, { - "duration": "59.0", + "duration": "52.0", "name": "system_health.memory_desktop/browse:media:tumblr:2018" }, { - "duration": "61.0", + "duration": "53.0", "name": "system_health.memory_desktop/browse:media:youtube" }, { - "duration": "64.0", + "duration": "57.0", "name": "system_health.memory_desktop/browse:media:youtube:2018" }, { - "duration": "56.0", + "duration": "57.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "48.0", "name": "system_health.memory_desktop/browse:news:cnn" }, { - "duration": "43.0", + "duration": "37.0", "name": "system_health.memory_desktop/browse:news:cnn:2018" }, { - "duration": "46.0", + "duration": "40.0", "name": "system_health.memory_desktop/browse:news:flipboard" }, { - "duration": "45.0", + "duration": "40.0", "name": "system_health.memory_desktop/browse:news:flipboard:2018" }, { - "duration": "58.0", + "duration": "52.0", "name": "system_health.memory_desktop/browse:news:hackernews:2018" }, { - "duration": "61.0", + "duration": "60.0", "name": "system_health.memory_desktop/browse:news:nytimes" }, { - "duration": "63.0", + "duration": "59.0", "name": "system_health.memory_desktop/browse:news:nytimes:2018" }, { - "duration": "57.0", + "duration": "51.0", "name": "system_health.memory_desktop/browse:news:reddit" }, { - "duration": "47.0", + "duration": "40.0", "name": "system_health.memory_desktop/browse:news:reddit:2018" }, { - "duration": "48.0", + "duration": "42.0", "name": "system_health.memory_desktop/browse:search:google" }, { - "duration": "48.0", + "duration": "41.0", "name": "system_health.memory_desktop/browse:search:google:2018" }, { - "duration": "38.0", + "duration": "31.0", "name": "system_health.memory_desktop/browse:search:google_india" }, { - "duration": "35.0", + "duration": "28.0", "name": "system_health.memory_desktop/browse:search:google_india:2018" }, { - "duration": "63.0", + "duration": "56.0", "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "67.0", + "duration": "61.0", "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "65.0", + "duration": "57.0", "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "45.0", + "duration": "50.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "39.0", "name": "system_health.memory_desktop/browse:social:twitter" }, { - "duration": "45.0", + "duration": "40.0", "name": "system_health.memory_desktop/browse:social:twitter:2018" }, { - "duration": "63.0", + "duration": "56.0", "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "63.0", + "duration": "56.0", "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "60.0", + "duration": "54.0", "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "56.0", + "duration": "44.0", "name": "system_health.memory_desktop/browse:tools:earth" }, { - "duration": "49.0", + "duration": "43.0", "name": "system_health.memory_desktop/browse:tools:maps" }, { - "duration": "26.0", + "duration": "19.0", "name": "system_health.memory_desktop/browse_accessibility:media:youtube" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" }, { - "duration": "29.0", + "duration": "22.0", "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" }, { - "duration": "16.0", + "duration": "10.0", "name": "system_health.memory_desktop/load:chrome:blank" }, { - "duration": "19.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:games:alphabetty:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:games:bubbles" }, { - "duration": "19.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:games:lazors" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:games:miniclip" }, { - "duration": "25.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:miniclip:2018" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:spychase" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:spychase:2018" }, { - "duration": "29.0", + "duration": "22.0", "name": "system_health.memory_desktop/load:media:9gag" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:dailymotion" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:facebook_photos:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:flickr:2018" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:media:google_images" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:google_images:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:imgur" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:imgur:2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:soundcloud" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:soundcloud:2018" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:youtube" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:youtube:2018" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:bbc" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:bbc:2018" }, { - "duration": "24.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:news:cnn" }, { - "duration": "22.0", + "duration": "16.0", "name": "system_health.memory_desktop/load:news:cnn:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:flipboard" }, { - "duration": "18.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:hackernews" }, { - "duration": "18.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:hackernews:2018" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:nytimes" }, { - "duration": "23.0", + "duration": "16.0", "name": "system_health.memory_desktop/load:news:nytimes:2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:qq" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:news:qq:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:reddit" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:reddit:2018" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:wikipedia" }, { - "duration": "19.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:wikipedia:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:amazon" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:amazon:2018" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:baidu" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:baidu:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:ebay" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:ebay:2018" }, { - "duration": "20.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:search:flipkart:2018" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:google" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:google:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:taobao" }, { - "duration": "21.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:search:taobao:2018" }, { - "duration": "19.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:yahoo" }, { - "duration": "19.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:yahoo:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:yandex" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:yandex:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:instagram" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:instagram:2018" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:pinterest" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:social:vk" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:vk:2018" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:tools:docs" }, { - "duration": "22.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:tools:drive" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:dropbox" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:tools:gmail" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:stackoverflow" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" }, { - "duration": "24.0", + "duration": "16.0", "name": "system_health.memory_desktop/load:tools:weather" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" }, { - "duration": "19.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" }, { - "duration": "20.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" }, { - "duration": "20.0", + "duration": "14.0", "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" }, { - "duration": "150.0", - "name": "system_health.memory_desktop/long_running:tools:gmail-background" - }, - { - "duration": "147.0", + "duration": "124.0", "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" }, { - "duration": "136.0", - "name": "system_health.memory_desktop/multitab:misc:typical24" - }, - { - "duration": "98.0", - "name": "system_health.memory_desktop/multitab:misc:typical24:2018" - }, - { - "duration": "45.0", + "duration": "38.0", "name": "system_health.memory_desktop/play:media:soundcloud:2018" }, { - "duration": "14.0", + "duration": "7.0", "name": "tracing.tracing_with_background_memory_infra/Facebook" }, { - "duration": "15.0", + "duration": "6.0", "name": "tracing.tracing_with_background_memory_infra/Wikipedia" }, { - "duration": "12.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "13.0", + "duration": "6.0", "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" }, { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "13.0", + "duration": "3.0", "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" }, { - "duration": "13.0", + "duration": "10.0", "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" }, { - "duration": "15.0", + "duration": "5.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" }, { - "duration": "14.0", + "duration": "8.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { - "duration": "128.0", + "duration": "64.0", "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" }, { - "duration": "77.0", + "duration": "40.0", "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" }, { - "duration": "590.0", + "duration": "69.0", "name": "v8.browsing_desktop-future/browse:media:imgur" }, { - "duration": "88.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" - }, - { - "duration": "117.0", + "duration": "86.0", "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" }, { - "duration": "166.0", - "name": "v8.browsing_desktop-future/browse:media:tumblr" - }, - { - "duration": "100.0", + "duration": "59.0", "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" }, { - "duration": "124.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" - }, - { - "duration": "122.0", + "duration": "63.0", "name": "v8.browsing_desktop-future/browse:media:youtube:2018" }, { - "duration": "438.0", - "name": "v8.browsing_desktop-future/browse:news:cnn" + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" }, { - "duration": "100.0", + "duration": "45.0", "name": "v8.browsing_desktop-future/browse:news:cnn:2018" }, { - "duration": "86.0", + "duration": "45.0", "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" }, { - "duration": "99.0", + "duration": "60.0", "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" }, { - "duration": "144.0", + "duration": "68.0", "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" }, { - "duration": "140.0", + "duration": "47.0", "name": "v8.browsing_desktop-future/browse:news:reddit:2018" }, { - "duration": "72.0", - "name": "v8.browsing_desktop-future/browse:search:google" - }, - { - "duration": "75.0", + "duration": "46.0", "name": "v8.browsing_desktop-future/browse:search:google:2018" }, { - "duration": "51.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" - }, - { - "duration": "55.0", + "duration": "32.0", "name": "v8.browsing_desktop-future/browse:search:google_india:2018" }, { - "duration": "134.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "528.0", + "duration": "68.0", "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "495.0", + "duration": "65.0", "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" }, { - "duration": "68.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "71.0", + "duration": "43.0", "name": "v8.browsing_desktop-future/browse:social:twitter:2018" }, { - "duration": "132.0", + "duration": "63.0", "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "164.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "147.0", + "duration": "61.0", "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "123.0", + "duration": "52.0", "name": "v8.browsing_desktop-future/browse:tools:earth" }, { - "duration": "89.0", + "duration": "48.0", "name": "v8.browsing_desktop-future/browse:tools:maps" }, { - "duration": "126.0", + "duration": "64.0", "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "77.0", + "duration": "40.0", "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" }, { - "duration": "591.0", - "name": "v8.browsing_desktop/browse:media:imgur" - }, - { - "duration": "87.0", + "duration": "60.0", "name": "v8.browsing_desktop/browse:media:pinterest" }, { - "duration": "117.0", - "name": "v8.browsing_desktop/browse:media:pinterest:2018" - }, - { - "duration": "165.0", - "name": "v8.browsing_desktop/browse:media:tumblr" - }, - { - "duration": "99.0", + "duration": "59.0", "name": "v8.browsing_desktop/browse:media:tumblr:2018" }, { - "duration": "124.0", + "duration": "61.0", "name": "v8.browsing_desktop/browse:media:youtube" }, { - "duration": "121.0", - "name": "v8.browsing_desktop/browse:media:youtube:2018" + "duration": "62.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" }, { - "duration": "452.0", - "name": "v8.browsing_desktop/browse:news:cnn" - }, - { - "duration": "99.0", + "duration": "46.0", "name": "v8.browsing_desktop/browse:news:cnn:2018" }, { - "duration": "85.0", + "duration": "46.0", "name": "v8.browsing_desktop/browse:news:flipboard:2018" }, { - "duration": "96.0", + "duration": "59.0", "name": "v8.browsing_desktop/browse:news:hackernews:2018" }, { - "duration": "426.0", - "name": "v8.browsing_desktop/browse:news:nytimes" - }, - { - "duration": "142.0", - "name": "v8.browsing_desktop/browse:news:nytimes:2018" - }, - { - "duration": "110.0", + "duration": "62.0", "name": "v8.browsing_desktop/browse:news:reddit" }, { - "duration": "140.0", - "name": "v8.browsing_desktop/browse:news:reddit:2018" - }, - { - "duration": "70.0", + "duration": "46.0", "name": "v8.browsing_desktop/browse:search:google" }, { - "duration": "73.0", + "duration": "45.0", "name": "v8.browsing_desktop/browse:search:google:2018" }, { - "duration": "50.0", + "duration": "34.0", "name": "v8.browsing_desktop/browse:search:google_india" }, { - "duration": "55.0", + "duration": "32.0", "name": "v8.browsing_desktop/browse:search:google_india:2018" }, { - "duration": "132.0", + "duration": "64.0", "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "515.0", - "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" - }, - { - "duration": "499.0", - "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" - }, - { - "duration": "68.0", + "duration": "43.0", "name": "v8.browsing_desktop/browse:social:twitter" }, { - "duration": "71.0", + "duration": "43.0", "name": "v8.browsing_desktop/browse:social:twitter:2018" }, { - "duration": "131.0", - "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" - }, - { - "duration": "162.0", + "duration": "64.0", "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "146.0", + "duration": "61.0", "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "125.0", + "duration": "52.0", "name": "v8.browsing_desktop/browse:tools:earth" }, { - "duration": "88.0", + "duration": "48.0", "name": "v8.browsing_desktop/browse:tools:maps" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" }, { - "duration": "41.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" }, { - "duration": "40.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" }, { - "duration": "31.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" }, { - "duration": "36.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" }, { - "duration": "34.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" }, { - "duration": "34.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" }, { - "duration": "34.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" }, { - "duration": "45.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" }, { - "duration": "77.0", + "duration": "53.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" }, { - "duration": "60.0", + "duration": "42.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" }, { - "duration": "37.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" }, { - "duration": "51.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" }, { - "duration": "44.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" }, { - "duration": "32.0", + "duration": "24.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": "37.0", + "duration": "29.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": "34.0", + "duration": "28.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": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" }, { - "duration": "37.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" }, { - "duration": "42.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" }, { - "duration": "38.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" }, { - "duration": "40.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" }, { - "duration": "33.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://weibo.com_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://weibo.com_hot" }, { - "duration": "40.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://weibo.com_warm" }, { - "duration": "33.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" }, { - "duration": "34.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" }, { - "duration": "34.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" }, { - "duration": "33.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" }, { - "duration": "46.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" }, { - "duration": "41.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" }, { - "duration": "45.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" }, { - "duration": "41.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" }, { - "duration": "40.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" }, { - "duration": "72.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" }, { - "duration": "82.0", + "duration": "38.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" }, { - "duration": "75.0", + "duration": "36.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" }, { - "duration": "33.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" }, { - "duration": "41.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" }, { - "duration": "39.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" }, { - "duration": "33.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" }, { - "duration": "39.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" }, { - "duration": "36.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" }, { - "duration": "32.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" }, { - "duration": "35.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" }, { - "duration": "49.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" }, { - "duration": "66.0", + "duration": "36.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" }, { - "duration": "56.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" }, { - "duration": "31.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" }, { - "duration": "35.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" }, { - "duration": "33.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" }, { - "duration": "35.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" }, { - "duration": "45.0", + "duration": "34.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" }, { - "duration": "40.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" }, { - "duration": "41.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" }, { - "duration": "34.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" }, { - "duration": "33.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" }, { - "duration": "40.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" }, { - "duration": "37.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" }, { - "duration": "39.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" }, { - "duration": "47.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" }, { - "duration": "43.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" }, { - "duration": "46.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" }, { - "duration": "42.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "wasm/WasmSpaceBuggy" }, { - "duration": "27.0", + "duration": "17.0", "name": "wasm/WasmTanks" }, { - "duration": "52.0", + "duration": "30.0", "name": "wasm/WasmZenGarden" }, { - "duration": "44.0", + "duration": "21.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "24.0", + "duration": "13.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "32.0", + "duration": "23.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "32.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "32.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "20.0", + "duration": "13.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "71.0", + "duration": "31.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "79.0", + "duration": "36.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json b/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json index 785fd24..0997d55a 100644 --- a/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win_7_perf_timing.json
@@ -1,10 +1,14 @@ [ { - "duration": "23.0", + "duration": "24.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/append-child.html" }, { @@ -32,11 +36,11 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { @@ -68,11 +72,11 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "24.0", + "duration": "14.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -96,7 +100,7 @@ "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { @@ -108,11 +112,11 @@ "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/set-attribute.html" }, { @@ -160,11 +164,11 @@ "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { @@ -172,7 +176,7 @@ "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { @@ -184,15 +188,15 @@ "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { @@ -400,7 +404,7 @@ "name": "blink_perf.canvas/upload-webgl-to-texture_RAF.html?RAF" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -420,15 +424,15 @@ "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { @@ -436,11 +440,11 @@ "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { @@ -448,19 +452,19 @@ "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -468,11 +472,11 @@ "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { @@ -488,7 +492,7 @@ "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -512,7 +516,7 @@ "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/FocusUpdate.html" }, { @@ -520,11 +524,11 @@ "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -540,11 +544,11 @@ "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" }, { - "duration": "17.0", + "duration": "15.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -572,35 +576,51 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "blink_perf.events/EventsDispatching.html" }, { "duration": "9.0", - "name": "blink_perf.events/EventsDispatchingInDeeplyNestedShadowTrees.html" + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV0ShadowTrees.html" }, { - "duration": "16.0", - "name": "blink_perf.events/EventsDispatchingInShadowTrees.html" + "duration": "8.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "11.0", + "name": "blink_perf.events/EventsDispatchingInV0ShadowTrees.html" + }, + { + "duration": "11.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { "duration": "11.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "21.0", + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-all-events.html" + }, + { + "duration": "8.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "23.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-jpeg.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { @@ -608,7 +628,7 @@ "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { @@ -616,7 +636,7 @@ "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { @@ -676,6 +696,18 @@ "name": "blink_perf.layout/character_fallback_aat.html" }, { + "duration": "9.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { "duration": "8.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, @@ -688,7 +720,7 @@ "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { @@ -696,7 +728,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { @@ -712,15 +744,15 @@ "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -736,7 +768,7 @@ "name": "blink_perf.layout/floats_20_100_nested.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/floats_2_100.html" }, { @@ -744,11 +776,11 @@ "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -760,11 +792,15 @@ "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { + "duration": "11.0", + "name": "blink_perf.layout/large-grid.html" + }, + { "duration": "8.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { @@ -772,15 +808,15 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "48.0", + "duration": "52.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -792,6 +828,14 @@ "name": "blink_perf.layout/layers_overlap_3d.html" }, { + "duration": "3.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { "duration": "9.0", "name": "blink_perf.layout/line-layout-line-height.html" }, @@ -804,7 +848,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -836,7 +880,7 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { @@ -848,7 +892,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { @@ -868,7 +912,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "50.0", + "duration": "39.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -876,15 +920,15 @@ "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { @@ -912,7 +956,7 @@ "name": "blink_perf.paint/appending-text.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.paint/color-changes.html" }, { @@ -924,11 +968,15 @@ "name": "blink_perf.paint/complex-iframe-filtered.html" }, { - "duration": "14.0", + "duration": "28.0", + "name": "blink_perf.paint/contain-update-layer-tree.html" + }, + { + "duration": "13.0", "name": "blink_perf.paint/containment-resize.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { @@ -944,7 +992,7 @@ "name": "blink_perf.paint/large-table-background-change-with-zero-width-collapsed-borders.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/large-table-collapsed-border-change-with-backgrounds.html" }, { @@ -952,7 +1000,7 @@ "name": "blink_perf.paint/large-table-collapsed-border-change-with-text.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { @@ -960,15 +1008,19 @@ "name": "blink_perf.paint/large-table-repaint.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.paint/move-text-with-mask.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "15.0", + "duration": "17.0", + "name": "blink_perf.paint/select-all-words.html" + }, + { + "duration": "16.0", "name": "blink_perf.paint/transform-changes.html" }, { @@ -976,19 +1028,19 @@ "name": "blink_perf.parser/css-parser-yui.html" }, { - "duration": "9.0", + "duration": "5.0", "name": "blink_perf.parser/html-parser-threaded.html" }, { - "duration": "10.0", + "duration": "6.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "30.0", + "duration": "26.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -1012,7 +1064,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -1028,15 +1080,15 @@ "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" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1068,7 +1120,7 @@ "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.parser/simple-url.html" }, { @@ -1080,7 +1132,7 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1120,7 +1172,7 @@ "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { @@ -1168,7 +1220,7 @@ "name": "blink_perf.shadow_dom/v0-changing-select-without-shadow-dom.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v0-content-reprojection.html" }, { @@ -1176,7 +1228,7 @@ "name": "blink_perf.shadow_dom/v0-large-distribution-without-layout.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v0-multiple-insertion-points.html" }, { @@ -1188,7 +1240,7 @@ "name": "blink_perf.shadow_dom/v0-small-distribution-with-layout.html" }, { - "duration": "13.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { @@ -1196,15 +1248,15 @@ "name": "blink_perf.shadow_dom/v1-distribution.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "13.0", + "duration": "6.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "25.0", + "duration": "18.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1212,7 +1264,7 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { @@ -1220,7 +1272,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { @@ -1228,7 +1280,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { @@ -1260,7 +1312,7 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { @@ -1276,7 +1328,7 @@ "name": "blink_perf.svg/Cowboy.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/CrawFishGanson.html" }, { @@ -1288,11 +1340,11 @@ "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/FlowerFromMyGarden.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/FoodLeifLodahl.html" }, { @@ -1300,7 +1352,7 @@ "name": "blink_perf.svg/France.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/FrancoBolloGnomeEzechi.html" }, { @@ -1320,11 +1372,11 @@ "name": "blink_perf.svg/MtSaintHelens.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.svg/Samurai.html" }, { - "duration": "32.0", + "duration": "38.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { @@ -1340,7 +1392,7 @@ "name": "blink_perf.svg/SvgNestedUse.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.svg/UnderTheSee.html" }, { @@ -1360,15 +1412,15 @@ "name": "dromaeo/http://dromaeo.com?dom-modify" }, { - "duration": "49.0", + "duration": "48.0", "name": "dromaeo/http://dromaeo.com?dom-query" }, { - "duration": "30.0", + "duration": "29.0", "name": "dromaeo/http://dromaeo.com?dom-traverse" }, { - "duration": "3.0", + "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { @@ -1380,607 +1432,607 @@ "name": "kraken/http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html" }, { - "duration": "21.0", + "duration": "9.0", "name": "loading.desktop/24h_cold" }, { - "duration": "27.0", + "duration": "13.0", "name": "loading.desktop/24h_warm" }, { - "duration": "27.0", + "duration": "14.0", "name": "loading.desktop/AirBnB_cold" }, { - "duration": "40.0", + "duration": "23.0", "name": "loading.desktop/AirBnB_warm" }, { - "duration": "18.0", + "duration": "7.0", "name": "loading.desktop/Aljayyash_cold" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/Aljayyash_warm" }, { - "duration": "45.0", + "duration": "24.0", "name": "loading.desktop/AllRecipes_warm" }, { - "duration": "31.0", + "duration": "15.0", "name": "loading.desktop/ArsTechnica_cold" }, { - "duration": "48.0", + "duration": "28.0", "name": "loading.desktop/ArsTechnica_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/Baidu_cold" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/Baidu_warm" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/Bhaskar_cold" }, { - "duration": "35.0", + "duration": "17.0", "name": "loading.desktop/Bhaskar_warm" }, { - "duration": "21.0", + "duration": "10.0", "name": "loading.desktop/Chosun_cold" }, { - "duration": "26.0", + "duration": "12.0", "name": "loading.desktop/Chosun_warm" }, { - "duration": "21.0", + "duration": "10.0", "name": "loading.desktop/Colorado.edu_cold" }, { - "duration": "26.0", + "duration": "14.0", "name": "loading.desktop/Colorado.edu_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Danawa_cold" }, { - "duration": "25.0", + "duration": "11.0", "name": "loading.desktop/Danawa_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Daum_cold" }, { - "duration": "24.0", + "duration": "12.0", "name": "loading.desktop/Daum_warm" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/Donga_cold" }, { - "duration": "28.0", + "duration": "14.0", "name": "loading.desktop/Donga_warm" }, { - "duration": "26.0", + "duration": "14.0", "name": "loading.desktop/Economist_cold" }, { - "duration": "37.0", + "duration": "22.0", "name": "loading.desktop/Economist_warm" }, { - "duration": "38.0", + "duration": "18.0", "name": "loading.desktop/Elmundo_cold" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/FC2Blog_cold" }, { - "duration": "25.0", + "duration": "11.0", "name": "loading.desktop/FC2Blog_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/FIFA_cold" }, { - "duration": "24.0", + "duration": "11.0", "name": "loading.desktop/FIFA_warm" }, { - "duration": "32.0", + "duration": "20.0", "name": "loading.desktop/FarsNews_cold" }, { - "duration": "25.0", + "duration": "12.0", "name": "loading.desktop/FarsNews_warm" }, { - "duration": "21.0", + "duration": "9.0", "name": "loading.desktop/Flickr_cold" }, { - "duration": "26.0", + "duration": "13.0", "name": "loading.desktop/Flickr_warm" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/FlipKart_cold" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/FlipKart_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "loading.desktop/Free.fr_cold" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Free.fr_warm" }, { - "duration": "17.0", + "duration": "7.0", "name": "loading.desktop/HTML5Rocks_cold" }, { - "duration": "18.0", + "duration": "9.0", "name": "loading.desktop/HTML5Rocks_warm" }, { - "duration": "18.0", + "duration": "8.0", "name": "loading.desktop/Haraj_cold" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Haraj_warm" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/HatenaBookmark_cold" }, { - "duration": "28.0", + "duration": "15.0", "name": "loading.desktop/HatenaBookmark_warm" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/IGN_cold" }, { - "duration": "28.0", + "duration": "13.0", "name": "loading.desktop/IGN_warm" }, { - "duration": "23.0", + "duration": "9.0", "name": "loading.desktop/IMDB_cold" }, { - "duration": "31.0", + "duration": "14.0", "name": "loading.desktop/IMDB_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/IndiaTimes_cold" }, { - "duration": "27.0", + "duration": "14.0", "name": "loading.desktop/IndiaTimes_warm" }, { - "duration": "22.0", + "duration": "9.0", "name": "loading.desktop/Kakaku_cold" }, { - "duration": "27.0", + "duration": "13.0", "name": "loading.desktop/Kakaku_warm" }, { - "duration": "32.0", + "duration": "13.0", "name": "loading.desktop/Kenh14_cold" }, { - "duration": "48.0", + "duration": "22.0", "name": "loading.desktop/Kenh14_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Mercadolivre_cold" }, { - "duration": "24.0", + "duration": "11.0", "name": "loading.desktop/Mercadolivre_warm" }, { - "duration": "20.0", + "duration": "9.0", "name": "loading.desktop/Naver_cold" }, { - "duration": "23.0", + "duration": "10.0", "name": "loading.desktop/Naver_warm" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Pantip_cold" }, { - "duration": "24.0", + "duration": "11.0", "name": "loading.desktop/Pantip_warm" }, { - "duration": "24.0", + "duration": "12.0", "name": "loading.desktop/PremierLeague_cold" }, { - "duration": "33.0", + "duration": "18.0", "name": "loading.desktop/PremierLeague_warm" }, { - "duration": "24.0", + "duration": "11.0", "name": "loading.desktop/QQ_cold" }, { - "duration": "30.0", + "duration": "15.0", "name": "loading.desktop/QQ_warm" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/REI_cold" }, { - "duration": "28.0", + "duration": "15.0", "name": "loading.desktop/REI_warm" }, { - "duration": "20.0", + "duration": "8.0", "name": "loading.desktop/Ruten_cold" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/Ruten_warm" }, { - "duration": "30.0", + "duration": "16.0", "name": "loading.desktop/Sina_cold" }, { - "duration": "37.0", + "duration": "23.0", "name": "loading.desktop/Sina_warm" }, { - "duration": "24.0", + "duration": "12.0", "name": "loading.desktop/Taobao_cold" }, { - "duration": "31.0", + "duration": "18.0", "name": "loading.desktop/Taobao_warm" }, { - "duration": "23.0", - "name": "loading.desktop/TheOnion_cold" - }, - { - "duration": "25.0", + "duration": "13.0", "name": "loading.desktop/TheVerge_cold" }, { - "duration": "33.0", + "duration": "18.0", "name": "loading.desktop/TheVerge_warm" }, { - "duration": "27.0", + "duration": "12.0", "name": "loading.desktop/TicketMaster_cold" }, { - "duration": "46.0", + "duration": "18.0", "name": "loading.desktop/TicketMaster_warm" }, { - "duration": "35.0", + "duration": "15.0", "name": "loading.desktop/Vietnamnet_cold" }, { - "duration": "49.0", + "duration": "23.0", "name": "loading.desktop/Vietnamnet_warm" }, { - "duration": "31.0", + "duration": "13.0", "name": "loading.desktop/Vnexpress_cold" }, { - "duration": "43.0", + "duration": "20.0", "name": "loading.desktop/Vnexpress_warm" }, { - "duration": "17.0", + "duration": "8.0", "name": "loading.desktop/Yandex_cold" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/Yandex_warm" }, { - "duration": "25.0", + "duration": "11.0", "name": "loading.desktop/amazon.co.jp_cold" }, { - "duration": "33.0", + "duration": "17.0", "name": "loading.desktop/amazon.co.jp_warm" }, { - "duration": "19.0", + "duration": "9.0", "name": "loading.desktop/ja.wikipedia_cold" }, { - "duration": "22.0", + "duration": "11.0", "name": "loading.desktop/ja.wikipedia_warm" }, { - "duration": "30.0", + "duration": "15.0", "name": "loading.desktop/money.cnn_cold" }, { - "duration": "42.0", + "duration": "22.0", "name": "loading.desktop/money.cnn_warm" }, { - "duration": "19.0", + "duration": "8.0", "name": "loading.desktop/ru.wikipedia_cold" }, { - "duration": "22.0", + "duration": "10.0", "name": "loading.desktop/ru.wikipedia_warm" }, { - "duration": "33.0", + "duration": "14.0", "name": "loading.desktop/uol.com.br_cold" }, { - "duration": "51.0", + "duration": "22.0", "name": "loading.desktop/uol.com.br_warm" }, { - "duration": "21.0", + "duration": "9.0", "name": "loading.desktop/yahoo.co.jp_cold" }, { - "duration": "25.0", + "duration": "13.0", "name": "loading.desktop/yahoo.co.jp_warm" }, { - "duration": "18.0", + "duration": "6.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "19.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "19.0", + "duration": "8.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4&waitForPageLoaded=true" }, { - "duration": "18.0", + "duration": "7.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "23.0", + "duration": "7.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + }, + { + "duration": "13.0", "name": "media.desktop/video.html?src=crowd.ogg&type=audio" }, { - "duration": "26.0", + "duration": "14.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "26.0", + "duration": "14.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "24.0", + "duration": "14.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "17.0", + "duration": "7.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm&seek" }, { - "duration": "24.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd720_vp9.webm" }, { - "duration": "26.0", + "duration": "15.0", "name": "media.desktop/video.html?src=garden2_10s.mp4" }, { - "duration": "19.0", + "duration": "7.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "25.0", + "duration": "14.0", "name": "media.desktop/video.html?src=garden2_10s.webm" }, { - "duration": "16.0", + "duration": "7.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { - "duration": "19.0", + "duration": "8.0", "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { - "duration": "32.0", + "duration": "15.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4" + }, + { + "duration": "7.0", + "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" + }, + { + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "31.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "16.0", + "duration": "5.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "33.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { - "duration": "35.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "18.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.mp4&seek" }, { - "duration": "32.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "16.0", + "duration": "6.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "34.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "27.0", + "duration": "14.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "18.0", + "duration": "9.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&seek" }, { - "duration": "34.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "32.0", + "duration": "21.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio" }, { - "duration": "15.0", + "duration": "7.0", "name": "media.desktop/video.html?src=tulip2.wav&type=audio&seek" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "29.0", + "duration": "21.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "30.0", + "duration": "22.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "30.0", + "duration": "21.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "53.0", + "duration": "44.0", "name": "memory.desktop/WebWorker" }, { - "duration": "184.0", - "name": "memory.long_running_idle_gmail_background_tbmv2/https://mail.google.com/mail/" - }, - { - "duration": "168.0", - "name": "memory.long_running_idle_gmail_tbmv2/https://mail.google.com/mail/" - }, - { "duration": "42.0", "name": "octane/http://chromium.github.io/octane/index.html?auto=1" }, { - "duration": "52.0", + "duration": "35.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "46.0", + "duration": "34.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "49.0", + "duration": "34.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "51.0", + "duration": "35.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "47.0", + "duration": "35.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "46.0", + "duration": "34.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "49.0", + "duration": "43.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "51.0", + "duration": "35.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "52.0", + "duration": "45.0", "name": "power.desktop/abcnews" }, { - "duration": "46.0", + "duration": "35.0", "name": "power.desktop/indiatimes" }, { - "duration": "52.0", + "duration": "36.0", "name": "power.desktop/instagram" }, { - "duration": "47.0", + "duration": "35.0", "name": "power.desktop/microsoft" }, { - "duration": "51.0", + "duration": "39.0", "name": "power.desktop/sina" }, { - "duration": "50.0", + "duration": "36.0", "name": "power.desktop/slideshare" }, { - "duration": "64.0", + "duration": "38.0", "name": "power.desktop/uol" }, { @@ -1988,11 +2040,11 @@ "name": "rasterize_and_record_micro.partial_invalidation/800_relpos_divs.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" }, { @@ -2000,7 +2052,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" }, { @@ -2040,15 +2092,15 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" }, { - "duration": "18.0", + "duration": "14.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { @@ -2060,7 +2112,7 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { @@ -2068,91 +2120,99 @@ "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "100.0", + "duration": "101.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" }, { - "duration": "87.0", + "duration": "88.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" }, { - "duration": "39.0", + "duration": "18.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "38.0", + "duration": "14.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "14.0", + "duration": "12.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "12.0", - "name": "rendering.desktop/aquarium" + "duration": "13.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "13.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" }, { "duration": "14.0", + "name": "rendering.desktop/aquarium" + }, + { + "duration": "15.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "31.0", + "duration": "14.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "34.0", + "duration": "14.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "26.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "32.0", + "duration": "14.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "25.0", + "duration": "14.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "32.0", + "duration": "15.0", "name": "rendering.desktop/balls_svg_animations" }, { @@ -2160,463 +2220,455 @@ "name": "rendering.desktop/blob" }, { - "duration": "41.0", + "duration": "16.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "17.0", + "duration": "11.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "26.0", + "duration": "12.0", + "name": "rendering.desktop/blur_rotating_background" + }, + { + "duration": "11.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "15.0", + "duration": "10.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "19.0", + "duration": "9.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "18.0", + "duration": "8.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "26.0", + "duration": "10.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "12.0", + "duration": "14.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "25.0", + "duration": "11.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "22.0", - "name": "rendering.desktop/canvas_15000_pixels_per_second" - }, - { - "duration": "20.0", + "duration": "7.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/canvas_30000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "6.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "17.0", - "name": "rendering.desktop/canvas_50000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "6.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "17.0", + "duration": "6.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "16.0", + "duration": "6.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "23.0", + "duration": "8.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "20.0", + "duration": "8.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "18.0", + "duration": "9.0", "name": "rendering.desktop/cats_unscaled" }, { - "duration": "16.0", + "duration": "7.0", "name": "rendering.desktop/cats_viewport_width" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "26.0", + "duration": "12.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "41.0", + "duration": "16.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "24.0", + "duration": "9.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "31.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "31.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "31.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "31.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "29.0", + "duration": "16.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "15.0", + "duration": "12.0", "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "15.0", + "duration": "12.0", "name": "rendering.desktop/earth" }, { - "duration": "29.0", + "duration": "10.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "25.0", + "duration": "9.0", "name": "rendering.desktop/effect_games" }, { - "duration": "30.0", + "duration": "9.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "18.0", + "duration": "11.0", "name": "rendering.desktop/espn_pinch_2018" }, { - "duration": "27.0", + "duration": "14.0", "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "28.0", + "duration": "10.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "17.0", + "duration": "10.0", "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/geo_apis" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "58.0", + "duration": "23.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "18.0", + "duration": "11.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "22.0", + "duration": "6.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "17.0", + "duration": "10.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "38.0", + "duration": "13.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "16.0", + "duration": "9.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "31.0", + "duration": "12.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "27.0", + "duration": "12.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "16.0", + "duration": "8.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "26.0", + "duration": "8.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "30.0", + "duration": "14.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/hakim" }, { - "duration": "39.0", + "duration": "24.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "33.0", + "duration": "17.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "29.0", + "duration": "15.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "27.0", + "duration": "10.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "32.0", + "duration": "16.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "32.0", + "duration": "16.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "32.0", + "duration": "16.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "28.0", + "duration": "16.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "25.0", + "duration": "9.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "29.0", + "duration": "10.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "16.0", + "duration": "11.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "24.0", + "duration": "9.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/many_images" }, { @@ -2624,459 +2676,427 @@ "name": "rendering.desktop/many_planets_deep" }, { - "duration": "23.0", + "duration": "12.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "29.0", + "duration": "14.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "23.0", - "name": "rendering.desktop/microsoft_snow" - }, - { - "duration": "21.0", - "name": "rendering.desktop/microsoft_speed_reading" - }, - { - "duration": "22.0", - "name": "rendering.desktop/microsoft_tweet_map" - }, - { - "duration": "27.0", - "name": "rendering.desktop/microsoft_video_city" - }, - { - "duration": "23.0", - "name": "rendering.desktop/microsoft_worker_fountains" - }, - { - "duration": "20.0", - "name": "rendering.desktop/mix_10k" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_difference" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_hue" - }, - { - "duration": "28.0", - "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "26.0", - "name": "rendering.desktop/mix_blend_mode_animation_screen" - }, - { - "duration": "27.0", - "name": "rendering.desktop/motion_mark_canvas_fill_shapes" - }, - { - "duration": "26.0", - "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "33.0", - "name": "rendering.desktop/new_tilings" - }, - { - "duration": "13.0", - "name": "rendering.desktop/nvidia_vertex_buffer_object" - }, - { - "duration": "36.0", - "name": "rendering.desktop/overlay_background_color_css_transitions_page" + "duration": "14.0", + "name": "rendering.desktop/microsoft_performance" }, { "duration": "10.0", + "name": "rendering.desktop/microsoft_snow" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_speed_reading" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_tweet_map" + }, + { + "duration": "11.0", + "name": "rendering.desktop/microsoft_video_city" + }, + { + "duration": "9.0", + "name": "rendering.desktop/microsoft_worker_fountains" + }, + { + "duration": "9.0", + "name": "rendering.desktop/mix_10k" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_blend_mode_animation_difference" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_blend_mode_animation_hue" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" + }, + { + "duration": "13.0", + "name": "rendering.desktop/mix_blend_mode_animation_screen" + }, + { + "duration": "14.0", + "name": "rendering.desktop/motion_mark_canvas_fill_shapes" + }, + { + "duration": "14.0", + "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" + }, + { + "duration": "17.0", + "name": "rendering.desktop/new_tilings" + }, + { + "duration": "12.0", + "name": "rendering.desktop/nvidia_vertex_buffer_object" + }, + { + "duration": "15.0", + "name": "rendering.desktop/overlay_background_color_css_transitions_page" + }, + { + "duration": "12.0", "name": "rendering.desktop/particles" }, { - "duration": "34.0", + "duration": "13.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/raf" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "25.0", + "duration": "10.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "24.0", + "duration": "11.0", "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/repaint_google_search_2018" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "22.0", + "duration": "9.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "21.0", + "duration": "8.0", "name": "rendering.desktop/runway" }, { - "duration": "15.0", + "duration": "12.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "16.0", + "duration": "8.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "19.0", + "duration": "6.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "17.0", + "duration": "6.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/simple_text_page" }, { - "duration": "17.0", + "duration": "7.0", "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "24.0", + "duration": "9.0", "name": "rendering.desktop/smash_cat" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "20.0", + "duration": "9.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "23.0", + "duration": "9.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "37.0", + "duration": "13.0", "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "23.0", + "duration": "10.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.desktop/text_15000_pixels_per_second" - }, - { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/text_30000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "6.0", "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/text_50000_pixels_per_second" - }, - { - "duration": "16.0", + "duration": "6.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "15.0", + "duration": "6.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "26.0", + "duration": "11.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "26.0", + "duration": "10.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "23.0", - "name": "rendering.desktop/text_constant_full_page_raster_15000_pixels_per_second" - }, - { - "duration": "20.0", + "duration": "8.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "20.0", - "name": "rendering.desktop/text_constant_full_page_raster_30000_pixels_per_second" - }, - { - "duration": "20.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "19.0", - "name": "rendering.desktop/text_constant_full_page_raster_50000_pixels_per_second" - }, - { - "duration": "18.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "18.0", + "duration": "7.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "16.0", + "duration": "6.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "24.0", + "duration": "10.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "21.0", - "name": "rendering.desktop/text_hover_15000_pixels_per_second" - }, - { - "duration": "19.0", + "duration": "8.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "18.0", - "name": "rendering.desktop/text_hover_30000_pixels_per_second" - }, - { - "duration": "18.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "16.0", - "name": "rendering.desktop/text_hover_50000_pixels_per_second" - }, - { - "duration": "17.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "15.0", + "duration": "7.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "16.0", + "duration": "6.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "22.0", + "duration": "10.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "30.0", + "duration": "13.0", "name": "rendering.desktop/transform_transitions" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "24.0", + "duration": "9.0", "name": "rendering.desktop/twitch_2018" }, { - "duration": "16.0", + "duration": "11.0", "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "34.0", + "duration": "13.0", "name": "rendering.desktop/twitter_2018" }, { - "duration": "18.0", + "duration": "10.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "27.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "28.0", + "duration": "13.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "28.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "28.0", + "duration": "14.0", "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { - "duration": "26.0", + "duration": "13.0", "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "30.0", + "duration": "15.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "32.0", + "duration": "13.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "31.0", + "duration": "13.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "21.0", + "duration": "9.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "28.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "17.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "35.0", + "duration": "12.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "17.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "27.0", + "duration": "9.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "17.0", + "duration": "9.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "25.0", + "duration": "12.0", "name": "rendering.desktop/yuv_decoding" }, { - "duration": "44.0", + "duration": "42.0", "name": "speedometer-future/http://browserbench.org/Speedometer/" }, { @@ -3084,559 +3104,555 @@ "name": "speedometer/http://browserbench.org/Speedometer/" }, { - "duration": "96.0", + "duration": "79.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "83.0", + "duration": "78.0", "name": "speedometer2/Speedometer2" }, { - "duration": "91.0", + "duration": "63.0", "name": "system_health.common_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "60.0", + "duration": "40.0", "name": "system_health.common_desktop/browse:media:googleplaystore:2018" }, { - "duration": "149.0", + "duration": "76.0", "name": "system_health.common_desktop/browse:media:imgur" }, { - "duration": "76.0", + "duration": "59.0", "name": "system_health.common_desktop/browse:media:pinterest" }, { - "duration": "104.0", + "duration": "86.0", "name": "system_health.common_desktop/browse:media:pinterest:2018" }, { - "duration": "126.0", - "name": "system_health.common_desktop/browse:media:tumblr" - }, - { - "duration": "81.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:media:tumblr:2018" }, { - "duration": "95.0", + "duration": "64.0", "name": "system_health.common_desktop/browse:media:youtube" }, { - "duration": "95.0", + "duration": "67.0", "name": "system_health.common_desktop/browse:media:youtube:2018" }, { - "duration": "113.0", + "duration": "62.0", "name": "system_health.common_desktop/browse:news:cnn" }, { - "duration": "73.0", + "duration": "44.0", "name": "system_health.common_desktop/browse:news:cnn:2018" }, { - "duration": "62.0", + "duration": "42.0", "name": "system_health.common_desktop/browse:news:flipboard" }, { - "duration": "61.0", + "duration": "43.0", "name": "system_health.common_desktop/browse:news:flipboard:2018" }, { - "duration": "60.0", + "duration": "44.0", "name": "system_health.common_desktop/browse:news:hackernews" }, { - "duration": "80.0", + "duration": "59.0", "name": "system_health.common_desktop/browse:news:hackernews:2018" }, { - "duration": "105.0", + "duration": "71.0", "name": "system_health.common_desktop/browse:news:nytimes" }, { - "duration": "102.0", + "duration": "69.0", "name": "system_health.common_desktop/browse:news:nytimes:2018" }, { - "duration": "87.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:news:reddit" }, { - "duration": "57.0", + "duration": "41.0", "name": "system_health.common_desktop/browse:news:reddit:2018" }, { - "duration": "62.0", + "duration": "46.0", "name": "system_health.common_desktop/browse:search:google" }, { - "duration": "63.0", + "duration": "46.0", "name": "system_health.common_desktop/browse:search:google:2018" }, { - "duration": "47.0", + "duration": "34.0", "name": "system_health.common_desktop/browse:search:google_india" }, { - "duration": "47.0", + "duration": "32.0", "name": "system_health.common_desktop/browse:search:google_india:2018" }, { - "duration": "89.0", + "duration": "62.0", "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "108.0", + "duration": "69.0", "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "116.0", + "duration": "70.0", "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "57.0", + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "41.0", "name": "system_health.common_desktop/browse:social:twitter" }, { - "duration": "58.0", + "duration": "42.0", "name": "system_health.common_desktop/browse:social:twitter:2018" }, { - "duration": "86.0", + "duration": "62.0", "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "93.0", + "duration": "61.0", "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "88.0", + "duration": "58.0", "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "system_health.common_desktop/browse:tools:earth" }, { - "duration": "12.0", + "duration": "14.0", "name": "system_health.common_desktop/browse:tools:maps" }, { - "duration": "37.0", + "duration": "22.0", "name": "system_health.common_desktop/browse_accessibility:media:youtube" }, { - "duration": "29.0", + "duration": "17.0", "name": "system_health.common_desktop/browse_accessibility:tech:codesearch" }, { - "duration": "40.0", + "duration": "25.0", "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" }, { - "duration": "21.0", + "duration": "12.0", "name": "system_health.common_desktop/load:chrome:blank" }, { - "duration": "24.0", - "name": "system_health.common_desktop/load:games:alphabetty" - }, - { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/load:games:alphabetty:2018" }, { - "duration": "28.0", + "duration": "15.0", "name": "system_health.common_desktop/load:games:bubbles" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:games:lazors" }, { - "duration": "30.0", + "duration": "17.0", "name": "system_health.common_desktop/load:games:miniclip" }, { - "duration": "35.0", + "duration": "20.0", "name": "system_health.common_desktop/load:games:miniclip:2018" }, { - "duration": "34.0", + "duration": "20.0", "name": "system_health.common_desktop/load:games:spychase" }, { - "duration": "33.0", + "duration": "20.0", "name": "system_health.common_desktop/load:games:spychase:2018" }, { - "duration": "41.0", + "duration": "26.0", "name": "system_health.common_desktop/load:media:9gag" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:dailymotion" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:facebook_photos:2018" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:flickr:2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "system_health.common_desktop/load:media:google_images" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.common_desktop/load:media:google_images:2018" }, { - "duration": "33.0", + "duration": "17.0", "name": "system_health.common_desktop/load:media:imgur" }, { - "duration": "28.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:imgur:2018" }, { - "duration": "34.0", + "duration": "19.0", "name": "system_health.common_desktop/load:media:soundcloud" }, { - "duration": "32.0", + "duration": "17.0", "name": "system_health.common_desktop/load:media:soundcloud:2018" }, { - "duration": "29.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:youtube" }, { - "duration": "29.0", + "duration": "16.0", "name": "system_health.common_desktop/load:media:youtube:2018" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load:news:bbc" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:bbc:2018" }, { - "duration": "35.0", + "duration": "21.0", "name": "system_health.common_desktop/load:news:cnn" }, { - "duration": "31.0", + "duration": "18.0", "name": "system_health.common_desktop/load:news:cnn:2018" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:flipboard" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:news:hackernews" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:news:hackernews:2018" }, { - "duration": "31.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:nytimes" }, { - "duration": "32.0", + "duration": "19.0", "name": "system_health.common_desktop/load:news:nytimes:2018" }, { - "duration": "34.0", + "duration": "20.0", "name": "system_health.common_desktop/load:news:qq" }, { - "duration": "32.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:qq:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:reddit" }, { - "duration": "28.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:reddit:2018" }, { - "duration": "26.0", + "duration": "17.0", "name": "system_health.common_desktop/load:news:wikipedia" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:news:wikipedia:2018" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:amazon" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:amazon:2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:baidu" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:baidu:2018" }, { - "duration": "28.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:ebay" }, { - "duration": "29.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:ebay:2018" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:flipkart:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:google" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:google:2018" }, { - "duration": "27.0", + "duration": "33.0", "name": "system_health.common_desktop/load:search:taobao" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load:search:taobao:2018" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yahoo" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yahoo:2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "system_health.common_desktop/load:search:yandex" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:search:yandex:2018" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load:social:instagram" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load:social:instagram:2018" }, { - "duration": "28.0", + "duration": "18.0", "name": "system_health.common_desktop/load:social:pinterest" }, { - "duration": "26.0", + "duration": "14.0", "name": "system_health.common_desktop/load:social:vk" }, { - "duration": "26.0", + "duration": "15.0", "name": "system_health.common_desktop/load:social:vk:2018" }, { - "duration": "47.0", + "duration": "20.0", "name": "system_health.common_desktop/load:tools:docs" }, { - "duration": "43.0", + "duration": "19.0", "name": "system_health.common_desktop/load:tools:drive" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:tools:dropbox" }, { - "duration": "32.0", + "duration": "17.0", "name": "system_health.common_desktop/load:tools:gmail" }, { - "duration": "26.0", + "duration": "16.0", "name": "system_health.common_desktop/load:tools:stackoverflow" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.common_desktop/load:tools:stackoverflow:2018" }, { - "duration": "29.0", + "duration": "16.0", "name": "system_health.common_desktop/load:tools:weather" }, { - "duration": "30.0", + "duration": "15.0", "name": "system_health.common_desktop/load_accessibility:media:wikipedia" }, { - "duration": "27.0", + "duration": "15.0", "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load_accessibility:shopping:amazon" }, { - "duration": "27.0", + "duration": "16.0", "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" }, { - "duration": "138.0", + "duration": "119.0", "name": "system_health.common_desktop/long_running:tools:gmail-background" }, { - "duration": "546.0", - "name": "system_health.common_desktop/multitab:misc:typical24" - }, - { - "duration": "470.0", - "name": "system_health.common_desktop/multitab:misc:typical24:2018" - }, - { - "duration": "61.0", + "duration": "41.0", "name": "system_health.common_desktop/play:media:google_play_music" }, { - "duration": "63.0", + "duration": "43.0", "name": "system_health.common_desktop/play:media:soundcloud" }, { - "duration": "55.0", + "duration": "41.0", "name": "system_health.common_desktop/play:media:soundcloud:2018" }, { - "duration": "45.0", + "duration": "37.0", "name": "system_health.memory_desktop/browse:media:googleplaystore:2018" }, { - "duration": "74.0", + "duration": "64.0", "name": "system_health.memory_desktop/browse:media:imgur" }, { - "duration": "65.0", + "duration": "56.0", "name": "system_health.memory_desktop/browse:media:pinterest" }, { - "duration": "91.0", + "duration": "82.0", "name": "system_health.memory_desktop/browse:media:pinterest:2018" }, { - "duration": "63.0", + "duration": "53.0", "name": "system_health.memory_desktop/browse:media:tumblr:2018" }, { - "duration": "66.0", + "duration": "57.0", "name": "system_health.memory_desktop/browse:media:youtube" }, { - "duration": "73.0", + "duration": "62.0", "name": "system_health.memory_desktop/browse:media:youtube:2018" }, { - "duration": "59.0", - "name": "system_health.memory_desktop/browse:news:cnn" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:news:cnn:2018" + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" }, { "duration": "49.0", - "name": "system_health.memory_desktop/browse:news:flipboard" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:news:flipboard:2018" - }, - { - "duration": "58.0", - "name": "system_health.memory_desktop/browse:news:hackernews:2018" - }, - { - "duration": "61.0", - "name": "system_health.memory_desktop/browse:news:nytimes" - }, - { - "duration": "64.0", - "name": "system_health.memory_desktop/browse:news:nytimes:2018" - }, - { - "duration": "57.0", - "name": "system_health.memory_desktop/browse:news:reddit" - }, - { - "duration": "46.0", - "name": "system_health.memory_desktop/browse:news:reddit:2018" - }, - { - "duration": "52.0", - "name": "system_health.memory_desktop/browse:search:google" - }, - { - "duration": "50.0", - "name": "system_health.memory_desktop/browse:search:google:2018" - }, - { - "duration": "41.0", - "name": "system_health.memory_desktop/browse:search:google_india" + "name": "system_health.memory_desktop/browse:news:cnn" }, { "duration": "37.0", + "name": "system_health.memory_desktop/browse:news:cnn:2018" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/browse:news:flipboard" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2018" + }, + { + "duration": "51.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:news:nytimes" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:news:reddit" + }, + { + "duration": "37.0", + "name": "system_health.memory_desktop/browse:news:reddit:2018" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:search:google" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:search:google:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_desktop/browse:search:google_india" + }, + { + "duration": "29.0", "name": "system_health.memory_desktop/browse:search:google_india:2018" }, { - "duration": "65.0", + "duration": "57.0", "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "68.0", + "duration": "60.0", "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "67.0", + "duration": "59.0", "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "47.0", + "duration": "51.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", "name": "system_health.memory_desktop/browse:social:twitter" }, { - "duration": "47.0", + "duration": "39.0", "name": "system_health.memory_desktop/browse:social:twitter:2018" }, { - "duration": "64.0", + "duration": "57.0", "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "64.0", + "duration": "56.0", "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "62.0", + "duration": "53.0", "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" }, { @@ -3648,1103 +3664,1059 @@ "name": "system_health.memory_desktop/browse:tools:maps" }, { - "duration": "28.0", + "duration": "19.0", "name": "system_health.memory_desktop/browse_accessibility:media:youtube" }, { - "duration": "24.0", + "duration": "15.0", "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch" }, { - "duration": "31.0", + "duration": "23.0", "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" }, { - "duration": "18.0", + "duration": "10.0", "name": "system_health.memory_desktop/load:chrome:blank" }, { - "duration": "21.0", - "name": "system_health.memory_desktop/load:games:alphabetty" - }, - { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:games:alphabetty:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:games:bubbles" }, { - "duration": "21.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:games:lazors" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:games:miniclip" }, { - "duration": "27.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:miniclip:2018" }, { - "duration": "26.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:spychase" }, { - "duration": "26.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:games:spychase:2018" }, { - "duration": "31.0", + "duration": "22.0", "name": "system_health.memory_desktop/load:media:9gag" }, { - "duration": "23.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:dailymotion" }, { - "duration": "22.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:facebook_photos:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:flickr:2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:media:google_images" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:google_images:2018" }, { - "duration": "26.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:imgur" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:imgur:2018" }, { - "duration": "25.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:soundcloud" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:soundcloud:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:media:youtube" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:media:youtube:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:bbc" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:bbc:2018" }, { - "duration": "27.0", + "duration": "17.0", "name": "system_health.memory_desktop/load:news:cnn" }, { - "duration": "25.0", + "duration": "16.0", "name": "system_health.memory_desktop/load:news:cnn:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:flipboard" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:hackernews" }, { - "duration": "20.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:hackernews:2018" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:news:nytimes" }, { - "duration": "25.0", + "duration": "16.0", "name": "system_health.memory_desktop/load:news:nytimes:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:news:qq" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:news:qq:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:reddit" }, { - "duration": "23.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:news:reddit:2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:news:wikipedia" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:news:wikipedia:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:amazon" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:amazon:2018" }, { - "duration": "22.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:baidu" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:baidu:2018" }, { - "duration": "23.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:ebay" }, { - "duration": "23.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:ebay:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:search:flipkart:2018" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:google" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:google:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:taobao" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:search:taobao:2018" }, { - "duration": "21.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:yahoo" }, { - "duration": "21.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:search:yahoo:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:yandex" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:search:yandex:2018" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:social:instagram" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:instagram:2018" }, { - "duration": "24.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:pinterest" }, { - "duration": "22.0", + "duration": "12.0", "name": "system_health.memory_desktop/load:social:vk" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:social:vk:2018" }, { - "duration": "25.0", + "duration": "15.0", "name": "system_health.memory_desktop/load:tools:docs" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:tools:drive" }, { - "duration": "21.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:dropbox" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:tools:gmail" }, { - "duration": "23.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:stackoverflow" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" }, { - "duration": "24.0", + "duration": "14.0", "name": "system_health.memory_desktop/load:tools:weather" }, { - "duration": "23.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:media:wikipedia" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" }, { - "duration": "22.0", + "duration": "13.0", "name": "system_health.memory_desktop/load_accessibility:shopping:amazon" }, { - "duration": "23.0", + "duration": "14.0", "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" }, { - "duration": "157.0", + "duration": "127.0", "name": "system_health.memory_desktop/long_running:tools:gmail-background" }, { - "duration": "152.0", + "duration": "126.0", "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" }, { - "duration": "129.0", - "name": "system_health.memory_desktop/multitab:misc:typical24" - }, - { - "duration": "101.0", - "name": "system_health.memory_desktop/multitab:misc:typical24:2018" - }, - { - "duration": "47.0", + "duration": "39.0", "name": "system_health.memory_desktop/play:media:soundcloud:2018" }, { - "duration": "16.0", + "duration": "9.0", "name": "tracing.tracing_with_background_memory_infra/Facebook" }, { - "duration": "16.0", + "duration": "5.0", "name": "tracing.tracing_with_background_memory_infra/Wikipedia" }, { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.amazon.com" - }, - { - "duration": "14.0", + "duration": "9.0", "name": "tracing.tracing_with_background_memory_infra/http://www.ask.com/" }, { - "duration": "14.0", - "name": "tracing.tracing_with_background_memory_infra/http://www.bing.com/" - }, - { - "duration": "14.0", + "duration": "4.0", "name": "tracing.tracing_with_background_memory_infra/http://www.yahoo.com/" }, { - "duration": "17.0", + "duration": "6.0", "name": "tracing.tracing_with_background_memory_infra/http://www.youtube.com" }, { - "duration": "16.0", + "duration": "9.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/#hl=en&q=barack+obama" }, { - "duration": "18.0", + "duration": "8.0", "name": "tracing.tracing_with_background_memory_infra/https://www.google.com/calendar/" }, { - "duration": "136.0", + "duration": "67.0", "name": "v8.browsing_desktop-future/browse:media:flickr_infinite_scroll" }, { - "duration": "85.0", + "duration": "41.0", "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2018" }, { - "duration": "732.0", + "duration": "74.0", "name": "v8.browsing_desktop-future/browse:media:imgur" }, { - "duration": "94.0", - "name": "v8.browsing_desktop-future/browse:media:pinterest" - }, - { - "duration": "127.0", + "duration": "88.0", "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" }, { - "duration": "177.0", - "name": "v8.browsing_desktop-future/browse:media:tumblr" - }, - { - "duration": "111.0", + "duration": "62.0", "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" }, { - "duration": "147.0", - "name": "v8.browsing_desktop-future/browse:media:youtube" - }, - { - "duration": "142.0", + "duration": "71.0", "name": "v8.browsing_desktop-future/browse:media:youtube:2018" }, { - "duration": "556.0", - "name": "v8.browsing_desktop-future/browse:news:cnn" + "duration": "63.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" }, { - "duration": "109.0", + "duration": "47.0", "name": "v8.browsing_desktop-future/browse:news:cnn:2018" }, { - "duration": "86.0", + "duration": "44.0", "name": "v8.browsing_desktop-future/browse:news:flipboard:2018" }, { - "duration": "102.0", + "duration": "60.0", "name": "v8.browsing_desktop-future/browse:news:hackernews:2018" }, { - "duration": "152.0", + "duration": "71.0", "name": "v8.browsing_desktop-future/browse:news:nytimes:2018" }, { - "duration": "78.0", + "duration": "42.0", "name": "v8.browsing_desktop-future/browse:news:reddit:2018" }, { - "duration": "79.0", - "name": "v8.browsing_desktop-future/browse:search:google" - }, - { - "duration": "82.0", + "duration": "48.0", "name": "v8.browsing_desktop-future/browse:search:google:2018" }, { - "duration": "57.0", - "name": "v8.browsing_desktop-future/browse:search:google_india" - }, - { - "duration": "62.0", + "duration": "33.0", "name": "v8.browsing_desktop-future/browse:search:google_india:2018" }, { - "duration": "145.0", - "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll" - }, - { - "duration": "679.0", + "duration": "70.0", "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "665.0", + "duration": "69.0", "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll" }, { - "duration": "74.0", - "name": "v8.browsing_desktop-future/browse:social:twitter" + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" }, { - "duration": "76.0", + "duration": "43.0", "name": "v8.browsing_desktop-future/browse:social:twitter:2018" }, { - "duration": "147.0", + "duration": "66.0", "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "178.0", - "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll" - }, - { - "duration": "166.0", + "duration": "62.0", "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "v8.browsing_desktop-future/browse:tools:earth" }, { - "duration": "13.0", + "duration": "15.0", "name": "v8.browsing_desktop-future/browse:tools:maps" }, { - "duration": "135.0", + "duration": "67.0", "name": "v8.browsing_desktop/browse:media:flickr_infinite_scroll" }, { - "duration": "85.0", + "duration": "42.0", "name": "v8.browsing_desktop/browse:media:googleplaystore:2018" }, { - "duration": "743.0", + "duration": "76.0", "name": "v8.browsing_desktop/browse:media:imgur" }, { - "duration": "94.0", + "duration": "62.0", "name": "v8.browsing_desktop/browse:media:pinterest" }, { - "duration": "127.0", + "duration": "88.0", "name": "v8.browsing_desktop/browse:media:pinterest:2018" }, { - "duration": "176.0", + "duration": "105.0", "name": "v8.browsing_desktop/browse:media:tumblr" }, { - "duration": "111.0", + "duration": "63.0", "name": "v8.browsing_desktop/browse:media:tumblr:2018" }, { - "duration": "146.0", + "duration": "68.0", "name": "v8.browsing_desktop/browse:media:youtube" }, { - "duration": "142.0", + "duration": "71.0", "name": "v8.browsing_desktop/browse:media:youtube:2018" }, { - "duration": "566.0", + "duration": "63.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "80.0", "name": "v8.browsing_desktop/browse:news:cnn" }, { - "duration": "109.0", + "duration": "48.0", "name": "v8.browsing_desktop/browse:news:cnn:2018" }, { - "duration": "86.0", + "duration": "45.0", "name": "v8.browsing_desktop/browse:news:flipboard:2018" }, { - "duration": "100.0", + "duration": "62.0", "name": "v8.browsing_desktop/browse:news:hackernews:2018" }, { - "duration": "583.0", + "duration": "71.0", "name": "v8.browsing_desktop/browse:news:nytimes" }, { - "duration": "152.0", + "duration": "73.0", "name": "v8.browsing_desktop/browse:news:nytimes:2018" }, { - "duration": "119.0", + "duration": "62.0", "name": "v8.browsing_desktop/browse:news:reddit" }, { - "duration": "78.0", + "duration": "43.0", "name": "v8.browsing_desktop/browse:news:reddit:2018" }, { - "duration": "78.0", + "duration": "48.0", "name": "v8.browsing_desktop/browse:search:google" }, { - "duration": "81.0", + "duration": "47.0", "name": "v8.browsing_desktop/browse:search:google:2018" }, { - "duration": "56.0", + "duration": "35.0", "name": "v8.browsing_desktop/browse:search:google_india" }, { - "duration": "62.0", + "duration": "33.0", "name": "v8.browsing_desktop/browse:search:google_india:2018" }, { - "duration": "144.0", + "duration": "66.0", "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll" }, { - "duration": "680.0", + "duration": "72.0", "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" }, { - "duration": "665.0", + "duration": "73.0", "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll" }, { - "duration": "73.0", + "duration": "43.0", "name": "v8.browsing_desktop/browse:social:twitter" }, { - "duration": "76.0", + "duration": "43.0", "name": "v8.browsing_desktop/browse:social:twitter:2018" }, { - "duration": "145.0", + "duration": "67.0", "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" }, { - "duration": "177.0", + "duration": "66.0", "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll" }, { - "duration": "165.0", + "duration": "62.0", "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" }, { - "duration": "19.0", + "duration": "20.0", "name": "v8.browsing_desktop/browse:tools:earth" }, { - "duration": "12.0", + "duration": "15.0", "name": "v8.browsing_desktop/browse:tools:maps" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" }, { - "duration": "40.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" }, { - "duration": "43.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" }, { - "duration": "38.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" }, { - "duration": "42.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" }, { - "duration": "39.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" }, { - "duration": "41.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" }, { - "duration": "37.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" }, { - "duration": "46.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" }, { - "duration": "74.0", + "duration": "48.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" }, { - "duration": "60.0", + "duration": "39.0", "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" }, { - "duration": "40.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" }, { - "duration": "57.0", + "duration": "35.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" }, { - "duration": "49.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" }, { - "duration": "34.0", + "duration": "24.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": "39.0", + "duration": "30.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": "37.0", + "duration": "28.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": "36.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" }, { - "duration": "42.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" }, { - "duration": "39.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" }, { - "duration": "44.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" }, { - "duration": "38.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" }, { - "duration": "39.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" }, { - "duration": "36.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" }, { - "duration": "38.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" }, { - "duration": "40.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" }, { - "duration": "39.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://weibo.com_cold" }, { - "duration": "46.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://weibo.com_hot" }, { - "duration": "43.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://weibo.com_warm" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" }, { - "duration": "42.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" }, { - "duration": "34.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" }, { - "duration": "33.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" }, { - "duration": "41.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" }, { - "duration": "51.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" }, { - "duration": "45.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" }, { - "duration": "37.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" }, { - "duration": "40.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" }, { - "duration": "40.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" }, { - "duration": "49.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" }, { - "duration": "45.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" }, { - "duration": "39.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" }, { - "duration": "73.0", + "duration": "35.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" }, { - "duration": "86.0", + "duration": "40.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" }, { - "duration": "79.0", + "duration": "38.0", "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" }, { - "duration": "42.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" }, { - "duration": "44.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" }, { - "duration": "40.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" }, { - "duration": "35.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" }, { - "duration": "39.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" }, { - "duration": "36.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" }, { - "duration": "41.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" }, { - "duration": "38.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" }, { - "duration": "41.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" }, { - "duration": "38.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" }, { - "duration": "45.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" }, { - "duration": "54.0", + "duration": "37.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" }, { - "duration": "54.0", + "duration": "33.0", "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" }, { - "duration": "33.0", + "duration": "23.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_cold" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_hot" }, { - "duration": "35.0", + "duration": "27.0", "name": "v8.runtime_stats.top_25/https://cdn.ampproject.org/c/www.bbc.co.uk/news/amp/37344292#log=3_warm" }, { - "duration": "38.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" }, { - "duration": "48.0", + "duration": "36.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" }, { - "duration": "41.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" }, { - "duration": "35.0", + "duration": "24.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" }, { - "duration": "43.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" }, { - "duration": "37.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" }, { - "duration": "39.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" }, { - "duration": "36.0", + "duration": "28.0", "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" }, { - "duration": "37.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" }, { - "duration": "44.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" }, { - "duration": "41.0", + "duration": "30.0", "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" }, { - "duration": "41.0", + "duration": "26.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" }, { - "duration": "51.0", + "duration": "32.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" }, { - "duration": "46.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" }, { - "duration": "40.0", + "duration": "25.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" }, { - "duration": "49.0", + "duration": "31.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" }, { - "duration": "44.0", + "duration": "29.0", "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" }, { - "duration": "12.0", + "duration": "13.0", "name": "wasm/WasmSpaceBuggy" }, { - "duration": "20.0", + "duration": "22.0", "name": "wasm/WasmTanks" }, { @@ -4752,35 +4724,35 @@ "name": "wasm/WasmZenGarden" }, { - "duration": "52.0", + "duration": "24.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "26.0", + "duration": "13.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "35.0", + "duration": "23.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "35.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "34.0", + "duration": "23.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "23.0", + "duration": "13.0", "name": "webrtc/hd_local_stream_10s" }, { - "duration": "80.0", + "duration": "33.0", "name": "webrtc/multiple_peerconnections" }, { - "duration": "85.0", + "duration": "37.0", "name": "webrtc/pause_play_peerconnections" } ] \ No newline at end of file
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 4c4bffa..6ebb237 100644 --- a/tools/perf/core/shard_maps/win-10-perf_map.json +++ b/tools/perf/core/shard_maps/win-10-perf_map.json
@@ -5,22 +5,26 @@ "blink_perf.bindings": {}, "blink_perf.canvas": {}, "blink_perf.css": {}, - "blink_perf.dom": {}, - "blink_perf.events": {}, - "blink_perf.image_decoder": {}, - "blink_perf.layout": { - "end": 47 - } + "blink_perf.dom": {} } }, "1": { "benchmarks": { - "blink_perf.layout": { - "begin": 47 - }, + "blink_perf.events": {}, + "blink_perf.image_decoder": {}, + "blink_perf.layout": {}, "blink_perf.owp_storage": {}, "blink_perf.paint": {}, - "blink_perf.parser": {}, + "blink_perf.parser": { + "end": 6 + } + } + }, + "2": { + "benchmarks": { + "blink_perf.parser": { + "begin": 6 + }, "blink_perf.shadow_dom": {}, "blink_perf.svg": {}, "dromaeo": {}, @@ -29,247 +33,254 @@ "jetstream": {}, "kraken": {}, "loading.desktop": { - "end": 2 - } - } - }, - "2": { - "benchmarks": { - "loading.desktop": { - "begin": 2, - "end": 38 + "end": 16 } } }, "3": { "benchmarks": { "loading.desktop": { - "begin": 38, - "end": 67 + "begin": 16, + "end": 59 } } }, "4": { "benchmarks": { "loading.desktop": { - "begin": 67, - "end": 96 + "begin": 59 + }, + "media.desktop": { + "end": 4 } } }, "5": { "benchmarks": { - "loading.desktop": { - "begin": 96 + "media.desktop": { + "begin": 4 }, - "media.desktop": {}, "memory.desktop": { - "end": 2 + "end": 8 } } }, "6": { "benchmarks": { "memory.desktop": { - "begin": 2 + "begin": 8 + }, + "octane": {}, + "power.desktop": {}, + "rasterize_and_record_micro.partial_invalidation": {}, + "rasterize_and_record_micro.top_25": { + "end": 23 } } }, "7": { "benchmarks": { - "octane": {}, - "power.desktop": {}, - "rasterize_and_record_micro.partial_invalidation": {}, - "rasterize_and_record_micro.top_25": {}, + "rasterize_and_record_micro.top_25": { + "begin": 23 + }, "rendering.desktop": { - "end": 5 + "end": 81 } } }, "8": { "benchmarks": { "rendering.desktop": { - "begin": 5, - "end": 59 + "begin": 81, + "end": 182 } } }, "9": { "benchmarks": { "rendering.desktop": { - "begin": 59, - "end": 118 - } - } - }, - "10": { - "benchmarks": { - "rendering.desktop": { - "begin": 118, - "end": 199 - } - } - }, - "11": { - "benchmarks": { - "rendering.desktop": { - "begin": 199 - } - } - }, - "12": { - "benchmarks": { + "begin": 182 + }, "speedometer": {}, "speedometer-future": {}, "speedometer2": {}, "speedometer2-future": {}, "system_health.common_desktop": { - "end": 23 + "end": 11 } } }, - "13": { + "10": { "benchmarks": { "system_health.common_desktop": { - "begin": 23, - "end": 92 + "begin": 11, + "end": 48 } } }, - "14": { + "11": { "benchmarks": { "system_health.common_desktop": { - "begin": 92 + "begin": 48, + "end": 99 + } + } + }, + "12": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 99 }, "system_health.memory_desktop": { "end": 9 } } }, - "15": { + "13": { "benchmarks": { "system_health.memory_desktop": { "begin": 9, - "end": 19 + "end": 18 + } + } + }, + "14": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 18, + "end": 31 + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 31, + "end": 59 } } }, "16": { "benchmarks": { "system_health.memory_desktop": { - "begin": 19, - "end": 44 + "begin": 59, + "end": 85 } } }, "17": { "benchmarks": { "system_health.memory_desktop": { - "begin": 44, - "end": 84 + "begin": 85, + "end": 95 } } }, "18": { "benchmarks": { "system_health.memory_desktop": { - "begin": 84, - "end": 97 + "begin": 95, + "end": 104 } } }, "19": { "benchmarks": { "system_health.memory_desktop": { - "begin": 97 + "begin": 104 }, "tab_switching.typical_25": {}, - "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_desktop": { + "tracing.tracing_with_background_memory_infra": { "end": 2 } } }, "20": { "benchmarks": { - "v8.browsing_desktop": { + "tracing.tracing_with_background_memory_infra": { "begin": 2 + }, + "v8.browsing_desktop": { + "end": 24 } } }, "21": { "benchmarks": { + "v8.browsing_desktop": { + "begin": 24 + }, "v8.browsing_desktop-future": { - "end": 27 + "end": 18 } } }, "22": { "benchmarks": { "v8.browsing_desktop-future": { - "begin": 27 + "begin": 18 }, "v8.runtime_stats.top_25": { - "end": 29 + "end": 17 } } }, "23": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 29, - "end": 66 + "begin": 17, + "end": 57 } } }, "24": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 66, - "end": 105 + "begin": 57, + "end": 99 } } }, "25": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 105 + "begin": 99 }, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2037, - "predicted_min_shard_time": 2696.0, - "predicted_min_shard_index": 19, - "predicted_max_shard_time": 2984.0, - "predicted_max_shard_index": 22, - "shard #0": 2856.0, - "shard #1": 2874.0, - "shard #2": 2816.0, - "shard #3": 2876.0, - "shard #4": 2776.0, - "shard #5": 2828.0, - "shard #6": 2910.0, - "shard #7": 2844.0, - "shard #8": 2822.0, - "shard #9": 2850.0, - "shard #10": 2864.0, - "shard #11": 2854.0, - "shard #12": 2872.0, - "shard #13": 2882.0, - "shard #14": 2816.0, - "shard #15": 2760.0, - "shard #16": 2850.0, - "shard #17": 2880.0, - "shard #18": 2916.0, - "shard #19": 2696.0, - "shard #20": 2858.0, - "shard #21": 2854.0, - "shard #22": 2984.0, - "shard #23": 2830.0, - "shard #24": 2794.0, - "shard #25": 2872.0 + "num_stories": 1240, + "predicted_min_shard_time": 2316.0, + "predicted_min_shard_index": 17, + "predicted_max_shard_time": 2540.0, + "predicted_max_shard_index": 19, + "shard #0": 2386.0, + "shard #1": 2426.0, + "shard #2": 2418.0, + "shard #3": 2368.0, + "shard #4": 2448.0, + "shard #5": 2416.0, + "shard #6": 2360.0, + "shard #7": 2422.0, + "shard #8": 2414.0, + "shard #9": 2362.0, + "shard #10": 2454.0, + "shard #11": 2404.0, + "shard #12": 2364.0, + "shard #13": 2448.0, + "shard #14": 2346.0, + "shard #15": 2490.0, + "shard #16": 2376.0, + "shard #17": 2316.0, + "shard #18": 2358.0, + "shard #19": 2540.0, + "shard #20": 2452.0, + "shard #21": 2342.0, + "shard #22": 2444.0, + "shard #23": 2400.0, + "shard #24": 2394.0, + "shard #25": 2400.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json b/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json index ddeec132..c55e304 100644 --- a/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json +++ b/tools/perf/core/shard_maps/win_7_nvidia_gpu_perf_map.json
@@ -20,19 +20,19 @@ "jetstream": {}, "kraken": {}, "loading.desktop": {}, - "media.desktop": {}, - "memory.desktop": {}, - "octane": {}, - "power.desktop": { - "end": 1 + "media.desktop": { + "end": 25 } } }, "1": { "benchmarks": { - "power.desktop": { - "begin": 1 + "media.desktop": { + "begin": 25 }, + "memory.desktop": {}, + "octane": {}, + "power.desktop": {}, "rasterize_and_record_micro.partial_invalidation": {}, "rasterize_and_record_micro.top_25": {}, "rendering.desktop": {}, @@ -41,53 +41,53 @@ "speedometer2": {}, "speedometer2-future": {}, "system_health.common_desktop": { - "end": 67 + "end": 16 } } }, "2": { "benchmarks": { "system_health.common_desktop": { - "begin": 67 + "begin": 16 }, "system_health.memory_desktop": { - "end": 90 + "end": 39 } } }, "3": { "benchmarks": { "system_health.memory_desktop": { - "begin": 90 + "begin": 39 }, "tab_switching.typical_25": {}, "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_desktop": {}, - "v8.browsing_desktop-future": { - "end": 1 + "v8.browsing_desktop": { + "end": 16 } } }, "4": { "benchmarks": { - "v8.browsing_desktop-future": { - "begin": 1 + "v8.browsing_desktop": { + "begin": 16 }, + "v8.browsing_desktop-future": {}, "v8.runtime_stats.top_25": {}, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2056, - "predicted_min_shard_time": 19846.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 20282.0, - "predicted_max_shard_index": 3, - "shard #0": 20026.0, - "shard #1": 20062.0, - "shard #2": 20068.0, - "shard #3": 20282.0, - "shard #4": 19846.0 + "num_stories": 1240, + "predicted_min_shard_time": 11350.0, + "predicted_min_shard_index": 1, + "predicted_max_shard_time": 11420.0, + "predicted_max_shard_index": 2, + "shard #0": 11370.0, + "shard #1": 11350.0, + "shard #2": 11420.0, + "shard #3": 11382.0, + "shard #4": 11364.0 } -} +} \ No newline at end of file
diff --git a/tools/perf/core/shard_maps/win_7_perf_map.json b/tools/perf/core/shard_maps/win_7_perf_map.json index 3d07b860..44a88335 100644 --- a/tools/perf/core/shard_maps/win_7_perf_map.json +++ b/tools/perf/core/shard_maps/win_7_perf_map.json
@@ -21,11 +21,16 @@ "kraken": {}, "loading.desktop": {}, "media.desktop": {}, - "memory.desktop": {} + "memory.desktop": { + "end": 1 + } } }, "1": { "benchmarks": { + "memory.desktop": { + "begin": 1 + }, "octane": {}, "power.desktop": {}, "rasterize_and_record_micro.partial_invalidation": {}, @@ -36,53 +41,53 @@ "speedometer2": {}, "speedometer2-future": {}, "system_health.common_desktop": { - "end": 66 + "end": 25 } } }, "2": { "benchmarks": { "system_health.common_desktop": { - "begin": 66 + "begin": 25 }, "system_health.memory_desktop": { - "end": 90 + "end": 57 } } }, "3": { "benchmarks": { "system_health.memory_desktop": { - "begin": 90 + "begin": 57 }, "tab_switching.typical_25": {}, "tracing.tracing_with_background_memory_infra": {}, - "v8.browsing_desktop": {}, - "v8.browsing_desktop-future": { - "end": 1 + "v8.browsing_desktop": { + "end": 23 } } }, "4": { "benchmarks": { - "v8.browsing_desktop-future": { - "begin": 1 + "v8.browsing_desktop": { + "begin": 23 }, + "v8.browsing_desktop-future": {}, "v8.runtime_stats.top_25": {}, "wasm": {}, "webrtc": {} } }, "extra_infos": { - "num_stories": 2056, - "predicted_min_shard_time": 21110.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 22282.0, - "predicted_max_shard_index": 3, - "shard #0": 21540.0, - "shard #1": 21628.0, - "shard #2": 21312.0, - "shard #3": 22282.0, - "shard #4": 21110.0 + "num_stories": 1240, + "predicted_min_shard_time": 11786.0, + "predicted_min_shard_index": 0, + "predicted_max_shard_time": 11954.0, + "predicted_max_shard_index": 1, + "shard #0": 11786.0, + "shard #1": 11954.0, + "shard #2": 11848.0, + "shard #3": 11868.0, + "shard #4": 11832.0 } -} +} \ No newline at end of file
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc index b8c945c..debf3cc 100644 --- a/ui/accessibility/platform/ax_platform_node_auralinux.cc +++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -1899,11 +1899,12 @@ } void Detach(AXPlatformNodeAuraLinuxObject* atk_object) { - if (atk_object->m_object) { - atk_object_notify_state_change(ATK_OBJECT(atk_object), ATK_STATE_DEFUNCT, - TRUE); - } + if (!atk_object->m_object) + return; + atk_object->m_object = nullptr; + atk_object_notify_state_change(ATK_OBJECT(atk_object), ATK_STATE_DEFUNCT, + TRUE); } } // namespace atk_object
diff --git a/ui/base/mojo/clipboard.typemap b/ui/base/mojo/clipboard.typemap index 034d9cbc..528a172 100644 --- a/ui/base/mojo/clipboard.typemap +++ b/ui/base/mojo/clipboard.typemap
@@ -5,7 +5,7 @@ mojom = "//ui/base/mojo/clipboard.mojom" public_headers = [ "//ui/base/clipboard/clipboard_types.h" ] traits_headers = [ "//ui/base/mojo/clipboard_struct_traits.h" ] -deps = [ - "//ui/base", +public_deps = [ + "//ui/base/clipboard:clipboard_types", ] type_mappings = [ "ui.mojom.ClipboardType=ui::ClipboardType" ]
diff --git a/ui/base/mojo/clipboard_blink.typemap b/ui/base/mojo/clipboard_blink.typemap index b258c56..4402145 100644 --- a/ui/base/mojo/clipboard_blink.typemap +++ b/ui/base/mojo/clipboard_blink.typemap
@@ -5,7 +5,7 @@ mojom = "//third_party/blink/public/mojom/clipboard/clipboard.mojom" public_headers = [ "//ui/base/clipboard/clipboard_types.h" ] traits_headers = [ "//ui/base/mojo/clipboard_blink_struct_traits.h" ] -deps = [ - "//ui/base", +public_deps = [ + "//ui/base/clipboard:clipboard_types", ] type_mappings = [ "blink.mojom.ClipboardBuffer=ui::ClipboardType" ]
diff --git a/ui/file_manager/image_loader/piex/tests.html b/ui/file_manager/image_loader/piex/tests.html index a20214f..09fce62 100644 --- a/ui/file_manager/image_loader/piex/tests.html +++ b/ui/file_manager/image_loader/piex/tests.html
@@ -27,6 +27,9 @@ } process(resolve, reject) { + if (this.length <= 0 || this.length >= Math.pow(2, 30)) + return reject(new Error('invalid image length')); + const memory = Module._malloc(this.length); if (!memory) return reject(new Error('image malloc failure'));
diff --git a/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc b/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc index 3477f34c8..97d6fb4 100644 --- a/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc +++ b/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc
@@ -129,6 +129,12 @@ return std::make_unique<gfx::GpuFence>(gpu_fence_handle); } +VkSemaphore VulkanImplementationGbm::CreateExternalSemaphore( + VkDevice vk_device) { + return VulkanImplementation::CreateExternalSemaphore( + vk_device, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT); +} + VkSemaphore VulkanImplementationGbm::ImportSemaphoreHandle( VkDevice vk_device, gpu::SemaphoreHandle sync_handle) {
diff --git a/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.h b/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.h index 0fe36cb..abc67bef 100644 --- a/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.h +++ b/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.h
@@ -31,6 +31,7 @@ std::unique_ptr<gfx::GpuFence> ExportVkFenceToGpuFence( VkDevice vk_device, VkFence vk_fence) override; + VkSemaphore CreateExternalSemaphore(VkDevice vk_device) override; VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, gpu::SemaphoreHandle handle) override; gpu::SemaphoreHandle GetSemaphoreHandle(VkDevice vk_device,
diff --git a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc index 54d52ac..fc76e8e 100644 --- a/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc +++ b/ui/ozone/platform/scenic/vulkan_implementation_scenic.cc
@@ -126,6 +126,13 @@ return nullptr; } +VkSemaphore VulkanImplementationScenic::CreateExternalSemaphore( + VkDevice vk_device) { + return VulkanImplementation::CreateExternalSemaphore( + vk_device, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA); +} + VkSemaphore VulkanImplementationScenic::ImportSemaphoreHandle( VkDevice vk_device, gpu::SemaphoreHandle handle) {
diff --git a/ui/ozone/platform/scenic/vulkan_implementation_scenic.h b/ui/ozone/platform/scenic/vulkan_implementation_scenic.h index 3e245998..ba072af 100644 --- a/ui/ozone/platform/scenic/vulkan_implementation_scenic.h +++ b/ui/ozone/platform/scenic/vulkan_implementation_scenic.h
@@ -35,6 +35,7 @@ std::unique_ptr<gfx::GpuFence> ExportVkFenceToGpuFence( VkDevice vk_device, VkFence vk_fence) override; + VkSemaphore CreateExternalSemaphore(VkDevice vk_device) override; VkSemaphore ImportSemaphoreHandle(VkDevice vk_device, gpu::SemaphoreHandle handle) override; gpu::SemaphoreHandle GetSemaphoreHandle(VkDevice vk_device,