зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1451991 - Devtools: Localstorage didn't list item whose key names "key" r=nchevobbe
MozReview-Commit-ID: 3AQC47GKud0 --HG-- extra : rebase_source : 0bbcebab0aeb97b51f078673d151eab263080c62
This commit is contained in:
Родитель
abe4e683f7
Коммит
38773abdb6
|
@ -48,13 +48,13 @@ const testCases = [
|
|||
]
|
||||
],
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
["iframe-s-ls1"]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
|
|
@ -33,13 +33,13 @@ const testCases = [
|
|||
]
|
||||
],
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
["iframe-s-ls1"]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
|
|
@ -18,13 +18,13 @@ add_task(async function() {
|
|||
info("test state before delete");
|
||||
const beforeState = [
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
["iframe-s-ls1"]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
@ -67,13 +67,13 @@ add_task(async function() {
|
|||
// iframes from the same host, one secure, one unsecure, are independent
|
||||
// from each other. Delete all in one doesn't touch the other one.
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
[]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
|
|
@ -28,8 +28,8 @@ add_task(async function() {
|
|||
getCookieId("uc2", ".example.org", "/")
|
||||
]
|
||||
],
|
||||
[["localStorage", "http://test1.example.org"], ["ls1", "ls2"]],
|
||||
[["sessionStorage", "http://test1.example.org"], ["ss1"]],
|
||||
[["localStorage", "http://test1.example.org"], ["key", "ls1", "ls2"]],
|
||||
[["sessionStorage", "http://test1.example.org"], ["key", "ss1"]],
|
||||
[["indexedDB", "http://test1.example.org", "idb1 (default)", "obj1"], [1, 2, 3]],
|
||||
[["Cache", "http://test1.example.org", "plop"],
|
||||
[MAIN_DOMAIN + "404_cached_file.js", MAIN_DOMAIN + "browser_storage_basic.js"]],
|
||||
|
|
|
@ -51,13 +51,13 @@ const storageItemsForDefault = [
|
|||
]
|
||||
],
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
["iframe-s-ls1"]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
|
|
@ -16,13 +16,13 @@ add_task(async function() {
|
|||
|
||||
const state = [
|
||||
[["localStorage", "http://test1.example.org"],
|
||||
["ls1", "ls2"]],
|
||||
["key", "ls1", "ls2"]],
|
||||
[["localStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ls1"]],
|
||||
[["localStorage", "https://sectest1.example.org"],
|
||||
["iframe-s-ls1"]],
|
||||
[["sessionStorage", "http://test1.example.org"],
|
||||
["ss1"]],
|
||||
["key", "ss1"]],
|
||||
[["sessionStorage", "http://sectest1.example.org"],
|
||||
["iframe-u-ss1", "iframe-u-ss2"]],
|
||||
[["sessionStorage", "https://sectest1.example.org"],
|
||||
|
|
|
@ -27,8 +27,20 @@ document.cookie = "c4=foobar-3; expires=" +
|
|||
// ... and some local storage items ..
|
||||
localStorage.setItem("ls1", "foobar");
|
||||
localStorage.setItem("ls2", "foobar-2");
|
||||
|
||||
// Because localStorage contains key() on the prototype and it can't be iterated
|
||||
// using object.keys() we check the the value "key" exists.
|
||||
// See bug 1451991 for details.
|
||||
localStorage.setItem("key", "value1");
|
||||
|
||||
// ... and finally some session storage items too
|
||||
sessionStorage.setItem("ss1", "foobar-3");
|
||||
|
||||
// Because sessionStorage contains key() on the prototype and it can't be
|
||||
// iterated using object.keys() we check the the value "key" exists.
|
||||
// See bug 1451991 for details.
|
||||
sessionStorage.setItem("key", "value2");
|
||||
|
||||
dump("added cookies and storage from main page\n");
|
||||
|
||||
let idbGenerator = async function () {
|
||||
|
|
|
@ -1168,10 +1168,20 @@ function getObjectForLocalOrSessionStorage(type) {
|
|||
if (!storage) {
|
||||
return [];
|
||||
}
|
||||
return Object.keys(storage).map(key => ({
|
||||
name: key,
|
||||
value: storage.getItem(key)
|
||||
}));
|
||||
|
||||
// local and session storage cannot be iterated over using Object.keys()
|
||||
// because it skips keys that are duplicated on the prototype
|
||||
// e.g. "key", "getKeys" so we need to gather the real keys using the
|
||||
// storage.key() function.
|
||||
const storageArray = [];
|
||||
for (let i = 0; i < storage.length; i++) {
|
||||
const key = storage.key(i);
|
||||
storageArray.push({
|
||||
name: key,
|
||||
value: storage.getItem(key)
|
||||
});
|
||||
}
|
||||
return storageArray;
|
||||
},
|
||||
|
||||
populateStoresForHost(host, window) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче