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() |