Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 35cf2c95d4 | |||
| 19e694d8eb | |||
| ae1f80b8b5 | |||
| 358551feda | |||
| ca98b56ad7 | |||
| 5bbf902b47 | |||
| d654810d41 | |||
| 8172f291dd | |||
| 9e12014c07 |
+2
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "testpilot-containers",
|
"name": "testpilot-containers",
|
||||||
"title": "Multi-Account Containers",
|
"title": "Multi-Account Containers",
|
||||||
"description": "Containers helps you keep all the parts of your online life contained in different tabs. Custom labels and color-coded tabs help keep different activities — like online shopping, travel planning, or checking work email — separate.",
|
"description": "Containers helps you keep all the parts of your online life contained in different tabs. Custom labels and color-coded tabs help keep different activities — like online shopping, travel planning, or checking work email — separate.",
|
||||||
"version": "6.2.0",
|
"version": "6.2.3",
|
||||||
"author": "Andrea Marchesini, Luke Crouch and Jonathan Kingston",
|
"author": "Andrea Marchesini, Luke Crouch and Jonathan Kingston",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/mozilla/multi-account-containers/issues"
|
"url": "https://github.com/mozilla/multi-account-containers/issues"
|
||||||
@@ -37,6 +37,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm test && cd src && web-ext build --overwrite-dest",
|
"build": "npm test && cd src && web-ext build --overwrite-dest",
|
||||||
|
"webext": "web-ext run -s src/",
|
||||||
"lint": "npm-run-all lint:*",
|
"lint": "npm-run-all lint:*",
|
||||||
"lint:addon": "addons-linter src --self-hosted",
|
"lint:addon": "addons-linter src --self-hosted",
|
||||||
"lint:css": "stylelint src/css/*.css",
|
"lint:css": "stylelint src/css/*.css",
|
||||||
|
|||||||
@@ -390,6 +390,11 @@ table {
|
|||||||
background-color: #0675d3;
|
background-color: #0675d3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.onboarding-button:focus,
|
||||||
|
.half-onboarding-button:focus {
|
||||||
|
box-shadow: 0 0 0 1px #0a84ff inset, 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
/* Pop buttons are the square shaped buttons used to
|
/* Pop buttons are the square shaped buttons used to
|
||||||
manage things like container crud */
|
manage things like container crud */
|
||||||
.pop-button {
|
.pop-button {
|
||||||
|
|||||||
@@ -310,12 +310,13 @@ const backgroundLogic = {
|
|||||||
|
|
||||||
for (let object of containerState.hiddenTabs) { // eslint-disable-line prefer-const
|
for (let object of containerState.hiddenTabs) { // eslint-disable-line prefer-const
|
||||||
// do not show already opened url
|
// do not show already opened url
|
||||||
|
const noload = !object.pinned;
|
||||||
if (object.url !== options.alreadyShowingUrl) {
|
if (object.url !== options.alreadyShowingUrl) {
|
||||||
promises.push(this.openNewTab({
|
promises.push(this.openNewTab({
|
||||||
userContextId: userContextId,
|
userContextId: userContextId,
|
||||||
url: object.url,
|
url: object.url,
|
||||||
nofocus: options.nofocus || false,
|
nofocus: options.nofocus || false,
|
||||||
noload: true,
|
noload: noload,
|
||||||
pinned: object.pinned,
|
pinned: object.pinned,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-18
@@ -17,25 +17,14 @@ async function load() {
|
|||||||
const currentContainer = await browser.contextualIdentities.get(currentCookieStoreId);
|
const currentContainer = await browser.contextualIdentities.get(currentCookieStoreId);
|
||||||
document.getElementById("current-container-name").textContent = currentContainer.name;
|
document.getElementById("current-container-name").textContent = currentContainer.name;
|
||||||
}
|
}
|
||||||
|
document.getElementById("deny").addEventListener("click", (e) => {
|
||||||
document.getElementById("redirect-form").addEventListener("submit", (e) => {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let button = "confirm"; // Confirm is the form default.
|
denySubmit(redirectUrl);
|
||||||
let buttonTarget = e.explicitOriginalTarget;
|
});
|
||||||
if (buttonTarget.tagName !== "BUTTON") {
|
|
||||||
buttonTarget = buttonTarget.closest("button");
|
document.getElementById("confirm").addEventListener("click", (e) => {
|
||||||
}
|
e.preventDefault();
|
||||||
if (buttonTarget && buttonTarget.id) {
|
confirmSubmit(redirectUrl, cookieStoreId);
|
||||||
button = buttonTarget.id;
|
|
||||||
}
|
|
||||||
switch (button) {
|
|
||||||
case "deny":
|
|
||||||
denySubmit(redirectUrl);
|
|
||||||
break;
|
|
||||||
case "confirm":
|
|
||||||
confirmSubmit(redirectUrl, cookieStoreId);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-10
@@ -611,7 +611,7 @@ Logic.registerPanel(P_CONTAINERS_LIST, {
|
|||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener("keydown", (e) => {
|
document.addEventListener("keydown", (e) => {
|
||||||
const selectables = [...document.querySelectorAll("[tabindex='0'], [tabindex='-1']")];
|
const selectables = [...document.querySelectorAll(".open-newtab[tabindex='0']")];
|
||||||
const element = document.activeElement;
|
const element = document.activeElement;
|
||||||
const index = selectables.indexOf(element) || 0;
|
const index = selectables.indexOf(element) || 0;
|
||||||
function next() {
|
function next() {
|
||||||
@@ -633,14 +633,6 @@ Logic.registerPanel(P_CONTAINERS_LIST, {
|
|||||||
case 38:
|
case 38:
|
||||||
previous();
|
previous();
|
||||||
break;
|
break;
|
||||||
case 13: {
|
|
||||||
const panel = Logic.getCurrentPanelElement();
|
|
||||||
const button = panel.getElementsByTagName("A")[0];
|
|
||||||
if(button) {
|
|
||||||
button.click();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 39:
|
case 39:
|
||||||
{
|
{
|
||||||
const showTabs = element.parentNode.querySelector(".show-tabs");
|
const showTabs = element.parentNode.querySelector(".show-tabs");
|
||||||
@@ -660,7 +652,7 @@ Logic.registerPanel(P_CONTAINERS_LIST, {
|
|||||||
default:
|
default:
|
||||||
if ((e.keyCode >= 49 && e.keyCode <= 57) &&
|
if ((e.keyCode >= 49 && e.keyCode <= 57) &&
|
||||||
Logic._currentPanel === "containersList") {
|
Logic._currentPanel === "containersList") {
|
||||||
const element = selectables[e.keyCode - 48];
|
const element = selectables[e.keyCode - 49];
|
||||||
if (element) {
|
if (element) {
|
||||||
element.click();
|
element.click();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Firefox Multi-Account Containers",
|
"name": "Firefox Multi-Account Containers",
|
||||||
"version": "6.2.0",
|
"version": "6.2.3",
|
||||||
"incognito": "not_allowed",
|
"incognito": "not_allowed",
|
||||||
"description": "Multi-Account Containers helps you keep all the parts of your online life contained in different tabs. Custom labels and color-coded tabs help keep different activities — like online shopping, travel planning, or checking work email — separate.",
|
"description": "Multi-Account Containers helps you keep all the parts of your online life contained in different tabs. Custom labels and color-coded tabs help keep different activities — like online shopping, travel planning, or checking work email — separate.",
|
||||||
"icons": {
|
"icons": {
|
||||||
|
|||||||
+12
-12
@@ -13,7 +13,7 @@
|
|||||||
<p>
|
<p>
|
||||||
Use containers to organize tasks, manage accounts, and keep your focus where you want it.
|
Use containers to organize tasks, manage accounts, and keep your focus where you want it.
|
||||||
</p>
|
</p>
|
||||||
<a href="#" class="onboarding-button onboarding-start-button">Get Started</a>
|
<a href="#" class="onboarding-button onboarding-start-button" tabindex="0">Get Started</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="hide panel onboarding security-onboarding-panel-1">
|
<div class="hide panel onboarding security-onboarding-panel-1">
|
||||||
@@ -22,49 +22,49 @@
|
|||||||
<p>
|
<p>
|
||||||
Use containers to organize tasks, manage accounts, and store sensitive data.
|
Use containers to organize tasks, manage accounts, and store sensitive data.
|
||||||
</p>
|
</p>
|
||||||
<a href="#" class="onboarding-button onboarding-start-button">Get Started</a>
|
<a href="#" class="onboarding-button onboarding-start-button" tabindex="0">Get Started</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding onboarding-panel-2 hide">
|
<div class="panel onboarding onboarding-panel-2 hide">
|
||||||
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-2.png" />
|
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-2.png" />
|
||||||
<h3 class="onboarding-title">Put containers to work for you.</h3>
|
<h3 class="onboarding-title">Put containers to work for you.</h3>
|
||||||
<p>Features like color-coding and separate container tabs help you find things easily, focus your attention, and minimize distractions.</p>
|
<p>Features like color-coding and separate container tabs help you find things easily, focus your attention, and minimize distractions.</p>
|
||||||
<a href="#" class="onboarding-button onboarding-next-button">Next</a>
|
<a href="#" class="onboarding-button onboarding-next-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding security-onboarding-panel-2 hide">
|
<div class="panel onboarding security-onboarding-panel-2 hide">
|
||||||
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-2.png" />
|
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-2.png" />
|
||||||
<h3 class="onboarding-title">Put containers to work for you.</h3>
|
<h3 class="onboarding-title">Put containers to work for you.</h3>
|
||||||
<p>Color-coding helps you categorize your online life, find things easily, and minimize distractions.</p>
|
<p>Color-coding helps you categorize your online life, find things easily, and minimize distractions.</p>
|
||||||
<a href="#" class="onboarding-button onboarding-next-button">Next</a>
|
<a href="#" class="onboarding-button onboarding-next-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding onboarding-panel-3 hide">
|
<div class="panel onboarding onboarding-panel-3 hide">
|
||||||
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-3.png" />
|
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-3.png" />
|
||||||
<h3 class="onboarding-title">A place for everything, and everything in its place.</h3>
|
<h3 class="onboarding-title">A place for everything, and everything in its place.</h3>
|
||||||
<p>Start with the containers we've created, or create your own.</p>
|
<p>Start with the containers we've created, or create your own.</p>
|
||||||
<a href="#" class="onboarding-button onboarding-almost-done-button">Next</a>
|
<a href="#" class="onboarding-button onboarding-almost-done-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding security-onboarding-panel-3 hide">
|
<div class="panel onboarding security-onboarding-panel-3 hide">
|
||||||
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-3-security.png" />
|
<img class="onboarding-img" alt="How Containers Work" src="/img/onboarding-3-security.png" />
|
||||||
<h3 class="onboarding-title">Set boundaries for your browsing.</h3>
|
<h3 class="onboarding-title">Set boundaries for your browsing.</h3>
|
||||||
<p>Cookies are stored within a container, so you can segment sensitive data and browsing history to stay organized and to limit the impact of online trackers.</p>
|
<p>Cookies are stored within a container, so you can segment sensitive data and browsing history to stay organized and to limit the impact of online trackers.</p>
|
||||||
<a href="#" class="onboarding-button onboarding-almost-done-button">Next</a>
|
<a href="#" class="onboarding-button onboarding-almost-done-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding onboarding-panel-4 hide" id="onboarding-panel-4">
|
<div class="panel onboarding onboarding-panel-4 hide" id="onboarding-panel-4">
|
||||||
<img class="onboarding-img" alt="How to assign sites to containers" src="/img/onboarding-4.png" />
|
<img class="onboarding-img" alt="How to assign sites to containers" src="/img/onboarding-4.png" />
|
||||||
<h3 class="onboarding-title">Always open sites in the containers you want.</h3>
|
<h3 class="onboarding-title">Always open sites in the containers you want.</h3>
|
||||||
<p>Right-click inside a container tab to assign the site to always open in the container.</p>
|
<p>Right-click inside a container tab to assign the site to always open in the container.</p>
|
||||||
<a href="#" id="onboarding-done-button" class="onboarding-button">Next</a>
|
<a href="#" id="onboarding-done-button" class="onboarding-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding onboarding-panel-5 hide" id="onboarding-panel-5">
|
<div class="panel onboarding onboarding-panel-5 hide" id="onboarding-panel-5">
|
||||||
<img class="onboarding-img" alt="Long-press the New Tab button to create a new container tab." src="/img/onboarding-3.png" />
|
<img class="onboarding-img" alt="Long-press the New Tab button to create a new container tab." src="/img/onboarding-3.png" />
|
||||||
<h3 class="onboarding-title">Container tabs when you need them.</h3>
|
<h3 class="onboarding-title">Container tabs when you need them.</h3>
|
||||||
<p>Long-press the New Tab button to create a new container tab.</p>
|
<p>Long-press the New Tab button to create a new container tab.</p>
|
||||||
<a href="#" id="onboarding-longpress-button" class="onboarding-button">Next</a>
|
<a href="#" id="onboarding-longpress-button" class="onboarding-button" tabindex="0">Next</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel onboarding onboarding-panel-6 hide" id="onboarding-panel-6">
|
<div class="panel onboarding onboarding-panel-6 hide" id="onboarding-panel-6">
|
||||||
@@ -72,8 +72,8 @@
|
|||||||
<h3 class="onboarding-title">Syncing Containers is now Available!</h3>
|
<h3 class="onboarding-title">Syncing Containers is now Available!</h3>
|
||||||
<p>Turn on Sync to share container and site assignments with any computer connected to your Firefox Account.</p>
|
<p>Turn on Sync to share container and site assignments with any computer connected to your Firefox Account.</p>
|
||||||
<div class="half-button-wrapper">
|
<div class="half-button-wrapper">
|
||||||
<a herf="#" id="no-sync" class="half-onboarding-button grey-button">Not Now</a>
|
<a herf="#" id="no-sync" class="half-onboarding-button grey-button" tabindex="0">Not Now</a>
|
||||||
<a href="#" id="start-sync-button" class="half-onboarding-button">Start Syncing</a>
|
<a href="#" id="start-sync-button" class="half-onboarding-button" tabindex="0">Start Syncing</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -82,8 +82,8 @@
|
|||||||
<h3 class="onboarding-title">Firefox Account is required to sync.</h3>
|
<h3 class="onboarding-title">Firefox Account is required to sync.</h3>
|
||||||
<p>Click Sign In to confirm that your Firefox Account is active.</p>
|
<p>Click Sign In to confirm that your Firefox Account is active.</p>
|
||||||
<div class="half-button-wrapper">
|
<div class="half-button-wrapper">
|
||||||
<a herf="#" id="no-sign-in" class="half-onboarding-button grey-button">Not Now</a>
|
<a herf="#" id="no-sign-in" class="half-onboarding-button grey-button" tabindex="0">Not Now</a>
|
||||||
<a href="#" id="sign-in" class="half-onboarding-button">Sign In</a>
|
<a href="#" id="sign-in" class="half-onboarding-button" tabindex="0">Sign In</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user