Revision 03598e505d3e3cd46ce992b3d6f358791125b04f authored by Ben Wells on 27 March 2018, 05:42:26 UTC, committed by Chromium WPT Sync on 27 March 2018, 05:42:26 UTC
This reverts commit aeecb4f32ece14a8a294e4f9b80a5bb2278091c9.

Reason for revert: Causing lots of failures on webkit bots, e.g.:
https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty/42143

Original change's description:
> Don't adjust the NavigationTimings on redirects
>
> We adjust the timings in WebDocumentLoaderImpl::UpdateNavigation(),
> shouldn't update in each AddRedirect() (which is called in a batch
> way after all the redirects are handled in the browser process with PlzNavigate,
> adjusting timings there with current timestamp is totally wrong)
>
> R=​ksakamoto,arthursonzogni
>
> Bug: 813889
> Change-Id: I3a57d3fdf1833c300feb5ee61737b64cece0946b
> Reviewed-on: https://chromium-review.googlesource.com/974673
> Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
> Commit-Queue: Kinuko Yasuda <kinuko@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#546001}

TBR=kinuko@chromium.org,ksakamoto@chromium.org,arthursonzogni@chromium.org

Change-Id: I467ed888084ea0eda06faa903d1797fabffc47da
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 813889
Reviewed-on: https://chromium-review.googlesource.com/981912
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Ben Wells <benwells@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546025}
1 parent 8ec345b
Raw File
storage_enumerate.html
<!DOCTYPE HTML>
<html>
<head>
<title>WebStorage Test: Storage - enumerate and built-in properties</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
["localStorage", "sessionStorage"].forEach(function(name) {
    test(function() {
        assert_true(name in window, name + " exist");

        var storage = window[name];
        storage.clear();

        Storage.prototype.prototypeTestKey = "prototypeTestValue";
        storage.foo = "bar";
        storage.fu = "baz";
        storage.batman = "bin suparman";
        storage.bar = "foo";
        storage.alpha = "beta";
        storage.zeta = "gamma";

        const enumeratedArray = Object.keys(storage);
        enumeratedArray.sort();  // Storage order is implementation-defined.

        const expectArray = ["alpha", "bar", "batman", "foo", "fu", "zeta"];
        assert_array_equals(enumeratedArray, expectArray);

        // 'prototypeTestKey' is not an actual storage key, it is just a
        // property set on Storage's prototype object.
        assert_equals(storage.length, 6);
        assert_equals(storage.getItem("prototypeTestKey"), null);
        assert_equals(storage.prototypeTestKey, "prototypeTestValue");
    }, name + ": enumerate a Storage object and get only the keys as a result and the built-in properties of the Storage object should be ignored");

    test(function() {
        const storage = window[name];
        storage.clear();

        storage.setItem("foo", "bar");
        storage.baz = "quux";
        storage.setItem(0, "alpha");
        storage[42] = "beta";

        for (let prop in storage) {
            if (!storage.hasOwnProperty(prop))
                continue;
            const desc = Object.getOwnPropertyDescriptor(storage, prop);
            assert_true(desc.configurable);
            assert_true(desc.enumerable);
            assert_true(desc.writable);
        }

        const keys = Object.keys(storage);
        keys.sort();  // Storage order is implementation-defined.
        assert_array_equals(keys, ["0", "42", "baz", "foo"]);

        const values = Object.values(storage);
        values.sort();  // Storage order is implementation-defined.
        assert_array_equals(values, ["alpha", "bar", "beta", "quux"]);
    }, name + ": test enumeration of numeric and non-numeric keys");
});
</script>
</body>
</html>

back to top