Skip to content

Flatten webview hierarchy#497

Open
kiftio wants to merge 1 commit into
mainfrom
07-17-flatten_webview_hierarchy
Open

Flatten webview hierarchy#497
kiftio wants to merge 1 commit into
mainfrom
07-17-flatten_webview_hierarchy

Conversation

@kiftio

@kiftio kiftio commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What changes are you making?

We still have a BaseWebView.. This made sense with CheckoutWebView and FallbackWebView for graceful degradation. Now we don't have FallbackWebView we should flatten that down

---
BaseWebView has been removed as an abstract base class. All of its functionality — WebView configuration, touch gesture handling, user agent suffix generation, back-press handling, navigation error handling, and removeFromParent — has been consolidated directly into CheckoutWebView.

The ECP_LOG_TAG and SCROLL_UP_DIRECTION constants previously nested inside BaseWebView are now top-level package-level declarations, and references to BaseWebView.ECP_LOG_TAG across CheckoutProtocol, EmbeddedCheckoutProtocolBridge, and WebMessageTransport have been updated accordingly.

CheckoutBottomSheetScrollHandoff and test helpers that previously referenced BaseWebView now reference CheckoutWebView directly. Test subclasses (ScrollableBaseWebView, GestureTestWebView) have been updated to extend CheckoutWebView instead, removing the need to override getListener().

How to test

  1. Build the Android library and confirm there are no compilation errors.
  2. Run the existing unit test suites (CheckoutWebViewTest, CheckoutBottomSheetTest) and verify all tests pass.
  3. Launch the CheckoutKitAndroidDemo sample app and complete a checkout flow end-to-end, verifying that progress indication, gesture handling (scroll handoff with the bottom sheet), back navigation, and error handling all behave correctly.
  4. Confirm that preloading a checkout URL and then presenting it works as expected.

Before you merge

Important

  • I've added tests to support my implementation
  • I have read and agree with the Contribution Guidelines
  • I have read and agree with the Code of Conduct
  • I've updated the relevant platform README (platforms/swift/README.md and/or platforms/android/README.md)

Releasing a new Swift version?
  • I have bumped the version in ShopifyCheckoutKit.podspec
  • I have bumped the version in platforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swift
  • I have updated the SwiftPM/CocoaPods version snippets in platforms/swift/README.md (major version only)
Releasing a new Embedded Checkout Protocol version?
  • I have bumped embeddedCheckoutProtocolAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated protocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.api if the public API changed
Releasing a new Android version?
  • I have bumped checkoutKitAndroid in platforms/android/gradle/libs.versions.toml
  • I have updated the Gradle/Maven version snippets in platforms/android/README.md

Tip

See the Contributing documentation for the full release process per platform.

@github-actions github-actions Bot added the #gsd:50662 Rebase Checkout Kit on UCP label Jul 17, 2026

kiftio commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@kiftio
kiftio force-pushed the 07-17-flatten_webview_hierarchy branch from 22c99c6 to a6efc4e Compare July 17, 2026 16:07
@kiftio
kiftio force-pushed the 07-17-flatten_webview_hierarchy branch from a6efc4e to 8a0592c Compare July 17, 2026 16:19
@kiftio
kiftio marked this pull request as ready for review July 17, 2026 16:20
@kiftio
kiftio requested a review from a team as a code owner July 17, 2026 16:20
@github-actions

Copy link
Copy Markdown

React Native — Coverage Report

Lines Statements Branches Functions
Coverage: 92%
91.85% (327/356) 87.98% (183/208) 100% (86/86)

@github-actions

Copy link
Copy Markdown

Package Size

Platform Artifact Base Head Delta
Android release AAR 246.5 KiB 245.6 KiB -897 B
Android file breakdown
File Base Head Delta
classes.jar 260.7 KiB 259.9 KiB -826 B
res/layout/checkout_view_content.xml 2.2 KiB 2.2 KiB 0 B
res/layout/checkout_sheet_content.xml 2.0 KiB 2.0 KiB 0 B
res/values/values.xml 1.2 KiB 1.2 KiB 0 B
R.txt 1.1 KiB 1.1 KiB 0 B
proguard.txt 798 B 798 B 0 B
AndroidManifest.xml 578 B 578 B 0 B
res/drawable/close.xml 431 B 431 B 0 B
res/menu/checkout_menu.xml 354 B 354 B 0 B
META-INF/com/android/build/gradle/aar-metadata.properties 157 B 157 B 0 B

Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report.

@bitrise

bitrise Bot commented Jul 17, 2026

Copy link
Copy Markdown

Install this build

Open Tophat, select your target device, then click Install. Links open on the Mac running Tophat.

SDK Install
Kotlin Install with Tophat

Checkout Kit E2E results

Status Suite Target Platform OS version tag Device
tests/shared/launch-smoke.yaml kotlin android latest Google Pixel 9
Android 17.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50662 Rebase Checkout Kit on UCP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant