Chromium Code Reviews| Index: telemetry/telemetry/page/cache_temperature.py |
| diff --git a/telemetry/telemetry/page/cache_temperature.py b/telemetry/telemetry/page/cache_temperature.py |
| index 749ab864149ba1460d56e85b5ea6c352d785d299..1937da07ee041db7f71a4546d80f372a3fb2b0c4 100644 |
| --- a/telemetry/telemetry/page/cache_temperature.py |
| +++ b/telemetry/telemetry/page/cache_temperature.py |
| @@ -54,37 +54,43 @@ class MarkTelemetryInternal(object): |
| "console.timeEnd({{ marker }});", marker=marker) |
| return True |
| +def ClearCache(browser): |
| + with MarkTelemetryInternal(browser, 'clear_cache'): |
| + any_tab = browser.tabs[0] |
|
shimazu
2017/09/19 09:37:31
nit: |tab| seems enough.
yukiy
2017/09/21 08:23:44
Done.
|
| + any_tab.ClearCache(force=True) |
| + |
| +def AvoidDoubleHashNavigation(page, browser): |
| + if '#' in page.url: |
|
shimazu
2017/09/19 09:37:31
nit: The opposite condition might be better to red
kouhei (in TOK)
2017/09/19 09:38:51
Would you mind keeping AvoidDoubleHashNavigation a
nednguyen
2017/09/19 09:50:05
+1. If the purpose is to make the EnsurePageCacheT
yukiy
2017/09/21 08:23:44
Done.
yukiy
2017/09/21 08:23:44
I chatted with kouhei@, and decided not to do this
yukiy
2017/09/21 08:23:44
Acknowledged.
|
| + # Navigate to inexistent URL to avoid in-page hash navigation. |
| + # Note: Unlike PCv1, PCv2 iterates the same URL for different cache |
| + # configurations. This may issue blink in-page hash navigations, |
| + # which isn't intended here. |
| + with MarkTelemetryInternal(browser, 'avoid_double_hash_navigation'): |
| + tab = browser.tabs[0] |
| + tab.Navigate("http://does.not.exist") |
| + tab.WaitForDocumentReadyStateToBeComplete() |
| + |
| +def WarmCache(page, browser): |
| + with MarkTelemetryInternal(browser, 'warm_cache'): |
| + tab = browser.tabs[0] |
| + tab.Navigate(page.url) |
| + py_utils.WaitFor(tab.HasReachedQuiescence, 60) |
| + tab.WaitForDocumentReadyStateToBeComplete() |
| + tab.Navigate("about:blank") |
| + tab.WaitForDocumentReadyStateToBeComplete() |
| + |
| def EnsurePageCacheTemperature(page, browser, previous_page=None): |
| temperature = page.cache_temperature |
| logging.info('PageCacheTemperature: %s', temperature) |
| - |
| if temperature == ANY: |
| return |
| - |
| if temperature == COLD: |
| - with MarkTelemetryInternal(browser, 'clear_cache'): |
| - any_tab = browser.tabs[0] |
| - any_tab.ClearCache(force=True) |
| + ClearCache(browser) |
| elif temperature == WARM: |
| if (previous_page is not None and |
| previous_page.url == page.url and |
| (previous_page.cache_temperature == COLD or |
| previous_page.cache_temperature == WARM)): |
| - if '#' in page.url: |
| - # Navigate to inexistent URL to avoid in-page hash navigation. |
| - # Note: Unlike PCv1, PCv2 iterates the same URL for different cache |
| - # configurations. This may issue blink in-page hash navigations, |
| - # which isn't intended here. |
| - with MarkTelemetryInternal(browser, 'avoid_double_hash_navigation'): |
| - tab = browser.tabs[0] |
| - tab.Navigate("http://does.not.exist") |
| - tab.WaitForDocumentReadyStateToBeComplete() |
| + AvoidDoubleHashNavigation(page, browser) |
| return |
| - |
| - with MarkTelemetryInternal(browser, 'warm_cache'): |
| - tab = browser.tabs[0] |
| - tab.Navigate(page.url) |
| - py_utils.WaitFor(tab.HasReachedQuiescence, 60) |
| - tab.WaitForDocumentReadyStateToBeComplete() |
| - tab.Navigate("about:blank") |
| - tab.WaitForDocumentReadyStateToBeComplete() |
| + WarmCache(page, browser) |