LGTM2 to ship in WebView as well
On 2025-03-05 04:53, Vladimir Levin wrote:
I believe this was the intent for non-WebView PaymentRequest:
https://groups.google.com/a/chromium.org/g/blink-dev/c/p1DYoxHlkKg/m/rBqBMGbFCgAJ
LGTM1 to ship to WebView as well with the restriction you outlined.
Please also start the rest of the reviews (WP Security, Enterprise,
Testing).
On Friday, February 28, 2025 at 3:06:33 PM UTC-5 Rouslan Solomakhin wrote:
Contact emails
rous...@chromium.org
Specification
https://w3c.github.io/payment-request/
<https://w3c.github.io/payment-request/>
Documentation
https://web.dev/explore/payments
<https://developers.google.com/web/fundamentals/primers/payment-request/>
(WebView-specific documentation will follow.)
Summary
PaymentRequest is an API that allows browsers to act as an
intermediary between the three key parties in a financial
transaction: the merchant (e.g. an online web store), the buyer
(e.g. the user buying from the online web store), and the Payment
Method (e.g. credit card). Information necessary to process and
confirm a transaction is passed between the Payment Method and the
merchant via the browser with the buyer confirming and authorizing
as necessary across the flow.
PaymentRequest has been shipped on Desktop and Android for a while
now, but not on Android WebView. This Intent is for partially
shipping the feature on Android WebView, restricted to Android
intent-based payment apps
<https://web.dev/articles/android-payment-apps-developers-guide>.
Web-based Payment Handlers are not supported due to lack of the
required UI in WebView.
*Design*
Design: WebView PaymentRequest for native Android intent based
payment apps
<https://docs.google.com/document/d/1yS2_LykHMhSTHr_oX9gtHgE8WS0x5QYtdg_k_8XBUj8>.
Blink component
Blink>Payments
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPayments%22>
Risks
Interoperability and Compatibility
Android WebView works slightly differently than other platforms,
so developers should be aware of caveats. See for example:
How is WebView different from a typical browser like Chrome?
<https://developer.android.com/develop/ui/views/layout/webapps/embed-web-content-in-app#how-is>
/Gecko/: PaymentRequest development stopped.
/WebKit/: Shipped PaymentRequest
<https://webkit.org/blog/8182/introducing-the-payment-request-api-for-apple-pay>.
/Web developers/: Positive views of PaymentRequest in WebView,
e.g.: "We believe this to be huge unlock for us and our customers.
<https://crbug.com/381849264#comment7>"
WebView application risks
Low: WebView host apps must opt-in to enable PaymentRequest
(including a recompile and pushing an update to their users).
There are two steps required:
1) Add the following to AndroidManifest.xml:
<queries>
<intent>
<action android:name="org.chromium.intent.action.PAY"/>
</intent>
<intent>
<action
android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
</intent>
<intent>
<action
android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
</intent>
</queries>
2) Execute the following initialization code for each WebView
where PaymentRequest should be enabled:
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setPaymentRequestEnabled(true);
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
This Intent is specifically for Android WebView. The other
platforms are already shipping PaymentRequest.
Flag name on WebView Dev Tools
WebPayments
Finch feature name
WebPayments
Requires code in //chrome?
No
Tracking bug
https://crbug.com/381849264
*Sample links*
Running a demo is a bit more involved in Android WebView, so here
are instructions for device setup and running a demo
<https://docs.google.com/document/d/17UojtddKjJ4WpVZO-DYi7heyDEiDBLgKg33lqAbRAew>.
Estimated milestones
Shipping on WebView 136
Anticipated spec changes
None
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5639348045217792?gate=5794834437111808
<https://chromestatus.com/feature/5639348045217792?gate=5794834437111808>
*Launch tracking*
launch/4328654 <http://launch/4328654> (Google internal only)
This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/34282fd9-8a1c-4a53-b0fd-525af0e86137n%40chromium.org
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/34282fd9-8a1c-4a53-b0fd-525af0e86137n%40chromium.org?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ec87bd50-ac96-4668-94d4-c03244217b3b%40gmail.com.