1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-09-15 15:32:28 +02:00
This commit is contained in:
gorhill 2015-12-13 00:56:30 -05:00
parent 9c12ef02bb
commit d7523aad6d
6 changed files with 42 additions and 81 deletions

View File

@ -211,11 +211,10 @@ body.advancedUser #panes.dfEnabled h2:before {
background-color: #ffe; background-color: #ffe;
border: 1px solid #ddc; border: 1px solid #ddc;
border-radius: 4px; border-radius: 4px;
bottom: 0.7em;
color: #888; color: #888;
cursor: pointer; cursor: pointer;
display: none; display: none;
font-size: 42px; font-size: 3.5em;
left: 4px; left: 4px;
line-height: 1; line-height: 1;
padding: 4px 8px; padding: 4px 8px;
@ -245,7 +244,7 @@ body.dirty #refresh:hover {
opacity: 0; opacity: 0;
padding: 4px 6px; padding: 4px 6px;
pointer-events: none; pointer-events: none;
position: fixed; position: absolute;
text-align: center; text-align: center;
visibility: hidden; visibility: hidden;
white-space: pre-line; white-space: pre-line;

View File

@ -50,6 +50,7 @@ return {
userSettings: { userSettings: {
advancedUserEnabled: false, advancedUserEnabled: false,
autoUpdate: true, autoUpdate: true,
cloudStorageEnabled: false,
collapseBlocked: true, collapseBlocked: true,
colorBlindFriendly: false, colorBlindFriendly: false,
contextMenuEnabled: true, contextMenuEnabled: true,
@ -62,7 +63,7 @@ return {
prefetchingDisabled: true, prefetchingDisabled: true,
requestLogMaxEntries: 1000, requestLogMaxEntries: 1000,
showIconBadge: true, showIconBadge: true,
cloudStorageEnabled: false, tooltipsDisabled: false,
webrtcIPAddressHidden: false webrtcIPAddressHidden: false
}, },

View File

@ -814,30 +814,39 @@ var getPopupData = function(tabId) {
/******************************************************************************/ /******************************************************************************/
var onShowTooltip = function() { var onShowTooltip = function() {
if ( popupData.advancedUserEnabled ) { if ( popupData.tooltipsDisabled ) {
return; return;
} }
var tip = document.getElementById('tooltip');
var target = this; var target = this;
// Tooltip container
var ttc = uDom(target).ancestors('.tooltipContainer').nodeAt(0) ||
document.body;
var ttcRect = ttc.getBoundingClientRect();
// Tooltip itself
var tip = uDom.nodeFromId('tooltip');
tip.textContent = target.getAttribute('data-tip'); tip.textContent = target.getAttribute('data-tip');
tip.style.removeProperty('top'); tip.style.removeProperty('top');
tip.style.removeProperty('bottom'); tip.style.removeProperty('bottom');
ttc.appendChild(tip);
// Target rect
var targetRect = target.getBoundingClientRect();
// Default is "over" // Default is "over"
var pos; var pos;
var over = target.getAttribute('data-tip-position') !== 'under'; var over = target.getAttribute('data-tip-position') !== 'under';
if ( over ) { if ( over ) {
pos = document.body.getBoundingClientRect().height - pos = ttcRect.height - targetRect.top + ttcRect.top;
target.getBoundingClientRect().top;
tip.style.setProperty('bottom', pos + 'px'); tip.style.setProperty('bottom', pos + 'px');
} else { } else {
pos = target.getBoundingClientRect().bottom; pos = targetRect.bottom - ttcRect.top;
tip.style.setProperty('top', pos + 'px'); tip.style.setProperty('top', pos + 'px');
} }
uDom(tip).addClass('show'); tip.classList.add('show');
}; };
var onHideTooltip = function() { var onHideTooltip = function() {

View File

@ -162,65 +162,16 @@ var changeUserSettings = function(name, value) {
// TODO: use data-* to declare simple settings // TODO: use data-* to declare simple settings
var onUserSettingsReceived = function(details) { var onUserSettingsReceived = function(details) {
uDom('#collapse-blocked') uDom('[data-setting-type="bool"]').forEach(function(uNode) {
.prop('checked', details.collapseBlocked === true) var input = uNode.nodeAt(0);
.on('change', function(){ uNode.prop('checked', details[input.getAttribute('data-setting-name')] === true)
changeUserSettings('collapseBlocked', this.checked); .on('change', function() {
}); changeUserSettings(
this.getAttribute('data-setting-name'),
uDom('#icon-badge') this.checked
.prop('checked', details.showIconBadge === true) );
.on('change', function(){ });
changeUserSettings('showIconBadge', this.checked); });
});
uDom('#context-menu-enabled')
.prop('checked', details.contextMenuEnabled === true)
.on('change', function(){
changeUserSettings('contextMenuEnabled', this.checked);
});
uDom('#color-blind-friendly')
.prop('checked', details.colorBlindFriendly === true)
.on('change', function(){
changeUserSettings('colorBlindFriendly', this.checked);
});
uDom('#cloud-storage-enabled')
.prop('checked', details.cloudStorageEnabled === true)
.on('change', function(){
changeUserSettings('cloudStorageEnabled', this.checked);
});
uDom('#advanced-user-enabled')
.prop('checked', details.advancedUserEnabled === true)
.on('change', function(){
changeUserSettings('advancedUserEnabled', this.checked);
});
uDom('#prefetching-disabled')
.prop('checked', details.prefetchingDisabled === true)
.on('change', function(){
changeUserSettings('prefetchingDisabled', this.checked);
});
uDom('#hyperlink-auditing-disabled')
.prop('checked', details.hyperlinkAuditingDisabled === true)
.on('change', function(){
changeUserSettings('hyperlinkAuditingDisabled', this.checked);
});
uDom('#webrtc-ipaddress-hidden')
.prop('checked', details.webrtcIPAddressHidden === true)
.on('change', function(){
changeUserSettings('webrtcIPAddressHidden', this.checked);
});
uDom('#experimental-enabled')
.prop('checked', details.experimentalEnabled === true)
.on('change', function(){
changeUserSettings('experimentalEnabled', this.checked);
});
uDom('#export').on('click', exportToFile); uDom('#export').on('click', exportToFile);
uDom('#import').on('click', startImportFilePicker); uDom('#import').on('click', startImportFilePicker);

View File

@ -12,7 +12,7 @@
<body> <body>
<a href="dashboard.html" target="_blank" id="gotoPrefs" data-i18n-tip="popupTipDashboard" data-tip-position="under"><span id="appname"> </span> <span id="version"> </span></a> <a href="dashboard.html" target="_blank" id="gotoPrefs" data-i18n-tip="popupTipDashboard" data-tip-position="under"><span id="appname"> </span> <span id="version"> </span></a>
<div id="panes"> <div id="panes">
<div> <div class="tooltipContainer">
<p id="switch" data-i18n-tip="popupPowerSwitchInfo" data-tip-position="under"><span class="fa">&#xf011;</span></p> <p id="switch" data-i18n-tip="popupPowerSwitchInfo" data-tip-position="under"><span class="fa">&#xf011;</span></p>
<h2 id="dfToggler" data-i18n="popupBlockedRequestPrompt">&nbsp;</h2> <h2 id="dfToggler" data-i18n="popupBlockedRequestPrompt">&nbsp;</h2>
<p class="statName"> <p class="statName">
@ -21,6 +21,7 @@
<a href="logger-ui.html" rel="popup" class="fa tool enabled" data-i18n-tip="popupTipLog">&#xf022;</a> <a href="logger-ui.html" rel="popup" class="fa tool enabled" data-i18n-tip="popupTipLog">&#xf022;</a>
</p> </p>
<p class="statValue" id="page-blocked">?</p> <p class="statValue" id="page-blocked">?</p>
<div id="refresh" class="fa">&#xf021;</div>
<p class="statName" data-i18n="popupBlockedSinceInstallPrompt">&nbsp;</p> <p class="statName" data-i18n="popupBlockedSinceInstallPrompt">&nbsp;</p>
<p class="statValue" id="total-blocked">?</p> <p class="statValue" id="total-blocked">?</p>
<h2 data-i18n="popupHitDomainCountPrompt">&nbsp;</h2> <h2 data-i18n="popupHitDomainCountPrompt">&nbsp;</h2>
@ -31,8 +32,6 @@
<span id="no-cosmetic-filtering" class="hnSwitch fa" data-i18n-tip="popupTipNoCosmeticFiltering">&#xf070;<span class="badge"></span><span></span></span> <span id="no-cosmetic-filtering" class="hnSwitch fa" data-i18n-tip="popupTipNoCosmeticFiltering">&#xf070;<span class="badge"></span><span></span></span>
<span id="no-remote-fonts" class="hnSwitch fa" data-i18n-tip="popupTipNoRemoteFonts">&#xf031;<span class="badge"></span><span></span></span> <span id="no-remote-fonts" class="hnSwitch fa" data-i18n-tip="popupTipNoRemoteFonts">&#xf031;<span class="badge"></span><span></span></span>
</div> </div>
<div id="refresh" class="fa">&#xf021;</div>
<div id="tooltip"></div>
</div><!-- DO NOT REMOVE --><div> </div><!-- DO NOT REMOVE --><div>
<div id="firewallContainer" class="minimized"> <div id="firewallContainer" class="minimized">
<div><span data-i18n="popupAnyRulePrompt"></span><span data-src="/" data-des="*" data-type="*"> </span><span data-src="." data-des="*" data-type="*"> </span></div> <div><span data-i18n="popupAnyRulePrompt"></span><span data-src="/" data-des="*" data-type="*"> </span><span data-src="." data-des="*" data-type="*"> </span></div>
@ -50,6 +49,7 @@
<div><span></span><span data-src="/" data-des="" data-type="*"> </span><span data-src="." data-des="" data-type="*"> </span><span data-src="." data-des="" data-type="*"> </span></div> <div><span></span><span data-src="/" data-des="" data-type="*"> </span><span data-src="." data-des="" data-type="*"> </span><span data-src="." data-des="" data-type="*"> </span></div>
<div id="actionSelector"><span id="dynaAllow"></span><span id="dynaNoop"></span><span id="dynaBlock"></span></div> <div id="actionSelector"><span id="dynaAllow"></span><span id="dynaNoop"></span><span id="dynaBlock"></span></div>
<div id="hotspotTip"></div> <div id="hotspotTip"></div>
<div id="tooltip"></div>
</div> </div>
<script src="lib/punycode.js"></script> <script src="lib/punycode.js"></script>

View File

@ -11,16 +11,17 @@
<body> <body>
<ul id="userSettings"> <ul id="userSettings">
<li><input id="collapse-blocked" type="checkbox"><label data-i18n="settingsCollapseBlockedPrompt" for="collapse-blocked"></label> <li><input id="collapse-blocked" type="checkbox" data-setting-name="collapseBlocked" data-setting-type="bool"><label data-i18n="settingsCollapseBlockedPrompt" for="collapse-blocked"></label>
<li><input id="icon-badge" type="checkbox"><label data-i18n="settingsIconBadgePrompt" for="icon-badge"></label> <li><input id="icon-badge" type="checkbox" data-setting-name="showIconBadge" data-setting-type="bool"><label data-i18n="settingsIconBadgePrompt" for="icon-badge"></label>
<li><input id="context-menu-enabled" type="checkbox"><label data-i18n="settingsContextMenuPrompt" for="context-menu-enabled"></label> <li><input id="context-menu-enabled" type="checkbox" data-setting-name="contextMenuEnabled" data-setting-type="bool"><label data-i18n="settingsContextMenuPrompt" for="context-menu-enabled"></label>
<li><input id="color-blind-friendly" type="checkbox"><label data-i18n="settingsColorBlindPrompt" for="color-blind-friendly"></label> <li><input id="tooltips-disabled" type="checkbox" data-setting-name="tooltipsDisabled" data-setting-type="bool"><label data-i18n="settingsTooltipsPrompt" for="tooltips-disabled"></label>
<li><input id="cloud-storage-enabled" type="checkbox"><label data-i18n="settingsCloudStorageEnabledPrompt" for="cloud-storage-enabled"></label> <a class="fa info" href="https://github.com/gorhill/uBlock/wiki/Cloud-storage" target="_blank">&#xf05a;</a> <li><input id="color-blind-friendly" type="checkbox" data-setting-name="colorBlindFriendly" data-setting-type="bool"><label data-i18n="settingsColorBlindPrompt" for="color-blind-friendly"></label>
<li><input id="advanced-user-enabled" type="checkbox"><label data-i18n="settingsAdvancedUserPrompt" for="advanced-user-enabled"></label> <li><input id="cloud-storage-enabled" type="checkbox" data-setting-name="cloudStorageEnabled" data-setting-type="bool"><label data-i18n="settingsCloudStorageEnabledPrompt" for="cloud-storage-enabled"></label> <a class="fa info" href="https://github.com/gorhill/uBlock/wiki/Cloud-storage" target="_blank">&#xf05a;</a>
<li><input id="advanced-user-enabled" type="checkbox" data-setting-name="advancedUserEnabled" data-setting-type="bool"><label data-i18n="settingsAdvancedUserPrompt" for="advanced-user-enabled"></label>
<li class="subgroup"><span data-i18n="3pGroupPrivacy"></span><ul> <li class="subgroup"><span data-i18n="3pGroupPrivacy"></span><ul>
<li><input id="prefetching-disabled" type="checkbox"><label data-i18n="settingsPrefetchingDisabledPrompt" for="prefetching-disabled"></label> <a class="fa info" href="https://wikipedia.org/wiki/Link_prefetching#Issues_and_criticisms" target="_blank">&#xf05a;</a> <li><input id="prefetching-disabled" type="checkbox" data-setting-name="prefetchingDisabled" data-setting-type="bool"><label data-i18n="settingsPrefetchingDisabledPrompt" for="prefetching-disabled"></label> <a class="fa info" href="https://wikipedia.org/wiki/Link_prefetching#Issues_and_criticisms" target="_blank">&#xf05a;</a>
<li><input id="hyperlink-auditing-disabled" type="checkbox"><label data-i18n="settingsHyperlinkAuditingDisabledPrompt" for="hyperlink-auditing-disabled"></label> <a class="fa info" href="http://www.wilderssecurity.com/threads/hyperlink-auditing-aka-a-ping-and-beacon-aka-navigator-sendbeacon.364904/" target="_blank">&#xf05a;</a> <li><input id="hyperlink-auditing-disabled" type="checkbox" data-setting-name="hyperlinkAuditingDisabled" data-setting-type="bool"><label data-i18n="settingsHyperlinkAuditingDisabledPrompt" for="hyperlink-auditing-disabled"></label> <a class="fa info" href="http://www.wilderssecurity.com/threads/hyperlink-auditing-aka-a-ping-and-beacon-aka-navigator-sendbeacon.364904/" target="_blank">&#xf05a;</a>
<li><input id="webrtc-ipaddress-hidden" type="checkbox"><label data-i18n="settingsWebRTCIPAddressHiddenPrompt" for="webrtc-ipaddress-hidden"></label> <a class="fa info" href="https://github.com/gorhill/uBlock/wiki/Prevent-WebRTC-from-leaking-local-IP-address" target="_blank">&#xf05a;</a> <li><input id="webrtc-ipaddress-hidden" type="checkbox" data-setting-name="webrtcIPAddressHidden" data-setting-type="bool"><label data-i18n="settingsWebRTCIPAddressHiddenPrompt" for="webrtc-ipaddress-hidden"></label> <a class="fa info" href="https://github.com/gorhill/uBlock/wiki/Prevent-WebRTC-from-leaking-local-IP-address" target="_blank">&#xf05a;</a>
</ul> </ul>
</ul> </ul>