New issue
Advanced search Search tips

Issue 819085 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

"org.chromium.android_webview.test.SafeBrowsingTest#testSafeBrowsingClickLearnMoreLink__multiprocess_mode" is flaky

Project Member Reported by chromium...@appspot.gserviceaccount.com, Mar 6 2018

Issue description

"org.chromium.android_webview.test.SafeBrowsingTest#testSafeBrowsingClickLearnMoreLink__multiprocess_mode" is flaky.

This issue was created automatically by the chromium-try-flakes app. Please find the right owner to fix the respective test/step and assign this issue to them. If the step/test is infrastructure-related, please add Infra-Troopers label and change issue status to Untriaged. When done, please remove the issue from Sheriff Bug Queue by removing the Sheriff-Chromium label.

We have detected 3 recent flakes. List of all flakes can be found at https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNycwsSBUZsYWtlImhvcmcuY2hyb21pdW0uYW5kcm9pZF93ZWJ2aWV3LnRlc3QuU2FmZUJyb3dzaW5nVGVzdCN0ZXN0U2FmZUJyb3dzaW5nQ2xpY2tMZWFybk1vcmVMaW5rX19tdWx0aXByb2Nlc3NfbW9kZQw.

Flaky tests should be disabled within 30 minutes unless culprit CL is found and reverted. Please see more details here: https://sites.google.com/a/chromium.org/dev/developers/tree-sheriffs/sheriffing-bug-queues#triaging-auto-filed-flakiness-bugs
 

Comment 1 by boliu@chromium.org, Mar 6 2018

Components: Mobile>WebView
Labels: OS-Android
Owner: ntfschr@chromium.org
Labels: WebView-SafeBrowsing
Status: Started (was: Untriaged)
org.junit.ComparisonFailure: expected:<...fe_browsing_wv&hl=cs[-CZ]> but was:<...fe_browsing_wv&hl=cs[]>
	at org.junit.Assert.assertEquals(Assert.java:115)
	at org.junit.Assert.assertEquals(Assert.java:144)
	at org.chromium.android_webview.test.SafeBrowsingTest.loadInterstitialAndClickLink(SafeBrowsingTest.java:1053)
	at org.chromium.android_webview.test.SafeBrowsingTest.testSafeBrowsingClickLearnMoreLink(SafeBrowsingTest.java:986)

It looks like this is a locale-related issue. I think "cs" and "cs-CZ" both basically mean "Czech - Czech Republic". I believe Android returns one of those for the locale and native chromium returns the other.

I'll disable the test and land a fix soon.

The locale issue should happen for single process too. I wonder if multiprocess was flagged because of other failures from issue 813739 (which reproduced for clicking the learn more URL when in multiprocess).
Confirmed this bug repros with "cs-CZ" (čeština) but not with "es-MX" (Español México).
Also, same bug with #testSafeBrowsingClickReportErrorLink(). Repros consistently in both single & multi process mode.
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1f664a93a6133fce66d985801f6ea0df795900d3

commit 1f664a93a6133fce66d985801f6ea0df795900d3
Author: Nate Fischer <ntfschr@chromium.org>
Date: Wed Mar 07 01:27:27 2018

AW: disable locale-dependent Safe Browsing tests

This disables two integration tests which depend on device locale. While
these tests pass under some locales like en-US and es-MX, they fail when
the device is in other locales such as cs-CZ.

We should modify the tests to fetch the locale in the same way the
security interstitials component does to create the URLs.

Bug:  819085 
Test: N/A
Change-Id: I9a23b810c8783df36c75ce95a733b46b68b84239
Reviewed-on: https://chromium-review.googlesource.com/952269
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541258}
[modify] https://crrev.com/1f664a93a6133fce66d985801f6ea0df795900d3/android_webview/javatests/src/org/chromium/android_webview/test/SafeBrowsingTest.java

Labels: -Pri-1 -Sheriff-Chromium Pri-3
I don't have time to immediately work on this, so I will decrease the priority. I still intend to fix these tests in the near future, but we should be OK to leave them disabled temporarily because we're mostly covered by the other testSafeBrowsingClick*Link test cases.
Small update: safe browsing code builds the URL using base::i18n::GetConfiguredLocale() [1].

Some thoughts for resolving this:

 1. The most robust solution may be to plumb this to Java, but that feels like overkill
 2. Strip the locale query parameter when we do string comparisons (but then we can't test that we create the locale properly)
 3. Use a different Java API to fetch locale, hope it's more compatible (but that's not very robust)

On the subject of locale, I also filed  issue 820694  related to getSafeBrowsingPrivacyPolicyUrl().

[1] https://cs.chromium.org/chromium/src/components/safe_browsing/base_ui_manager.cc?l=310&gsn=app_locale
[2] https://cs.chromium.org/chromium/src/android_webview/browser/aw_contents_statics.cc?q=getsafebrowsingprivacy&sq=package:chromium&l=64
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bea0f046a8675ebead8142fd015ec2846069d396

commit bea0f046a8675ebead8142fd015ec2846069d396
Author: Nate Fischer <ntfschr@chromium.org>
Date: Wed Mar 14 00:23:24 2018

AW: make Safe Browsing tests robust to device locale

No change to production logic, this only affects tests.

This plumbs base::i18n::GetConfiguredLocale() to Java for Safe Browsing
tests so that we can robustly compare interstitial URLs across various
locales (which actually impacted several more tests than initially
identified in the bug).

getSafeBrowsingLocaleForTesting() uses the same underlying
implementation used by interstitial code to append the 'hl' query
parameter to help center URLs.

This also enables the tests which were previously reported as flaky, as
the issue is now resolved.

Bug:  819085 
Test: change device language to Czech, then run_webview_instrumentation_test_apk -f SafeBrowsingTest#*
Change-Id: I4dd6d9732a29c5b486103f4c3dff7c44f4c5057b
Reviewed-on: https://chromium-review.googlesource.com/959744
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542962}
[modify] https://crrev.com/bea0f046a8675ebead8142fd015ec2846069d396/android_webview/browser/aw_contents.cc
[modify] https://crrev.com/bea0f046a8675ebead8142fd015ec2846069d396/android_webview/java/src/org/chromium/android_webview/AwContents.java
[modify] https://crrev.com/bea0f046a8675ebead8142fd015ec2846069d396/android_webview/javatests/src/org/chromium/android_webview/test/SafeBrowsingTest.java

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
Bulk edit: marking stale 'fixed' bugs as 'verified' since they don't need verification at this point.

Sign in to add a comment