Repository navigation
fix: dispatch abstract widget methods through platform overrides - #2451
Merged
mykola-mokhnach merged 1 commit intoOct 7, 2026
Merged
Conversation
dlowzzxx
requested review from
SrinivasanTarget,
mykola-mokhnach,
saikrishna321 and
valfirst
as code owners
September 25, 2026 15:08
Contributor
|
@dlowzzxx Please rebase the PR with master |
dlowzzxx
force-pushed
the
fix/abstract-widget-methods-2372
branch
from
October 7, 2026 08:45
86ccb9a to
c02b9ee
Compare
Contributor
Author
|
Rebased on |
mykola-mokhnach
approved these changes
Oct 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change list
Fixes #2372. An
@OverrideWidgetfield declared as an abstractWidgetsubclass now dispatches its abstract methods to the selected Android, iOS, or HTML widget instead of throwingAbstractMethodError. The enhanced proxy intercepts those methods; an unhandled abstract invocation retains its original error behavior.Rebased on
masterat0f6e5c1d. The production fix is unchanged. The regression test now imports Appium's vendoredFindByandPageFactory, matching the current upstream API.Types of changes
Details and validation
Validation on Windows with Temurin 21.0.12.1 and repository Gradle 9.8.0:
master, the four widget regression cases fail with the reportedAbstractMethodError. On the rebased fix, all 27 focused widget/proxy tests pass, including Android, iOS, HTML and Android-webview stubs, single/list fields, and unhandled abstract fallback. These are repository unit tests using stub drivers.clean build --continueruns 199 core tests (190 pass, nine golden-comparison assertions fail) and all 12 bridge tests pass. The same nine failed test methods also fail on current upstream production in a shared baseline augmented only with a separate Selenium-decorator regression. A pristine upstream-only suite was not run. The full local build is not green.EmptyWebDriverandTestUtilsfiles in that current-base comparison.git diff --checkpasses.A process-local short temporary directory was needed to start Gradle in this Windows environment. No repository build settings were changed. Device/emulator/simulator E2E and the Selenium/JDK matrix were not run locally. Earlier hosted results belong to the previous head.
Hosted CI on this rebased head is separate: at 09:15 UTC on October 7, run 37595892063 had nine successful checks, two macOS E2E jobs in progress and one failing check. The JDK 17 snapshot job failed
SeleniumBridgeTest.opensOneBiDiConnectionForRepeatedCalls(expected one connection, observed zero); this is a test failure, unlike the prior-head snapshot compile errors. No matching clean hosted baseline was obtained, so its cause is unresolved.This change was AI-assisted with Codex. The validation and its limits are described above.