New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 763880 link

Starred by 1 user

Issue metadata

Status: Fixed
Merged: issue 763407
Owner:
Last visit > 30 days ago
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocking:
issue 750055
issue 760901



Sign in to add a comment

WebView perf tests failing with blank pages because of --ignore-certificate-errors-spki-list switch

Project Member Reported by perezju@chromium.org, Sep 11 2017

Issue description

All webview perf tests appear to be failing showing only blank pages. e.g.:

https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-output/o/profiler-file-id_162-2017-09-07_21-55-157781.png

First failures on upstream bots:

https://luci-milo.appspot.com/buildbot/chromium.perf/Android%20Nexus6%20WebView%20Perf/231

https://luci-milo.appspot.com/buildbot/chromium.perf/Android%20Nexus5X%20WebView%20Perf/245
(or maybe one earlier; previous build got interrupted)

Downstream bots are also failing, but no idea when those started due to issue 762005 also affecting them.
 
Cc: perezju@chromium.org
Components: Mobile>WebView
Labels: -Pri-3 OS-Android Pri-0
Owner: ----
Status: Untriaged (was: Started)
Blocking: 750055
Blocking: 760901
Project Member

Comment 6 by 42576172...@developer.gserviceaccount.com, Sep 11 2017

Mergedinto: 763407
Status: Duplicate (was: Untriaged)

=== BISECT JOB RESULTS ===
Test failure found with culprit

Suspected Commit
  Author : xunjieli
  Commit : 724bb776bcdea642a5bc9cc20fe14bb0282b4900
  Date   : Wed Sep 06 14:29:20 2017
  Subject: [Telemetry] Use --ignore-certificate-errors-spki-list to bypass cert errors

Bisect Details
  Configuration: android_webview_nexus6_aosp_perf_bisect
  Benchmark    : power.typical_10_mobile
  Metric       : application_energy_consumption_mwh/http___m.facebook.com_barackobama

Revision                                 Exit Code      N
chromium@500323                          0 +- N/A       5      good
chromium@500341                          0 +- N/A       5      good
chromium@500344                          0 +- N/A       5      good
chromium@500344,catapult@c5a474f50f      0 +- N/A       5      good
chromium@500344,catapult@724bb776bc      1 +- N/A       5      bad       <--
chromium@500344,catapult@80c47581b1      1 +- N/A       5      bad
chromium@500344,catapult@4f611510b9      1 +- N/A       5      bad
chromium@500344,catapult@442f46edf7      1 +- N/A       5      bad
chromium@500345                          1 +- N/A       5      bad
chromium@500346                          1 +- N/A       5      bad
chromium@500350                          1 +- N/A       5      bad
chromium@500358                          1 +- N/A       5      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=android-webview --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=http...m.facebook.com.barackobama power.typical_10_mobile

More information on addressing performance regressions:
  http://g.co/ChromePerformanceRegressions

Debug information about this bisect:
  https://chromeperf.appspot.com/buildbucket_job_status/8968750539121468048


For feedback, file a bug with component Speed>Bisection
Status: Available (was: Duplicate)
If WebView doesn't load, then we have a bug. Deduplicate this one.
perezju@: Do you know if WebView has a "--user-data-dir" flag ? 
Cc: rsleevi@chromium.org
Summary: WebView perf tests failing with blank pages because of --ignore-certificate-errors-spki-list switch (was: WebView perf tests failing with blank pages)
Cc: bokan@chromium.org
Owner: xunji...@chromium.org
Status: Assigned (was: Available)
I think we should revert the CL now, since this is creating a big hole in our perf measurements for webview and can make some regressions go undetected.

With respect to your specific question, I see we are passing:

  --user-data-dir=/data/data/org.chromium.webview_shell/

which is actually probably wrong. It's using the package name of the webview shell, rather than the webview itself.
Instead of reverting the CL, I think we should let add some logic that does:
"if browser is not webview: 
   Use  --ignore-certificate-errors-spki-list
else:
   ..
"

Then reassign the bug about making sure --ignore-certificate-errors-spki-list integration work on Webview to webview folks.
I agree. Let's not revert that CL.
Please use --ignore-certificate-errors for webview 

Comment 15 by torne@chromium.org, Sep 11 2017

Using the webview shell's data directory would be correct since that's the app which is actually running. Nothing ever gets to write to WebView's own data directory because nothing runs as WebView's UID.

Comment 16 by torne@chromium.org, Sep 11 2017

..however I don't think WebView actually accepts --user-data-dir in the first place; it's probably ignored.
--user-data-dir is a misdirect for the case of WebView.

https://cs.chromium.org/chromium/src/content/public/browser/ignore_errors_cert_verifier.h?rcl=769d0e3570a4f836cff9821c87afbfec7c87c4e5&l=27 is the code to set it up. //chrome does it, as does content_shell, but webview does not appear to call the //content API.

Because --user-data-dir isn't necessarily a //content flag, the IgnoreErrorsCertVerifier lets you pass the flag as an incoming parameter as the (other) command-line flag to expect in order to safely ignore errors.

That is, I believe the root cause is WebView does not call into //content to setup that flag
The code in WebView is at android_webview/browser/net/aw_url_request_context_getter.cc. We need to change it to set up IgnoreErrorsCertVerifier like how io_thread.cc does it.
Labels: -Pri-0 Pri-2
Status: Fixed (was: Assigned)
The breakage appears to be fixed now thanks to the workaround in https://codereview.chromium.org/3012143003/

Let's follow up on  issue 753948  on how to implement the --ignore-certificate-errors-spki-list for WebView.

Sign in to add a comment