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

Unified Diff: tools/telemetry/telemetry/page/shared_page_state.py

Issue 737463002: [Telemetry] Move more browser specific logic to shared_page_state (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/telemetry/telemetry/page/shared_page_state.py
diff --git a/tools/telemetry/telemetry/page/shared_page_state.py b/tools/telemetry/telemetry/page/shared_page_state.py
index f76e7dfea561304a16c4215d3c41073858fe3d34..70587139abafd359c01b1500b774938522c183ec 100644
--- a/tools/telemetry/telemetry/page/shared_page_state.py
+++ b/tools/telemetry/telemetry/page/shared_page_state.py
@@ -6,10 +6,12 @@ import os
import sys
from telemetry import decorators
+from telemetry.core import browser_info
tonyg 2014/11/17 18:35:10 alphabetize
nednguyen 2014/11/17 19:38:00 Done.
from telemetry.core import browser_finder
from telemetry.core import util
from telemetry.core import wpr_modes
from telemetry.page import page_test
+from telemetry.value import skip
class SharedPageState(object):
@@ -48,6 +50,12 @@ class SharedPageState(object):
return possible_browser
def DidRunPage(self):
+ util.CloseConnections(self._current_tab)
+ self._test.CleanUpAfterPage(self._current_page, self._current_tab)
+ if self._current_page.credentials and self._did_login_for_current_page:
+ self.browser.credentials.LoginNoLongerNeeded(
+ self._current_tab, self._current_page.credentials)
+
if self._finder_options.profiler:
self._StopProfiling()
tonyg 2014/11/17 18:35:10 I think we want to stop profiling before doing all
nednguyen 2014/11/17 19:38:00 Done.
nednguyen 2014/11/17 19:38:00 Done.
@@ -157,7 +165,23 @@ class SharedPageState(object):
if self._finder_options.profiler:
self._StartProfiling(self._current_page)
- def PreparePage(self):
+ def GetPageExpectationAndSkipValue(self, expectations):
+ skip_value = None
+ if not self._current_page.CanRunOnBrowser(
+ browser_info.BrowserInfo(self.browser)):
+ skip_value = skip.SkipValue(
+ self._current_page,
+ 'Skipped because browser is not supported '
+ '(page.CanRunOnBrowser() returns False).')
+ return 'skip', skip_value
+ expectation = expectations.GetExpectationForPage(
+ self.browser, self._current_page)
+ if expectation == 'skip':
+ skip_value = skip.SkipValue(
+ self._current_page, 'Skipped by test expectations')
+ return expectation, skip_value
+
+ def _PreparePage(self):
self._current_tab = self._test.TabForPage(self._current_page, self.browser)
if self._current_page.is_file:
self.browser.SetHTTPServerDirectories(
@@ -174,7 +198,7 @@ class SharedPageState(object):
if self._test.clear_cache_before_each_run:
self._current_tab.ClearCache(force=True)
- def ImplicitPageNavigation(self):
+ def _ImplicitPageNavigation(self):
"""Executes the implicit navigation that occurs for every page iteration.
This function will be called once per page before any actions are executed.
@@ -184,14 +208,9 @@ class SharedPageState(object):
self._test.DidNavigateToPage(self._current_page, self._current_tab)
def RunPage(self, results):
+ self._PreparePage()
+ self._ImplicitPageNavigation()
self._test.RunPage(self._current_page, self._current_tab, results)
- util.CloseConnections(self._current_tab)
-
- def CleanUpPage(self):
- self._test.CleanUpAfterPage(self._current_page, self._current_tab)
- if self._current_page.credentials and self._did_login_for_current_page:
- self.browser.credentials.LoginNoLongerNeeded(
- self._current_tab, self._current_page.credentials)
def TearDown(self):
self._StopBrowser()

Powered by Google App Engine
This is Rietveld 408576698