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

Unified Diff: tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py

Issue 14359012: Telemetry: Add option to create a dirty profile as part of a test run (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small fix to unit tests Created 7 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
Index: tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py
diff --git a/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py b/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py
index 7b3690b7e5b4bd6f43c838dabcf228f19ffa85ce..8c6b2c9a1e7c59630a27aa575b2fc42f1ab856a0 100644
--- a/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py
+++ b/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py
@@ -10,6 +10,7 @@ import sys
from telemetry.core import browser
from telemetry.core import possible_browser
+from telemetry.core import profile_types
from telemetry.core.chrome import desktop_browser_backend
from telemetry.core.platform import linux_platform_backend
from telemetry.core.platform import mac_platform_backend
@@ -39,10 +40,13 @@ class PossibleDesktopBrowser(possible_browser.PossibleBrowser):
def __repr__(self):
return 'PossibleDesktopBrowser(browser_type=%s)' % self.browser_type
- def Create(self):
+ # Constructs a browser.
+ # Returns a touple of the form: (browser, backend)
+ def _CreateBrowserInternal(self, delete_profile_dir_after_run):
backend = desktop_browser_backend.DesktopBrowserBackend(
self._options, self._local_executable,
- self._is_content_shell, self._use_login)
+ self._is_content_shell, self._use_login,
+ delete_profile_dir_after_run=delete_profile_dir_after_run)
if sys.platform.startswith('linux'):
p = linux_platform_backend.LinuxPlatformBackend()
elif sys.platform == 'darwin':
@@ -51,8 +55,35 @@ class PossibleDesktopBrowser(possible_browser.PossibleBrowser):
p = win_platform_backend.WinPlatformBackend()
else:
raise NotImplementedError()
+
b = browser.Browser(backend, p)
backend.SetBrowser(b)
+ return (b, backend)
+
+ def Create(self):
+ # If a dirty profile is needed, instantiate an initial browser object and
+ # use that to create a dirty profile.
+ creator_class = profile_types.GetProfileCreator(self.options.profile_type)
+ if creator_class:
+ logging.info(
+ 'Creating a dirty profile of type: %s', self.options.profile_type)
+ (b, backend) = \
+ self._CreateBrowserInternal(delete_profile_dir_after_run=False)
+ with b as b:
+ creator = creator_class(b)
+ creator.CreateProfile()
+ dirty_profile_dir = backend.profile_directory
+ logging.info(
+ "Dirty profile created succesfully in '%s'", dirty_profile_dir)
+
+ # Now create another browser to run tests on using the dirty profile
+ # we just created.
+ (b, backend) = \
+ self._CreateBrowserInternal(delete_profile_dir_after_run=True)
+ backend.SetProfileDirectory(dirty_profile_dir)
+ else:
+ (b, backend) = \
+ self._CreateBrowserInternal(delete_profile_dir_after_run=True)
return b
def SupportsOptions(self, options):
« no previous file with comments | « tools/telemetry/telemetry/core/chrome/desktop_browser_backend.py ('k') | tools/telemetry/telemetry/core/profile_creator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698