Introduce logged_in_browser and incognito_browser.
BUG=None
TEST=Manual
Change-Id: I2aefdc16f6df87eb65fc016c16e46064bb18aafa
Reviewed-on: https://gerrit.chromium.org/gerrit/62015
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
diff --git a/client/common_lib/cros/chrome.py b/client/common_lib/cros/chrome.py
index c9055ee..c353ed0 100644
--- a/client/common_lib/cros/chrome.py
+++ b/client/common_lib/cros/chrome.py
@@ -12,22 +12,33 @@
# (chromium/src/tools/telemetry/telemetry/core/chrome/chromeos_login_ext).
# The value here must match what is specified in that login extension.
LOGIN_USER = 'test@test.test'
+_BROWSER_TYPE_LOGIN = 'system'
+_BROWSER_TYPE_GUEST = 'system-guest'
-def login():
- """Logs into Chrome.
+def _get_browser(browser_type):
+ options = browser_options.BrowserOptions()
+ options.browser_type = browser_type
+ browser_to_create = browser_finder.FindBrowser(options)
+ return browser_to_create.Create()
+
+
+def logged_in_browser():
+ """Returns a logged in browser.
Wrapping this within a Python with/as construct will take care of
automatically logging into Chrome at the start and logging out of Chrome
at the end, e.g.:
- with chrome.login() as chrome_obj:
+ with chrome.logged_in_browser() as browser:
do_test() # Will be logged in for this.
# Logged out at this point.
@return A Telemetry Browser object supporting context management.
"""
- default_options = browser_options.BrowserOptions()
- default_options.browser_type = 'system'
- browser_to_create = browser_finder.FindBrowser(default_options)
- return browser_to_create.Create()
+ return _get_browser(_BROWSER_TYPE_LOGIN)
+
+
+def incognito_browser():
+ """Returns an incognito browser."""
+ return _get_browser(_BROWSER_TYPE_GUEST)