MozillaVPN Integration

This commit is contained in:
Lesley Norton
2021-10-20 12:52:41 -05:00
parent de80fe9050
commit 1c0f2d8c5c
19 changed files with 2656 additions and 394 deletions
+150 -46
View File
@@ -13,13 +13,6 @@
<a href="#" class="onboarding-button onboarding-start-button keyboard-nav" tabindex="0" data-i18n-message-id="getStarted"></a>
</div>
<div class="hide panel onboarding security-onboarding-panel-1">
<img class="onboarding-img" alt="" src="/img/onboarding-1.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-1-sec-header"></h3>
<p data-i18n-message-id="onboarding-1-sec-description"></p>
<a href="#" class="onboarding-button onboarding-start-button keyboard-nav" tabindex="0" data-i18n-message-id="getStarted"></a>
</div>
<div class="panel onboarding onboarding-panel-2 hide">
<img class="onboarding-img" alt="" src="/img/onboarding-2.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-2-header"></h3>
@@ -27,13 +20,6 @@
<a href="#" class="onboarding-button onboarding-next-button keyboard-nav" tabindex="0" data-i18n-message-id="next"></a>
</div>
<div class="panel onboarding security-onboarding-panel-2 hide">
<img class="onboarding-img" alt="" src="/img/onboarding-2.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-2-header"></h3>
<p data-i18n-message-id="onboarding-2-sec-description"></p>
<a href="#" class="onboarding-button onboarding-next-button keyboard-nav" tabindex="0" data-i18n-message-id="next"></a>
</div>
<div class="panel onboarding onboarding-panel-3 hide">
<img class="onboarding-img" alt="" src="/img/onboarding-3.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-3-header"></h3>
@@ -41,13 +27,6 @@
<a href="#" class="onboarding-button onboarding-almost-done-button keyboard-nav" tabindex="0" data-i18n-message-id="next"></a>
</div>
<div class="panel onboarding security-onboarding-panel-3 hide">
<img class="onboarding-img" alt="" src="/img/onboarding-3-security.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-3-sec-header"></h3>
<p data-i18n-message-id="onboarding-2-sec-description"></p>
<a href="#" class="onboarding-button onboarding-almost-done-button keyboard-nav" tabindex="0" data-i18n-message-id="next"></a>
</div>
<div class="panel onboarding onboarding-panel-4 hide" id="onboarding-panel-4">
<img class="onboarding-img" alt="" src="/img/onboarding-4.png" />
<h3 class="onboarding-title" data-i18n-message-id="onboarding-4-header"></h3>
@@ -82,6 +61,15 @@
</div>
</div>
<div class="panel onboarding onboarding-panel-8 hide" id="onboarding-panel-8">
<img class="onboarding-img" alt="" src="/img/moz-vpn-onboarding.svg" />
<h3 class="onboarding-title" data-i18n-message-id="proxyNowAvailable"></h3>
<p data-i18n-message-id="onboarding-8-description"></p>
<div class="half-button-wrapper">
<a href="#" id="onboarding-done-btn" class="half-onboarding-button keyboard-nav" tabindex="0" data-i18n-message-id="done"></a>
</div>
</div>
<div class="panel achievement-panel hide" id="achievement-panel">
<img class="onboarding-img" alt="" src="/img/onboarding-3.png" />
<h3 class="onboarding-title" data-i18n-message-id="oneHundredTabsHeader"></h3>
@@ -110,7 +98,7 @@
<div class="panel menu-panel container-panel hide" id="container-panel">
<h3 class="title">Multi-Account Containers</h3>
<a href="#" class="info-icon" id="info-icon" tabindex="10">
<img data-i18n-attribute-message-id="info" data-i18n-attribute="alt" alt="" ="info" src="/img/info-thin-16.svg" / >
<img data-i18n-attribute-message-id="info" data-i18n-attribute="alt" alt="" ="info" src="/img/info.svg" / >
</a>
<hr>
<table class="menu">
@@ -132,9 +120,6 @@
</span>
</td>
</tr>
</table>
<hr>
<table class="menu">
<tr class="menu-item hover-highlight keyboard-nav" id="sort-containers-link" tabindex="0">
<td>
<img class="menu-icon" alt="" src="/img/sort-16_1.svg" />
@@ -154,7 +139,14 @@
</tr>
</table>
<hr>
<div class="sub-header" data-i18n-message-id="containers"></div>
<div class="sub-header-wrapper flx-row flx-space-between">
<div class="sub-header" data-i18n-message-id="containers"></div>
<h4 class="moz-vpn-logotype vpn-status-container-list display-none">Mozilla VPN
<span class="moz-vpn-connection-status-indicator container-list-status-icon">
<span class="tooltip"></span>
</span>
</h4>
</div>
<div class="scrollable identities-list">
<table class="menu" id="identities-list">
<tr class="menu-item hover-highlight">
@@ -177,13 +169,26 @@
</tr>
</table>
</div>
<div class="bottom-btn keyboard-nav hover-highlight" id="manage-containers-link" tabindex="0" data-i18n-message-id="manageContainers"></div>
<div id="moz-vpn-tout" class="moz-vpn-content expanded">
<div class="flx-row button-wrapper">
<h4 class="moz-vpn-logo">Mozilla VPN</h4>
<button class="controller dismiss-moz-vpn-tout" tab-index="0"></button>
</div>
<div class="collapsible-content flx-col controller-collapsible-content">
<div class="flx-row flx-space-between">
<span class="moz-vpn-subtitle" data-i18n-message-id="integrateWithMozillaVpn"></span>
</div>
<button id="moz-vpn-learn-more" class="moz-vpn-cta primary-cta" data-i18n-message-id="learnMore"></button>
</div>
</div>
<v-padding-hack-footer></v-padding-hack-footer> <!--presents last container from getting covered up by the 'manage containers button' when list is long-->
<div class="bottom-btn keyboard-nav controller" id="manage-containers-link" tabindex="0" data-i18n-message-id="manageContainers"></div>
</div>
<div class="hide panel menu-panel container-info-panel" id="container-info-panel" tabindex="-1">
<h3 class="title" id="container-info-title" data-i18n-attribute-message-id="personal"></h3>
<button class="btn-return arrow-left keyboard-nav-back" id="close-container-info-panel" tabindex="0"></button>
<button class="btn-return arrow-left controller keyboard-nav-back" id="close-container-info-panel" tabindex="0"></button>
<hr>
<table class="menu">
<tr class="menu-item hover-highlight keyboard-nav" id="open-new-tab-in-info" tabindex="0">
@@ -220,18 +225,21 @@
</tr>
</table>
<hr>
<div class="sub-header" data-i18n-message-id="openTabs"></div>
<div class="sub-header-wrapper">
<div class="sub-header" data-i18n-message-id="openTabs"></div>
</div>
<div class="scrollable">
<table class="menu" id="container-info-table">
<tr class="menu-item hover-highlight keyboard-nav" tabindex="0">
<td>
<div class="favicon"><img class="menu-icon" src="https://www.mozilla.org/favicon.ico" /></div>
<span class="menu-text truncate-text">www.mozillllllllllllllllllllllllllllllllllllla.org</span>
<img class="trash-button" src="/img/container-close-tab.svg" />
<img class="trash-button" src="/img/close.svg" />
</td>
</tr>
</table>
</div>
<v-padding-hack-footer></v-padding-hack-footer>
<div class="bottom-btn keyboard-nav hover-highlight" id="manage-container-link" tabindex="0" data-i18n-message-id="manageThisContainer"></div>
</div>
@@ -240,7 +248,7 @@
<h3 class="title" id="picker-title">
Multi-Account Containers
</h3>
<button class="btn-return arrow-left keyboard-nav-back" id="close-container-picker-panel" tabindex="0"></button>
<button class="btn-return arrow-left controller keyboard-nav-back" id="close-container-picker-panel" tabindex="0"></button>
<hr>
<div id="new-container-div"></div>
<div class="scrollable identities-list">
@@ -262,39 +270,87 @@
<div class="panel menu-panel edit-container-panel hide" id="edit-container-panel">
<h3 class="title" id="container-edit-title" data-i18n-message-id="default"></h3>
<button class="btn-return arrow-left" id="close-container-edit-panel"></button>
<button class="btn-return arrow-left controller" id="close-container-edit-panel"></button>
<hr>
<div class="scrollable edit-form">
<div class="edit-form">
<form id="edit-container-panel-form">
<input type="hidden" name="container-id" id="edit-container-panel-usercontext-input" />
<fieldset>
<legend class="form-header" data-i18n-message-id="name"></legend>
<v-padding-hack-4></v-padding-hack-4>
<input type="text" name="container-name" id="edit-container-panel-name-input" class="edit-container-panel-name-input" maxlength="25"/>
</fieldset>
<legend class="form-header" data-i18n-message-id="color"></legend>
<fieldset id="edit-container-panel-choose-color" class="radio-choice">
<legend class="form-header" data-i18n-message-id="color"></legend>
</fieldset>
<fieldset id="edit-container-panel-choose-icon" class="radio-choice">
<legend class="form-header" data-i18n-message-id="icon"></legend>
</fieldset>
<fieldset>
<legend>Proxy (Optional)</legend>
<input type="text" name="container-proxy" id="edit-container-panel-proxy" maxlength="50" placeholder="type://host:port"/>
<fieldset class="proxies"> <!---- PROXIES -->
<input type="text" class="proxies" name="container-proxy" id="edit-container-panel-proxy" maxlength="50" placeholder="type://host:port" hidden/>
<input type="text" class="proxies" name="moz-proxy-enabled" id="moz-proxy-enabled" maxlength="5" hidden/>
<input type="text" class="proxies" name="country-code" id="country-code-input" maxlength="5" hidden/>
<input type="text" class="proxies" name="city-name" id="city-name-input" maxlength="5" hidden/>
</fieldset>
</form>
<div id="edit-container-options">
<div class="options-header" data-i18n-message-id="options"></div>
<div class="container-options">
<input type="checkbox" class="site-isolation" id="site-isolation" name="site-isolation">
<label for="site-isolation" class="options-label" data-i18n-message-id="limitToDesignatedSites"></label>
<label class="switch">
<input id="site-isolation" class="switch-input" name="site-isolation" type="checkbox">
<span class="slider round"></span>
</label>
</div>
<div class="container-options options-label manage-assigned-sites-list" id="manage-assigned-sites-list" tabindex="0">
</div>
<button class="container-options blue-link" id="manage-assigned-sites-list" tabindex="0" data-i18n-message-id="manageSiteList"></button>
</div>
</div>
<div class="delete-container">
<button class="delete-btn" id="delete-container-button" data-i18n-message-id="deleteThisContainer"></button>
</div>
<moz-vpn-container-ui class="moz-vpn-controller-content expanded">
<div class="flx-row button-wrapper">
<h4 class="moz-vpn-logotype">Mozilla VPN
<span class="moz-vpn-connection-status-indicator"></span>
</h4>
<button class="expand-collapse blue-link" tab-index="0">
<span data-i18n-message-id="hide" class="hide-label hide-show-label"></span>
<span data-i18n-message-id="show" class="show-label hide-show-label"></span>
</button>
</div>
<div class="collapsible-content flx-col controller-collapsible-conten">
<div class="flx-row flx-space-between add-bg-color">
<span class="moz-vpn-subtitle"></span>
<label class="switch">
<input id="moz-vpn-switch" class="moz-vpn-switch switch-input" type="checkbox">
<span class="slider round"></span>
</label>
</div>
<button id="get-mozilla-vpn" class="moz-vpn-cta primary-cta" data-i18n-message-id="getMozillaVpn"></button>
<button id="moz-vpn-current-server" class="controller">
<span class="current-country-flag"></span>
<span class="current-city-name"></span>
</button>
</div>
</moz-vpn-container-ui>
<button id="advanced-proxy-settings-btn" class="proxy-section advanced-proxy-settings-btn controller">
<span class="advanced-proxy-settings-btn-label" data-i18n-message-id="advancedProxySettings"></span>
<span id="advanced-proxy-address"></span>
</button>
<button class="delete-container delete-btn alert-text" id="delete-container-button" data-i18n-message-id="deleteThisContainer"></button>
<!-- TODO get UX / CONTENT on how to message about unavailable proxies -->
<!-- Prevent users from opening containers where proxies are unavailable and which will result in timeouts -->
<!-- Provide a way for users to disable Mozilla proxies if they cancel their subscription or somehow lose access -->
<!-- <div class="modal-warning">
<div class="modal-content">
<button id="close-proxy-warning" class="x-close modal-clickable">Close</button>
<p>This container has been configured to use a Mozilla VPN proxy, but the Mozilla VPN app is off. To access the web via this container, turn Mozilla VPN on or disable the proxy for this container.</p>
<button class="disable-proxy modal-clickable">Disable proxy for this container</button>
<button id="close-modal" class="modal-clickable" class="disable-proxy">Close</button>
</div>
</div> -->
<div class="panel-footer">
<a href="#" class="button expanded secondary footer-button cancel-button" id="create-container-cancel-link" data-i18n-message-id="cancel"></a>
<a href="#" class="button expanded primary footer-button" id="create-container-ok-link" data-i18n-message-id="ok"></a>
@@ -303,7 +359,7 @@
<div class="panel menu-panel edit-container-assignments hide" id="edit-container-assignments">
<h3 class="title" id="edit-assignments-title" data-i18n-message-id="default"></h3>
<button class="btn-return arrow-left" id="close-container-assignment-panel"></button>
<button class="btn-return arrow-left controller" id="close-container-assignment-panel"></button>
<hr>
<div class="scrollable edit-sites-assigned">
<div class="sub-header" data-i18n-attribute-message-id="sitesAssignedToThisContainer"></div>
@@ -322,7 +378,8 @@
<div class="hide panel delete-container-panel" id="delete-container-panel">
<h3 class="title" id="container-delete-title" data-i18n-message-id="default">
</h3>
<button class="btn-return arrow-left" id="close-container-delete-panel"></button>
<button class="btn-return arrow-left controller" id="close-container-delete-panel"></button>
<hr>
<div class="panel-content delete-container-confirm">
<h4 class="delete-container-confirm-title" data-i18n-message-id="removeThisContainer"></h4>
@@ -335,8 +392,55 @@
</div>
</div>
<div class="hide panel moz-vpn-server-list-panel" id="moz-vpn-server-list-panel">
<h3 class="title proxy-panel-title" id="vpn-server-list-title" data-i18n-message-id="chooseLocation"></h3>
<button class="btn-return arrow-left controller moz-vpn-return" id="moz-vpn-return"></button>
<ul id="moz-vpn-server-list" class="moz-vpn-server-list">
<template id="server-list-item">
<li class="server-list-item" data-country-code="">
<button class="flx-row server-city-list-visibility-btn controller">
<div class="toggle"></div>
<img class="server-country-flag" src="" alt="" />
<p class="server-country-name"></p>
</button>
<ul class="server-city-list"></ul>
</li>
</template>
<template id="server-city-list-items">
<li>
<label class="server-city-list-item">
<input class="server-radio-btn" type="radio" data-country-code="" data-city-name="" checked=""/>
<div class="server-radio-control"></div>
<span class="server-city-name"></span>
</label>
</li>
</template>
</ul>
</div>
<div class="hide panel advanced-proxy-settings-panel" id="advanced-proxy-settings-panel">
<h3 class="title proxy-panel-title" id="advanced-proxy-settings-title">
<span data-i18n-message-id="advancedProxySettings"></span>
<div class="flx-row">
<p data-identity-color="" class="proxy-title-container-color"></p>
<span id="proxy-title-container-name"></span>
</div>
</h3>
<button class="btn-return arrow-left controller moz-vpn-return" id="advanced-proxy-settings-return"></button>
<form class="advanced-proxy-panel-content">
<label class="advanced-proxy-input-label" for="container-proxy" data-i18n-message-id="advancedProxySettings"></label>
<div class="advanced-proxy-input-wrapper">
<input id="edit-advanced-proxy-input" class="proxy-host primary-input" name="container-proxy" type="text" maxlength="50" placeholder="type://host:port" />
<button id="clear-advanced-proxy-input" class="controller" data-i18n-attribute="value" data-i18n-attribute-message-id="clearproxylabel"></button>
<span class="proxy-validity" data-i18n-message-id="invalidProxyAlert"></span>
</div>
<button id="submit-advanced-proxy" class="primary-cta apply-to-container" data-i18n-message-id="applyToThisContainer"></button>
<a id="advanced-proxy-settings-learn-more" href="" class="blue-link" data-i18n-message-id="learnMore"></a>
</form>
</div>
<script src="js/utils.js"></script>
<script src="js/proxified-containers.js"></script>
<script src="js/popup.js"></script>
<script src="js/mozillaVpn.js"></script>
<script src="js/proxified-containers.js"></script>
</body>
</html>