Contact emails
abhishek.shanthku...@microsoft.com, est...@chromium.org

Specification
https://www.w3.org/TR/IndexedDB/#dom-idbrequest-error


Summary

Change to reporting for certain error cases that were previously reported with 
a DOMException and the message "Failed to read large IndexedDB value". Chromium 
will now raise a DOMException with the name "NotFoundError" when the file 
containing the data being read by an IDBRequest is missing from the disk so 
that sites can take the appropriate corrective action when an unrecoverable 
failure occurs. Corrective actions could include deleting the entry from the 
DB, notifying the user, re-fetching the data from servers, etc. More details: a 
large value (above a specific size threshold) written to IndexedDB is not 
stored directly in the underlying LevelDB database but instead stored as a 
separate file. An IndexedDB read request for this value looks up the blob 
reference from LevelDB, reads the blob, then unwraps and returns the stored 
value. If a failure occurs in this process, the browser fires an "error" event 
and sets the error property on the IDBRequest to a DOMException with the 
message "Failed to read large IndexedDB value". The failure could be 
recoverable (caused by low memory) or unrecoverable (the blob file is missing 
from the disk). This feature updates the name to "NotFoundError" to enable 
distinguishing recoverable and unrecoverable cases.



Blink component
Blink>Storage>IndexedDB


TAG review
None


TAG review status
Not applicable


Risks




Interoperability and Compatibility

None


Gecko: No signal

WebKit: No signal

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?

None




Debuggability

None



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes
This change is in the blink layer of the IndexedDB API implementation and hence 
applies to all Blink platforms.



Is this feature fully tested by web-platform-tests?
No


Flag name on chrome://flags
None


Finch feature name
None


Non-finch justification

This is a simple change to the error type when a failure occurs due to a 
specific cause. Web developers can choose to update their sites to respond 
differently to this specific error, but existing general error handling keyed 
to the "Failed to read large IndexedDB value" message will continue to work. 
Hence, this is unlikely to break sites and is therefore not behind a feature 
flag.



Requires code in //chrome?
False


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


Estimated milestones


Shipping on desktop 130

Shipping on Android 130

Shipping on WebView 130




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


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


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 blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/66e98e07.2b0a0220.195547.0126.GAE%40google.com.

Reply via email to