Commit Graph

149 Commits

Author SHA1 Message Date
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Jan Varga
6714997188 Bug 1286798 - Part 48: Add ParseOrigin() method to the quota manager; r=asuth 2018-11-29 21:49:49 +01:00
Jan Varga
9c1d177a11 Bug 1286798 - Part 47: Add AboutToClearOrigins() method to the quota client interface; r=asuth 2018-11-29 21:49:46 +01:00
Jan Varga
0649224345 Bug 1286798 - Part 26: Implement a lazy data migration from old webappsstore.sqlite; r=asuth,janv
This patch was enhanced by asuth to bind attached database path.
Places has shown that argument binding is necessary.  (Profiles may include usernames in their path which can have cool emoji and such.)
2018-11-29 21:48:38 +01:00
Jan Varga
7981be440b Bug 1286798 - Part 25: Add checks for the group and global limit; r=asuth 2018-11-29 21:48:34 +01:00
Jan Varga
480f7ccea1 Bug 1286798 - Part 24: A new exclusive directory lock shouldn't invalidate existing internal directory locks; r=asuth
This fixes an intermittent failure when multiple clearStoragesForPrincipal() are called at the same time.
2018-11-29 21:48:31 +01:00
Jan Varga
6e40a9dccb Bug 1286798 - Part 22: Add support for preloading of datastores; r=asuth
Datastores are preloaded only for content principals. The preloading is triggered as soon as possible to lower the chance of blocking the main thread in content process. If there is no physical database on disk for given origin, datastore is not created. Preloaded datastores are kept alive for 20 seconds.
2018-11-29 21:48:25 +01:00
Jan Varga
b968ceb813 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.
2018-11-29 21:48:11 +01:00
Jan Varga
709a73dabf 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.
2018-11-29 21:47:58 +01:00
Jan Varga
a47c296511 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.
2018-11-29 21:47:34 +01:00
Jan Varga
c934ad618d 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.
2018-11-29 21:47:30 +01:00
Jan Varga
c5676a58c7 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().
2018-11-29 21:47:27 +01:00
Jan Varga
9f71846e2a 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).
2018-11-29 21:47:24 +01:00
Tom Tung
b75ea7ded2 Bug 1395102 - P4 - Reuse the code for MaybeUpgradeClients() in the upgrade helpers; r=janv
This patch moves MaybeUpgradeClients to RepositoryOperationBase class from
UpgradeStorageFrom1_0To2_0Helper and  UpgradeStorageFrom2_0To2_1Helper so that
lines of code can be reused.

--HG--
extra : rebase_source : 1131ed8b01ed91b7bc5b362a7b1aaf15aa681a95
2018-10-19 11:36:08 +02:00
Tom Tung
7e3170879c Bug 1395102 - P3 - Reuse the code for QuotaManager::UpgradeStorageFromxxToxx(); r=janv
This patch adds a new function QM::UpgradeStorage() to reuse lines of code in
QM:UpgradeStorageFrom0_0To1_0(), QM:UpgradeStorageFrom1_0To2_0(), and
QM:UpgradeStorageFrom2_0To2_1().

--HG--
extra : rebase_source : 7b1cba884d375e0609f5c622a798c9c0f8129b90
2018-10-17 15:37:16 +02:00
Tom Tung
29e37afc3d Bug 1395102 - P2 - Rename the intermediate class in P1 to RepositoryOperationBase; r=janv
To do this, it also rename the StorageDirectoryHelper to StorageOperationBase to
align with classes naming. Bsides, this patch renames
RepositoryOperationBase::DoUpgrade() to
RepositoryOperationBase::ProcessRepository().

--HG--
extra : rebase_source : a7f57a6b670e18b88cf3484bfdfd86f98b23e43a
2018-10-17 14:29:55 +02:00
Tom Tung
c2b832e21d Bug 1395102 - P1 - Introduce a intermediate helper class to reuse code for upgrading origin directories; r=janv
This patch mainly create a new helper class and it inherits from
StorageDirectoraryHelper to reuse the code in
CreateOrUpgradeDirectoryMetadataHelper::CreateOrUpgradeMetadataFiles(),
UpgradeStorageFrom0_0To1_0Helper::DoUpgrade(),
UpgradeStorageFrom1_0To2_0Helper::DoUpgrade(),
UpgradeStorageFrom2_0To2_1Helper::DoUpgrade().

--HG--
extra : rebase_source : cace0f54689cb13d42fb797833a13c861750be18
2018-10-18 11:12:28 +02:00
Tom Tung
4baf9ffe10 Bug 1481716 - Add a telemetry probe to track how long does the QM take for initializing repositories; r=janv, data-review=francois
This patch adds a telemetry probe to track the time for initializing both
the default and the temporary repositories.

--HG--
extra : rebase_source : f879a3bc53c41f209a2a09b322db43d27f9af4f8
2018-08-13 10:34:10 +02:00
Tom Tung
8e0aa26fa8 Bug 1495687 - Introduce initTemporaryStorage to nsIQuotaManagerService for testing; r=janv
--HG--
extra : rebase_source : c38521eaf9f9c204971049b959efc5113ae86baa
2018-10-02 16:08:43 +02:00
Jan Varga
d138057009 Bug 1324836 - Part 1: Make OriginScope use mozilla::Variant; r=asuth
Original patch by Tom Tung [:tt].
2018-09-07 18:22:50 +02:00
Kris Maglione
65c28aa0ad Bug 1484496: Part 2 - Add common base class for all nsISimpleEnumerator implementations. r=froydnj
In order to allow JS callers to use nsISimpleEnumerator instances with the JS
iteration protocol, we'll need to additional methods to every instance. Since
we currently have a large number of unrelated implementations, it would be
best if they could share the same implementation for the JS portion of the
protocol.

This patch adds a stub nsSimpleEnumerator base class, and updates all existing
implementations to inherit from it. A follow-up will add a new base interface
to this class, and implement the additional functionality required for JS
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D3725

--HG--
extra : rebase_source : ad66d7b266856d5a750c772e4710679fab9434b1
extra : histedit_source : a83ebffbf2f0b191ba7de9007f73def6b9a955b8
2018-08-18 14:22:47 -07:00
Jan Varga
5733cbbbd3 Bug 1361330 - Part 4: Core implementation; r=asuth 2018-08-20 14:33:03 +02:00
Tom Tung
5b3f5f96b1 Bug 1482812: Patch for turning on the origin parser check on both beta and release. r=janv
This patch, basically, turns the check. To avoid checking the same direcotries
multiple time, it creates a member hashtable |mValidOrigins| in QuotaManager and
use it in EnsureOriginDirectory(). Since it needs to use the member hashtable,
this patch also moves EnsureOriginDirectory() to become a QuotaManager member
function.

--HG--
extra : rebase_source : 170f749b07ca955e1dc41a627d339709381ffcad
2018-08-15 16:59:26 +02:00
Tom Tung
8c51efc4db Bug 1481753: Remove redundant lines for flipping the flag and checking the storage limits. r=janv
Tags: #secure-revision

Differential Revision: https://phabricator.services.mozilla.com/D2937

--HG--
extra : rebase_source : c2cce729d205dc61ce41b9540db1784813dc44c1
2018-08-08 15:43:46 +02:00
Chris Peterson
9513c25210 Bug 1473453 - Part 2: QuotaManager: disambiguate null check of bool pointer. r=janv
Fix clang-tidy warning about bool pointers:

[misc-bool-pointer-implicit-conversion] dom/quota/ActorsParent.cpp:4168:7: warning: dubious check of 'bool *' against 'nullptr', did you mean to dereference it?

MozReview-Commit-ID: C6QdeJlf71C

--HG--
extra : rebase_source : cb2e19e41bed6cc1456e89acce65747558306bcf
2018-07-04 14:46:51 -07:00
Jan Varga
75397467ef Bug 1470811 - Update FF 62 to know about upcoming new quota client; r=asuth 2018-06-29 09:58:09 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Kris Maglione
6b12d08f7d Bug 1462937: Update callers to use nsIFile::GetDirectoryEntries as a nsIDirectoryEnumerator. r=froydnj
MozReview-Commit-ID: Iv4T1MVAF5

--HG--
extra : rebase_source : 1c518883d082884db7f9323a5acc20361228c26b
extra : histedit_source : 70a73c23d1199d3bfbb5379c78930401166c094b
2018-05-19 20:17:45 -07:00
Andrea Marchesini
e8bc84f98b Bug 1252998 - StorageActivityService - part 7 - StorageActivityService in QuotaManager, r=janv 2018-04-18 18:19:13 +02:00
Jeff Walden
821db93ccc Bug 1453456 - Replace nsCRT::IsAscii{Alpha,Digit} with mfbt/TextUtils.h versions. r=froydnj
--HG--
extra : rebase_source : b31986c0e6828be79442cfb0cf369eb80c232139
2018-04-12 20:19:30 -07:00
Andrea Marchesini
5784769019 Bug 1443079 - nsScriptError.isFromPrivateWindow must match the correct value also in e10s mode, r=smaug 2018-03-13 06:40:38 +01:00
Johann Hofmann
23a0a82554 Bug 1431029 - Expose timestamp for quota managed storage. r=asuth
MozReview-Commit-ID: 7MNd2m2Jp46

--HG--
extra : rebase_source : 4a17e0b6b38073fea7b4b3d3b4483d4c495b3950
2018-02-20 14:54:17 +01:00
Boris Zbarsky
9bdcffc985 Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8
The change to RootAccessible.cpp fixes an obvious bug introduced in bug 741707.

The visibility changes in gfx/thebes are because NS_DECL_ISUPPORTS has a
trailing "public:" that those classes were relying on to have public
constructors.

MozReview-Commit-ID: IeB8KIJCGhU
2018-02-12 15:44:40 -05:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Shawn Huang
36d942c4bb Backed out changeset 89ffaadaf58b (bug 1389561) for disabling assertion. r=backout a=backout 2017-10-24 19:38:11 +08:00
Nathan Froyd
4f852fdd0c Bug 1410142 - use NS_NewLocalFile in dom/; r=baku
The interface is nicer, and it is probably slightly faster.
2017-10-23 14:22:14 -04:00
Tom Tung
784d146b73 Bug 1373183 - Part 2: Remove the argument for EnsureTemporaryStorageIsInitialized() since it's unnecessary. r=janv
MozReview-Commit-ID: 9sCHI3XEpIj

--HG--
extra : rebase_source : ffc277295f8b4b160223db61a3014d7e7a95b671
2017-08-23 15:56:06 +08:00
Tom Tung
dd96d219b4 Bug 1373183 - Part 1: Only initialize the temporary storage for estimate(). r=janv
To do this, reuse the code for initializing temporay storage in
EnsureOriginIsInitializedInternal(). Thus, create a helper function called
EnsureTemporaryStorageIsInitialized() and call it from both side.

MozReview-Commit-ID: vNQVteoicH

--HG--
extra : rebase_source : bb6101662213b099cbd7974b091c6c5e845b6311
2017-08-23 15:22:47 +08:00
Andrea Marchesini
6626e900f9 Bug 1409327 - NS_NewBufferedInputStream should take the ownership of the inputStream, r=smaug 2017-10-19 11:39:30 +02:00
Sebastian Hengst
66e04dcde6 Backed out changeset 4666cde20909 (bug 1409327) 2017-10-17 22:03:33 +02:00
Andrea Marchesini
d526801916 Bug 1409327 - NS_NewBufferedInputStream should take the ownership of the inputStream, r=smaug 2017-10-17 20:38:05 +02:00
Andrew Sutherland
3fcf6eee0f Bug 1404344 - Part 1: Alias QuotaManager schema 3.0 to 2.1. r=janv
To improve the Firefox 57 to 56 downgrade scenario, have 57 and 58
re-number the version 3.0 schema introduced by bug 1290481 to
version 2.1.  Firefox 56's Quota Manager will recognize the minor
schema version and accept the schema from the future.

--HG--
extra : rebase_source : c2458e380966e4f1ec60a6df5f01135231f308fe
extra : source : e895c35e9b4e9dbc6849d40d644af97c028fffcf
2017-10-03 10:02:27 -04:00
Kris Maglione
60d080b412 Bug 1404198: Part 2i - Switch to NS_NewTimer* in dom. r=njn
MozReview-Commit-ID: 8Oei6TuXNbu

--HG--
extra : rebase_source : 31c583c699790cbcf302064146d313ee8126ef0c
2017-10-15 23:15:40 -07:00
Kris Maglione
3876d40960 Bug 1404198: Part 1 - Add non-virtual constructor for nsIObject(Input|Output)Stream and update existing callers. r=njn
MozReview-Commit-ID: 3eoh6AwDJyz

--HG--
extra : rebase_source : 92b18b6ef07d276cac79ce735ca0b592cffbf87e
2017-10-04 20:06:28 -07:00
Shawn Huang
ed1d5223ad Backed out changeset 20571bff3967 (bug 1389561). r=backout a=backout
MozReview-Commit-ID: 8GLZx2ls2C4

--HG--
extra : amend_source : 0fb28e72650bbebb2e9484987b34510bfe5750f6
extra : transplant_source : %24%8C_MV%D4%FB%A6%10%F1w%3FE%BD%BB9H%FC2%D6
2017-10-12 15:57:41 +08:00
Shawn Huang
e864ce7583 Bug 1389561 - Part 2: Add MOZ_DIAGNOSTIC_ASSERT for mTemporaryStorageInitialized, r=janv 2017-10-11 15:44:16 +08:00
Sebastian Hengst
1adde8c8d3 Backed out changeset 0b1a22a4c03c (bug 1389561) for often asserting mTemporaryStorageInitialized at dom/quota/ActorsParent.cpp:3936 and crashing on Android. r=backout on a CLOSED TREE
--HG--
extra : amend_source : 32be53f42cf7c4c0fc95316eafd40b0d7a9db47b
2017-10-09 11:50:08 +02:00
Shawn Huang
e763e6c4a2 Bug 1389561 - Part 2: Add MOZ_DIAGNOSTIC_ASSERT for mTemporaryStorageInitialized, r=janv 2017-10-09 16:57:55 +08:00
Shawn Huang
01a5261342 Bug 1389561 - Part 1: Convernt MOZ_ASSERT to MOZ_DIAGNOSTIC_ASSERT for more debugging information, r=janv 2017-09-28 20:53:30 +08:00
Chris Peterson
a6a56ed916 Bug 870698 - Part 6: Replace Append(NS_LITERAL_CSTRING("")) with AppendLiteral(""). r=erahm
The NS_LITERAL_CSTRING macro creates a temporary nsLiteralCString to encapsulate the string literal and its length, but AssignLiteral() can determine the string literal's length at compile-time without nsLiteralCString.

MozReview-Commit-ID: F750v6NN81s

--HG--
extra : rebase_source : 714dd78df0f4c33e23e5b117615bd8fd561674c5
extra : source : 742bda9e6b1ddaf34d09894204ad18ce798b79b7
2017-09-07 18:25:25 -07:00