Upstream WebView's Android-O-specific code |
|||||||||||
Issue descriptionWebView's Android SDK was rolled here: https://chromium-review.googlesource.com/c/614660 Chrome's was rolled here: https://chromium-review.googlesource.com/c/550924 Our downstream code which uses O APIs can now be upstreamed.
,
Aug 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38 commit 44bed764c12d64c2cfb4dc60c593fb63fb8f2a38 Author: Paul Miller <paulmiller@google.com> Date: Tue Aug 22 01:08:14 2017 WebView: Move usage of Android O APIs upstream These new classes are moved from downstream to upstream: - AwAutofillManager - AwAutofillProvider - WebViewChromiumFactoryProviderForO These existing classes have their downstream counterparts merged in: - SmartSelectionProvider - WebViewChromium - WebViewContentsClientAdapter - WebViewDelegateFactory ContentClassFactory is removed, and ContentClassFactoryInstaller is replaced with SmartSelectionToggle. The previous design here was for ContentClassFactoryInstaller to enable smart selection by installing SmartSelectionProviderImpl (downstream) as the implementation of SmartSelectionProvider. Since SmartSelectionProviderImpl is now merged into SmartSelectionProvider, polymorphism is no longer needed. The new design is for SmartSelectionToggle to enable smart selection directly by setting a boolean in SmartSelectionClient We set a GN flag, unpublished_apis_upstream, to omit the corresponding downstream classes. This flag will be removed after the downstream classes are removed. We do some O-related cleanup: some Object references are replaced with with TextClassifier and AutofillValue. In SelectionPopupController, the reflection for android.R.id.textAssist is removed. WebViewChromiumFactoryProviderForO will remain as an O-specific entry point. (This differs from previous Android versions.) BUG= 756653 Change-Id: If5aa3103124d3e3e0bd2e5cbb1610650b8765faf Reviewed-on: https://chromium-review.googlesource.com/620109 Commit-Queue: Paul Miller <paulmiller@chromium.org> Reviewed-by: Tima Vaisburd <timav@chromium.org> Reviewed-by: Theresa <twellington@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Tao Bai <michaelbai@chromium.org> Reviewed-by: Donn Denman <donnd@chromium.org> Cr-Commit-Position: refs/heads/master@{#496156} [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/BUILD.gn [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/BUILD.gn [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/glue.gni [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java [add] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForO.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/glue/java/src/com/android/webview/chromium/WebViewDelegateFactory.java [add] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/java/src/org/chromium/android_webview/AwAutofillManager.java [add] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/java/src/org/chromium/android_webview/AwAutofillProvider.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/android_webview/java/src/org/chromium/android_webview/AwContents.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/BUILD.gn [delete] https://crrev.com/2a1c904afb0a8840548012123cd59494bc84ee5e/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content/browser/SmartSelectionClient.java [modify] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content/browser/SmartSelectionProvider.java [add] https://crrev.com/44bed764c12d64c2cfb4dc60c593fb63fb8f2a38/content/public/android/java/src/org/chromium/content_public/browser/SmartSelectionToggle.java
,
Aug 22 2017
The following revision refers to this bug: https://chrome-internal.googlesource.com/clank/internal/apps/+/205eb89104ad2b95c6cbe407e44df4f7834fe5ca commit 205eb89104ad2b95c6cbe407e44df4f7834fe5ca Author: Tima Vaisburd <timav@google.com> Date: Tue Aug 22 02:45:16 2017
,
Aug 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5 commit 1bf3158833e8ecbc8dbb1ea3288864f61ba208e5 Author: Paul Miller <paulmiller@chromium.org> Date: Tue Aug 22 03:05:16 2017 Revert "WebView: Move usage of Android O APIs upstream" This reverts commit 44bed764c12d64c2cfb4dc60c593fb63fb8f2a38. Reason for revert: broke downstream Original change's description: > WebView: Move usage of Android O APIs upstream > > These new classes are moved from downstream to upstream: > - AwAutofillManager > - AwAutofillProvider > - WebViewChromiumFactoryProviderForO > > These existing classes have their downstream counterparts merged in: > - SmartSelectionProvider > - WebViewChromium > - WebViewContentsClientAdapter > - WebViewDelegateFactory > > ContentClassFactory is removed, and ContentClassFactoryInstaller is > replaced with SmartSelectionToggle. The previous design here was for > ContentClassFactoryInstaller to enable smart selection by installing > SmartSelectionProviderImpl (downstream) as the implementation of > SmartSelectionProvider. Since SmartSelectionProviderImpl is now merged > into SmartSelectionProvider, polymorphism is no longer needed. The new > design is for SmartSelectionToggle to enable smart selection directly by > setting a boolean in SmartSelectionClient > > We set a GN flag, unpublished_apis_upstream, to omit the corresponding > downstream classes. This flag will be removed after the downstream > classes are removed. > > We do some O-related cleanup: some Object references are replaced with > with TextClassifier and AutofillValue. In SelectionPopupController, the > reflection for android.R.id.textAssist is removed. > > WebViewChromiumFactoryProviderForO will remain as an O-specific entry > point. (This differs from previous Android versions.) > > BUG= 756653 > > Change-Id: If5aa3103124d3e3e0bd2e5cbb1610650b8765faf > Reviewed-on: https://chromium-review.googlesource.com/620109 > Commit-Queue: Paul Miller <paulmiller@chromium.org> > Reviewed-by: Tima Vaisburd <timav@chromium.org> > Reviewed-by: Theresa <twellington@chromium.org> > Reviewed-by: Bo <boliu@chromium.org> > Reviewed-by: Tao Bai <michaelbai@chromium.org> > Reviewed-by: Donn Denman <donnd@chromium.org> > Cr-Commit-Position: refs/heads/master@{#496156} TBR=michaelbai@chromium.org,boliu@chromium.org,donnd@chromium.org,twellington@chromium.org,timav@chromium.org,paulmiller@chromium.org Change-Id: I2abd0f99b110c6883c1dea8b0b6b3b41354c9e26 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 756653 Reviewed-on: https://chromium-review.googlesource.com/625248 Reviewed-by: Tima Vaisburd <timav@chromium.org> Commit-Queue: Paul Miller <paulmiller@chromium.org> Cr-Commit-Position: refs/heads/master@{#496190} [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/BUILD.gn [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/BUILD.gn [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/glue.gni [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java [delete] https://crrev.com/28cc253ce347f9a58a0e7c6b7b249c239c4b2669/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForO.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/glue/java/src/com/android/webview/chromium/WebViewDelegateFactory.java [delete] https://crrev.com/28cc253ce347f9a58a0e7c6b7b249c239c4b2669/android_webview/java/src/org/chromium/android_webview/AwAutofillManager.java [delete] https://crrev.com/28cc253ce347f9a58a0e7c6b7b249c239c4b2669/android_webview/java/src/org/chromium/android_webview/AwAutofillProvider.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/android_webview/java/src/org/chromium/android_webview/AwContents.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/BUILD.gn [add] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/SmartSelectionClient.java [modify] https://crrev.com/1bf3158833e8ecbc8dbb1ea3288864f61ba208e5/content/public/android/java/src/org/chromium/content/browser/SmartSelectionProvider.java [delete] https://crrev.com/28cc253ce347f9a58a0e7c6b7b249c239c4b2669/content/public/android/java/src/org/chromium/content_public/browser/SmartSelectionToggle.java
,
Aug 25 2017
Issue 749429 has been merged into this issue.
,
Aug 26 2017
Is it possible for this to start happening during the Android Developer Preview releases so the Chromium code is published for future stable releases of Android on launch? The current approach is problematic for downstream projects of AOSP, especially those targeting Nexus / Pixel devices. The process starts around the time the stable release of Android happens which means there's a period of time to do the upstreaming work and then an 18 week delay for it to reach a Chromium stable release. It's not possible to delay moving to Android Oreo until the WebView support code is pushed because Google ends device-specific releases Nexus/Pixel devices based on the old major version shortly after the new major version comes out. At most, there's an extra month or two of them, and that's not guaranteed. It stops being possible to do full security updates without moving to the next major version. In CopperheadOS, we moved to providing the WebView via Monochrome Chromium builds and now we'll need to have a duplicate copy of the WebView alongside it without the desired security / privacy changes. My understanding from last year was that it was going to be pushed earlier this time around: https://bugs.chromium.org/p/chromium/issues/detail?id=623989#c12
,
Aug 28 2017
I intend to land this this week, for m62. (I landed it last week but it got reverted.)
,
Aug 29 2017
The following revision refers to this bug: https://chrome-internal.googlesource.com/clank/internal/apps/+/3fa639f28fb2bb5d300b63e4ec740332001950ae commit 3fa639f28fb2bb5d300b63e4ec740332001950ae Author: Paul Miller <paulmiller@google.com> Date: Tue Aug 29 15:51:38 2017
,
Aug 29 2017
We resolved some of the problems that caused the delays last year, but we had a new set of issues instead (licensing changes for some of the code included in the system SDK stubs). That's also resolved now (the system SDK stubs were rolled earlier this month) after discussion with Android and the open source licensing experts - we have an agreed process for compliance now which won't be a source of delays in future. However, we can't start doing this during the developer preview - until the final non-preview SDK is released, Android do not want the system SDK updated/released and so we also can't upstream our changes. Our goal is to roll the system and standard SDKs together (shortly after the final SDK release) and then upstream the code for the next Chrome branch at that time; because of the licensing issue we unfortunately once again missed that, but only by one release: the final SDK was released on June 8, which means the branch point for M60 had already passed, so M61 was realistically the earliest we could have managed. I'm guessing that's not much better for you? I've opened a separate issue 760187 to investigate whether we can work around this by releasing the code for the new Android releases as a separate source tarball while still respecting the restrictions of Android; the bug is currently not publicly visible as I'm not sure about the confidentiality of some of the issues involved but I'm checking whether we can open it up for the public with our release managers so that you can follow along.
,
Aug 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f2046fbe79e4e19c2391506be1303c412d04f5c7 commit f2046fbe79e4e19c2391506be1303c412d04f5c7 Author: Paul Miller <paulmiller@chromium.org> Date: Tue Aug 29 22:24:19 2017 Reland "WebView: Move usage of Android O APIs upstream" This reverts commit 1bf3158833e8ecbc8dbb1ea3288864f61ba208e5. Original change's description: > Revert "WebView: Move usage of Android O APIs upstream" > > This reverts commit 44bed764c12d64c2cfb4dc60c593fb63fb8f2a38. > > Reason for revert: broke downstream > > Original change's description: > > WebView: Move usage of Android O APIs upstream > > > > These new classes are moved from downstream to upstream: > > - AwAutofillManager > > - AwAutofillProvider > > - WebViewChromiumFactoryProviderForO > > > > These existing classes have their downstream counterparts merged in: > > - SmartSelectionProvider > > - WebViewChromium > > - WebViewContentsClientAdapter > > - WebViewDelegateFactory > > > > ContentClassFactory is removed, and ContentClassFactoryInstaller is > > replaced with SmartSelectionToggle. The previous design here was for > > ContentClassFactoryInstaller to enable smart selection by installing > > SmartSelectionProviderImpl (downstream) as the implementation of > > SmartSelectionProvider. Since SmartSelectionProviderImpl is now merged > > into SmartSelectionProvider, polymorphism is no longer needed. The new > > design is for SmartSelectionToggle to enable smart selection directly by > > setting a boolean in SmartSelectionClient > > > > We set a GN flag, unpublished_apis_upstream, to omit the corresponding > > downstream classes. This flag will be removed after the downstream > > classes are removed. > > > > We do some O-related cleanup: some Object references are replaced with > > with TextClassifier and AutofillValue. In SelectionPopupController, the > > reflection for android.R.id.textAssist is removed. > > > > WebViewChromiumFactoryProviderForO will remain as an O-specific entry > > point. (This differs from previous Android versions.) > > > > BUG= 756653 > > > > Change-Id: If5aa3103124d3e3e0bd2e5cbb1610650b8765faf > > Reviewed-on: https://chromium-review.googlesource.com/620109 > > Commit-Queue: Paul Miller <paulmiller@chromium.org> > > Reviewed-by: Tima Vaisburd <timav@chromium.org> > > Reviewed-by: Theresa <twellington@chromium.org> > > Reviewed-by: Bo <boliu@chromium.org> > > Reviewed-by: Tao Bai <michaelbai@chromium.org> > > Reviewed-by: Donn Denman <donnd@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#496156} > > TBR=michaelbai@chromium.org,boliu@chromium.org,donnd@chromium.org,twellington@chromium.org,timav@chromium.org,paulmiller@chromium.org > > Change-Id: I2abd0f99b110c6883c1dea8b0b6b3b41354c9e26 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: 756653 > Reviewed-on: https://chromium-review.googlesource.com/625248 > Reviewed-by: Tima Vaisburd <timav@chromium.org> > Commit-Queue: Paul Miller <paulmiller@chromium.org> > Cr-Commit-Position: refs/heads/master@{#496190} TBR=michaelbai@chromium.org,boliu@chromium.org,donnd@chromium.org,twellington@chromium.org,timav@chromium.org,paulmiller@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 756653 Change-Id: I4a030259cd8fcd5cda78579736b12a8dc4333534 Reviewed-on: https://chromium-review.googlesource.com/641354 Reviewed-by: Paul Miller <paulmiller@chromium.org> Reviewed-by: Donn Denman <donnd@chromium.org> Commit-Queue: Paul Miller <paulmiller@chromium.org> Cr-Commit-Position: refs/heads/master@{#498255} [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/BUILD.gn [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/BUILD.gn [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/glue.gni [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java [add] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForO.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/glue/java/src/com/android/webview/chromium/WebViewDelegateFactory.java [add] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/java/src/org/chromium/android_webview/AwAutofillManager.java [add] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/java/src/org/chromium/android_webview/AwAutofillProvider.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/android_webview/java/src/org/chromium/android_webview/AwContents.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/BUILD.gn [delete] https://crrev.com/c5b58a676675c9ffd2f0daad83e5038f3b6cced4/content/public/android/java/src/org/chromium/content/browser/ContentClassFactory.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content/browser/SmartSelectionClient.java [modify] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content/browser/SmartSelectionProvider.java [add] https://crrev.com/f2046fbe79e4e19c2391506be1303c412d04f5c7/content/public/android/java/src/org/chromium/content_public/browser/SmartSelectionToggle.java
,
Aug 30 2017
Torne, Thanks for the clarification. Now I fully know the obstacles that prevented you upstreaming timely. You have put a lot of effort on this, and done a great job anyway. The tarball workaround solution seems more realistic for us. Please let me know when there is a final say on this!
,
Aug 30 2017
The following revision refers to this bug: https://chrome-internal.googlesource.com/clank/internal/apps/+/2833ce9ec6f04aaa82f0fcaf3c8184092270010d commit 2833ce9ec6f04aaa82f0fcaf3c8184092270010d Author: Paul Miller <paulmiller@google.com> Date: Wed Aug 30 01:03:31 2017
,
Aug 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/90f3fc2f1236840d8b8589458810792f21263307 commit 90f3fc2f1236840d8b8589458810792f21263307 Author: Paul Miller <paulmiller@google.com> Date: Wed Aug 30 16:04:53 2017 WebView: Remove mechanism to omit downstream *ForO classes This was added temporarily to avoid breaking the downstream build during the upstreaming process. BUG= 756653 Change-Id: Id6674cfce48cbaa3d53c291661adbe1513341839 Reviewed-on: https://chromium-review.googlesource.com/641383 Reviewed-by: Bo <boliu@chromium.org> Commit-Queue: Paul Miller <paulmiller@chromium.org> Cr-Commit-Position: refs/heads/master@{#498480} [modify] https://crrev.com/90f3fc2f1236840d8b8589458810792f21263307/android_webview/glue/glue.gni
,
Aug 30 2017
,
Sep 5 2017
> I'm guessing that's not much better for you? A shorter delay is an improvement so it's good to see that it's on track for M62. It'll be way quicker than it was last year which is helpful. Our stopgap solution is using the Google WebView builds without our changes alongside our Chromium builds so that we can still ship security updates. I greatly appreciate that you're trying to resolve it. Android's open source release model can be extremely annoying...
,
Sep 7 2017
The public Monochrome build system metadata needs to be bumped to target_sdk_version 26 too, or it doesn't get detected as a valid WebView provider. It works with that change though.
,
Sep 7 2017
Ended up cherry-picking the changes (f2046fbe79e4e19c2391506be1303c412d04f5c7, 90f3fc2f1236840d8b8589458810792f21263307) to Chromium 61 and bumping the targetSdkVersion to 26 for MonochromePublic. That passes both CtsWebkitTestCases and CtsHostsideWebViewTests. Everything appears to work fine so far in the WebView and Chromium, so I think it's resolved for us. Thanks!
,
Sep 7 2017
+ntfschr Looks like we should also add bumping the default values of targetSdkVersion in the various different manifests to our upstreaming todo list, if someone didn't do that already. I'm not sure if the M61 and M62 O code was identical or not, but if the M62 code works for you when cherrypicked to M61 then that's probably okay? No guarantees, though - we can only promise it works on M62 since that's what we've tested and are working on releasing. I'd generally suggest that you try to upstream changes that you make to WebView instead of maintaining them downstream. We can't accept all changes for lots of possible reasons, but it's at least worth discussing the kinds of change you make and whether they might be applicable upstream; feel free to file one or more bugs about the changes you make and are willing to potentially upstream, and we can discuss whether they seem like something we'd accept or not (you don't have to propose specific CLs for us to have that discussion; I'm happy to discuss them in the abstract first to save you that work).
,
Sep 7 2017
...I'm aware of the irony in suggesting that you upstream *your* changes to get around the problem of us not upstreaming our changes soon enough, but it might help :)
,
Sep 7 2017
I can take over the targetSdkVersion today (thanks for reminding us).
,
Sep 7 2017
> I'd generally suggest that you try to upstream changes that you make to WebView instead of maintaining them downstream. Yeah, I'll try to do this if we end up making any substantial changes. At the moment we mostly just switch to using 64-bit renderer processes and a hardened toolchain with features like defaulting to zeroing any uninitialized variables. All the changes are minor and mostly not applicable to the WebView since they're just changing defaults for features in Chromium like having search geolocation off by default. It's very easy for me to rebase the changes right now (i.e. 2-5 minutes of work for each major release) and Chromium is mostly developed in the open which is helpful vs. getting the entire Android source releases dumped on the same day as the stable release. I've only had marginal success upstreaming code into AOSP but Chromium would likely be a lot easier since it has a proper external master branch. When we do start making some substantial Chromium changes, they'll mostly impact the browser though since the WebView's hands are tied by serving the needs of apps.
,
Sep 7 2017
I had no trouble building SystemWebView.apk off master and installing on aosp_sailfish-debug OC-release (from flash station). I'll need to compile oc-release locally in order to try out MonochromePublic.apk, so I won't have a CL until tomorrow.
,
Sep 7 2017
Yeah, the WebView target is fine since it's set to API 26 already. It's the monochrome_android_manifest_jinja_variables + [ "target_sdk_version=24" ] line that needs to be changed to 26, otherwise Android doesn't consider Monochrome to be a valid WebView provider and ignores it.
,
Sep 7 2017
Ok, thanks. I figured that was the spot. I'll upload a CL shortly and manually test it before landing.
,
Sep 8 2017
Pending CL: https://chromium-review.googlesource.com/c/chromium/src/+/656535. Manually tested, it seems to work correctly as a WebView provider (once AOSP is customized).
,
Sep 8 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0d2b66b37ec1c4247b0850f980834a9c978fbce7 commit 0d2b66b37ec1c4247b0850f980834a9c978fbce7 Author: Nate Fischer <ntfschr@chromium.org> Date: Fri Sep 08 22:27:02 2017 AW: fix targetSdk for MonochromePublic This sets MonochromePublic's target SDK to 26 so that it can be installed on Android O devices. This APK isn't used by Google, but is used by AOSP consumers who ship MonochromePublic instead of AOSP WebView (by customizing AOSP). This also updates ChromePublic, ChromeModernPublic, and ChromeSyncShell to target 26. No change necessary for Monochrome, Google WebView, and AOSP WebView, they already work correctly. Bug: 756653 Test: adb shell cmd webviewupdate set-webview-implementation org.chromium.chrome (on a customized AOSP) Change-Id: Icc3af663f7d6b8e9b50e84398fadc7645c87f6a1 Reviewed-on: https://chromium-review.googlesource.com/656535 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org> Cr-Commit-Position: refs/heads/master@{#500707} [modify] https://crrev.com/0d2b66b37ec1c4247b0850f980834a9c978fbce7/chrome/android/BUILD.gn
,
Sep 8 2017
Ok, I think all upstreaming-related work should be finished now. Please ping this bug if that's not correct.
,
Sep 11 2017
Nate, can you also cherrypick the targetSdk change to 62 (once the merge is approved)? That way people can build an unmodified version of the 62 branch and have it work on O as we promised :)
,
Sep 11 2017
This bug requires manual review: Reverts referenced in bugdroid comments after merge request. Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Sep 11 2017
Reviewers: it's just the last CL in #27 that needs cherrypicking; the rest of the work here made the M62 branch point.
,
Sep 11 2017
Sorry Nate but what is MonochromePublic? I don't understand why the changes are not necessary for Monochrome and others.
,
Sep 11 2017
MonochromePublic is "Chromium for Android" + "AOSP WebView." This is the open source equivalent of Monochrome (which is "Chrome for Android" + "Google WebView"). We don't ship MonochromePublic, the target exists primarily because some AOSP consumers choose to ship it instead of shipping both ChromePublic.apk and AndroidWebviewAosp.apk. We don't need these changes for Monochrome, Google WebView, AOSP WebView, etc. because they already target 26. From a technical perspective, MonochromePublic isn't considered a valid WebView implementation for Android O until it targets >= 26. So this CL is necessary to use MonochromePublic on Android O.
,
Sep 12 2017
Thank you! Merge approved!
,
Sep 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e1e7f585db4e1740ae8a6138d73bca6e67f1191b commit e1e7f585db4e1740ae8a6138d73bca6e67f1191b Author: Nate Fischer <ntfschr@chromium.org> Date: Wed Sep 13 21:36:24 2017 AW: fix targetSdk for MonochromePublic This sets MonochromePublic's target SDK to 26 so that it can be installed on Android O devices. This APK isn't used by Google, but is used by AOSP consumers who ship MonochromePublic instead of AOSP WebView (by customizing AOSP). This also updates ChromePublic, ChromeModernPublic, and ChromeSyncShell to target 26. No change necessary for Monochrome, Google WebView, and AOSP WebView, they already work correctly. TBR=ntfschr@chromium.org (cherry picked from commit 0d2b66b37ec1c4247b0850f980834a9c978fbce7) Bug: 756653 Test: adb shell cmd webviewupdate set-webview-implementation org.chromium.chrome (on a customized AOSP) Change-Id: Icc3af663f7d6b8e9b50e84398fadc7645c87f6a1 Reviewed-on: https://chromium-review.googlesource.com/656535 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#500707} Reviewed-on: https://chromium-review.googlesource.com/666137 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Commit-Position: refs/branch-heads/3202@{#211} Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098} [modify] https://crrev.com/e1e7f585db4e1740ae8a6138d73bca6e67f1191b/chrome/android/BUILD.gn
,
Sep 14 2017
,
Nov 8 2017
Torne,
Sorry to bother you again for this old topic. Chromium TOT is yet able to build an O-MR1 WebView. So I am having no O-MR1 webview available for debug. Is there any chance this time for the workaround solution, as you mentioned previously, "releasing the code for the new Android releases as a separate source tarball while still respecting the restrictions of Android"? Thanks much!
,
Nov 8 2017
I don't think we've taken further steps on Torne's tarball suggestion, but it may be a good option. Thanks for reminding us about this. I've filed issue 782525 to track the real upstreaming work (not the tarball approach).
,
Nov 8 2017
ntfschr, good to know you have started upstreaming. Thanks.
,
Nov 8 2017
Apologies for a lack of updates here. We're aiming to have upstreaming done before the M64 branch point over on the issue 782525 that Nate just filed. I'll see if I can get time to look at producing a tarball for M62 or M63. |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by bugdroid1@chromium.org
, Aug 21 2017