Closed Bug 1623245 Opened 5 years ago Closed 4 years ago

Implement JS to Rust bridge for new chrome.storage.sync API implementation.

Categories

(WebExtensions :: Storage, enhancement, P1)

enhancement

Tracking

(firefox78 fixed)

RESOLVED FIXED
mozilla78
Tracking Status
firefox78 --- fixed

People

(Reporter: markh, Assigned: markh)

References

(Blocks 2 open bugs)

Details

(Whiteboard: SACI)

Attachments

(1 file, 3 obsolete files)

We are replacing the kinto based chrome.storage.sync API with a rust-backed one that syncs to the existing sync infrastructure - see this JIRA epic (or whatever it is!) for more.

While we need a better bugzilla bug tree for this effort, this bug exists so there's a place to hang my WIP off. Lina is doing something similar, but for sync itself, in bug 1596322 - one of these bugs will probably end up depending on the other, but that's not clear yet.

Priority: -- → P1
Whiteboard: SACI
Attachment #9134339 - Attachment description: Bug 1623245 (Not really!) - First hacky attempt at replacing the API - test_ext_storage.js get's further than you might think! :) → Bug 1623245 (Not really!) - First hacky attempt at replacing the API - tests pass!

Depends on D67436

Depends on: 1626128

I think the order of Bugzilla dependencies here could be something like:

  • Land Golden Gate (the bridged Sync engine bindings) in bug 1596322 first.
  • Vendor a-s sync15_traits into m-c, bug 1626125.
  • Move BridgedEngine into sync15_traits (bug 1626128), letting us implement BridgedEngines in a-s.
  • Vendor rusqlite (bug 1626323), which we need for our Rust component.
  • Vendor our storage.sync Rust component, bug 1626506.
  • Put all the pieces together: implement an XPCOM interface for sync + storage that calls into our Rust component (this bug!)

Does that sound about right, Mark? Like you said in the meeting, there are many ways to split this up.

No longer depends on: 1604678
Depends on: 1626323
Depends on: 1626506

(In reply to :Lina Cambridge from comment #5)

Does that sound about right, Mark?

Sounds great! I opened a new bug for vendoring webext-storage and moved the dependencies around a little to try and avoid transitive ones, so I think things are in fairly good shape.

No longer depends on: 1626128, 1626323

Awesome, thanks! Updated the comment to reflect that. 😁

Blocks: 1628752

Snagging this from Mark to help bring it over the line! 😄

Assignee: markh → lina

Comment on attachment 9135313 [details]
Bug 1623245 (or more likely its own bug?) - Move a sync-specific test from test_ext_storage.js to test_ext_storage_sync.js

Revision D67973 was moved to bug 1633670. Setting attachment 9135313 [details] to obsolete.

Attachment #9135313 - Attachment is obsolete: true
Depends on: 1633943
Assignee: lina → markh
No longer blocks: 1628752
Depends on: 1634191
No longer depends on: 1633943
Blocks: 1634614
Blocks: 1634615

I created a few other bugs to reduce the scope of this to landing the core storage implementation (ie, without syncing) and disabled via a preference. With the bar that little bit lower (ie, because it's impossible for it to break anything unless they flip that pref), I think it's ready to review in that context. :luca, I'm flagging you, but welcome reviews from anyone.

There's a try at https://treeherder.mozilla.org/#/jobs?repo=try&revision=3b83a85449a576687d8400275c158bdb28f1d8f0

Attachment #9134045 - Attachment description: Bug 1623245 - WIP for a JS bridge to the rust impl of a chrome.storage.sync impl → Bug 1623245 - A new browser.storage.sync local storage implementation, pref'd off. r?rpl

Comment on attachment 9135314 [details]
Bug 1623245 (part ?) - Migration of old data into the new world.

Revision D67974 was moved to bug 1634614. Setting attachment 9135314 [details] to obsolete.

Attachment #9135314 - Attachment is obsolete: true
Blocks: 1637166
Attachment #9134339 - Attachment is obsolete: true
Blocks: 1637468
Pushed by mhammond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e92519eaba6f A new browser.storage.sync local storage implementation, pref'd off. r=rpl
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: