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

Issue 678288 link

Starred by 8 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Feature


Sign in to add a comment

Support Finch in WebView

Project Member Reported by sgu...@chromium.org, Jan 4 2017

Issue description

Add Finch to WebView.
 
Cc: kmilka@google.com paulmiller@chromium.org ti...@chromium.org yiyuny@google.com sgu...@chromium.org
Labels: -Restrict-View-Google -Type-Bug Type-Feature
Blockedon: 732996
Blockedon: 733857
Cc: asvitk...@chromium.org skare@chromium.org
Created  https://crbug.com/733857  for yiyun@ to work on the Service (the part that runs outside of other any app) while kmilka@ works on the WebView side (the part that runs inside other apps).
Blockedon: 739907
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 7 2017

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

commit b5c048ee41a40b38c74a47c81b299628dc832699
Author: Kyle Milka <kmilka@google.com>
Date: Fri Jul 07 02:38:46 2017

Relocate field trial flags to a shared location

This is part 1 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920/
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL moves several feature controlling flags from chrome/
to components/variations/, which can be shared with WebView. 

BUG=678288

Change-Id: I59c31d76adef38c7488dc99b194dda9856ec0496
Reviewed-on: https://chromium-review.googlesource.com/562098
Commit-Queue: Tima Vaisburd <timav@chromium.org>
Reviewed-by: Tima Vaisburd <timav@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484807}
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/chrome/common/chrome_switches.cc
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/chrome/common/chrome_switches.h
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/components/variations/variations_switches.cc
[modify] https://crrev.com/b5c048ee41a40b38c74a47c81b299628dc832699/components/variations/variations_switches.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 10 2017

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

commit bca4f583beada1f35bec7009e8289721bea0ed9a
Author: Kyle Milka <kmilka@google.com>
Date: Mon Jul 10 21:11:46 2017

Make GetOrCreateGUID synchronous

This is part 2 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920/
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL makes the reading on the client ID happen synchronously
at WebView startup only if the enable-webview-finch command
line flag is provided. This behavior is necessary in order to be
able to set up field trials as early as possible in the WebView
startup process. GetOrCreateGUID() is now a static member of
the AwMetricsServiceClient class.

BUG=678288

Change-Id: I69153f87243fa84f6816785090bfa963e34cf0b2
Reviewed-on: https://chromium-review.googlesource.com/561920
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Selim Gurun <sgurun@chromium.org>
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485390}
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/browser/aw_browser_context.cc
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/browser/aw_browser_main_parts.cc
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/browser/aw_metrics_service_client.cc
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/browser/aw_metrics_service_client.h
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/common/aw_switches.cc
[modify] https://crrev.com/bca4f583beada1f35bec7009e8289721bea0ed9a/android_webview/common/aw_switches.h

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 14 2017

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

commit 34b11e87de7293a6fb4768184d755ad594b7ab8e
Author: Kyle Milka <kmilka@google.com>
Date: Fri Jul 14 01:14:17 2017

Add the VariationsFieldTrialCreator class

This is part 3 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920/
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL creates the VariationsFieldTrialCreator class. This class
contains the code previously in VariationsService that
is needed by both Chrome and WebView, mainly the portions
needed to call CreateTrialsFromSeed.  The VariationsService
class now contains an instance of this new class.

BUG=678288

Change-Id: Ic4340d5a0396cca56892a3b541e4cf6115bb8afb
Reviewed-on: https://chromium-review.googlesource.com/561922
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486590}
[modify] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/BUILD.gn
[add] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/field_trial_creator_unittest.cc
[add] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/variations_field_trial_creator.cc
[add] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/variations_field_trial_creator.h
[modify] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/variations_service.cc
[modify] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/variations_service.h
[modify] https://crrev.com/34b11e87de7293a6fb4768184d755ad594b7ab8e/components/variations/service/variations_service_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 14 2017

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

commit f3aaa1c485238e499f3bf376fd7f30200e2eb296
Author: Alexei Svitkine (slow) <asvitkine@chromium.org>
Date: Fri Jul 14 14:33:43 2017

Revert "Add the VariationsFieldTrialCreator class"

This reverts commit 34b11e87de7293a6fb4768184d755ad594b7ab8e.

Reason for revert: Causing crashes:  crbug.com/742707 

Original change's description:
> Add the VariationsFieldTrialCreator class
> 
> This is part 3 of 6 for FieldTrial refactoring for WebView
> 
> Part 1: https://chromium-review.googlesource.com/c/562098/
> Part 2: https://chromium-review.googlesource.com/c/561920/
> Part 3: https://chromium-review.googlesource.com/c/561922/
> Part 4: https://chromium-review.googlesource.com/c/561980/
> Part 5: https://chromium-review.googlesource.com/c/562417/
> Part 6: https://chromium-review.googlesource.com/c/562021/
> 
> This CL creates the VariationsFieldTrialCreator class. This class
> contains the code previously in VariationsService that
> is needed by both Chrome and WebView, mainly the portions
> needed to call CreateTrialsFromSeed.  The VariationsService
> class now contains an instance of this new class.
> 
> BUG=678288
> 
> Change-Id: Ic4340d5a0396cca56892a3b541e4cf6115bb8afb
> Reviewed-on: https://chromium-review.googlesource.com/561922
> Commit-Queue: Kyle Milka <kmilka@google.com>
> Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#486590}

TBR=asvitkine@chromium.org,timav@chromium.org,paulmiller@chromium.org,kmilka@google.com

Change-Id: Idf0f12b5bd6d1bb7edf41cbdc6f767f8790de6e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 678288
Reviewed-on: https://chromium-review.googlesource.com/571920
Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
Commit-Queue: Alexei Svitkine (slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486755}
[modify] https://crrev.com/f3aaa1c485238e499f3bf376fd7f30200e2eb296/components/variations/service/BUILD.gn
[delete] https://crrev.com/1a6a1f024c7bed6b199e181a662e12c3229740c0/components/variations/service/field_trial_creator_unittest.cc
[delete] https://crrev.com/1a6a1f024c7bed6b199e181a662e12c3229740c0/components/variations/service/variations_field_trial_creator.cc
[delete] https://crrev.com/1a6a1f024c7bed6b199e181a662e12c3229740c0/components/variations/service/variations_field_trial_creator.h
[modify] https://crrev.com/f3aaa1c485238e499f3bf376fd7f30200e2eb296/components/variations/service/variations_service.cc
[modify] https://crrev.com/f3aaa1c485238e499f3bf376fd7f30200e2eb296/components/variations/service/variations_service.h
[modify] https://crrev.com/f3aaa1c485238e499f3bf376fd7f30200e2eb296/components/variations/service/variations_service_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 14 2017

Labels: merge-merged-3157
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6195fe24a45b33457679541520bbb73c86937e8e

commit 6195fe24a45b33457679541520bbb73c86937e8e
Author: Alexei Svitkine <asvitkine@chromium.org>
Date: Fri Jul 14 14:48:23 2017

Revert "Add the VariationsFieldTrialCreator class"

This reverts commit 34b11e87de7293a6fb4768184d755ad594b7ab8e.

Reason for revert: Causing crashes:  crbug.com/742707 

Original change's description:
> Add the VariationsFieldTrialCreator class
>
> This is part 3 of 6 for FieldTrial refactoring for WebView
>
> Part 1: https://chromium-review.googlesource.com/c/562098/
> Part 2: https://chromium-review.googlesource.com/c/561920/
> Part 3: https://chromium-review.googlesource.com/c/561922/
> Part 4: https://chromium-review.googlesource.com/c/561980/
> Part 5: https://chromium-review.googlesource.com/c/562417/
> Part 6: https://chromium-review.googlesource.com/c/562021/
>
> This CL creates the VariationsFieldTrialCreator class. This class
> contains the code previously in VariationsService that
> is needed by both Chrome and WebView, mainly the portions
> needed to call CreateTrialsFromSeed.  The VariationsService
> class now contains an instance of this new class.
>
> BUG=678288
>
> Change-Id: Ic4340d5a0396cca56892a3b541e4cf6115bb8afb
> Reviewed-on: https://chromium-review.googlesource.com/561922
> Commit-Queue: Kyle Milka <kmilka@google.com>
> Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#486590}

TBR=asvitkine@chromium.org, kmilka@google.com, paulmiller@chromium.org, timav@chromium.org

(cherry picked from commit f3aaa1c485238e499f3bf376fd7f30200e2eb296)

Change-Id: Idf0f12b5bd6d1bb7edf41cbdc6f767f8790de6e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 678288
Reviewed-on: https://chromium-review.googlesource.com/571920
Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
Commit-Queue: Alexei Svitkine (slow) <asvitkine@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#486755}
Reviewed-on: https://chromium-review.googlesource.com/571762
Cr-Commit-Position: refs/branch-heads/3157@{#3}
Cr-Branched-From: c4edca2b0dbc21e8957f2e3da55ff89f0c115e6d-refs/heads/master@{#486615}
[modify] https://crrev.com/6195fe24a45b33457679541520bbb73c86937e8e/components/variations/service/BUILD.gn
[delete] https://crrev.com/ff03597d126ef18c9c0f702dd36ec4b743379014/components/variations/service/field_trial_creator_unittest.cc
[delete] https://crrev.com/ff03597d126ef18c9c0f702dd36ec4b743379014/components/variations/service/variations_field_trial_creator.cc
[delete] https://crrev.com/ff03597d126ef18c9c0f702dd36ec4b743379014/components/variations/service/variations_field_trial_creator.h
[modify] https://crrev.com/6195fe24a45b33457679541520bbb73c86937e8e/components/variations/service/variations_service.cc
[modify] https://crrev.com/6195fe24a45b33457679541520bbb73c86937e8e/components/variations/service/variations_service.h
[modify] https://crrev.com/6195fe24a45b33457679541520bbb73c86937e8e/components/variations/service/variations_service_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 20 2017

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

commit 3aababd92cfb539da0bfe07c1eeb97c783e46cd6
Author: Kyle Milka <kmilka@google.com>
Date: Thu Jul 20 19:01:32 2017

Add the VariationsFieldTrialCreator class

This is part 3 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920/
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL fixes a bug introduced in https://chromium-review.googlesource.com/c/561922/.
It also contains a unit test for the bug.

This new class contains the code previously in VariationsService that
is needed by both Chrome and WebView, mainly the portions
needed to call CreateTrialsFromSeed. The VariationsService
class now contains an instance of this new class.

BUG=678288

Change-Id: Ib1acf1a30ad50baded043b2fc05e9d87cd1fb4a3
Reviewed-on: https://chromium-review.googlesource.com/576288
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488337}
[modify] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/BUILD.gn
[add] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_field_trial_creator.cc
[add] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_field_trial_creator.h
[add] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_field_trial_creator_unittest.cc
[modify] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_service.cc
[modify] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_service.h
[modify] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/service/variations_service_unittest.cc
[modify] https://crrev.com/3aababd92cfb539da0bfe07c1eeb97c783e46cd6/components/variations/variations_seed_store.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 20 2017

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

commit 9ae0cdee1d5863195499430e76a9102cfd153cc2
Author: Kyle Milka <kmilka@google.com>
Date: Thu Jul 20 20:24:57 2017

Add the PlatformFieldTrials Class

This is part 4 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920/
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL adds a new class, PlatformFieldTrials, that the 
Chrome specific ChromeBrowserFieldTrials is now
derived from. Its implementation is currently just stubs
as they shouldn't be necessary for WebView.

BUG=678288

Change-Id: I5d7b1b77f5af39594977a5bd7ed66bf51cb63628
Reviewed-on: https://chromium-review.googlesource.com/561980
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Alexei Svitkine (slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488383}
[modify] https://crrev.com/9ae0cdee1d5863195499430e76a9102cfd153cc2/chrome/browser/chrome_browser_field_trials.h
[modify] https://crrev.com/9ae0cdee1d5863195499430e76a9102cfd153cc2/components/variations/BUILD.gn
[add] https://crrev.com/9ae0cdee1d5863195499430e76a9102cfd153cc2/components/variations/platform_field_trials.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 27 2017

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

commit 69252933b4499aff9ecd820da23af76734167ae0
Author: Kyle Milka <kmilka@google.com>
Date: Thu Jul 27 23:28:23 2017

Move SetupFieldTrials() into VariationsFieldTrialCreator

This is part 5 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL migrates Chrome's SetupFieldTrials() function to be
a member of VariationsFieldTrialCreator. There were several pieces
that remain unique to Chrome, mainly the set up for navigation
tracing and the parsing on Chrome's about::flags

BUG=678288

Change-Id: I514d23b9494227eb036ebd22f03b5bb9098c0385
Reviewed-on: https://chromium-review.googlesource.com/562417
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Alexei Svitkine (OOO July28-Aug6) <asvitkine@chromium.org>
Commit-Queue: Kyle Milka <kmilka@google.com>
Cr-Commit-Position: refs/heads/master@{#490098}
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/components/variations/service/BUILD.gn
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/components/variations/service/variations_field_trial_creator.cc
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/components/variations/service/variations_field_trial_creator.h
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/components/variations/service/variations_service.cc
[modify] https://crrev.com/69252933b4499aff9ecd820da23af76734167ae0/components/variations/service/variations_service.h

Blockedon: 754060
Project Member

Comment 15 by bugdroid1@chromium.org, Aug 10 2017

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

commit b819b69d7cf653564e51d39b794ba6d9137441d2
Author: Kyle Milka <kmilka@google.com>
Date: Thu Aug 10 02:16:48 2017

Allow overriding of the platform that experiments are filtered for

This CL adds the OverrideVariationsPlatform() function to the
VariationsFieldTrialCreator class. Now platforms such as WebView can
correctly filter their list of active experiments.

Bug=678288

Change-Id: I91f89457475775d1ddece81ecc3519b8461d0e8c
Reviewed-on: https://chromium-review.googlesource.com/607040
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Alexei Svitkine (very slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493231}
[modify] https://crrev.com/b819b69d7cf653564e51d39b794ba6d9137441d2/components/variations/service/variations_field_trial_creator.cc
[modify] https://crrev.com/b819b69d7cf653564e51d39b794ba6d9137441d2/components/variations/service/variations_field_trial_creator.h

Project Member

Comment 16 by bugdroid1@chromium.org, Aug 12 2017

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

commit 05f79b0d83ebfce4d781ddf7c431c33274923d63
Author: Kyle Milka <kmilka@google.com>
Date: Sat Aug 12 06:17:47 2017

Rename variations controlling flag in native code

The flag is being renamed in the java code, so it also needs to be
renamed on the native side.

Bug=678288

Change-Id: Ie6fec694066bc579ecf6cb9ca5d8636eb2c5375d
Reviewed-on: https://chromium-review.googlesource.com/612653
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Kyle Milka <kmilka@google.com>
Cr-Commit-Position: refs/heads/master@{#493966}
[modify] https://crrev.com/05f79b0d83ebfce4d781ddf7c431c33274923d63/android_webview/browser/aw_browser_main_parts.cc
[modify] https://crrev.com/05f79b0d83ebfce4d781ddf7c431c33274923d63/android_webview/browser/aw_metrics_service_client.cc
[modify] https://crrev.com/05f79b0d83ebfce4d781ddf7c431c33274923d63/android_webview/common/aw_switches.cc
[modify] https://crrev.com/05f79b0d83ebfce4d781ddf7c431c33274923d63/android_webview/common/aw_switches.h

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 14 2017

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

commit 789fc54df37fb8be8124ce458e7de6bec11264a9
Author: Kyle Milka <kmilka@google.com>
Date: Mon Aug 14 20:46:19 2017

Set up field trials within WebView

This is part 6 of 6 for FieldTrial refactoring for WebView

Part 1: https://chromium-review.googlesource.com/c/562098/
Part 2: https://chromium-review.googlesource.com/c/561920
Part 3: https://chromium-review.googlesource.com/c/561922/
Part 4: https://chromium-review.googlesource.com/c/561980/
Part 5: https://chromium-review.googlesource.com/c/562417/
Part 6: https://chromium-review.googlesource.com/c/562021/

This CL makes use of previous refactoring work to actually
set up field trials within WebView. The AwFieldTrialCreator class is
now used by AwBrowserMainParts to create the set of active experiments
within WebView.

BUG=678288

Change-Id: Id76b98e5adb432ca3fa7ea4cffd7c0296f160e82
Reviewed-on: https://chromium-review.googlesource.com/562021
Commit-Queue: Kyle Milka <kmilka@google.com>
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Reviewed-by: Tima Vaisburd <timav@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Alexei Svitkine (very slow) <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494175}
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/BUILD.gn
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/DEPS
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_browser_main_parts.cc
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_browser_main_parts.h
[add] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_field_trial_creator.cc
[add] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_field_trial_creator.h
[add] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_field_trials.h
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_metrics_service_client.cc
[modify] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_metrics_service_client.h
[add] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_variations_service_client.cc
[add] https://crrev.com/789fc54df37fb8be8124ce458e7de6bec11264a9/android_webview/browser/aw_variations_service_client.h

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 14 2017

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

commit 304220b98d1d15bd4ffd0062624ff588a6c2f060
Author: Kyle Milka <kmilka@google.com>
Date: Mon Aug 14 23:07:39 2017

Only call LoadOrCreateClientId() once.

Setup for field trials in WebView was causing GetOrCreateClientId()
to be called twice. This CL fixes this bug by adding GetClientId() to
retrieve a client id that has previously been cached by a call to the
renamed LoadOrCreateClientId().

Bug: 678288
Change-Id: Iba90aba771cba7b650062b88134884615f0137f7
Reviewed-on: https://chromium-review.googlesource.com/614641
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Kyle Milka <kmilka@google.com>
Cr-Commit-Position: refs/heads/master@{#494231}
[modify] https://crrev.com/304220b98d1d15bd4ffd0062624ff588a6c2f060/android_webview/browser/aw_field_trial_creator.cc
[modify] https://crrev.com/304220b98d1d15bd4ffd0062624ff588a6c2f060/android_webview/browser/aw_metrics_service_client.cc
[modify] https://crrev.com/304220b98d1d15bd4ffd0062624ff588a6c2f060/android_webview/browser/aw_metrics_service_client.h

Blockedon: 758290
Blockedon: 758450

Comment 21 by kmilka@google.com, Aug 25 2017

Blockedon: 759190
is it not possible to add a non chromium or google account to cc?  It would be pretty cool to follow along and see when this actually gets finished :^)

Comment 23 by boliu@chromium.org, Aug 26 2017

Cc: kmilka1...@gmail.com
yes, but you need a google/chromium account to do it
Owner: paulmiller@chromium.org
Status: Assigned (was: Untriaged)
Blocking: 763187
Blocking: 765000
Components: Internals>Metrics
Labels: -Pri-3 M-64 Pri-1
This definitely needs higher priority. Lots of troubles can be avoided if this can work. Initially assigning M64 milestone.

Comment 28 by rch@chromium.org, Sep 18 2017

Cc: rch@chromium.org
Cc: changwan@chromium.org
Labels: -Pri-1 Pri-3
Labels: -Pri-3 Pri-1
Cc: -sgu...@chromium.org
Blockedon: 782068
Blockedon: -782068
Blockedon: 784905
Blocking: 801771
Cc: -ti...@chromium.org -kmilka@google.com -yiyuny@google.com sbirch@chromium.org
Labels: -M-64 M-65
Blockedon: 817506
Blockedon: 817508
Blockedon: 823410
Blockedon: 828610
Cc: -kmilka1...@gmail.com kmilka@chromium.org
Blockedon: 736545
Blockedon: 841027
Project Member

Comment 44 by bugdroid1@chromium.org, May 8 2018

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

commit b6aa89ae4128d8ecc9fb3936fed002daa673c2a3
Author: Paul Miller <paulmiller@google.com>
Date: Tue May 08 22:37:05 2018

WebView: Prepare to enable variations

Add sVariationsAlwaysEnabled, so that variations can be enabled as a
1-line change. Remove ReadVariationsSeedDataFromFile, since the seed is
loaded in Java. Use VariationsSeedBridge.setVariationsFirstRunSeed to
pass the seed from Java to native via prefs. When a seed is loaded
successfully, automatically enable the WebView variations cmd flag. This
means that passing the flag manually will have no effect. The flag will
be removed in a later change.

BUG=678288

Change-Id: I6f63eba040a0fe4ad189ded5580f45d518c066c0
Reviewed-on: https://chromium-review.googlesource.com/1049049
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556989}
[modify] https://crrev.com/b6aa89ae4128d8ecc9fb3936fed002daa673c2a3/android_webview/browser/aw_field_trial_creator.cc
[modify] https://crrev.com/b6aa89ae4128d8ecc9fb3936fed002daa673c2a3/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java

Project Member

Comment 45 by bugdroid1@chromium.org, May 9 2018

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

commit 56a64baf5265e95f31afd131a73420b43579e27d
Author: Paul Miller <paulmiller@google.com>
Date: Wed May 09 00:02:09 2018

WebView: Preload client ID for variations

Variations' EntropyProvider requires a random but stable seed value.
WebView uses the metrics client ID for this. In the WebView-variations
prototype, variations read the client ID synchronously on the main
thread. This wasn't terrible, because the client ID file was very small.
But it's better to do it in the background.

Add AwMetricsServiceClient.preloadClientId to load the client ID in
Java, before native init. Call this in VariationsSeedLoader's background
task. Then use the preloaded value in native variations and metrics code.
If preloading fails (either because there was no client ID file, or
because the background task took too long), then variations will be
disabled, while metrics will load or create the client ID as normal.

The client ID file will never exist the first time an app uses WebView;
this implies variations will always be disabled on the first run. But
this was already the case, since no variations seed will be present on
first run either.

BUG=678288

Change-Id: Ied9b4a73fe4cface9911e825bc5a3f282a4d1eff
Reviewed-on: https://chromium-review.googlesource.com/1043063
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Reviewed-by: Changwan Ryu <changwan@chromium.org>
Reviewed-by: Tao Bai <michaelbai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557015}
[modify] https://crrev.com/56a64baf5265e95f31afd131a73420b43579e27d/android_webview/browser/aw_field_trial_creator.cc
[modify] https://crrev.com/56a64baf5265e95f31afd131a73420b43579e27d/android_webview/browser/aw_metrics_service_client.cc
[modify] https://crrev.com/56a64baf5265e95f31afd131a73420b43579e27d/android_webview/browser/aw_metrics_service_client.h
[modify] https://crrev.com/56a64baf5265e95f31afd131a73420b43579e27d/android_webview/java/src/org/chromium/android_webview/AwMetricsServiceClient.java
[modify] https://crrev.com/56a64baf5265e95f31afd131a73420b43579e27d/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java

Project Member

Comment 46 by bugdroid1@chromium.org, May 9 2018

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

commit f07024dc217b214a79ad0819a2ea954e6b312d7c
Author: Paul Miller <paulmiller@google.com>
Date: Wed May 09 16:07:56 2018

WebView: Enable variations

This change designed for easy revert.

BUG=678288

Change-Id: I85b5a9e997237671567d65cd8ff40aa6aadcdae3
Reviewed-on: https://chromium-review.googlesource.com/1050931
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557207}
[modify] https://crrev.com/f07024dc217b214a79ad0819a2ea954e6b312d7c/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java

Project Member

Comment 47 by bugdroid1@chromium.org, May 9 2018

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

commit a4c78341c85c19d71e2eab8a8ade5fd2728d2437
Author: Paul Miller <paulmiller@google.com>
Date: Wed May 09 22:56:56 2018

WebView: Prepare to enable variations, part 2

Pass the seed via the "firstrun" mechanism and don't early out of
mLoadTask if sVariationsAlwaysEnabled is true. These changes were
mistakenly removed from b6aa89ae4128d8ecc9fb3936fed002daa673c2a3 before
committing.

BUG=678288

Change-Id: I744bfa04291352b691f0c53407c3fe3cac526abf
Reviewed-on: https://chromium-review.googlesource.com/1053182
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557362}
[modify] https://crrev.com/a4c78341c85c19d71e2eab8a8ade5fd2728d2437/android_webview/java/src/org/chromium/android_webview/VariationsSeedLoader.java

Blockedon: 841623
Project Member

Comment 49 by bugdroid1@chromium.org, May 10 2018

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

commit f8f05d0623a280b02b980aaf622c30713fa98d87
Author: Paul Miller <paulmiller@google.com>
Date: Thu May 10 18:23:56 2018

WebView: Report test experiment via logcat

This is for testing purposes and will be removed after launching
variations in WebView:  https://crbug.com/841623 . Skipping presubmit for
LOG(INFO).

BUG=678288
NOPRESUBMIT=true

Change-Id: Ia100eb88a20b3155ef8d280e598644b3684990a0
Reviewed-on: https://chromium-review.googlesource.com/1053375
Reviewed-by: Changwan Ryu <changwan@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557593}
[modify] https://crrev.com/f8f05d0623a280b02b980aaf622c30713fa98d87/android_webview/browser/aw_field_trial_creator.cc

Blockedon: 841969
One thing I just noticed: VariationsSeedBridge#setVariationsFirstRunSeed() is in the critical path but calls SharedPreferences#edit() and #apply() which sometimes takes ~19 ms when testing locally. Could you take a look?

Attaching .trace file which you can read from Android Device Monitor.

webview_2.trace
749 KB Download
Blockedon: 846898
^ split that out as https://crbug.com/846898
Blockedon: 866722
Project Member

Comment 54 by bugdroid1@chromium.org, Jul 25

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

commit ed76dd0b4e9ddd87e403b2895080bb999c638078
Author: Paul Miller <paulmiller@google.com>
Date: Wed Jul 25 19:29:51 2018

Pretend all stand-alone WebView channels are stable for variations

Previously, stand-alone WebView had channel "unknown", meaning only
experiments with no channel filter would apply to it.

BUG=678288

Change-Id: I409703dcd170ca247619b11edc78fcbc8953aa75
Reviewed-on: https://chromium-review.googlesource.com/1149263
Reviewed-by: Changwan Ryu <changwan@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578016}
[modify] https://crrev.com/ed76dd0b4e9ddd87e403b2895080bb999c638078/android_webview/browser/aw_variations_service_client.cc

Project Member

Comment 55 by bugdroid1@chromium.org, Aug 2

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

commit f2124d1a897ce682f2db8a04e6aa7f5ecb41e0cc
Author: Paul Miller <paulmiller@chromium.org>
Date: Thu Aug 02 22:24:04 2018

Revert "WebView: Report test experiment via logcat"

This reverts commit f8f05d0623a280b02b980aaf622c30713fa98d87.

Variations has launched, so this log is no longer needed.

Original change's description:
> WebView: Report test experiment via logcat
> 
> This is for testing purposes and will be removed after launching
> variations in WebView:  https://crbug.com/841623 . Skipping presubmit for
> LOG(INFO).
> 
> BUG=678288
> NOPRESUBMIT=true
> 
> Change-Id: Ia100eb88a20b3155ef8d280e598644b3684990a0
> Reviewed-on: https://chromium-review.googlesource.com/1053375
> Reviewed-by: Changwan Ryu <changwan@chromium.org>
> Reviewed-by: Bo <boliu@chromium.org>
> Commit-Queue: Paul Miller <paulmiller@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#557593}

TBR=boliu@chromium.org,changwan@chromium.org,paulmiller@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  841623 
Change-Id: Ia9259943b4b7896de98e917e29721ec5126aa00a
Reviewed-on: https://chromium-review.googlesource.com/1161024
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Commit-Queue: Paul Miller <paulmiller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580350}
[modify] https://crrev.com/f2124d1a897ce682f2db8a04e6aa7f5ecb41e0cc/android_webview/browser/aw_field_trial_creator.cc

Cc: des...@chromium.org tobiasjs@chromium.org
+desaic@, tobiasjs@
Is there any legal concern around using murmur hash in
https://chromium-review.googlesource.com/c/1322350 ? (for one of dependent issues)

Any reason not to use src/third_party/smhasher/src/MurmurHash3.cpp ?

Based upon the fact it's already part of chromium, my not-a-lawyer-opinion is that it's fine. Check with go/opensource if you're still worried.
I had to re-implement MurmurHash for performance (my use-case hashes 2-byte strings many more times than any other string length, so I optimized for that) and portability (smhasher assumes little-endian, and ignores alignment requirements).
Blocking: -763187

Sign in to add a comment