Commit graph

53 commits

Author SHA1 Message Date
Jan Varga
01ad68bec6 Bug 1754448 - Add basic testing for snapshot re-using; r=dom-storage-reviewers,webidl,asuth,jari,ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D138405
2022-03-09 09:43:09 +00:00
Paul Zuehlcke
da24464574 Bug 1713139 - Clear partitioned storage for session storage and legacy localStorage implementation. r=dom-storage-reviewers,johannh,asuth
Differential Revision: https://phabricator.services.mozilla.com/D116607
2021-07-06 21:10:58 +00:00
Simon Giesecke
b9621d6376 Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D108585
2021-03-17 15:49:46 +00:00
Simon Giesecke
bc9766c354 Bug 1634281 - Use nsTHashMap for nsBaseHashtable/nsDataHashtable uses with RefPtr data type. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D105963
2021-03-09 11:39:36 +00:00
Simon Giesecke
371c154035 Bug 1693541 - Improve uses of nsBaseHashtable and descendants and avoid multiple subsequent lookups in dom/storage. r=dom-storage-reviewers,ttung
Differential Revision: https://phabricator.services.mozilla.com/D106091
2021-02-26 11:36:41 +00:00
Simon Giesecke
9af107a839 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Simon Giesecke
c5f7800f35 Bug 1691913 - Rename nsClassHashtable::LookupOrAdd to GetOrInsertNew. r=xpcom-reviewers,nika
It should be called "Get" rather than "Lookup" because it returns
UserDataType. "Add" is called "Insert" in the other methods.

Differential Revision: https://phabricator.services.mozilla.com/D105470
2021-02-22 12:07:47 +00:00
Tom Tung
15704220ee Bug 1683299 - Introduce site quota for legacy LocalStorage; r=dom-workers-and-storage-reviewers,janv
This patch:
- adds a new pref for site quota.
- sets 25 MB as the default site qutoa.
- renames LocalStorageManager::GetQuota() to LocalStorageManager::GetOriginQuota().
- adds LocalStorageManager::GetSiteQuota().
- updates LocalStorage quota tests.

Differential Revision: https://phabricator.services.mozilla.com/D101756
2021-01-14 16:01:17 +00:00
Narcis Beleuzu
0052c4f9a0 Backed out changeset 298059db2b0c (bug 1683299) for xpcshell failures on test_archive.js 2021-01-14 21:15:46 +02:00
Tom Tung
45ce146298 Bug 1683299 - Introduce site quota for legacy LocalStorage; r=dom-workers-and-storage-reviewers,janv
This patch:
- adds a new pref for site quota.
- sets 25 MB as the default site qutoa.
- renames LocalStorageManager::GetQuota() to LocalStorageManager::GetOriginQuota().
- adds LocalStorageManager::GetSiteQuota().
- updates LocalStorage quota tests.

Differential Revision: https://phabricator.services.mozilla.com/D101756
2021-01-14 16:01:17 +00:00
Jan Varga
4a6e04dc62 Bug 1676411 - Fix usage calculation for file:// (and potentially other) URIs; r=asuth,dom-workers-and-storage-reviewers
This patch improves the required consistency between GetStorageOriginKey and
GetLocalStorageQuotaKey.

Differential Revision: https://phabricator.services.mozilla.com/D96583
2020-11-13 19:51:08 +00:00
Jan Varga
03e0a91794 Bug 1669437 - Add necessary infrastructure for independent in-memory only local storage database; r=asuth,dom-workers-and-storage-reviewers
The new infrastructure consists of a separate bridge between the content and the
parent process and a separate local storage database in the parent process.
The new infrastructure can be used for storing and sharing of private browsing
data across content processes.
This patch only creates necessary infrastructure, actual enabling of storing and
sharing of data across content processes will be done in a follow-up patch.

Differential Revision: https://phabricator.services.mozilla.com/D96562
2020-11-11 13:12:57 +00:00
Jan Varga
f889732fdd Bug 1669437 - Get rid of the private data set; r=asuth,dom-workers-and-storage-reviewers
The caches for private browsing are already separated by the private browsing
origin attribute, so there's no need to have a special data set (inside the
cache object) for it.

Differential Revision: https://phabricator.services.mozilla.com/D96531
2020-11-11 07:06:20 +00:00
Andi-Bogdan Postelnicu
06adde3adb Bug 1626555 - Add dom/storage to the list of non-unified-build-compatible directories. r=sg
Depends on D96442

Differential Revision: https://phabricator.services.mozilla.com/D96530
2020-11-10 12:00:30 +00:00
Simon Giesecke
de7bab0f06 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Nika Layzell
a3579f6f46 Bug 1458043 - Stop converting promises to nsISupports in xpconnect, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D82616
2020-07-07 22:20:01 +00:00
Sebastian Streich
5577df21f9 Bug 1615297 - Move Localstorage Keygen into Principal r=ckerschb,baku
Differential Revision: https://phabricator.services.mozilla.com/D62757

--HG--
extra : moz-landing-system : lando
2020-03-29 15:31:24 +00:00
Daniel Varga
8edab673d8 Backed out changeset d15b968aa6d1 (bug 1615297) for causing build bustage
CLOSED TREE

--HG--
extra : rebase_source : 4e525e82fb7f194d9b7eac0020932ed09ac005b7
2020-03-11 05:41:51 +02:00
Sebastian Streich
1f23aca56c Bug 1615297 - Move Localstorage Keygen into Principal r=ckerschb,baku
Differential Revision: https://phabricator.services.mozilla.com/D62757

--HG--
extra : moz-landing-system : lando
2020-03-10 18:10:08 +00:00
Sebastian Streich
db60c34f97 Bug 1618241 - Move CreateQuotaDBKey to nsIPrincipal r=ckerschb,baku
Differential Revision: https://phabricator.services.mozilla.com/D64391

--HG--
extra : moz-landing-system : lando
2020-02-27 00:22:27 +00:00
Eric Rahm
78ee6675cf Bug 1606187 - Part 2b: Update users of nsClassHashtable to handle UniquePtr differences r=KrisWright,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59042

--HG--
extra : moz-landing-system : lando
2020-01-13 19:18:56 +00:00
Gabriele Svelto
ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

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

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca
a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

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

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Nicholas Nethercote
b634df9005 Bug 1573720 - Convert dom.storage.default.quota to a static pref. r=mccr8
This one was VarCached to two different variables in two different modules.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 05:31:38 +00:00
Nihanth Subramanya
203396c6e0 Bug 1555562 - Make sure LocalStorageManager::PrecacheStorage() passes in the real storage principal. r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D33559

--HG--
extra : moz-landing-system : lando
2019-06-04 21:13:40 +00:00
Ehsan Akhgari
8349684af8 Bug 1556093 - Use the storage principal when constructing a PBackgroundLocalStorageCache actor; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D33557

--HG--
extra : moz-landing-system : lando
2019-06-04 17:02:21 +00:00
Ehsan Akhgari
98809ae136 Bug 1555564 - Part 3: Make sure local storage manager caches the partitioned origins separately from each other; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D33118

--HG--
extra : moz-landing-system : lando
2019-05-30 12:09:42 +00:00
Andrea Marchesini
dc7545548e Bug 1551055 - StoragePrincipal should be supported by localStorage - part 1, r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D30801

--HG--
extra : moz-landing-system : lando
2019-05-14 05:49:46 +00:00
Ciure Andrei
f1dd75ca22 Backed out 3 changesets (bug 1551055) for causing xpcshell localStorage perma failures CLOSED TREE
Backed out changeset 21e44ad9c6df (bug 1551055)
Backed out changeset 8727e61ab69b (bug 1551055)
Backed out changeset d99a6769beb4 (bug 1551055)

--HG--
extra : rebase_source : 56f7fe5c54cd7e4109acce5074be1aba12e91086
2019-05-13 22:40:22 +03:00
Andrea Marchesini
e1b74991fb Bug 1551055 - StoragePrincipal should be supported by localStorage - part 1, r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D30801

--HG--
extra : moz-landing-system : lando
2019-05-13 18:42:36 +00:00
Johann Hofmann
ee15b3664f Bug 1483440 - Part 1 - Remove purge-domain-data, add purge-sessionStorage notification. r=baku
The browser:purge-domain-data notification had two different intentions,
- to clear session store information and
- to clear all localStorage and sessionStorage
Firing the notification accomplished both at the same time, which from a
user perspective is of course totally not understandable. This commit
removes purge-domain-data in favor of the two distinct purge-localStorage and
purge-sessionStorage events. This gives callers more granular choice on
what they want to clear.

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

--HG--
extra : moz-landing-system : lando
2019-01-17 17:40:35 +00:00
Andrea Marchesini
d0c04ed6ee Bug 1516023 - Remove LocalStorage::mPrincipal because unused, r=asuth 2019-01-04 00:12:22 +01:00
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
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
81c542fbe6 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.
2018-11-29 21:48:15 +01:00
Jan Varga
9bbba97e91 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.
2018-11-29 21:47:48 +01:00
Jan Varga
60831f2e38 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.
2018-11-29 21:47:20 +01:00
Gabriele Svelto
b605bebd6a Bug 1488401 - Remove the remnants of the DiskSpaceWatcher r=asuth,janv,smaug
Differential Revision: https://phabricator.services.mozilla.com/D4933

--HG--
extra : moz-landing-system : lando
2018-09-13 06:40:51 +00:00
Daniel Holbert
0faa3b61e4 Bug 1477086: Change LocalStorageManager::CreateOrigin()'s return type to nsAutoCString, to benefit from RVO and avoid needless string copying. r=asuth
MozReview-Commit-ID: 1IALP0xgOqp

--HG--
extra : rebase_source : 893d4ade62e4c0834dbc438854fa7029e27b51f0
2018-07-19 14:45:16 -07:00
Boris Zbarsky
1fcc87c931 Bug 1486932 part 1. Stop using nsIDOMStorage in xpidl APIs. r=mccr8 2018-08-31 13:56:54 -04:00
Jan Varga
612c73ef66 Bug 1475218 - Disable PBackgroundLocalStorageCache on Android; r=asuth
There can be only one content process on Fennec so there's nothing to synchronize.
2018-08-21 17:27:42 +02:00
Jan Varga
5f8daf01d9 Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth
This patch adds a new IPDL protocol PBackgroundLocalStorageCache. It is used by LocalStorageCache object to broadcast changes in local storage cache to other content processes. Each origin has its own PBackgroundLocalStorageCache, so now we can notify content processes that actually have a local storage cache for given origin. This greatly improves performance and reduces memory footprint especialy when local storage changes carry big strings and/or happen very quickly (before this patch all child processes were blindly notified).
2018-07-14 08:34:14 +02:00
Thomas Wisniewski
9c0a07404c Bug 1388428 - Extend browsingData to restrict removing localStorage to a given list of hostnames; r=asuth,bsilverberg
MozReview-Commit-ID: ELgjLHsVLkv

--HG--
extra : rebase_source : 8df793d8484762670e42fff4c3708df2b3ea1ebe
2017-09-25 16:47:38 -04:00
Masatoshi Kimura
50a9a5c541 Bug 1389529 - Remove @deprecated nsIDOMStorageManager.getLocalStorageForPrincipal. r=mayhemer
MozReview-Commit-ID: 7xmsk1b2MQE

--HG--
extra : rebase_source : c4ba78fc2d1a916f5e8f9c98368daf689d703440
2017-08-12 00:36:01 +09:00
Jan Varga
c186d54bb2 Bug 1350637 - Part 2: Core changes for LocalStorage on PBackground; r=asuth
- stop inheriting StorageDBBridge in StorageDBThread and StorageDBChild
- move StorageDBThread and StorageDBChild initialization out of LocalStorageCache
- use IPC even for the intra-process communication in main process
- rationalize a bit storage observer code
- make StorageDBParent to always be created and destroyed on the background thread
2017-07-26 12:19:13 +02:00
Thomas Wisniewski
e530ba4d43 Bug 1355576 - Add ability to clear all localStorage with the browsingData API; r=bsilverberg,janv
MozReview-Commit-ID: 4UUqg62yIo9

--HG--
extra : rebase_source : 9c6154bbe878fc3921d22027fdc90dbdaed05be9
2017-07-04 20:59:26 -04:00
Phil Ringnalda
e760ae7c08 Backed out changeset 5020a2dcb8a7 (bug 1355576) for failures in test_ext_browsingData.js
MozReview-Commit-ID: BVSLvIkK5Wd
2017-08-06 15:29:38 -07:00
Thomas Wisniewski
5eeefa573d Bug 1355576 - Add ability to clear all localStorage with the browsingData API; r=bsilverberg,janv
MozReview-Commit-ID: 4UUqg62yIo9

--HG--
extra : rebase_source : d38ee312dbfb3b7f46893d7af200b564876c82d1
2017-07-04 20:59:26 -04:00
Andrea Marchesini
4d15e9cb30 Bug 1322316 - Split SessionStorage and LocalStorage implementation - part 8 - Rename StorageCache to LocalStorageCache, r=asuth
--HG--
rename : dom/storage/StorageCache.cpp => dom/storage/LocalStorageCache.cpp
rename : dom/storage/StorageCache.h => dom/storage/LocalStorageCache.h
2017-05-17 07:01:14 +02:00