From 7acea3ddb4501773f49751d5d1bb883335484b08 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 19 Jan 2026 19:24:23 +0400 Subject: [PATCH] [perf] Force update components for perf profile (#33273) --- .../brave_utils_benchmarks.py | 4 ++-- .../brave_page_sets/brave_perf_utils_pages.py | 20 ++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tools/perf/brave_benchmarks/brave_utils_benchmarks.py b/tools/perf/brave_benchmarks/brave_utils_benchmarks.py index 9e9e2b69f52..13e2fe003c3 100644 --- a/tools/perf/brave_benchmarks/brave_utils_benchmarks.py +++ b/tools/perf/brave_benchmarks/brave_utils_benchmarks.py @@ -28,7 +28,7 @@ class BraveUtilsBenchmark(perf_benchmark.PerfBenchmark): """ def CreateStorySet(self, options): - return BravePerfUtilsStorySet(30, options) + return BravePerfUtilsStorySet(30, False, options) @classmethod def Name(cls): @@ -56,7 +56,7 @@ class BraveUtilsOnlineBenchmark(BraveUtilsBenchmark): cls._delay = args.delay def CreateStorySet(self, options): - return BravePerfUtilsStorySet(self._delay, options) + return BravePerfUtilsStorySet(self._delay, True, options) def SetExtraBrowserOptions(self, options): # To enable Safe Browsing updates: diff --git a/tools/perf/brave_page_sets/brave_perf_utils_pages.py b/tools/perf/brave_page_sets/brave_perf_utils_pages.py index e011e9d2684..2d4843f226c 100644 --- a/tools/perf/brave_page_sets/brave_perf_utils_pages.py +++ b/tools/perf/brave_page_sets/brave_perf_utils_pages.py @@ -104,10 +104,12 @@ class _UpdateProfileSharedPageState(shared_page_state.SharedPageState): class _UpdateProfilePage(page_module.Page): _delay: int + _force_update_componets: bool - def __init__(self, page_set, delay: int): + def __init__(self, page_set, delay: int, force_update_componets: bool): EXTRA_BROWSER_ARGUMENTS = ['--enable-brave-features-for-perf-testing'] self._delay = delay + self._force_update_componets = force_update_componets super().__init__(url='https://example.com', page_set=page_set, shared_page_state_class=_UpdateProfileSharedPageState, @@ -115,6 +117,18 @@ class _UpdateProfilePage(page_module.Page): extra_browser_args=EXTRA_BROWSER_ARGUMENTS) def RunPageInteractions(self, action_runner): + if self._force_update_componets: + # Go to chrome://components and click every "Check for update" button + action_runner.tab.Navigate('chrome://components') + action_runner.tab.WaitForDocumentReadyStateToBeInteractiveOrBetter() + action_runner.Wait(1) + forceUpdateScript = """ + document.querySelectorAll('.button-check-update').forEach((b, i) => { + setTimeout(() => b.click(), i * 100); + }); + """ + action_runner.tab.EvaluateJavaScript(forceUpdateScript) + action_runner.Wait(self._delay) if action_runner.tab.browser.platform.GetOSName() != 'android': # Disable session restore via settingsPrivate API. @@ -136,9 +150,9 @@ class BravePerfUtilsStorySet(story.StorySet): See loading_desktop.py for details. """ - def __init__(self, delay: int, options): + def __init__(self, delay: int, force_update_componets: bool, options): platform = 'mobile' if options.os_name == 'android' else 'desktop' archive_data_file = GetPageSetsDataPath('system_health_%s.json' % platform) super().__init__(archive_data_file, cloud_storage_bucket=story.PARTNER_BUCKET) - self.AddStory(_UpdateProfilePage(self, delay)) + self.AddStory(_UpdateProfilePage(self, delay, force_update_componets))