Skip to content

Commit 33bc4b1

Browse files
committed
Support browsers without contextualIdentities API
1 parent 960db3f commit 33bc4b1

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

src/nscl

src/ui/options.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ <h3 class="flextabs__tab"><button class="flextabs__toggle">__MSG_SectionGeneral_
6868

6969
<h3 class="flextabs__tab"><button class="flextabs__toggle enforcement_required">__MSG_SectionSitePermissions__</button></h3>
7070
<div class="flextabs__content">
71-
<label for="select-container">Choose a container:</label>
71+
<label for="select-container" id="select-container-label">Choose a container:</label>
7272
<select name="select-container" id="select-container">
7373
<option value="default">Default</option>
7474
</select>
@@ -82,7 +82,7 @@ <h3 class="flextabs__tab"><button class="flextabs__toggle enforcement_required">
8282
<div class="cssload-whirlpool"></div>
8383
</div>
8484
</div>
85-
<div class="per-site-buttons">
85+
<div class="per-site-buttons" id="per-site-buttons">
8686
<label for="copy-container" id="copy-container-label">Copy permissions from container:</label>
8787
<select name="copy-container" id="copy-container">
8888
<option value="default">Default</option>
@@ -159,12 +159,14 @@ <h3 class="flextabs__tab"><button class="flextabs__toggle">__MSG_SectionAdvanced
159159
<div id="policy-error"></div>
160160
<textarea id="policy" class="browser-style">
161161
</textarea>
162+
<div id="edit-context-store">
162163
<label for="contextStore">ContextStore:</label>
163164
<div id="context-store-error"></div>
164165
<textarea id="context-store" class="browser-style">
165166
</textarea>
166167
</div>
167168
</div>
169+
</div>
168170
</section>
169171
</div>
170172
</div>

src/ui/options.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@
175175
var cookieStoreId = containerSelect.value;
176176
var currentPolicy = await UI.getPolicy(cookieStoreId);
177177

178+
containerSelect.hidden = !browser.contextualIdentities;
179+
document.querySelector("#select-container-label").hidden = containerSelect.hidden;
180+
if (!browser.contextualIdentities) document.querySelector("#per-site-buttons").style.display = "none";
181+
178182
async function changeContainer() {
179183
cookieStoreId = containerSelect.value;
180184
currentPolicy = await UI.getPolicy(cookieStoreId);
@@ -205,10 +209,12 @@
205209
var containers = [];
206210
async function updateContainers() {
207211
let newContainers = [{cookieStoreId: "default", name: "Default"},];
208-
let identities = await browser.contextualIdentities.query({});
209-
identities.forEach(({cookieStoreId, name}) => {
210-
newContainers.push({cookieStoreId, name});
211-
})
212+
let identities = browser.contextualIdentities && await browser.contextualIdentities.query({});
213+
if (identities) {
214+
identities.forEach(({cookieStoreId, name}) => {
215+
newContainers.push({cookieStoreId, name});
216+
})
217+
}
212218
if (JSON.stringify(newContainers) == JSON.stringify(containers)) return;
213219
containers = newContainers;
214220
var container_options = ""
@@ -307,6 +313,10 @@
307313
if (!UI.local.debug) return;
308314

309315
// RAW POLICY EDITING (debug only)
316+
if (!browser.contextualIdentities) {
317+
document.querySelector("#edit-context-store").style.display = "none";
318+
return;
319+
}
310320
let contextStoreEditor = document.getElementById("context-store");
311321
contextStoreEditor.value = JSON.stringify(contextStore.dry(true), null, 2);
312322
if (!contextStoreEditor.onchange) contextStoreEditor.onchange = (e) => {

src/ui/popup.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,17 @@ addEventListener("unload", e => {
6666
tabId = tab.id;
6767
}
6868

69-
try {
70-
let containerName = (await browser.contextualIdentities.get(cookieStoreId)).name;
71-
document.querySelector("#container-id").textContent = containerName;
72-
debug("found container name", containerName, "for cookieStoreId", cookieStoreId);
73-
} catch(err) {
69+
if (browser.contextualIdentities){
70+
try {
71+
let containerName = (await browser.contextualIdentities.get(cookieStoreId)).name;
72+
document.querySelector("#container-id").textContent = containerName;
73+
debug("found container name", containerName, "for cookieStoreId", cookieStoreId);
74+
} catch(err) {
75+
document.querySelector("#container-id").textContent = "Default";
76+
debug("no container for cookieStoreId", cookieStoreId, "error:", err.message);
77+
}
78+
} else {
7479
document.querySelector("#container-id").style.visibility = 'hidden';
75-
debug("no container for cookieStoreId", cookieStoreId, "error:", err.message);
7680
}
7781

7882
addEventListener("keydown", e => {

0 commit comments

Comments
 (0)