Contact emails
[email protected]

Specification
https://xhr.spec.whatwg.org/#interface-progressevent


Summary
ProgressEvent is available in service workers, allowing developers to construct 
progress events with lengthComputable, loaded, and total attributes. This 
aligns service workers with other worker contexts and the XMLHttpRequest 
Standard.


Blink component
Blink


Web Feature ID
xhr


Motivation
Blink exposes ProgressEvent in Window, DedicatedWorker, and SharedWorker 
contexts, but not in service workers. Exposing it in service workers closes 
this gap with the XMLHttpRequest Standard and allows code that constructs 
progress events to be reused across worker contexts. The change reuses the 
existing implementation without exposing XMLHttpRequest or adding automatic 
fetch progress events. Draft implementation: 
https://chromium-review.googlesource.com/c/chromium/src/+/8425503


Initial public proposal
No information provided


TAG review
Not applicable. This change implements an existing standardized exposure 
requirement already supported by Gecko and WebKit, as documented below. No new 
API design is introduced.


TAG review status
Not applicable


Goals for experimentation
None


Risks




Interoperability and Compatibility
This change aligns service worker exposure of ProgressEvent with the 
XMLHttpRequest Standard and reuses the existing implementation. Compatibility 
risk is expected to be low. Adding the global may change feature-detection 
results or interact with application-defined ProgressEvent polyfills in service 
workers.

Gecko: Shipped/Shipping 
(https://hg.mozilla.org/releases/mozilla-release/raw-file/FIREFOX_140_0_RELEASE/dom/webidl/ProgressEvent.webidl)
 Verified in Firefox 140 release sources: ProgressEvent is exposed to Window 
and Worker, and ServiceWorkerGlobalScope includes the Worker global name. This 
establishes service worker exposure in a released version; it does not identify 
the first supported version. ServiceWorker global definition: 
https://hg.mozilla.org/releases/mozilla-release/raw-file/FIREFOX_140_0_RELEASE/dom/webidl/ServiceWorkerGlobalScope.webidl

WebKit: Shipped/Shipping 
(https://github.com/apple-oss-distributions/WebKit/blob/WebKit-7614.1.25.0.30/Source/WebCore/dom/ProgressEvent.idl)
 Verified in Apple's published WebKit-7614.1.25.0.30 source distribution: 
ProgressEvent is exposed to Window and Worker, and ServiceWorkerGlobalScope 
includes the Worker global name. This is release-source evidence, not a claim 
about the first supported Safari version. ServiceWorker global definition: 
https://github.com/apple-oss-distributions/WebKit/blob/WebKit-7614.1.25.0.30/Source/WebCore/workers/service/ServiceWorkerGlobalScope.idl

Web developers: No signals

Other signals:


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it 
has potentially high risk for Android WebView-based applications?
Low risk is expected. This change adds the existing ProgressEvent interface to 
service workers without removing existing APIs or changing its behavior in 
other contexts. Code that detects or defines a ProgressEvent global in service 
workers may behave differently. The change is guarded by the 
ProgressEventInServiceWorker base::Feature, which provides a kill switch.



Debuggability
Manually verified on macOS using the patched Content Shell and its DevTools 
frontend attached to a service worker. Confirmed the ServiceWorkerGlobalScope 
context, successful ProgressEvent construction, expandable object inspection, 
and the expected lengthComputable, loaded, total, and isTrusted values. 
Autocomplete works for ProgressEvent and its attributes. No DevTools crash or 
disconnect occurred during these checks. No dedicated DevTools UI changes are 
needed for this exposure change. Chrome DevTools for agents was not separately 
tested.


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes
The change uses platform-independent Blink bindings and the existing 
ProgressEvent implementation, with no platform-specific restrictions. Support 
is intended for Windows, macOS, Linux, ChromeOS, Android, and Android WebView 
in service worker contexts


Is this feature fully tested by web-platform-tests?
Yes
The exposure change is covered by extending the existing 
xhr/progressevent-constructor.any.js WPT to ServiceWorker, alongside Window, 
DedicatedWorker, and SharedWorker. The tests cover construction, default 
values, EventInit options, inherited Event attributes, numeric values, and 
value conversion. Local runs passed. Blink's default and virtual/stable service 
worker interface-listing tests additionally cover the exposed interface 
surface. The expanded WPT is included in the CL: 
https://chromium-review.googlesource.com/c/chromium/src/+/8425503


Flag name on about://flags
No information provided


Finch feature name
ProgressEventInServiceWorker


Rollout plan
Will ship enabled for all users


Requires code in //chrome?
False


Tracking bug
https://issues.chromium.org/issues/332663431


Measurement
No dedicated UseCounter is added by this change. Service-worker-specific 
adoption is not currently measured.


Availability expectation
Expected to be available in service workers on Blink platforms that support 
service workers.


Adoption expectation
Expected to benefit applications and libraries that construct progress events 
in service workers or share such code across worker contexts. No quantitative 
adoption estimate is available.


Adoption plan
Communicate the change through the Blink intent process, upstream the expanded 
Web Platform Tests, and update browser compatibility documentation to reflect 
service worker support.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source 
repository and its open-source dependencies to function?
None. This change reuses Blink's existing ProgressEvent implementation and 
introduces no additional dependencies.


Estimated milestones


Shipping on desktop 157

Shipping on Android 157

Shipping on WebView 157




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, changing to naming or structure of the API in a 
non-backward-compatible way).
None anticipated for this change. The XMLHttpRequest Standard already exposes 
ProgressEvent to Window and Worker. This change implements the existing 
exposure requirement in service workers.


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5069584943153152?gate=6152298232414208


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ab51ccd.c518491a.183cfe.046f.GAE%40google.com



This intent message was generated by Chrome Platform Status.

-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6abe5be6.b816ca50.7065.0669.GAE%40google.com.

Reply via email to