Repository navigation
Conversation
Accept optional native method names in every availability helper and export ApiMethodName for consumer wrappers. Keep no-argument namespace checks.
Keep boolean results for named deletion and derive legacy WebKit results from an existence check. Read the collection before clearAll in every browser and ignore inconsistent native results. Preserve WebKit creation and null lookup compatibility, with regression tests beside the alarm methods. BREAKING CHANGE: clearAllAlarm now reports whether the collection observed before deletion was nonempty. An empty Chromium collection returns false instead of the previous native true. Reads and deletion are not atomic.
Use WebKit details objects, numeric Chrome and Firefox arguments, and the Firefox Promise interface while retaining the selected native receiver.
Normalize null current-tab results, preserve cookie details or null, and name missing native methods without losing callback errors. Select the manifest action namespace in diagnostics and reject unsupported getBrowserInfo calls. BREAKING CHANGE: removeCookie returns CookieDetails | null. Handle absent results. Unsupported getBrowserInfo calls reject a Promise instead of throwing synchronously; guarded missing methods use API-named Error objects instead of native TypeError messages.
Exercise the production package with native WKWebExtension APIs and disposable data stores. Record actual system versions and verify scheduling, repeated conditional creation, removal, action state, missing results and errors.
Run strict true/false alarm removal assertions and action/result regressions in the production Chromium and Firefox extension runners.
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.
Addresses #40. Stacked on the separate scripting type compatibility fix (#41); that prerequisite keeps fresh consumer installations buildable.
WebKit's alarms.create rejects the callback previously supplied by the wrapper, missing alarms/current tabs can return null, and action.isEnabled expects a details object. Adapt the supported calls, keep callback handling for other methods, and make missing native methods identifiable by API name.
Promise<boolean>for alarm removal.clearAlarm(name)pre-reads only WebKit and prefers a native boolean. Unexpected non-boolean results elsewhere reject.clearAllAlarm()reads getAll before deletion in every browser and reports whether that collection was nonempty, ignoring inconsistent native results. Both removal observations are non-atomic.ApiMethodName<T>and support optional native method names in all 32 availability helpers. Update every documentation signature and packed consumer type checks.Breaking changes, recorded on their owning commits:
Validation: 139 Jest suites / 3267 tests; lint, generated-source check, source/test/browser typechecks, build and tree shaking, packed ESM/CJS consumer checks. Each logical intermediate commit was independently built/typechecked and relevant tests run. Both the base WebKit host and the report-enhanced host passed all five scenarios.
See docs/safari.md for the dated verification snapshot and migration details. No release or changelog generation is included.
The follow-up WebKit pilot also passed all five scenarios on macOS 15.8.2 / WebKit 20621.3.11.11.3 and macOS 26.7.2 / WebKit 21624.5.1.11.3; its downloaded artifacts record actual granted permissions including webRequest.
Stack order: #41 → this PR → #43. Existing core CI filters PR bases to develop/feature branches, so it will run for this PR after the prerequisite lands and the base is retargeted to develop. The local package checks and native runtime results above are already complete.