summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-02-25[WebView] Move getVariationsHeader to staticsClark DuVall
This makes more sense since it doesn't depend on the WebView instance. Bug: 977027 Change-Id: I113f338797c2d28d6500fa19ad885be31eb07b7b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3491323 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Clark DuVall <cduvall@chromium.org> Cr-Commit-Position: refs/heads/main@{#975346} NOKEYCHECK=True GitOrigin-RevId: 6f1a4ac82e64fb9643d5b7a07ea0629221a582a9
2022-02-24Add WebView API to retrieve variations headerClark DuVall
This adds an API to retrieve the variations header from WebView. This can be used by WebView apps to send variations headers if they want to. Bug: 977027 Change-Id: I892d7180a6c1163345e8705ea7bd862218cae1af Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3482666 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Clark DuVall <cduvall@chromium.org> Cr-Commit-Position: refs/heads/main@{#974886} NOKEYCHECK=True GitOrigin-RevId: beed0ae31cd51a3069175083dc55813428374134
2022-02-24[JJI] Cleanup ScriptReferenceBoundaryInterfaceShimi Zhang
There are actually other breaking changes in the boundary interfaces directory from https://chromium-review.googlesource.com/c/chromium/src/+/3368924, will address them separately before I roll the boundary interface to AndroidX. Bug: 918065 Test: 1. Compile and install WebView or use a default WebView. Test: 2. Copy the change from Chromium to AndroidX Test: 3. run ./gradlew :webkit:webkit:connectedAndroidTest Test: 4. expecting no failures for both new/old version of WebView. Change-Id: I0c56e7b45fe73aac68c70d952260388355c93280 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3485436 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Cr-Commit-Position: refs/heads/main@{#974884} NOKEYCHECK=True GitOrigin-RevId: 7d03027d415dd3c4248d4a3a140923f75531f560
2022-02-18Expose XRequestedWith api in glue code for AndroidXPeter Birk Pakkenberg
This commit does not expose the CONSTANT_WEBVIEW enum value, as it is intended as a fallback for rollout testing, and is not at this point intended for developer usage. Bug: 1295213 Change-Id: Ia6af00ead6eb5f97e90e9eae61954002f6f4754a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3468347 Auto-Submit: Peter Pakkenberg <pbirk@chromium.org> Reviewed-by: Peter Beverloo <peter@chromium.org> Commit-Queue: Peter Pakkenberg <pbirk@chromium.org> Cr-Commit-Position: refs/heads/main@{#972998} NOKEYCHECK=True GitOrigin-RevId: e25438c20b4669530580c3e0c311e60e9d5e506c
2022-01-13android_webview: add no-op boundary interfaces.Adam Langley
This change adds WebView boundary interfaces for supporting WebAuthn in WebViews. They are currently no-ops, but the full change is huge so I'm trying to split it up. BUG=1284805 Change-Id: I8ce75d7077e9db7d15c071e27cf9529a4b94d2a8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3368924 Reviewed-by: Richard Coles <torne@chromium.org> Auto-Submit: Adam Langley <agl@chromium.org> Reviewed-by: Peter Beverloo <peter@chromium.org> Commit-Queue: Peter Beverloo <peter@chromium.org> Cr-Commit-Position: refs/heads/main@{#958718} NOKEYCHECK=True GitOrigin-RevId: aa5dd97385dcf06a2d517a48207f11c29f03e863
2021-03-17[JJI] Rename ScriptReference to ScriptHandlerShimi Zhang
Per discussion from http://aosp/1635279, we rename the class name to ScriptHandler. We also drop the DOCUMENT_START_SCRIPT feature string's ":1" suffix in this change. Bug: 2761958 Test: the current tests should pass. Change-Id: Ibeb413abc44e161132823fe99c1f462f45239414 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2765934 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Cr-Commit-Position: refs/heads/master@{#863942} GitOrigin-RevId: 0794d233678d9a01c19b6446f7d26760e2290a11
2021-01-11[aw] Add reverse_bypass option for proxy overrideLaís Minchillo
Add a setProxyOverride method that takes in a boolean for reverse_bypass. This will be exposed via androidx.webkit APIs. Add a new test in proxy_config_service_android_unittest and in AwProxyControllerTest to test the newly added reverse_bypass option. Bug: 1162255 Test: run_net_unittests -f *ProxyConfigServiceAndroidTest* Test: run_webview_instrumentation_test_apk -f *AwProxyControllerTest* Change-Id: Icc82656809b9237d6a8defb125b57727d59777ba Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2544645 Auto-Submit: Laís Minchillo <laisminchillo@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Cr-Commit-Position: refs/heads/master@{#842086} GitOrigin-RevId: be96ccdfef15c94651102992fd304ea9712918bf
2020-08-17Android: Use per-target lint-suppressions.xmlPeter Wen
Previously all lint targets shared one lint suppressions/config file: //build/android/lint/suppressions.xml This resulted in many unnecessary suppressions being added which then suppress the lint checks for every lint target. e.g. if monochrome fails ObsoleteSdkInt checks, suppressing it globally turns off the checks for all other apks, which decreases the utility of android lint for all those other apks. This CL removes the shared suppressions.xml file and splits its content between the targets that actually need them, and adds lint-baseline.xml files where necessary. This also removes the bottleneck of requiring a //build/android/OWNERS to stamp every lint suppression change. This CL also adds suppressions for targets depending on code that chrome already lints via monochrome. E.g. errors in //base are shared by all embedders' lint targets, and it should not become the burden of targets like cast shell or cronet to fix. Thus these errors are suppressed in cronet/cast/remoting-specific suppressions.xml files. This CL changes lint to run in the output directory so that baseline suppressions work for generated files (e.g. AndroidManifest.xml). Bug: 1113795,1115594 Fixes: 1115594 Change-Id: I2d70128707c0fa862c109b6f91631a07916c90d6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2346857 Commit-Queue: Peter Wen <wnwen@chromium.org> Reviewed-by: Yuchen Liu <yucliu@chromium.org> Reviewed-by: Paul Jensen <pauljensen@chromium.org> Reviewed-by: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org> Auto-Submit: Peter Wen <wnwen@chromium.org> Cr-Commit-Position: refs/heads/master@{#798776} GitOrigin-RevId: f74622e693e698c40edd15ca0bc7b75b080f5509
2020-07-29Code inclusion: add setSafeBrowsingAllowlist boundary interfaceandroidx-print-releaseNate Fischer
This adds setSafeBrowsingAllowlist (behind the DEV_SUFFIX) and deprecates the setSafeBrowsingWhitelist boundary interface. These are functionally similar, although setSafeBrowsingAllowlist accepts a Set<String> since this is a more appropriate data type. This adds an UMA counter for the new API and adds missing enum labels for other APIs. This CL also renames a couple references to the old API to be SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME instead, to minimize non-inclusive terminology. Fixed: 1108667 Test: N/A Change-Id: I49ef11e4346e631e14b822943abb6482837d60a4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321523 Auto-Submit: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Reviewed-by: Laís Minchillo <laisminchillo@chromium.org> Cr-Commit-Position: refs/heads/master@{#792830} GitOrigin-RevId: 58274f4e7182ab76f09f247a55846fc2bf5f8b3f
2020-07-22[WebView] Remove no longer needed boundary interfaceShimi Zhang
As the AndroidX change is made, we don't need to keep this API interface anymore. Bug: 918065, b/161126366 Change-Id: Ie5f3d5007c604a2a343be7df45f8e8dfa8b1c236 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2311064 Auto-Submit: Shimi Zhang <ctzsm@chromium.org> Commit-Queue: Changwan Ryu <changwan@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Cr-Commit-Position: refs/heads/master@{#790877} GitOrigin-RevId: b915228be06a91db61457fe0b1a86b811761a000
2020-06-11[WebView] Rename to DocumentStartJavaScriptShimi Zhang
Per Java style guide https://google.github.io/styleguide/javaguide.html#s5.3-camel-case, Javascript is better to be JavaScript. We will need to do a 3-way patching for the AndroidX boundary interface, so adding the addDocumentStartJavaScript() first in this CL, we need to remove the original addDocumentStartJavascript() after aosp/1329732 landed. We also upgrade the feature version to avoiding old AndroidX calling newer WebView or vice versa. Bug: 918065 Test: Covered by existing tests Change-Id: I1f5eee713d521ac5f480eee670f5f5be674de553 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2240283 Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#777493} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: cfdcb6f24a423de1d179d2432fcd0144b4d39df7
2020-05-13Android: Add webview boundaries apk for lintPeter Wen
Lint no longer runs per-library so we need an apk to ensure these interface boundaries remain at minSdkVersion 14. Switch @TargetApi to @RequiresApi for lint. Add this apk to android_compile_dbg so that it is verified by the CQ. Bug: 1017190,1082319 Fixes: 1082319 Change-Id: I94064c781bd39b046fbfe9a1f03eb38292eeb24d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2199579 Commit-Queue: Peter Wen <wnwen@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Ben Pastene <bpastene@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Auto-Submit: Peter Wen <wnwen@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#768455} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 41c7be9fc741bd26f8eeb2cea57d1069d26283d4
2020-05-04[JJI] Implement addDocumentStartJavascript glue layerandroidx-sqlite-inspection-releaseShimi Zhang
See the corresponding AndroidX change aosp/1301233 Bug: 918065 Change-Id: I70ea9e24b39fab89c4d6cf08dcfae3cc69ec14e0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2178863 Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#765158} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: d39950bc4b8ab3755d15662158ea81a3ad0af578
2019-10-29[WV Support Library] Add a crash key that indicates androidx.webkit version.androidx-recyclerview-recyclerview-selection-releaseAnna Malova
Android side: https://android-review.googlesource.com/c/platform/frameworks/support/+/1138298 Bug: 1012753 Change-Id: I6cc6e045fad9044f72cda7f751390abb39fea94a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1848701 Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Commit-Queue: Anna Malova <amalova@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#710340} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 8dc40d0b6cc6babc35bd0a75d9f7ac2253f599bb
2019-09-30AndroidX Webkit: fix javadoc in boundary interfaceNate Fischer
InvocationHandlerWithDelegateGetter is a private class, so we cannot @link to it in javadoc. This is blocking rolling boundary interfaces. Bug: b/141876194 Test: None Change-Id: Icab90fa08fb80382f096c0cae7373311a4d9abe1 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1832155 Reviewed-by: Shimi Zhang <ctzsm@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#701333} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 40090bf5321af76b877fe41cc5b944dd09bd325e
2019-09-30AndroidX Webkit: handle null consistently over boundaryNate Fischer
This permits createInvocationHandlerFor(null) to return null, and follows through with the related methods (supporting or not supporting nullable values as appropriate). The main advantage is this causes nullability mistakes to have clearer error messages. Instead of triggering an NPE inside BoundaryInterfaceReflectionUtil internals, we treat null InvocationHandlers as representing null instances, and calling methods on those instances will trigger NPE much more clearly. This should not change behavior, it should only make it clearer under conditions where we would have already hit NPE. This should be backwards and forwards compatible: * Old WebViews do not pass null InvocationHandlers, so new versions of the AndroidX library will treat these InvocationHandlers the same (nonnull). * If old WebViews receive a null InvocationHandler, they will NPE (but would have NPE'd anyway). * Same vice-versa for new WebViews and old versions of the AndroidX library. Bug: 1009056, 998001 Test: Manually cherry-pick this into AndroidX, verify it compiles with http://aosp/1129297 Test: Manually cherry-pick this into AndroidX, ./gradlew :webkit:connectedAndroidTest (against M76 and tip-of-tree) Change-Id: I3246d0b4a30ef752977d2e8dd4f51889006b7536 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1829770 Reviewed-by: Laís Minchillo <laisminchillo@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#701162} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4a2e71d8eadb8a66081c1c93fb90a0503f19b287
2019-09-26[JJI] Port {add,remove}WebMessageListener to glue layerShimi Zhang
See the corresponding AndroidX change: http://aosp/1099421 Bug: 918065 Change-Id: Iad8cd0cd273235de1105f04844891494f793af1b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1745462 Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#700368} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 2d369b47fc25a381f396625437dc6d6f427e293c
2019-09-18[WV Support Library]: Add boundary interface and support lib glueAnna Malova
for force dark behaviour (force dark vs media query). Rename corresponding methods. Bug: 1001516 Change-Id: I7af3bb835ddd2f9761ffe350e626ef10d7321087 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796673 Commit-Queue: Anna Malova <amalova@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#697640} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 65274319fc5838891afdef97834eb0d9987b4844
2019-04-16[WebView Support Library] Add boundary interface and support lib glue for ↵androidx-jetifier-releaseAnna Malova
forceDark API. Bug: 952302 Change-Id: Idcc5d72198612065da66544180db33856f6dcba7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565881 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Anna Malova <amalova@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#651231} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 824095ea00683e1278ce9754f39b09d4f7d86b9c
2019-04-02[aw] Add support library interface for IsMultiProcessEnabledLaís Minchillo
Add support library interface for the multi process query API. Bug: 948164 Change-Id: I9af5321056de1acc570322c6bd01610735ec919e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1547735 Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Auto-Submit: Laís Minchillo <laisminchillo@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#646804} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 05099cb0ad093825cbdeabb30c668e268e30fef8
2019-02-22Replaced 'Should' with 'Will' per Android API council guidanceChristian O. Andersson
See https://crrev.com/c/1185001 for details Design doc: https://docs.google.com/document/d/188BbgvTdhKf8bXikCL-JMduEclJOd9GxhKu79hmSVdo/edit Test: run_webview_instrumentation_test_apk -f AwSettingsTest#testWillSuppressErrorPage Change-Id: I71603bf906b58c9c42cb06ecf1abcee10360d5cb Reviewed-on: https://chromium-review.googlesource.com/c/1482900 Auto-Submit: Christian O. Andersson <cricke@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Commit-Queue: Robert Sesek <rsesek@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#634775} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e17c03864c35247885ce6435d864f8a2a6668702
2019-01-25Enable suppression of error page from the Java sideandroid-arch-navigation-releaseChristian O. Andersson
Design doc: https://docs.google.com/document/d/188BbgvTdhKf8bXikCL-JMduEclJOd9GxhKu79hmSVdo/edit We wish to provide a means of optionally suppressing the display of the webview error page so that applications that wish to display their own error content may do so without presenting a poor user experience. Test: run_webview_instrumentation_test_apk -f AwSettingsTest#testShouldSuppressErrorPage Change-Id: I15c42acd7d562e7d37bb4f84d92267db49f0a55a Reviewed-on: https://chromium-review.googlesource.com/c/1185001 Auto-Submit: Christian O. Andersson <cricke@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Christian O. Andersson <cricke@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#626102} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 822effcf1823d57f2aa2933c273156a018e25bf5
2019-01-21[aw] Remove DEV_SUFFIX from boundary interfaceLaís Minchillo
Removes DEV_SUFFIX from PROXY_OVERRIDE in boundary interface. Bug: 921784 Change-Id: I074a7396edc3649aed22f7f77e47c1d1094ffef2 Reviewed-on: https://chromium-review.googlesource.com/c/1411878 Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#624599} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 93831f2301c40d3e93218d350d3538a00fef2de0
2018-12-19[aw] Update proxy API to receive proxy rulesLaís Minchillo
Update setProxyOverride method to receive an array of proxy rules (schemeFilter, proxyUrl) and an array of bypass rules. Move proxy override methods from AwContentsStatics to AwProxyController as they are no longer static. Bug: 906637 Change-Id: I3551001a2574204988aad9663ff5ff248494cc89 Reviewed-on: https://chromium-review.googlesource.com/c/1313049 Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Reviewed-by: Eric Roman <eroman@chromium.org> Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#617905} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: bc08f72666434525612301f7b3638f4084ad10c6
2018-12-13[WebView Support Library] suppress lint warningNate Fischer
No change to logic. This suppresses a lint warning (BanTargetApiAnnotation) which is enforced in the AndroidX checkout (but not in Chromium). This is required because this file is mirrored into AndroidX. The intended resolution for this lint warning is to switch from @TargetApi to @RequiresApi (which is not 1:1 compatible, but is generally clearer). This is not currently possible in chromium, because our lint doesn't seem to respect @RequiresApi like the AndroidX lint config does. R=torne@chromium.org, wnwen@chromium.org Bug: http://b/120770118 Test: Manually copied into AndroidX checkout and ran "./gradlew Test: lintMinDVD" (with http://aosp/848808) Change-Id: Iad8574bf3fefa0ab0181b5618eb8a31f4b9ed182 Reviewed-on: https://chromium-review.googlesource.com/c/1374911 Reviewed-by: Peter Wen <wnwen@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#616395} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: d652ab9a8b41cd708585690339ae3a6a234d6879
2018-12-12[aw] Support library glue for WebViewRendererClientTobias Sargeant
This exposes a support library feature allowing applications to set a WebViewRendererClient object upon which renderer related callbacks are received. Specifically, these callbacks are: onRendererUnresponsive(renderer) - called when the renderer associated with a webview does not ack an input event, or a navigation does not commit within 5 seconds. The callback will continue to be called at 5 second intervals until the renderer is killed or the unresponsiveness resolves. |renderer| may be null if webview is operating in single process mode. onRendererResponsive(renderer) - called once when an unresponsive renderer becomes responsive again. Bug: 907887 Change-Id: Ic5c74160e293791e3efc051a5727448ee061c9e2 Reviewed-on: https://chromium-review.googlesource.com/c/1361242 Reviewed-by: Changwan Ryu <changwan@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#615738} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 208287beba61d4f21aa23f57bdc15004434fa766
2018-11-30Android: use base layer API to check debuggabilityNate Fischer
This converts Android WebView code to use the base-layer definition of whether to enable developer-only features (in this case, the command line). This also comments the BuildInfo method to mention Android's definition of debuggability (IS_DEBUGGABLE), which could improve discoverability. Although this is a change in logic, this should not impact real behavior, since "not equal to 'user'" should in practice be the same as "equal to 'userdebug' or 'eng'," since these are the only three valid values. R=agrieve@google.com, tobiasjs@google.com Bug: 908668 Test: N/A Change-Id: I6007d564078a899567226a3777c02bfcffc16f75 Reviewed-on: https://chromium-review.googlesource.com/c/1351733 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#612785} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: a4e4bb73dba61a56ee3c8fda1bcdacffec4ec7a8
2018-11-27[supportlib] Support a :dev feature suffix.Tobias Sargeant
:dev suffixed features will only be available if the device is userdebug. This makes it possible to develop support library changes in multiple steps, and then expose the feature with a final CL that removes the suffix, without running the risk that applications will inadvertently release code depending on the behaviour of an in-progress implementation of a feature. Bug: 908648 Change-Id: Iae98386992eb113356cf74be3eda125af10d867a Reviewed-on: https://chromium-review.googlesource.com/c/1349327 Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#611061} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: c6e72efa6dba0e0ffff040451707dcbc71df3e89
2018-11-26[supportlib] getOrCreatePeer shouldn't throw a checked exception.Tobias Sargeant
We are restricted to use functor-like objects that are part of the root classloader. This means that changing from Callable is not practical. However the fact that Callable#call can throw a checked exception is inconvenient for code that uses getOrCreatePeer, especially as it is not expected that the peer creation callable will ever actually throw. For this reason, it's best if getOrCreatePeer rethrows the checked exception wrapped in an unchecked RuntimeException. Bug: 908269 Change-Id: I726d1cc75f13cafa9f62169069a237cc9e129b4d Reviewed-on: https://chromium-review.googlesource.com/c/1349974 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#610953} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4e22362069a8eaa5eed015bf7cb29a5ee031c7bf
2018-11-13aw: Move "new InvocationHandler[]" to SL util.Shimi Zhang
To avoid PRESUBMIT check for InvocationHandler annotation check. Should be no logic change. Bug: None Change-Id: I91680e54c5b0f0cc692b841a57f7f5b68f724d9b Reviewed-on: https://chromium-review.googlesource.com/c/1323624 Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#607472} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 5f983318b1d721930c291af3c1e4104273e7ac21
2018-10-12[aw] Add callback to proxy override methodsLaís Minchillo
Add an optional callback to proxy override methods introduced in change https://chromium-review.googlesource.com/c/chromium/src/+/1148384 This adds an optional callback developers can use to know when the changes have been made to the network settings, since the methods are not synchronous with the UI thread. Bug: 851995 Change-Id: I08dc7cc87c57d213b67774d3391562ca07fd0217 Reviewed-on: https://chromium-review.googlesource.com/c/1258770 Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Reviewed-by: Eric Roman <eroman@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#599166} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e2dd9b16afe9c2808aaa11566aa54fa854282db2
2018-10-09AW: explain values for 'initialize' argumentNate Fischer
No change to logic, only a refactor. The 'initialize' argument in Class#forName is a bit tricky to get right. This CL attempts to provide justification for why we use the values we do, while also providing a helper method to abstract-away one of the use-cases. This adds BoundaryInterfaceReflectionUtil#instanceOfInOwnClassLoader to help identify when an Object is an instance of some Class, as defined in that Object's own ClassLoader (as it may not be an instanceof that Class in that Class's ClassLoader, such as with WebViewClientCompat). Test: ./gradlew :webkit:connectedAndroidTest (in support lib repo) Change-Id: I5068a4e20ad7b39025c82d36bfdf211b6c82dfee Reviewed-on: https://chromium-review.googlesource.com/c/1270177 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#598009} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 5f5832e4ed76dee694fcbc89817793d5057171b6
2018-09-25[WebView Support Library] Support TracingController API.First-name Last-name
Add boundary interface and support lib glue for TracingController. Introduce a new class which adapts common code between framework and support library API and forward calls to the Chromium internal implementation of TracingController. Bug: 821792 Change-Id: I032cb57d61c5bd2fc8012e4d3f85f68ce22742d0 Reviewed-on: https://chromium-review.googlesource.com/1225874 Commit-Queue: Anna Malova <amalova@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#593921} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4c3cd553d6401aa479cdaa32913a3f5d3e883933
2018-08-27[aw] Add support library interface for WebViewRendererTobias Sargeant
Also introduce infrastructure to support cases where the support library and Aw* object need to be maintained in a 1:1 mapping. Bug: 865062 Change-Id: I7b385c252aa6ce3335ec50f8926b241c14850771 Reviewed-on: https://chromium-review.googlesource.com/1185595 Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#586424} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 730d409db74775218642ad4f7b8579a00943a3c7
2018-08-09Add support library support for Override Proxy APILaís Minchillo
Static WebView methods are implemented using the class WebViewFactoryProvider.Statics, in this CL we implement the corresponding class for the WebView support library. Bug: 851995 Change-Id: I2f9ed164d3b468acf77feaff4b0f192724ff511e Reviewed-on: https://chromium-review.googlesource.com/1148384 Commit-Queue: Laís Minchillo <laisminchillo@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#581856} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 74732cc5bd751944f978ea1ff40f10cde31f2100
2018-06-20AW: implement getWebChromeClient in support libraryNate Fischer
This implements getWebChromeClient in the support library glue and boundary_interfaces, and declares that the APK supports the Feature. Bug: 853030 Test: (in support lib) ./gradlew :webkit:connectedAndroidTest Test: android_webview/tools/run_cts.py (on O device, to verify CTS) Change-Id: I9e19a017b6bfc05d287c1d8c2c112eea86f65c4f Reviewed-on: https://chromium-review.googlesource.com/1107273 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#569083} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 6f8da54669d46aeb57590068e1bf1991a507897d
2018-06-14aw: Add support library glue for WebView.getWebViewClientTobias Sargeant
Bug: 852920 Change-Id: Icb2e276b25d51958cb1da4865b267212114b41ab Reviewed-on: https://chromium-review.googlesource.com/1101680 Commit-Queue: Tobias Sargeant <tobiasjs@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#567458} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: f0bc31531aed4dbabdf26b1bbc4c04109d1f2111
2018-05-16AW: remove redundant public modifier from interfacesNate Fischer
No change to logic. This removes the 'public' visibility modifier from methods on public interfaces, as these methods are implicitly public (and this is a lint warning on the Android side). Bug: 843420 Test: N/A Change-Id: I17ea506f8cb7965c80e2489d985d1a3f2476fb50 Reviewed-on: https://chromium-review.googlesource.com/1062965 Reviewed-by: Paul Miller <paulmiller@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#559326} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 393cfcaff4c98af880deff6fbd69cd78b203f5dd
2018-05-15[android webview] (support lib) Add feature flags for WebMessage APIs.Gustav Sennton
To ensure support library methods calls are only called on webview / support library versions where they're supported we use feature flags. This CL adds feature flags for APIs related to WebMessages (postmessages). Bug: 813118 Change-Id: Ic0d06df79da079a0d9c87ce09cd9fc720d6a244c Reviewed-on: https://chromium-review.googlesource.com/1041931 Commit-Queue: Gustav Sennton <gsennton@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#558646} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: a6a894e433c55b20f7261db6cc2ea5bef6b2f5ec
2018-05-11AW: do not convert support lib param typesNate Fischer
No expected change to behavior, but this should have a slight performance boost to the support library. Previously, for each method call on a boundary interface, we would iterate over method parameter types and convert each type to the corresponding type visible by delegateLoader. This work is redundant, because we only ever pass pre-L frameworks types (e.g., WebView, String, InvocationHandler) and primitives. This work would not be redundant if we passed BoundaryInterfaces as parameters to some BoundaryInterface methods, however we don't ever intend to do so. Bug: 837820 Test: ./gradlew :webkit:connectedAndroidTest Change-Id: Icd3bfc620a45f9acd437da514ae5a02b3d8a6b02 Reviewed-on: https://chromium-review.googlesource.com/1054122 Reviewed-by: Gustav Sennton <gsennton@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#558037} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: f82aa8257d464e8cdc0a4169faea586d2af38c46
2018-05-01[android webview] Add support library support for WebMessage(port) APIs.Gustav Sennton
Provide chromium-side support for WebMessages in the WebView Support Library. We'll add feature flags for these APIs in a follow-up. Bug: 813118 Change-Id: I52a2576ae92f6051c4ce5ea7a68e1901598cfa02 Reviewed-on: https://chromium-review.googlesource.com/976125 Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Gustav Sennton <gsennton@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#555034} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: aed77bf7b96062ead04616eeac810d25ae4d23a0
2018-04-30AW: convert between frameworks and support lib SafeBrowsingResponsesNate Fischer
This adds conversion code to convert between the frameworks and Support Library versions of SafeBrowsingResponse. No change to behavior otherwise. Bug: 837815 Test: ./gradlew :webkit:connectedAndroidTest Change-Id: Id152ff18ad4d3b6cbd682ba90add1e02eb64a559 Reviewed-on: https://chromium-review.googlesource.com/1035908 Reviewed-by: Gustav Sennton <gsennton@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#554918} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 585c3f72947e4976c94d92abf347739d9358c8e3
2018-04-27[android webview] properly support per-method feature detection.Gustav Sennton
To properly support per-method feature detection we need to allow converting back and forth between support library and frameworks classes. This CL adds support for converting between webkit and support library objects for already implemented post-L classes: 1. ServiceWorkerController 2. ServiceWorkerWebSettings 3. WebResourceError Bug: 836339 Change-Id: I334d17153eb8d71834e1fafc43676bc2c706b4e2 Reviewed-on: https://chromium-review.googlesource.com/1027815 Commit-Queue: Gustav Sennton <gsennton@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#554356} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: db9520ce98b750e578caf7270eee0c5130a0e1fb
2018-04-12AW: add feature flags for methods on callback-related classesNate Fischer
This adds feature flags for WebResourceError and SafeBrowsingResponse methods (objects which are passed back in WebViewClient callbacks). Support for these methods landed a while ago, so this CL declares the features are implemented. Bug: 832205 Test: N/A Change-Id: I73665515915cc9305636f09b72fbad8d6a9313ca Reviewed-on: https://chromium-review.googlesource.com/1010717 Reviewed-by: Gustav Sennton <gsennton@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#550305} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0da5a0c829eb7faf5aad202d8a67a3be9d52d155
2018-04-12[android webview] Support WebResourceRequestCompat.isRedirect()Gustav Sennton
Add code to support the Support Library version of WebResourceRequest.isRedirect(). Also add a feature flag to guard that API. Bug: 831315 Change-Id: I528c02cfabdd1a83f66231ed7dd1b78b972b3843 Reviewed-on: https://chromium-review.googlesource.com/1005755 Commit-Queue: Gustav Sennton <gsennton@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#550217} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 2d2cfcad371cbc548d7a46a0bbedb200190fbfe0
2018-04-11AW: add feature detection for WebViewClientCompatNate Fischer
With this CL, we only plumb WebViewClient callbacks to the support_library glue code if the WebViewClientCompat supports the relevant Feature. This lets WebViewClientBoundaryInterface extend FeatureFlagHolderBoundaryInterface, because WebViewClientCompat is only instantiated on the support-lib side. The corresponding Android change is http://ag/3877212. Bug: 781764 Test: Manual Change-Id: I66f23e18fabd013c5b4872f3310819608a78394c Reviewed-on: https://chromium-review.googlesource.com/1006051 Commit-Queue: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Gustav Sennton <gsennton@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549959} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 71d3b4c3b22d383840673c9b0ec562c679fabb6a
2018-04-11AW: rename WEB_RESOURCE_ERROR feature nameNate Fischer
No change to logic. This simply renames a feature name to be more explicit about what it stands for. WEB_RESOURCE_ERROR -> RECEIVE_WEB_RESOURCE_ERROR Bug: 781764 Test: N/A Change-Id: I1bda04b8fb8d80d9ac28e633b9d94b6428b6801d Reviewed-on: https://chromium-review.googlesource.com/1006178 Reviewed-by: Gustav Sennton <gsennton@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Nate Fischer <ntfschr@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549908} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: bc64fe05b894458c95224232155fdda50d097a53
2018-04-11[webview] Pass Object instead of post-L webkit object over boundary.Gustav Sennton
When passing a ServiceWorkerWebSettings object across the support library boundary - reference that object as an Object rather than as a ServiceWorkerWebSettings. The objective of the WebkitToCompatConverter is to convert webkit objects into support library objects. But webkit objects introduced post-L cannot be passed across the support library boundary since whenever we create a Proxy for the interface (WebkitToCompatConverterBoundaryInterface) passing the webkit object, that Proxy needs access to the post-L webkit class (along with all other classes referenced by the interface), which means we'll crash on phones without a definition of the webkit class. Bug: 831554 Change-Id: I12d731994a8d38dda0f69c92917c817ec753cfa4 Reviewed-on: https://chromium-review.googlesource.com/1006960 Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Gustav Sennton <gsennton@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549900} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4f96918a47768b2ae1e56cca65d63da8559af2f7
2018-04-10[android webview] Convert service worker webkit objects to support lib.Gustav Sennton
Support converting a (webkit) ServiceWorkerWebSettings object into a boundary interface that the support library can use. Bug: TODO b/77808798 Change-Id: Ie1d98b0983a4b136da2e898cefbf62ee47323b42 Reviewed-on: https://chromium-review.googlesource.com/1005066 Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Gustav Sennton <gsennton@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549626} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: a99d75e076ff9717f97b9053e4118943282c5072
2018-04-09[android webview] Future-proof ServiceWorker...shouldInterceptRequestGustav Sennton
Guard the callback ServiceWorkerClientCompat.shouldInterceptRequest with a feature flag to ensure that if we ever remove/replace that callback from the support library in the future, existing WebView APKs won't call into it. Bug: 819595 Change-Id: Id9796f695cc9fd66caf5739efeb77dd02e215821 Reviewed-on: https://chromium-review.googlesource.com/998164 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Commit-Queue: Gustav Sennton <gsennton@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549312} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 80014088129f132550388a25098070937c8fff8f