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

Unified Diff: telemetry/telemetry/page/cache_temperature.py

Issue 1984973002: Ensure disk cache init to make PCV1_COLD results stable (Closed) Base URL: https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git@master
Patch Set: does.not.exist Created 4 years, 7 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
« no previous file with comments | « no previous file | tracing/tracing/metrics/system_health/first_paint_metric.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/page/cache_temperature.py
diff --git a/telemetry/telemetry/page/cache_temperature.py b/telemetry/telemetry/page/cache_temperature.py
index 004896ee5c61fbe1ac56b8f9b75698b23dd799b6..9f367d8435c3bbfffdf47c4587a0497677d7b956 100644
--- a/telemetry/telemetry/page/cache_temperature.py
+++ b/telemetry/telemetry/page/cache_temperature.py
@@ -23,6 +23,32 @@ PCV1_COLD = 'pcv1-cold'
# once just before the run.
PCV1_WARM = 'pcv1-warm'
+class MarkTelemetryInternal(object):
+
+ def __init__(self, browser, identifier):
+ self.browser = browser
+ self.identifier = identifier
+
+ def __enter__(self):
+ self.browser.tabs[0].ExecuteJavaScript(
+ """console.time('telemetry.{0}.warmCache.start');""".format(
+ self.identifier))
+ self.browser.tabs[0].ExecuteJavaScript(
+ """console.timeEnd('telemetry.{0}.warmCache.start');""".format(
+ self.identifier))
+ return self
+
+ def __exit__(self, exception_type, exception_value, traceback):
+ if exception_type:
+ return True
+
+ self.browser.tabs[0].ExecuteJavaScript(
+ """console.time('telemetry.{0}.warmCache.end');""".format(
+ self.identifier))
+ self.browser.tabs[0].ExecuteJavaScript(
+ """console.timeEnd('telemetry.{0}.warmCache.end');""".format(
+ self.identifier))
+ return True
def EnsurePageCacheTemperature(page, browser, previous_page=None):
temperature = page.cache_temperature
@@ -30,9 +56,16 @@ def EnsurePageCacheTemperature(page, browser, previous_page=None):
if temperature == ANY:
return
- elif temperature == PCV1_COLD:
- any_valid_tab = browser.tabs[0]
- any_valid_tab.ClearCache(force=True)
+
+ if temperature == PCV1_COLD:
+ if previous_page is None:
+ with MarkTelemetryInternal(browser, 'ensure_diskcache'):
+ tab = browser.tabs[0]
+ tab.Navigate("http://does.not.exist")
nednguyen 2016/05/18 01:51:13 Err I forgot to this. Can you add some comment exp
+ tab.WaitForDocumentReadyStateToBeComplete()
+
+ any_tab = browser.tabs[0]
+ any_tab.ClearCache(force=True)
elif temperature == PCV1_WARM:
if (previous_page is not None and
previous_page.url == page.url and
@@ -40,17 +73,10 @@ def EnsurePageCacheTemperature(page, browser, previous_page=None):
previous_page.cache_temperature == PCV1_WARM)):
return
- tab = browser.tabs[0]
- tab.ExecuteJavaScript(
- """console.time('telemetry.internal.warmCache.start');""")
- tab.ExecuteJavaScript(
- """console.timeEnd('telemetry.internal.warmCache.start');""")
- tab.Navigate(page.url)
- util.WaitFor(tab.HasReachedQuiescence, 60)
- tab.WaitForDocumentReadyStateToBeComplete()
- tab.Navigate("about:blank")
- tab.WaitForDocumentReadyStateToBeComplete()
- tab.ExecuteJavaScript(
- """console.time('telemetry.internal.warmCache.end');""")
- tab.ExecuteJavaScript(
- """console.timeEnd('telemetry.internal.warmCache.end');""")
+ with MarkTelemetryInternal(browser, 'warmCache'):
+ tab = browser.tabs[0]
+ tab.Navigate(page.url)
+ util.WaitFor(tab.HasReachedQuiescence, 60)
+ tab.WaitForDocumentReadyStateToBeComplete()
+ tab.Navigate("about:blank")
+ tab.WaitForDocumentReadyStateToBeComplete()
« no previous file with comments | « no previous file | tracing/tracing/metrics/system_health/first_paint_metric.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698