Closed Bug 1641005 Opened 1 year ago Closed 1 year ago

Rust-based Chrome.storage.sync doesn't notify observers of the changes caused by sync

Categories

(Firefox :: Sync, defect)

78 Branch
defect

Tracking

()

VERIFIED FIXED
Firefox 79
Tracking Status
firefox78 --- verified
firefox79 --- verified

People

(Reporter: vcarciu, Assigned: lina)

References

Details

Attachments

(1 file)

Steps to reproduce:

1.On Latest Firefox Nightly, switch the webextensions.storage.sync.kinto to False from about:config
2.Restart the browser and sign up for a new Firefox Account A
3.Open another Firefox profile and sign in with Firefox Account A and wait for the initial Sync
4.Observe that the webextensions.storage.sync.kinto is set to False on the new profile too. Perform a restart on the new profile.
5.Install https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/ webextension on first profile and then Sync. The extension is now installed on both profiles.
6.On both profiles, set up the Multi Account Container by following the initial steps required by application
7. On first profile, add/modify/delete some containers and Sync
8.Force a Sync on second profile(Remember that you are logged with same FXA on both profiles)

Expected results:
Changes are synced between profiles

Actual results:
Changes are not synced

After chatting with Mark on Slack, it looks like the problem is that "storage.sync needs to notify observers of the changes after a sync - it doesn't" .

I will NI him for more info.

Also, I can see the modifications made to extensions preferences using https://addons.mozilla.org/en-US/firefox/addon/about-sync/ so Mark's theory is right.

Flags: needinfo?(markh)
Blocks: 1634615

Oooof, nice catch, Victor and Mark! I filed https://github.com/mozilla/application-services/issues/3157 for the a-s side of the work; we can use this ticket for the changes in Firefox.

This new method fetches pending synced changes from the extension
storage store, and passes them to storage.onChanged listeners.
This allows extensions that listen for these events to know when a
sync happened, which Kinto supported as well.

To guard against misuse, this method is implemented on a separate
mozISyncedExtensionStorageArea interface. To avoid multiple
inheritance (if mozI{Synced, Configurable}ExtensionStorageArea both
inherited from mozIExtensionStorageArea, which base method is called
when?), both of these internal-ish interfaces now inherit from
nsISupports instead.

Finally, because getSyncedChanges can return changes for multiple
extensions, mozIExtensionStorageListener.onChanged now takes the
affected extension ID as its first argument.

Assignee: nobody → lina
Status: NEW → ASSIGNED
Flags: needinfo?(markh)
Summary: Chrome.storage.sync is not working on FF78 → Rust-based Chrome.storage.sync doesn't notify observers of the changes caused by sync
Attachment #9151954 - Attachment description: Bug 1641005 - Implement `mozISyncedExtensionStorageArea.getSyncedChanges()`. r?markh! → Bug 1641005 - Implement `mozISyncedExtensionStorageArea.fetchPendingSyncedChanges()`. r?markh!
Attachment #9151954 - Attachment description: Bug 1641005 - Implement `mozISyncedExtensionStorageArea.fetchPendingSyncedChanges()`. r?markh! → Bug 1641005 - Implement `mozISyncedExtensionStorageArea.fetchPendingSyncChanges()`. r?markh!
Pushed by mhammond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d6c79e77d6b9
Implement `mozISyncedExtensionStorageArea.fetchPendingSyncChanges()`. r=markh

Backed out changeset d6c79e77d6b9 (bug 1641005) for test_StorageSyncService.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=xpc&fromchange=d6c79e77d6b99d99ca48b446a6b3c375bbcad6d0&tochange=c0d7238e087ef68861840df9a7f2ef184283e09b&selectedTaskRun=YmLVw_JJR5q5ltC5UruFvQ-0

Backout link: https://hg.mozilla.org/integration/autoland/rev/c0d7238e087ef68861840df9a7f2ef184283e09b

Failures logs:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=304486793&repo=autoland&lineNumber=1958

[task 2020-06-01T01:34:07.904Z] 01:34:07     INFO -  TEST-START | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js
[task 2020-06-01T01:34:08.334Z] 01:34:08  WARNING -  TEST-UNEXPECTED-FAIL | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | xpcshell return code: 0
[task 2020-06-01T01:34:08.334Z] 01:34:08     INFO -  TEST-INFO took 427ms
[task 2020-06-01T01:34:08.335Z] 01:34:08     INFO -  >>>>>>>
[task 2020-06-01T01:34:08.335Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 2924
[task 2020-06-01T01:34:08.336Z] 01:34:08     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-06-01T01:34:08.336Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-06-01T01:34:08.337Z] 01:34:08     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-06-01T01:34:08.337Z] 01:34:08     INFO -  running event loop
[task 2020-06-01T01:34:08.337Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, kKnownEsrVersion) failed with result 0x80004002 (NS_NOINTERFACE): file /builds/worker/checkouts/gecko/toolkit/components/resistfingerprinting/nsRFPService.cpp, line 673
[task 2020-06-01T01:34:08.337Z] 01:34:08     INFO -  xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | Starting check_remote
[task 2020-06-01T01:34:08.338Z] 01:34:08     INFO -  (xpcshell/head.js) | test check_remote pending (2)
[task 2020-06-01T01:34:08.338Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | check_remote - [check_remote : 1] useRemoteWebExtensions matches - false == false
[task 2020-06-01T01:34:08.339Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | check_remote - [check_remote : 1] testing from extension process - true == true
[task 2020-06-01T01:34:08.339Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2020-06-01T01:34:08.339Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2020-06-01T01:34:08.339Z] 01:34:08     INFO -  (xpcshell/head.js) | test check_remote finished (2)
[task 2020-06-01T01:34:08.340Z] 01:34:08     INFO -  xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | Starting setup_storage_sync
[task 2020-06-01T01:34:08.340Z] 01:34:08     INFO -  (xpcshell/head.js) | test setup_storage_sync pending (2)
[task 2020-06-01T01:34:08.342Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 1 finished (2)
[task 2020-06-01T01:34:08.343Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 2 pending (2)
[task 2020-06-01T01:34:08.343Z] 01:34:08     INFO -  (xpcshell/head.js) | test setup_storage_sync finished (2)
[task 2020-06-01T01:34:08.343Z] 01:34:08     INFO -  xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | Starting test_storage_sync_service
[task 2020-06-01T01:34:08.344Z] 01:34:08     INFO -  (xpcshell/head.js) | test test_storage_sync_service pending (2)
[task 2020-06-01T01:34:08.344Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 2 finished (2)
[task 2020-06-01T01:34:08.349Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 57] `set` should notify listeners about changes - [{"extId":"ext-1","changes":{"bye":{"newValue":"adiós"},"hi":{"newValue":"hello! 💖"}}}] deepEqual [{"extId":"ext-1","changes":{"hi":{"newValue":"hello! 💖"},"bye":{"newValue":"adiós"}}}]
[task 2020-06-01T01:34:08.350Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 74] `set` should not return a value - true == true
[task 2020-06-01T01:34:08.350Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 83] `get` should not notify listeners - [] deepEqual []
[task 2020-06-01T01:34:08.350Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 84] `get` with key should return value - {"hi":"hello! 💖"} deepEqual {"hi":"hello! 💖"}
[task 2020-06-01T01:34:08.350Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 93] `get` without a key should return all values - {"bye":"adiós","hi":"hello! 💖"} deepEqual {"hi":"hello! 💖","bye":"adiós"}
[task 2020-06-01T01:34:08.353Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 113] clear removed ext-1 - {} deepEqual {}
[task 2020-06-01T01:34:08.353Z] 01:34:08     INFO -  TEST-PASS | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_service - [test_storage_sync_service : 116] clear didn't remove ext-2 - {"hi":"hola! 👋"} deepEqual {"hi":"hola! 👋"}
[task 2020-06-01T01:34:08.354Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 3 pending (2)
[task 2020-06-01T01:34:08.354Z] 01:34:08     INFO -  (xpcshell/head.js) | test test_storage_sync_service finished (2)
[task 2020-06-01T01:34:08.354Z] 01:34:08     INFO -  xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | Starting test_storage_sync_bridged_engine
[task 2020-06-01T01:34:08.355Z] 01:34:08     INFO -  (xpcshell/head.js) | test test_storage_sync_bridged_engine pending (2)
[task 2020-06-01T01:34:08.355Z] 01:34:08     INFO -  "Add some local items"
[task 2020-06-01T01:34:08.356Z] 01:34:08     INFO -  (xpcshell/head.js) | test run_next_test 3 finished (2)
[task 2020-06-01T01:34:08.356Z] 01:34:08     INFO -  "Start a sync"
[task 2020-06-01T01:34:08.356Z] 01:34:08     INFO -  "Store some incoming synced items"
[task 2020-06-01T01:34:08.356Z] 01:34:08     INFO -  "Merge"
[task 2020-06-01T01:34:08.356Z] 01:34:08  WARNING -  TEST-UNEXPECTED-FAIL | xpcshell.ini:toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js | test_storage_sync_bridged_engine - [test_storage_sync_bridged_engine : 173] Should return pending synced changes for observers - [{"extId":"ext-2","changes":{"c":{"newValue":1234}}},{"extId":"ext-3","changes":{"d":{"newValue":"new! ✨"}}}] deepEqual []
[task 2020-06-01T01:34:08.357Z] 01:34:08     INFO -  /builds/worker/workspace/build/tests/xpcshell/tests/toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js:test_storage_sync_bridged_engine:173
[task 2020-06-01T01:34:08.357Z] 01:34:08     INFO -  exiting test
[task 2020-06-01T01:34:08.358Z] 01:34:08     INFO -  Unexpected exception NS_ERROR_ABORT:
[task 2020-06-01T01:34:08.358Z] 01:34:08     INFO -  _abort_failed_test@/builds/worker/workspace/build/tests/xpcshell/head.js:833:20
[task 2020-06-01T01:34:08.358Z] 01:34:08     INFO -  do_report_result@/builds/worker/workspace/build/tests/xpcshell/head.js:934:5
[task 2020-06-01T01:34:08.359Z] 01:34:08     INFO -  Assert<@/builds/worker/workspace/build/tests/xpcshell/head.js:73:21
[task 2020-06-01T01:34:08.359Z] 01:34:08     INFO -  proto.report@resource://testing-common/Assert.jsm:233:10
[task 2020-06-01T01:34:08.359Z] 01:34:08     INFO -  deepEqual@resource://testing-common/Assert.jsm:310:8
[task 2020-06-01T01:34:08.359Z] 01:34:08     INFO -  test_storage_sync_bridged_engine@/builds/worker/workspace/build/tests/xpcshell/tests/toolkit/components/extensions/test/xpcshell/test_StorageSyncService.js:173:12
[task 2020-06-01T01:34:08.360Z] 01:34:08     INFO -  async*_run_next_test/<@/builds/worker/workspace/build/tests/xpcshell/head.js:1618:22
[task 2020-06-01T01:34:08.360Z] 01:34:08     INFO -  _run_next_test@/builds/worker/workspace/build/tests/xpcshell/head.js:1618:38
[task 2020-06-01T01:34:08.360Z] 01:34:08     INFO -  run@/builds/worker/workspace/build/tests/xpcshell/head.js:777:9
[task 2020-06-01T01:34:08.360Z] 01:34:08     INFO -  _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:248:6
[task 2020-06-01T01:34:08.361Z] 01:34:08     INFO -  _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:577:5
[task 2020-06-01T01:34:08.361Z] 01:34:08     INFO -  @-e:1:1
[task 2020-06-01T01:34:08.361Z] 01:34:08     INFO -  exiting test
[task 2020-06-01T01:34:08.361Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp, line 3359
[task 2020-06-01T01:34:08.362Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: OOPDeinit() without successful OOPInit(): file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 3370
[task 2020-06-01T01:34:08.362Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-06-01T01:34:08.363Z] 01:34:08     INFO -  PID 2137 | [2137, Main Thread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-06-01T01:34:08.364Z] 01:34:08     INFO -  <<<<<<<

https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=304486687&repo=autoland&lineNumber=2285

[task 2020-06-01T01:32:43.274Z] 01:32:43     INFO -  TEST-START | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js
[task 2020-06-01T01:32:46.531Z] 01:32:46  WARNING -  TEST-UNEXPECTED-FAIL | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | xpcshell return code: -11
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  TEST-INFO took 3247ms
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  >>>>>>>
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  PID 17809 | [17809, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 2924
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  running event loop
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  PID 17809 | [17809, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, kKnownEsrVersion) failed with result 0x80004002 (NS_NOINTERFACE): file /builds/worker/checkouts/gecko/toolkit/components/resistfingerprinting/nsRFPService.cpp, line 673
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | Starting check_remote
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test check_remote pending (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | check_remote - [check_remote : 1] useRemoteWebExtensions matches - true == true
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | check_remote - [check_remote : 1] testing from extension process - false == false
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test check_remote finished (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | Starting setup
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test setup pending (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163600	addons.manager	DEBUG	Application has been upgraded"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163601	addons.manager	DEBUG	Loaded provider scope for resource://gre/modules/addons/XPIProvider.jsm: ["XPIProvider", "XPIInternal"]"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163610	addons.manager	DEBUG	Loaded provider scope for resource://gre/modules/addons/GMPProvider.jsm"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163613	addons.manager	DEBUG	Loaded provider scope for resource://gre/modules/addons/PluginProvider.jsm"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163614	addons.manager	DEBUG	Starting provider: XPIProvider"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163615	addons.xpi	DEBUG	startup"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163616	addons.xpi	DEBUG	List of built-in add-ons is missing or invalid.: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXPCComponents_Utils.readUTF8URI]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: startup :: line 2433"  data: no] Stack trace: startup()@resource://gre/modules/addons/XPIProvider.jsm:2433
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  callProvider()@resource://gre/modules/AddonManager.jsm:212
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  _startProvider()@resource://gre/modules/AddonManager.jsm:583
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  startup()@resource://gre/modules/AddonManager.jsm:807
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  startup()@resource://gre/modules/AddonManager.jsm:3462
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  observe()@resource://gre/modules/addonManager.js:87
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  promiseStartupManager()@resource://testing-common/AddonTestUtils.jsm:977
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  startAddonManager()@resource://testing-common/ExtensionXPCShellUtils.jsm:950
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  setup()@/builds/worker/workspace/build/tests/xpcshell/tests/toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js:16
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  _run_next_test/<()@/builds/worker/workspace/build/tests/xpcshell/head.js:1618
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  _run_next_test()@/builds/worker/workspace/build/tests/xpcshell/head.js:1618
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  run()@/builds/worker/workspace/build/tests/xpcshell/head.js:777
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  _do_main()@/builds/worker/workspace/build/tests/xpcshell/head.js:248
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  _execute_test()@/builds/worker/workspace/build/tests/xpcshell/head.js:577
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  -e:1"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163620	addons.xpi	INFO	SystemAddonLocation directory is missing"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163639	addons.xpi	INFO	Removing all system add-on upgrades."
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163640	addons.xpi	DEBUG	checkForChanges"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163641	addons.xpi	DEBUG	Loaded add-on state: ${}"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163643	addons.xpi	DEBUG	scanForChanges changed: false, state: {}"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163644	addons.xpi	DEBUG	Empty XPI database, setting schema version preference to 32"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163644	addons.xpi	DEBUG	No changes found"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163664	addons.xpi-utils	DEBUG	Synchronously loading the add-ons database"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163665	addons.xpi-utils	DEBUG	Starting async load of XPI database /tmp/xpc-profile-TifBJv/extensions.json"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 1 finished (2)
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163740	addons.xpi-utils	DEBUG	Rebuilding XPI database with no extensions"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163744	addons.manager	DEBUG	Registering shutdown blocker for XPIProvider"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163744	addons.manager	DEBUG	Provider finished startup: XPIProvider"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163744	addons.manager	DEBUG	Starting provider: PluginProvider"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163744	addons.manager	DEBUG	Registering shutdown blocker for PluginProvider"
[task 2020-06-01T01:32:46.531Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163745	addons.manager	DEBUG	Provider finished startup: PluginProvider"
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163745	addons.manager	DEBUG	Completed startup sequence"
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 2 pending (2)
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  (xpcshell/head.js) | test setup finished (2)
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | Starting test_contentscript_storage_sync
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  (xpcshell/head.js) | test test_contentscript_storage_sync pending (2)
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  "Getting initial pref value for "webextensions.storage.sync.enabled""
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  "Setting pref "webextensions.storage.sync.enabled": true"
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  (xpcshell/head.js) | test run_next_test 2 finished (2)
[task 2020-06-01T01:32:46.532Z] 01:32:46     INFO -  PID 17809 | [17809, Main Thread] WARNING: NS_ENSURE_TRUE(rootFrame) failed: file /builds/worker/checkouts/gecko/dom/base/nsGlobalWindowOuter.cpp, line 4260
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | [Parent 17809, Main Thread] WARNING: Couldn't get the user appdata directory, crash dumps will go in an unusual location: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 2984
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | [Parent 17809, GMPThread] WARNING: Failed to delete GMP storage directory: file /builds/worker/checkouts/gecko/dom/media/gmp/GMPServiceParent.cpp, line 1568
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | [17839, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | [17839, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | LoadPlugin() /tmp/xpc-plugins-81MEzI/libnpsecondtest.so returned 7efde7fc2940
[task 2020-06-01T01:32:46.533Z] 01:32:46     INFO -  PID 17809 | LoadPlugin() /tmp/xpc-plugins-81MEzI/libnpthirdtest.so returned 7efde7fc2a90
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  PID 17809 | LoadPlugin() /tmp/xpc-plugins-81MEzI/libnpswftest.so returned 7efde7fc2ca0
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  PID 17809 | LoadPlugin() /tmp/xpc-plugins-81MEzI/libnptest.so returned 7efde84c6df0
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  PID 17809 | [Parent 17809, Main Thread] WARNING: Need BrowserChild to get the nativeWindow from!: file /builds/worker/checkouts/gecko/widget/PuppetWidget.cpp, line 1086
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163905	addons.manager	DEBUG	Starting provider: GMPProvider"
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163909	addons.manager	DEBUG	Registering shutdown blocker for GMPProvider"
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (info) 1590975163910	addons.manager	DEBUG	Provider finished startup: GMPProvider"
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  "CONSOLE_MESSAGE: (error) [JavaScript Error: "NetworkError when attempting to fetch resource." {file: "/builds/worker/workspace/build/tests/xpcshell/head.js" line: 248}]
[task 2020-06-01T01:32:46.534Z] 01:32:46     INFO -  _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:248:6
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:577:5
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  @-e:1:1
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  "
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  PID 17809 | [Child 17839, Main Thread] WARNING: Fallback to BasicLayerManager: file /builds/worker/checkouts/gecko/dom/ipc/BrowserChild.cpp, line 2664
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  PID 17809 | [Child 17839, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, kKnownEsrVersion) failed with result 0x80070057 (NS_ERROR_ILLEGAL_VALUE): file /builds/worker/checkouts/gecko/toolkit/components/resistfingerprinting/nsRFPService.cpp, line 683
[task 2020-06-01T01:32:46.535Z] 01:32:46     INFO -  "Extension attached"
[task 2020-06-01T01:32:46.536Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] Expected area name received by listener - Expected: sync, Actual: sync - true == true
[task 2020-06-01T01:32:46.536Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop1 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.536Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop1 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.537Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop1 old (set (a)) - Expected: undefined, Actual: undefined - true == true
[task 2020-06-01T01:32:46.537Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop1 new (set (a)) - Expected: value1, Actual: value1 - true == true
[task 2020-06-01T01:32:46.537Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop2 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.538Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop2 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.538Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop2 old (set (a)) - Expected: undefined, Actual: undefined - true == true
[task 2020-06-01T01:32:46.539Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop2 new (set (a)) - Expected: value2, Actual: value2 - true == true
[task 2020-06-01T01:32:46.539Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop1 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.539Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop1 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.539Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop1 old (set (a)) - Expected: undefined, Actual: undefined - true == true
[task 2020-06-01T01:32:46.540Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop1 new (set (a)) - Expected: value1, Actual: value1 - true == true
[task 2020-06-01T01:32:46.540Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop2 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.540Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 419] checkChanges sync test-prop2 is missing (set (a)) - true == true
[task 2020-06-01T01:32:46.541Z] 01:32:46     INFO -  TEST-PASS | xpcshell-remote.ini:toolkit/components/extensions/test/xpcshell/test_ext_storage_content_sync.js | test_contentscript_storage_sync - [test_contentscript_storage_sync : 408] checkChanges sync test-prop2 old (set (a)) - Expected: undefined, Actual: undefined - true == true
...
...
...
Flags: needinfo?(lina)
Pushed by kcambridge@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/546ec17e41db
Implement `mozISyncedExtensionStorageArea.fetchPendingSyncChanges()`. r=markh
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 79
Flags: needinfo?(lina)

Comment on attachment 9151954 [details]
Bug 1641005 - Implement mozISyncedExtensionStorageArea.fetchPendingSyncChanges(). r?markh!

Beta/Release Uplift Approval Request

  • User impact if declined: WebExtensions that use the storage.sync API (like Multi-Account Containers) with the new Rust backend won't receive notifications to update their UI if their data changes during a sync, causing them to show stale information.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: Please see comment 0 for the STR. I just verified in an m-c (tip of tree) build, but I don't think this fix is in a downloadable Nightly yet.
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The new code is covered by unit tests, and manually verified in a Firefox build. Additionally, the Rust backend is currently pref'd off by default—though we'd like to enable it in Beta 78, which is why we're requesting this uplift.
  • String changes made/needed: None
Attachment #9151954 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Hi Lina,
I see that in comment 7 this issue is marked as fixed in Firefox 79, but I did look to the "browser/config/version.txt" file at the time the patch attached to this bug did land (https://hg.mozilla.org/mozilla-central/rev/546ec17e41db) and it seems to still be 78.0a1:

And so it looks that this patch may be actually already landed in 78.

Would you mind to double-check that? (it is possible that you may cancel the uplift request if that is the case)

Flags: needinfo?(lina)

No, this is not in 78. It landed on autoland before the version bump, but after the last changeset that was part of the beta merge.

Flags: needinfo?(lina)

(In reply to Julien Cristau [:jcristau] from comment #10)

No, this is not in 78. It landed on autoland before the version bump, but after the last changeset that was part of the beta merge.

Hi Julien,
Thanks a lot for quickly replying to my question and providing the additional details, is that the case for Bug 1635348 too?

Flags: needinfo?(jcristau)

Yes.

Flags: needinfo?(jcristau)
QA Whiteboard: [qa-triaged]

Verified as fixed in FF 79.0a1 (2020-06-02) using windows 10x64 and macOS Catalina 10.15.4 using the original scenario for this bug.

Status: RESOLVED → VERIFIED

Comment on attachment 9151954 [details]
Bug 1641005 - Implement mozISyncedExtensionStorageArea.fetchPendingSyncChanges(). r?markh!

approved for 78.0b3

Attachment #9151954 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Regressions: 1643804

Verified as fixed in FF 78.0b6 (64-bit) using windows 10x64 and macOS Catalina 10.15.4 using the original scenario for this bug.

Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.