Bug 263717 - [GTK] Reloading page with Ctrl+R breaks Element due to IndexedDB errors
Summary: [GTK] Reloading page with Ctrl+R breaks Element due to IndexedDB errors
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-26 06:40 PDT by Michael Catanzaro
Modified: 2023-10-26 06:40 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2023-10-26 06:40:52 PDT
Using Epiphany Tech Preview with WebKitGTK 2.42.1 and the Element Matrix client, reload the page using Ctrl+R. A bunch of IDBOpenDBRequests will fail:

[Error] StorageManager.idbLoad failed for account:mx_access_token – Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, …}
Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, currentTarget: IDBOpenDBRequest, eventPhase: 2, …}Eventbubbles: truecancelBubble: falsecancelable: truecomposed: falsecurrentTarget: nulldefaultPrevented: falseeventPhase: 0isTrusted: truereturnValue: truesrcElement: IDBRequest {result: undefined, error: QuotaExceededError: Failed to OpenBackingStore in database because not enough space for domain, source: null, transaction: null, readyState: "done", …}IDBRequesttarget: IDBRequest {result: undefined, error: QuotaExceededError: Failed to OpenBackingStore in database because not enough space for domain, source: null, transaction: null, readyState: "done", …}IDBRequesttimeStamp: 3946type: "error"Event Prototype
	(anonymous function) (bundle.js:2:3225126)
	(anonymous function) (element-web-app.js:1:89397)
[Error] migration of token mx_access_token to IndexedDB failed – Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, …}
Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, currentTarget: IDBOpenDBRequest, eventPhase: 2, …}Eventbubbles: truecancelBubble: falsecancelable: truecomposed: falsecurrentTarget: nulldefaultPrevented: falseeventPhase: 0isTrusted: truereturnValue: truesrcElement: IDBRequest {result: undefined, error: QuotaExceededError: Failed to OpenBackingStore in database because not enough space for domain, source: null, transaction: null, readyState: "done", …}IDBRequesttarget: IDBRequest {result: undefined, error: QuotaExceededError: Failed to OpenBackingStore in database because not enough space for domain, source: null, transaction: null, readyState: "done", …}IDBRequesttimeStamp: 3954type: "error"Event Prototype
	(anonymous function) (bundle.js:2:3225126)
	(anonymous function) (element-web-app.js:1:89599)
[Error] StorageManager.idbLoad failed for account:mx_refresh_token – Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, …}
Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, currentTarget: IDBOpenDBRequest, eventPhase: 2, …}Event
	(anonymous function) (bundle.js:2:3225126)
	(anonymous function) (element-web-app.js:1:89397)
[Error] idbLoad for pickleKey failed – Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, …}
Event {isTrusted: true, type: "error", target: IDBOpenDBRequest, currentTarget: IDBOpenDBRequest, eventPhase: 2, …}Event
	(anonymous function) (bundle.js:2:3225126)
	(anonymous function) (init.js:1:22384)
[Debug] No pickle key available (bundle.js, line 2)

Later:

[Error] Expected a pickle key, but none provided.  Encryption may not work.
	(anonymous function) (bundle.js:2:3225126)
	(anonymous function) (element-web-app.js:1:94022)

This causes Element to totally break; either rooms will load forever, or else previously-sent encrypted messages will fail to decrypt. To successfully use Element again, I have to close and reopen Epiphany. It works fine when opening Element for the first time; only reloading the page with Ctrl+R causes the IDBOpenDBRequests to start failing.