Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Unified Diff: tools/perf/profile_creators/small_profile_creator.py

Issue 23604005: [Telemetry] Implement dirty profile generation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@generate_profile
Patch Set: Rebase against trunk Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/perf/profile_creators/small_profile_creator.py
diff --git a/tools/perf/profile_creators/small_profile_creator.py b/tools/perf/profile_creators/small_profile_creator.py
index 020f81f3fa466a6041db74c9759ed1be10e94cb3..970f6e774d6069a0e665371648060e1d047d5818 100644
--- a/tools/perf/profile_creators/small_profile_creator.py
+++ b/tools/perf/profile_creators/small_profile_creator.py
@@ -4,20 +4,37 @@
import os
-from telemetry.core import profile_creator
+from telemetry.core import util
+from telemetry.page import page_runner
from telemetry.page import page_set
+from telemetry.page import profile_creator
class SmallProfileCreator(profile_creator.ProfileCreator):
"""
Runs a browser through a series of operations to fill in a small test profile.
"""
- def CreateProfile(self):
- top_25 = os.path.join(os.path.dirname(__file__),
- '..', 'page_sets', 'top_25.json')
- pages_to_load = page_set.PageSet.FromFile(top_25)
- tab = self._browser.tabs[0]
- for page in pages_to_load:
- tab.Navigate(page.url)
- tab.WaitForDocumentReadyStateToBeComplete()
- tab.Disconnect()
+ def __init__(self):
+ super(SmallProfileCreator, self).__init__()
+ top_25 = os.path.join(util.GetBaseDir(), 'page_sets', 'top_25.json')
+ self._page_set = page_set.PageSet.FromFile(top_25)
+
+ def CanRunForPage(self, page):
+ # Return true only for the first page, the other pages are opened in new
+ # tabs by DidNavigateToPage().
+ return not page.page_set.pages.index(page)
+
+ def DidNavigateToPage(self, page, tab):
+ for i in xrange(1, len(page.page_set.pages)):
+ t = tab.browser.tabs.New()
+
+ page_state = page_runner.PageState()
+ page_state.PreparePage(page.page_set.pages[i], t)
+ page_state.ImplicitPageNavigation(page.page_set.pages[i], t)
+
+ t.WaitForDocumentReadyStateToBeComplete()
+ # Work around crbug.com/258113.
+ util.CloseConnections(t)
+
+ def MeasurePage(self, _, tab, results):
+ pass

Powered by Google App Engine
This is Rietveld 408576698