bb3a3cc424cd000e8bb198ae47259d3e751cc3bd: Bug 1286798 - Part 21: Base domain needs to be handled too if strict file origin policy is not in effect; r=bholley,asuth,dholbert
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:22 +0100 - rev 448803
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 21: Base domain needs to be handled too if strict file origin policy is not in effect; r=bholley,asuth,dholbert
615640a58a97fdf95584df9222358ff0372ad31d: Bug 1286798 - Part 20: Add checks for the 5 MB origin limit; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:19 +0100 - rev 448802
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 20: Add checks for the 5 MB origin limit; r=asuth The 5 MB limit is no longer applied to the whole group (eTLD+1). That will be controlled by quota manager.
5714205a7bf9ea1083a7c24f18b188d8304679cd: Bug 1286798 - Part 19: Implement a helper method for datastore preloading verification; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:15 +0100 - rev 448801
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 19: Implement a helper method for datastore preloading verification; r=asuth A new type of request is introduced, PBackgroundLSSimpleRequest. This protocol is much simpler than PBackgroundLSRequest which needs to be cancelable.
61ce2d795e8e3db93cb8a191bad0a80b67eee92a: Bug 1286798 - Part 18: Verify that data is persisted on disk; r=asuth,mrbkap
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:11 +0100 - rev 448800
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 18: Verify that data is persisted on disk; r=asuth,mrbkap New methods open() and close() are added to the Storage WebIDL interface. They are only available when a pref is set and are only intended for testing. There's also a new method resetStoragesForPrincipal() which is used as a callback for close() since datastores don't release directory locks immediately. resetStoragesForPrincipal() requests an exclusive lock for given origin, so it must wait for any exising shared locks to be released.
03b477c00c4f5ca4321efdc32bffa43bcae510d3: Bug 1286798 - Part 17: Fix a test failing in --verify mode; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:08 +0100 - rev 448799
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 17: Fix a test failing in --verify mode; r=asuth
22ede10fb76d711eff32957567c9a7b087279e24: Bug 1286798 - Part 16: Adjust ClearDataService for new local storage implementation; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:05 +0100 - rev 448798
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 16: Adjust ClearDataService for new local storage implementation; r=asuth This patch also adds support for creating LSObjects from chrome for any given origin which can be used for example by xpcshell tests.
bb1594f32faefd90e7b2851fbe438e8bfbef81d9: Bug 1286798 - Part 15: Fix clearLocalStorage() in browser extensions; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:48:01 +0100 - rev 448797
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 15: Fix clearLocalStorage() in browser extensions; r=asuth
20606f9de28fd7dff30f30b3862b2bdc68df85b3: Bug 1286798 - Part 14: Enhance clearStoragesForPrincipal() to support clearing of storages for specific quota client; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:58 +0100 - rev 448796
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 14: Enhance clearStoragesForPrincipal() to support clearing of storages for specific quota client; r=asuth See also bug 1402254, original patch by baku.
c63189db48cb7b515e53c33bc3203a92761e1d32: Bug 1286798 - Part 13: Preparation for quota checks; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:55 +0100 - rev 448795
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 13: Preparation for quota checks; r=asuth
a4324eecfb06d326abe06677339bf153c627af33: Bug 1286798 - Part 12: Honor the storage preference and cookie settings in all LocalStorage API methods; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:52 +0100 - rev 448794
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 12: Honor the storage preference and cookie settings in all LocalStorage API methods; r=asuth
4e938b6813e3e8dcb10998d89243678463f4b42a: Bug 1286798 - Part 11: Enable tests for session only mode (but only for the old local storage implementation); r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:48 +0100 - rev 448793
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 11: Enable tests for session only mode (but only for the old local storage implementation); r=asuth An attribute for checking if the next gen local storage implementation is enabled is exposed via a new interface nsILocalStorageManager which should be used for any other local storage specific stuff.
75c28b78f8ee02018ccaec9c2f4035d46182d10e: Bug 1286798 - Part 10: Support for storage events; r=asuth,janv
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:45 +0100 - rev 448792
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 10: Support for storage events; r=asuth,janv Storage events are fired either directly after getting response from synchronous SetItem call or through observers. When a new onstorage event listener is added, we sycnhronously register an observer in the parent process. There's always only one observer actor per content process. PBackgroundLSDatabase is now managed by a new PBackgroundLSObject protocol. PBackgroundLSObject is needed to eliminate the need to pass the principal info and document URI everytime a write operation occurs. Preparation of an observer shares some states with preparation of a datastore, so common stuff now lives in LSRequestBase and preparation of a datastore now implements a nested state machine. This patch was enhanced by asuth to drop observers only when the last storage listener is removed. EventListenerRemoved is invoked on any removal, not just the final removal, so we need to make sure it's the final removal before dropping observer.
30bf6870616b701d1ddcb090f18e240164d16ff0: Bug 1286798 - Part 9: Support for private browsing; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:41 +0100 - rev 448791
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 9: Support for private browsing; r=asuth Since we keep/cache data in memory anyway, private browsing support is mostly about avoiding any persistence related calls and clearing private browsing datastores when we get a notification. The separation between normal and private browsing datastores is done by the privateBrowsingId attribute which is part of the origin string.
1a6c4f6a6b5cad6d90e9489b480d2fdd5d6319aa: Bug 1286798 - Part 8: Persist datastores to disk; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:38 +0100 - rev 448790
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 8: Persist datastores to disk; r=asuth Introduced a Connection and a ConnectioThread object. All I/O requests are processed by a new single thread managed by ConnectionThread object. Connection objects are prepared by the prepare datastore operation and then kept alive by datastores just like directory locks. All datastore I/O operations are wrapped in a transaction which automaticaly commits after 5 seconds. Datastore preparation now also loads all items from the database.
d5f293542508df0e6c56623f30b2d13b218c617f: Bug 1286798 - Part 7: Teach QuotaManager's OriginParser to handle file://UNIVERSAL_FILE_URI_ORIGIN; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:34 +0100 - rev 448789
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 7: Teach QuotaManager's OriginParser to handle file://UNIVERSAL_FILE_URI_ORIGIN; r=asuth See bug 1340710 which introduced this kind of URI.
0b0a03cf7b64cc9cc6eff36c3ae7f56f010e944c: Bug 1286798 - Part 6: Fix a dead lock in the single process case; r=asuth,janv
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:30 +0100 - rev 448788
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 6: Fix a dead lock in the single process case; r=asuth,janv Expose the nested main event target, so it can be used in the single process case by the parent side to process runnables which need to run on the main thread. After this change we don't have use hacks like getting profile directory path on the child side and sending it to the parent. The parent side can now do it freely even in the single process case. This patch was enhanced by asuth to not tunnel the nested main event target through IPC.
25c5ff3cec8f573b05d2435859ba68e4ad53a4a0: Bug 1286798 - Part 5: More integration with QuotaManager; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:27 +0100 - rev 448787
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 5: More integration with QuotaManager; r=asuth Preparation of datastores now creates real database files on disk. The LocalStorage directory is protected by a directory lock. Infrastructure for database schema upgrades is in place too. Database actors are now explicitely tracked by the datastore. When the last actor finishes the directory lock is released. Added also implementation for QuotaClient::GetUsageForOrigin() and QuotaClient::AbortOperations().
2aaa8d6bbaf1a08d7825e7b2827a398955974e0d: Bug 1286798 - Part 4: Basic integration with QuotaManager; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:24 +0100 - rev 448786
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 4: Basic integration with QuotaManager; r=asuth This adds a new quota client implementation, but only implements ShutdownWorkThreads. At shutdown we wait for all running operations to finish including database actors which are closed by using an extra IPC message which avoids races between the parent and child. Databases are dropped on the child side as soon as they are not used (e.g. after unlinking by the cycle collector).
2a6e7e64cec1e3b8184a432c6f4c2351a87f9f43: Bug 1286798 - Part 3: New basic (memory only) implementation of LocalStorage; r=asuth,mccr8
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:20 +0100 - rev 448785
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 3: New basic (memory only) implementation of LocalStorage; r=asuth,mccr8 The implementation is based on a cache (datastore) living in the parent process and sync IPC calls initiated from content processes. IPC communication is done using per principal/origin database actors which connect to the datastore. The synchronous blocking of the main thread is done by creating a nested event target and spinning the event loop.
bb1fc7fd2fd240e074d0348721c7cdea1a07bb5e: Bug 1286798 - Part 2: Add IsOnDOMFileThread() and AssertIsOnDOMFileThread() generic helper methods; r=asuth
Jan Varga <jan.varga@gmail.com> - Thu, 29 Nov 2018 21:47:17 +0100 - rev 448784
Push 35128 by rmaries@mozilla.com at Fri, 30 Nov 2018 03:06:13 +0000
Bug 1286798 - Part 2: Add IsOnDOMFileThread() and AssertIsOnDOMFileThread() generic helper methods; r=asuth
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip