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

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py

Issue 423213006: disables android java.net SSL certificate check needed for webpage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merged away check for mac Created 6 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
index c022e202e575889b319ad09ced05dd726fbb5183..6194dbaddbb7da4c5d4c4e586e1ecefad070109e 100644
--- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
@@ -11,7 +11,6 @@ import time
from telemetry.core import exceptions
from telemetry.core import forwarders
-from telemetry.core import platform
from telemetry.core import util
from telemetry.core.backends import adb_commands
from telemetry.core.backends import browser_backend
@@ -26,13 +25,14 @@ from pylib.device import intent # pylint: disable=F0401
class AndroidBrowserBackendSettings(object):
def __init__(self, adb, activity, cmdline_file, package, pseudo_exec_name,
- supports_tab_control):
+ supports_tab_control, relax_ssl_check=False):
self.adb = adb
self.activity = activity
self.cmdline_file = cmdline_file
self.package = package
self.pseudo_exec_name = pseudo_exec_name
self.supports_tab_control = supports_tab_control
+ self.relax_ssl_check = relax_ssl_check
def GetDevtoolsRemotePort(self):
raise NotImplementedError()
@@ -185,6 +185,7 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
self._backend_settings = backend_settings
self._saved_cmdline = ''
self._target_arch = target_arch
+ self._saved_sslflag = ''
# TODO(tonyg): This is flaky because it doesn't reserve the port that it
# allocates. Need to fix this.
@@ -202,9 +203,8 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
self._forwarder_factory = android_forwarder.AndroidForwarderFactory(
self._adb, use_rndis_forwarder)
- if (self.browser_options.netsim or
- platform.GetHostPlatform().GetOSName() == 'mac'):
- assert use_rndis_forwarder, 'Netsim and/or Mac require RNDIS forwarding.'
+ if self.browser_options.netsim or use_rndis_forwarder:
+ assert use_rndis_forwarder, 'Netsim requires RNDIS forwarding.'
self.wpr_port_pairs = forwarders.PortPairs(
http=forwarders.PortPair(0, 80),
https=forwarders.PortPair(0, 443),
@@ -265,6 +265,14 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
def Start(self):
self._SetUpCommandLine()
+
+ # Disables android.net SSL certificate check. This is necessary for
+ # applications using the android.net stack to work with proxy HTTPS server
+ # created by telemetry
+ if self._backend_settings.relax_ssl_check:
+ self._saved_sslflag = self._adb.device().GetProp('socket.relaxsslcheck')
+ self._adb.device().SetProp('socket.relaxsslcheck', 'yes')
+
self._adb.device().RunShellCommand('logcat -c')
if self.browser_options.startup_url:
url = self.browser_options.startup_url
@@ -361,6 +369,10 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
super(AndroidBrowserBackend, self).Close()
self._adb.device().ForceStop(self._backend_settings.package)
+ # Restore android.net SSL check
+ if self._backend_settings.relax_ssl_check:
+ self._adb.device().SetProp('socket.relaxsslcheck', self._saved_sslflag)
+
if self._output_profile_path:
logging.info("Pulling profile directory from device: '%s'->'%s'.",
self._backend_settings.profile_dir,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698