Closed Bug 1685474 Opened 4 years ago Closed 4 years ago

Fix storage panel when changing between domains when Fission is disabled

Categories

(DevTools :: Storage Inspector, defect, P3)

defect

Tracking

(Fission Milestone:M7, firefox88 fixed)

RESOLVED FIXED
88 Branch
Fission Milestone M7
Tracking Status
firefox88 --- fixed

People

(Reporter: ladybenko, Assigned: ladybenko)

References

(Blocks 1 open bug)

Details

(Whiteboard: dt-fission-m3-mvp)

Attachments

(5 files, 1 obsolete file)

STR:

  • Disable Fission (set fission.autostart pref to false)
  • Open a website (I use reddit.com which has a bunch of 3rd party hosts)
  • Open the storage panel -> you can see the proper storage data, no issues
  • Type a different URL in the bar, and go there -> ex: wikipedia.org, keep the panel open
  • The hosts are not updated in the panel, and the info displayed in the data table is the one for the first site. Interacting with the data that is being displayed is broken.

Note that this affects to all storage type: both legacy listeners, and the new resources (content and parent process as well).

Tracking dt-fission-m3-mvp bugs for Fission M8 (blocking Release channel experiment, but not Beta experiment).

Fission Milestone: --- → M8
Severity: -- → S3
Priority: -- → P3

This adds a navigation test for every storage type (except Extension storage) in the storage panel. They currently pass on Fission, but fail when Fission is disabled.

Assignee: nobody → balbeza
Status: NEW → ASSIGNED
Depends on: 1687923

Moving dt-fission-m3-mvp bugs from Fission M8 to M7 (blocking Beta experiment).

Fission Milestone: M8 → M7

Comment on attachment 9198160 [details]
Bug 1685474 - Add navigation tests for the storage panel

Revision D102412 was moved to bug 1687923. Setting attachment 9198160 [details] to obsolete.

Attachment #9198160 - Attachment is obsolete: true
Depends on: 1691040

Resource updates and destroyed were ignored because the singleton storage resource
was cleaned on will-navigate.
So, we instead revert back to listen to events on fronts.
But instead of listening to a unique event on storageFront,
we listen to each individual storage resource front (one per type and per target).
This is why we have to do some filtering, still. Both on legacy listener and Watcher classes.

I'm also clarfifying things a bit in ContentProcessStorageWatcher,
I forked StorageActor completely, while removing its protocol.js Actor inheritance
and some stuff that we don't need for the Watcher class.

This help emitting stores-updated and stores-cleared and reuse the exact same
code between legacy listener and watcher class regarding filtering.

Attachment #9202326 - Attachment description: Bug 1685474 - Stop using resource-updated and resource-destroyed for storage resources. → Bug 1685474 - [devtools] Stop using resource-updated and resource-destroyed for storage resources.

It looks like the patch for this bug also fixes 1682982, so I marked it as duplicate.

This variable name was confusing and didn't help understand the great complexity of this object.
This is a dictionary of storage resources, which also happen to be fronts, keyed by storage type/key (string).

  • onResourceListAvailable and populateStorageTree were both computing distinct dictinary. storages versus this.storageResources (with the resourcesWithHosts making them both differents). It is easier to follow if we have only one dictionary, build by onResourceListAvailable and that's the straight object given by the ResourceWatcher API.
  • Since we migrated to resources API. resources object passed to onResourceAvailable
    should no longer have any from attribute. This is no longer a RDP packet, but an array computed by the ResourceWatcher API.
  • This isn't really useful to filter out resources with empty hosts because populateTreeFromResource will be a noop
    if that's empty. I think it is easier to follow if we pass all the resources to this method.

Tracking for Fission M8 milestone (Release experiment).

Fission Milestone: M7 → M8
Pushed by apoirot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3548215d398a [devtools] Stop using resource-updated and resource-destroyed for storage resources. r=ladybenko,devtools-backward-compat-reviewers https://hg.mozilla.org/integration/autoland/rev/32478a3df2c2 [devtools] Clear storage fronts/resources when a target is destroyed. r=ladybenko https://hg.mozilla.org/integration/autoland/rev/1d8647841ff6 [devtools] Update StorageFront/Resource's hosts attribute on single-store-update events r=ladybenko https://hg.mozilla.org/integration/autoland/rev/7d6f9594c1c8 [devtools] Rename storageTypes to storageResources. r=ladybenko https://hg.mozilla.org/integration/autoland/rev/7d8728cb6a1d [devtools] Stop having intermediate "storage resources" dictionary. r=ladybenko
Regressions: 1694352
Regressions: 1694274
No longer regressions: 1694352
Fission Milestone: M8 → M7
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: