summaryrefslogtreecommitdiffstats
path: root/devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js')
-rw-r--r--devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js b/devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js
new file mode 100644
index 0000000000..e372f54ba2
--- /dev/null
+++ b/devtools/client/styleeditor/test/browser_styleeditor_private_perwindowpb.js
@@ -0,0 +1,76 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+// This test makes sure that the style editor does not store any
+// content CSS files in the permanent cache when opened from a private window tab.
+
+const TEST_URL = `http://${TEST_HOST}/browser/devtools/client/styleeditor/test/test_private.html`;
+
+add_task(async function () {
+ info("Opening a new private window");
+ const win = await BrowserTestUtils.openNewBrowserWindow({ private: true });
+
+ info("Clearing the browser cache");
+ Services.cache2.clear();
+
+ const { toolbox, ui } = await openStyleEditorForURL(TEST_URL, win);
+
+ is(ui.editors.length, 1, "The style editor contains one sheet.");
+ const editor = ui.editors[0];
+ is(
+ editor.friendlyName,
+ "test_private.css",
+ "The style editor contains the expected stylesheet"
+ );
+
+ await editor.getSourceEditor();
+
+ await checkDiskCacheFor(editor.friendlyName);
+
+ await toolbox.destroy();
+
+ const onUnload = new Promise(done => {
+ win.addEventListener("unload", function listener(event) {
+ if (event.target == win.document) {
+ win.removeEventListener("unload", listener);
+ done();
+ }
+ });
+ });
+ win.close();
+ await onUnload;
+});
+
+function checkDiskCacheFor(fileName) {
+ let foundPrivateData = false;
+
+ return new Promise(resolve => {
+ Visitor.prototype = {
+ onCacheStorageInfo(num) {
+ info("disk storage contains " + num + " entries");
+ },
+ onCacheEntryInfo(uri) {
+ const urispec = uri.asciiSpec;
+ info(urispec);
+ foundPrivateData = foundPrivateData || urispec.includes(fileName);
+ },
+ onCacheEntryVisitCompleted() {
+ is(foundPrivateData, false, "web content present in disk cache");
+ resolve();
+ },
+ };
+ function Visitor() {}
+
+ const storage = Services.cache2.diskCacheStorage(
+ Services.loadContextInfo.default
+ );
+ storage.asyncVisitStorage(
+ new Visitor(),
+ /* Do walk entries */
+ true
+ );
+ });
+}