mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
Remove UITour and customize tips.
This commit is contained in:
parent
c74733cc79
commit
dece98a7b5
29 changed files with 1 additions and 3276 deletions
|
|
@ -6,14 +6,6 @@
|
|||
# * permission is an integer between 1 and 15
|
||||
# See nsPermissionManager.cpp for more...
|
||||
|
||||
# UITour
|
||||
origin uitour 1 https://www.mozilla.org
|
||||
origin uitour 1 https://self-repair.mozilla.org
|
||||
origin uitour 1 https://support.mozilla.org
|
||||
origin uitour 1 https://addons.mozilla.org
|
||||
origin uitour 1 https://discovery.addons.mozilla.org
|
||||
origin uitour 1 about:home
|
||||
|
||||
# XPInstall
|
||||
origin install 1 https://addons.mozilla.org
|
||||
origin install 1 https://testpilot.firefox.com
|
||||
|
|
|
|||
|
|
@ -178,17 +178,6 @@ pref("browser.eme.ui.enabled", true);
|
|||
pref("browser.eme.ui.enabled", false);
|
||||
#endif
|
||||
|
||||
// UI tour experience.
|
||||
pref("browser.uitour.enabled", true);
|
||||
pref("browser.uitour.loglevel", "Error");
|
||||
pref("browser.uitour.requireSecure", true);
|
||||
pref("browser.uitour.themeOrigin", "https://addons.mozilla.org/%LOCALE%/firefox/themes/");
|
||||
pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/");
|
||||
// This is used as a regexp match against the page's URL.
|
||||
pref("browser.uitour.readerViewTrigger", "^https:\\/\\/www\\.mozilla\\.org\\/[^\\/]+\\/firefox\\/reading\\/start");
|
||||
// How long to show a Hearbeat survey (two hours, in seconds)
|
||||
pref("browser.uitour.surveyDuration", 7200);
|
||||
|
||||
pref("browser.customizemode.tip0.shown", false);
|
||||
pref("browser.customizemode.tip0.learnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/customize");
|
||||
|
||||
|
|
|
|||
|
|
@ -52,10 +52,6 @@
|
|||
#else
|
||||
/>
|
||||
#endif
|
||||
<menuitem id="menu_openTour"
|
||||
oncommand="openTourPage();"
|
||||
label="&helpShowTour2.label;"
|
||||
accesskey="&helpShowTour2.accesskey;"/>
|
||||
<menuitem id="menu_keyboardShortcuts"
|
||||
oncommand="openHelpLink('keyboard-shortcuts')"
|
||||
onclick="checkForMiddleClick(this, event);"
|
||||
|
|
|
|||
|
|
@ -226,14 +226,5 @@ var TrackingProtection = {
|
|||
style: "primary",
|
||||
},
|
||||
];
|
||||
|
||||
let panelTarget = yield UITour.getTarget(window, "trackingProtection");
|
||||
UITour.initForBrowser(gBrowser.selectedBrowser, window);
|
||||
UITour.showInfo(window, panelTarget,
|
||||
gNavigatorBundle.getString("trackingProtection.intro.title"),
|
||||
gNavigatorBundle.getFormattedString("trackingProtection.intro.description2",
|
||||
[brandShortName]),
|
||||
undefined, buttons,
|
||||
{ closeButtonCallback: () => this.dontShowIntroPanelAgain() });
|
||||
}),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1152,71 +1152,6 @@ toolbarpaletteitem[place="palette"][hidden] {
|
|||
display: none;
|
||||
}
|
||||
|
||||
/* UI Tour */
|
||||
|
||||
@keyframes uitour-wobble {
|
||||
from {
|
||||
transform: rotate(0deg) translateX(3px) rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(360deg) translateX(3px) rotate(-360deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(720deg) translateX(0px) rotate(-720deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes uitour-zoom {
|
||||
from {
|
||||
transform: scale(0.8);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.0);
|
||||
}
|
||||
to {
|
||||
transform: scale(0.8);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes uitour-color {
|
||||
from {
|
||||
border-color: #5B9CD9;
|
||||
}
|
||||
50% {
|
||||
border-color: #FF0000;
|
||||
}
|
||||
to {
|
||||
border-color: #5B9CD9;
|
||||
}
|
||||
}
|
||||
|
||||
#UITourHighlightContainer,
|
||||
#UITourHighlight {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#UITourHighlight[active] {
|
||||
animation-delay: 2s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
|
||||
#UITourHighlight[active="wobble"] {
|
||||
animation-name: uitour-wobble;
|
||||
animation-delay: 0s;
|
||||
animation-duration: 1.5s;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
#UITourHighlight[active="zoom"] {
|
||||
animation-name: uitour-zoom;
|
||||
animation-duration: 1s;
|
||||
}
|
||||
#UITourHighlight[active="color"] {
|
||||
animation-name: uitour-color;
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
/* Combined context-menu items */
|
||||
#context-navigation > .menuitem-iconic > .menu-iconic-text,
|
||||
#context-navigation > .menuitem-iconic > .menu-accel-container {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ Cu.import("resource://gre/modules/NotificationDB.jsm");
|
|||
["Task", "resource://gre/modules/Task.jsm"],
|
||||
["TelemetryStopwatch", "resource://gre/modules/TelemetryStopwatch.jsm"],
|
||||
["Translation", "resource:///modules/translation/Translation.jsm"],
|
||||
["UITour", "resource:///modules/UITour.jsm"],
|
||||
["UpdateUtils", "resource://gre/modules/UpdateUtils.jsm"],
|
||||
["Weave", "resource://services-sync/main.js"],
|
||||
["fxAccounts", "resource://gre/modules/FxAccounts.jsm"],
|
||||
|
|
@ -989,7 +988,6 @@ var gBrowserInit = {
|
|||
let mm = window.getGroupMessageManager("browsers");
|
||||
mm.loadFrameScript("chrome://browser/content/tab-content.js", true);
|
||||
mm.loadFrameScript("chrome://browser/content/content.js", true);
|
||||
mm.loadFrameScript("chrome://browser/content/content-UITour.js", true);
|
||||
mm.loadFrameScript("chrome://global/content/manifestMessages.js", true);
|
||||
|
||||
// initialize observers and listeners
|
||||
|
|
@ -4481,7 +4479,6 @@ var XULBrowserWindow = {
|
|||
|
||||
gIdentityHandler.onLocationChange();
|
||||
|
||||
UITour.onLocationChange(location);
|
||||
|
||||
gTabletModePageCounter.inc();
|
||||
|
||||
|
|
|
|||
|
|
@ -232,42 +232,6 @@
|
|||
</hbox>
|
||||
</panel>
|
||||
|
||||
<!-- UI tour experience -->
|
||||
<panel id="UITourTooltip"
|
||||
type="arrow"
|
||||
hidden="true"
|
||||
noautofocus="true"
|
||||
noautohide="true"
|
||||
align="start"
|
||||
orient="vertical"
|
||||
role="alert">
|
||||
<vbox>
|
||||
<hbox id="UITourTooltipBody">
|
||||
<image id="UITourTooltipIcon"/>
|
||||
<vbox flex="1">
|
||||
<hbox id="UITourTooltipTitleContainer">
|
||||
<label id="UITourTooltipTitle" flex="1"/>
|
||||
<toolbarbutton id="UITourTooltipClose" class="close-icon"
|
||||
tooltiptext="&uiTour.infoPanel.close;"/>
|
||||
</hbox>
|
||||
<description id="UITourTooltipDescription" flex="1"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<hbox id="UITourTooltipButtons" flex="1" align="center"/>
|
||||
</vbox>
|
||||
</panel>
|
||||
<!-- type="default" forces frames to be created so that the panel's size can be determined -->
|
||||
<panel id="UITourHighlightContainer"
|
||||
type="default"
|
||||
hidden="true"
|
||||
noautofocus="true"
|
||||
noautohide="true"
|
||||
flip="none"
|
||||
consumeoutsideclicks="false"
|
||||
mousethrough="always">
|
||||
<box id="UITourHighlight"></box>
|
||||
</panel>
|
||||
|
||||
<menupopup id="toolbar-context-menu"
|
||||
onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
|
||||
<menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
|
||||
|
|
|
|||
|
|
@ -809,13 +809,6 @@ function openFeedbackPage()
|
|||
openUILinkIn(url, "tab");
|
||||
}
|
||||
|
||||
function openTourPage()
|
||||
{
|
||||
let scope = {}
|
||||
Components.utils.import("resource:///modules/UITour.jsm", scope);
|
||||
openUILinkIn(scope.UITour.url, "tab");
|
||||
}
|
||||
|
||||
function buildHelpMenu()
|
||||
{
|
||||
// Enable/disable the "Report Web Forgery" menu item.
|
||||
|
|
|
|||
|
|
@ -90,7 +90,6 @@ function CustomizeMode(aWindow) {
|
|||
// to the user when in customizing mode.
|
||||
this.visiblePalette = this.document.getElementById(kPaletteId);
|
||||
this.paletteEmptyNotice = this.document.getElementById("customization-empty");
|
||||
this.tipPanel = this.document.getElementById("customization-tipPanel");
|
||||
if (Services.prefs.getCharPref("general.skins.selectedSkin") != "classic/1.0") {
|
||||
let lwthemeButton = this.document.getElementById("customization-lwtheme-button");
|
||||
lwthemeButton.setAttribute("hidden", "true");
|
||||
|
|
@ -355,7 +354,6 @@ CustomizeMode.prototype = {
|
|||
this._updateEmptyPaletteNotice();
|
||||
|
||||
this._updateLWThemeButtonIcon();
|
||||
this.maybeShowTip(panelHolder);
|
||||
|
||||
this._handler.isEnteringCustomizeMode = false;
|
||||
panelContents.removeAttribute("customize-transitioning");
|
||||
|
|
@ -400,8 +398,6 @@ CustomizeMode.prototype = {
|
|||
return;
|
||||
}
|
||||
|
||||
this.hideTip();
|
||||
|
||||
this._handler.isExitingCustomizeMode = true;
|
||||
|
||||
if (this._enableOutlinesTimeout) {
|
||||
|
|
@ -675,46 +671,6 @@ CustomizeMode.prototype = {
|
|||
return "url(\"" + aData.headerURL.replace(/"/g, '\\"') + "\")";
|
||||
},
|
||||
|
||||
maybeShowTip: function(aAnchor) {
|
||||
let shown = false;
|
||||
const kShownPref = "browser.customizemode.tip0.shown";
|
||||
try {
|
||||
shown = Services.prefs.getBoolPref(kShownPref);
|
||||
} catch (ex) {}
|
||||
if (shown)
|
||||
return;
|
||||
|
||||
let anchorNode = aAnchor || this.document.getElementById("customization-panelHolder");
|
||||
let messageNode = this.tipPanel.querySelector(".customization-tipPanel-contentMessage");
|
||||
if (!messageNode.childElementCount) {
|
||||
// Put the tip contents in the popup.
|
||||
let bundle = this.document.getElementById("bundle_browser");
|
||||
const kLabelClass = "customization-tipPanel-link";
|
||||
messageNode.innerHTML = bundle.getFormattedString("customizeTips.tip0", [
|
||||
"<label class=\"customization-tipPanel-em\" value=\"" +
|
||||
bundle.getString("customizeTips.tip0.hint") + "\"/>",
|
||||
this.document.getElementById("bundle_brand").getString("brandShortName"),
|
||||
"<label class=\"" + kLabelClass + " text-link\" value=\"" +
|
||||
bundle.getString("customizeTips.tip0.learnMore") + "\"/>"
|
||||
]);
|
||||
|
||||
messageNode.querySelector("." + kLabelClass).addEventListener("click", () => {
|
||||
let url = Services.urlFormatter.formatURLPref("browser.customizemode.tip0.learnMoreUrl");
|
||||
let browser = this.browser;
|
||||
browser.selectedTab = browser.addTab(url);
|
||||
this.hideTip();
|
||||
});
|
||||
}
|
||||
|
||||
this.tipPanel.hidden = false;
|
||||
this.tipPanel.openPopup(anchorNode);
|
||||
Services.prefs.setBoolPref(kShownPref, true);
|
||||
},
|
||||
|
||||
hideTip: function() {
|
||||
this.tipPanel.hidePopup();
|
||||
},
|
||||
|
||||
_getCustomizableChildForNode: function(aNode) {
|
||||
// NB: adjusted from _getCustomizableParent to keep that method fast
|
||||
// (it's used during drags), and avoid multiple DOM loops
|
||||
|
|
|
|||
|
|
@ -367,25 +367,6 @@
|
|||
</vbox>
|
||||
</panel>
|
||||
|
||||
<panel id="customization-tipPanel"
|
||||
type="arrow"
|
||||
flip="none"
|
||||
side="left"
|
||||
position="leftcenter topright"
|
||||
noautohide="true"
|
||||
hidden="true">
|
||||
<hbox class="customization-tipPanel-wrapper">
|
||||
<vbox class="customization-tipPanel-infoBox"/>
|
||||
<vbox class="customization-tipPanel-content" flex="1">
|
||||
<description class="customization-tipPanel-contentMessage"/>
|
||||
<image class="customization-tipPanel-contentImage"/>
|
||||
</vbox>
|
||||
<vbox pack="start" align="end" class="customization-tipPanel-closeBox">
|
||||
<toolbarbutton oncommand="gCustomizeMode.hideTip()" class="close-icon"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</panel>
|
||||
|
||||
<panel id="panic-button-success-notification"
|
||||
type="arrow"
|
||||
position="bottomcenter topright"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ DIRS += [
|
|||
'shell',
|
||||
'selfsupport',
|
||||
'syncedtabs',
|
||||
'uitour',
|
||||
'translation',
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ XPCOMUtils.defineLazyServiceGetter(this, "AlertsService", "@mozilla.org/alerts-s
|
|||
["SimpleServiceDiscovery", "resource://gre/modules/SimpleServiceDiscovery.jsm"],
|
||||
["TabCrashHandler", "resource:///modules/ContentCrashHandlers.jsm"],
|
||||
["Task", "resource://gre/modules/Task.jsm"],
|
||||
["UITour", "resource:///modules/UITour.jsm"],
|
||||
["URLBarZoom", "resource:///modules/URLBarZoom.jsm"],
|
||||
["UserAgentOverrides", "resource://gre/modules/UserAgentOverrides.jsm"],
|
||||
["WebChannel", "resource://gre/modules/WebChannel.jsm"],
|
||||
|
|
@ -2847,12 +2846,3 @@ var E10SAccessibilityCheck = {
|
|||
|
||||
var components = [BrowserGlue, ContentPermissionPrompt];
|
||||
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|
||||
|
||||
|
||||
// Listen for UITour messages.
|
||||
// Do it here instead of the UITour module itself so that the UITour module is lazy loaded
|
||||
// when the first message is received.
|
||||
var globalMM = Cc["@mozilla.org/globalmessagemanager;1"].getService(Ci.nsIMessageListenerManager);
|
||||
globalMM.addMessageListener("UITour:onPageEvent", function(aMessage) {
|
||||
UITour.onPageEvent(aMessage, aMessage.data);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,331 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
// create namespace
|
||||
if (typeof Mozilla == 'undefined') {
|
||||
var Mozilla = {};
|
||||
}
|
||||
|
||||
(function($) {
|
||||
'use strict';
|
||||
|
||||
// create namespace
|
||||
if (typeof Mozilla.UITour == 'undefined') {
|
||||
Mozilla.UITour = {};
|
||||
}
|
||||
|
||||
var themeIntervalId = null;
|
||||
function _stopCyclingThemes() {
|
||||
if (themeIntervalId) {
|
||||
clearInterval(themeIntervalId);
|
||||
themeIntervalId = null;
|
||||
}
|
||||
}
|
||||
|
||||
function _sendEvent(action, data) {
|
||||
var event = new CustomEvent('mozUITour', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
action: action,
|
||||
data: data || {}
|
||||
}
|
||||
});
|
||||
|
||||
document.dispatchEvent(event);
|
||||
}
|
||||
|
||||
function _generateCallbackID() {
|
||||
return Math.random().toString(36).replace(/[^a-z]+/g, '');
|
||||
}
|
||||
|
||||
function _waitForCallback(callback) {
|
||||
var id = _generateCallbackID();
|
||||
|
||||
function listener(event) {
|
||||
if (typeof event.detail != 'object')
|
||||
return;
|
||||
if (event.detail.callbackID != id)
|
||||
return;
|
||||
|
||||
document.removeEventListener('mozUITourResponse', listener);
|
||||
callback(event.detail.data);
|
||||
}
|
||||
document.addEventListener('mozUITourResponse', listener);
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
var notificationListener = null;
|
||||
function _notificationListener(event) {
|
||||
if (typeof event.detail != 'object')
|
||||
return;
|
||||
if (typeof notificationListener != 'function')
|
||||
return;
|
||||
|
||||
notificationListener(event.detail.event, event.detail.params);
|
||||
}
|
||||
|
||||
Mozilla.UITour.DEFAULT_THEME_CYCLE_DELAY = 10 * 1000;
|
||||
|
||||
Mozilla.UITour.CONFIGNAME_SYNC = 'sync';
|
||||
Mozilla.UITour.CONFIGNAME_AVAILABLETARGETS = 'availableTargets';
|
||||
|
||||
Mozilla.UITour.ping = function(callback) {
|
||||
var data = {};
|
||||
if (callback) {
|
||||
data.callbackID = _waitForCallback(callback);
|
||||
}
|
||||
_sendEvent('ping', data);
|
||||
};
|
||||
|
||||
Mozilla.UITour.observe = function(listener, callback) {
|
||||
notificationListener = listener;
|
||||
|
||||
if (listener) {
|
||||
document.addEventListener('mozUITourNotification',
|
||||
_notificationListener);
|
||||
Mozilla.UITour.ping(callback);
|
||||
} else {
|
||||
document.removeEventListener('mozUITourNotification',
|
||||
_notificationListener);
|
||||
}
|
||||
};
|
||||
|
||||
Mozilla.UITour.registerPageID = function(pageID) {
|
||||
_sendEvent('registerPageID', {
|
||||
pageID: pageID
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.showHeartbeat = function(message, thankyouMessage, flowId, engagementURL,
|
||||
learnMoreLabel, learnMoreURL, options) {
|
||||
var args = {
|
||||
message: message,
|
||||
thankyouMessage: thankyouMessage,
|
||||
flowId: flowId,
|
||||
engagementURL: engagementURL,
|
||||
learnMoreLabel: learnMoreLabel,
|
||||
learnMoreURL: learnMoreURL,
|
||||
};
|
||||
|
||||
if (options) {
|
||||
for (var option in options) {
|
||||
if (!options.hasOwnProperty(option)) {
|
||||
continue;
|
||||
}
|
||||
args[option] = options[option];
|
||||
}
|
||||
}
|
||||
|
||||
_sendEvent('showHeartbeat', args);
|
||||
};
|
||||
|
||||
Mozilla.UITour.showHighlight = function(target, effect) {
|
||||
_sendEvent('showHighlight', {
|
||||
target: target,
|
||||
effect: effect
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.hideHighlight = function() {
|
||||
_sendEvent('hideHighlight');
|
||||
};
|
||||
|
||||
Mozilla.UITour.showInfo = function(target, title, text, icon, buttons, options) {
|
||||
var buttonData = [];
|
||||
if (Array.isArray(buttons)) {
|
||||
for (var i = 0; i < buttons.length; i++) {
|
||||
buttonData.push({
|
||||
label: buttons[i].label,
|
||||
icon: buttons[i].icon,
|
||||
style: buttons[i].style,
|
||||
callbackID: _waitForCallback(buttons[i].callback)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var closeButtonCallbackID, targetCallbackID;
|
||||
if (options && options.closeButtonCallback)
|
||||
closeButtonCallbackID = _waitForCallback(options.closeButtonCallback);
|
||||
if (options && options.targetCallback)
|
||||
targetCallbackID = _waitForCallback(options.targetCallback);
|
||||
|
||||
_sendEvent('showInfo', {
|
||||
target: target,
|
||||
title: title,
|
||||
text: text,
|
||||
icon: icon,
|
||||
buttons: buttonData,
|
||||
closeButtonCallbackID: closeButtonCallbackID,
|
||||
targetCallbackID: targetCallbackID
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.hideInfo = function() {
|
||||
_sendEvent('hideInfo');
|
||||
};
|
||||
|
||||
Mozilla.UITour.previewTheme = function(theme) {
|
||||
_stopCyclingThemes();
|
||||
|
||||
_sendEvent('previewTheme', {
|
||||
theme: JSON.stringify(theme)
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.resetTheme = function() {
|
||||
_stopCyclingThemes();
|
||||
|
||||
_sendEvent('resetTheme');
|
||||
};
|
||||
|
||||
Mozilla.UITour.cycleThemes = function(themes, delay, callback) {
|
||||
_stopCyclingThemes();
|
||||
|
||||
if (!delay) {
|
||||
delay = Mozilla.UITour.DEFAULT_THEME_CYCLE_DELAY;
|
||||
}
|
||||
|
||||
function nextTheme() {
|
||||
var theme = themes.shift();
|
||||
themes.push(theme);
|
||||
|
||||
_sendEvent('previewTheme', {
|
||||
theme: JSON.stringify(theme),
|
||||
state: true
|
||||
});
|
||||
|
||||
callback(theme);
|
||||
}
|
||||
|
||||
themeIntervalId = setInterval(nextTheme, delay);
|
||||
nextTheme();
|
||||
};
|
||||
|
||||
Mozilla.UITour.showMenu = function(name, callback) {
|
||||
var showCallbackID;
|
||||
if (callback)
|
||||
showCallbackID = _waitForCallback(callback);
|
||||
|
||||
_sendEvent('showMenu', {
|
||||
name: name,
|
||||
showCallbackID: showCallbackID,
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.hideMenu = function(name) {
|
||||
_sendEvent('hideMenu', {
|
||||
name: name
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.showNewTab = function() {
|
||||
_sendEvent('showNewTab');
|
||||
};
|
||||
|
||||
Mozilla.UITour.getConfiguration = function(configName, callback) {
|
||||
_sendEvent('getConfiguration', {
|
||||
callbackID: _waitForCallback(callback),
|
||||
configuration: configName,
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.setConfiguration = function(configName, configValue) {
|
||||
_sendEvent('setConfiguration', {
|
||||
configuration: configName,
|
||||
value: configValue,
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Request the browser open the Firefox Accounts page.
|
||||
*
|
||||
* @param {Object} extraURLCampaignParams - An object containing additional
|
||||
* paramaters for the URL opened by the browser for reasons of promotional
|
||||
* campaign tracking. Each attribute of the object must have a name that
|
||||
* is a string, begins with "utm_" and contains only only alphanumeric
|
||||
* characters, dashes or underscores. The values may be any string and will
|
||||
* automatically be encoded.
|
||||
*/
|
||||
Mozilla.UITour.showFirefoxAccounts = function(extraURLCampaignParams) {
|
||||
_sendEvent('showFirefoxAccounts', {
|
||||
extraURLCampaignParams: JSON.stringify(extraURLCampaignParams),
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.resetFirefox = function() {
|
||||
_sendEvent('resetFirefox');
|
||||
};
|
||||
|
||||
Mozilla.UITour.addNavBarWidget= function(name, callback) {
|
||||
_sendEvent('addNavBarWidget', {
|
||||
name: name,
|
||||
callbackID: _waitForCallback(callback),
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.setDefaultSearchEngine = function(identifier) {
|
||||
_sendEvent('setDefaultSearchEngine', {
|
||||
identifier: identifier,
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.setTreatmentTag = function(name, value) {
|
||||
_sendEvent('setTreatmentTag', {
|
||||
name: name,
|
||||
value: value
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.getTreatmentTag = function(name, callback) {
|
||||
_sendEvent('getTreatmentTag', {
|
||||
name: name,
|
||||
callbackID: _waitForCallback(callback)
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.setSearchTerm = function(term) {
|
||||
_sendEvent('setSearchTerm', {
|
||||
term: term
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.openSearchPanel = function(callback) {
|
||||
_sendEvent('openSearchPanel', {
|
||||
callbackID: _waitForCallback(callback)
|
||||
});
|
||||
};
|
||||
|
||||
Mozilla.UITour.forceShowReaderIcon = function() {
|
||||
_sendEvent('forceShowReaderIcon');
|
||||
};
|
||||
|
||||
Mozilla.UITour.toggleReaderMode = function() {
|
||||
_sendEvent('toggleReaderMode');
|
||||
};
|
||||
|
||||
Mozilla.UITour.openPreferences = function(pane) {
|
||||
_sendEvent('openPreferences', {
|
||||
pane: pane
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Closes the tab where this code is running. As usual, if the tab is in the
|
||||
* foreground, the tab that was displayed before is selected.
|
||||
*
|
||||
* The last tab in the current window will never be closed, in which case
|
||||
* this call will have no effect. The calling code is expected to take an
|
||||
* action after a small timeout in order to handle this case, for example by
|
||||
* displaying a goodbye message or a button to restart the tour.
|
||||
*/
|
||||
Mozilla.UITour.closeTab = function() {
|
||||
_sendEvent('closeTab');
|
||||
};
|
||||
})();
|
||||
|
||||
// Make this library Require-able.
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
module.exports = Mozilla.UITour;
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,103 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||
|
||||
const PREF_TEST_WHITELIST = "browser.uitour.testingOrigins";
|
||||
const UITOUR_PERMISSION = "uitour";
|
||||
|
||||
var UITourListener = {
|
||||
handleEvent: function (event) {
|
||||
if (!Services.prefs.getBoolPref("browser.uitour.enabled")) {
|
||||
return;
|
||||
}
|
||||
if (!this.ensureTrustedOrigin()) {
|
||||
return;
|
||||
}
|
||||
addMessageListener("UITour:SendPageCallback", this);
|
||||
addMessageListener("UITour:SendPageNotification", this);
|
||||
sendAsyncMessage("UITour:onPageEvent", {
|
||||
detail: event.detail,
|
||||
type: event.type,
|
||||
pageVisibilityState: content.document.visibilityState,
|
||||
});
|
||||
},
|
||||
|
||||
isTestingOrigin: function(aURI) {
|
||||
if (Services.prefs.getPrefType(PREF_TEST_WHITELIST) != Services.prefs.PREF_STRING) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Add any testing origins (comma-seperated) to the whitelist for the session.
|
||||
for (let origin of Services.prefs.getCharPref(PREF_TEST_WHITELIST).split(",")) {
|
||||
try {
|
||||
let testingURI = Services.io.newURI(origin, null, null);
|
||||
if (aURI.prePath == testingURI.prePath) {
|
||||
return true;
|
||||
}
|
||||
} catch (ex) {
|
||||
Cu.reportError(ex);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
// This function is copied from UITour.jsm.
|
||||
isSafeScheme: function(aURI) {
|
||||
let allowedSchemes = new Set(["https", "about"]);
|
||||
if (!Services.prefs.getBoolPref("browser.uitour.requireSecure"))
|
||||
allowedSchemes.add("http");
|
||||
|
||||
if (!allowedSchemes.has(aURI.scheme))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
ensureTrustedOrigin: function() {
|
||||
if (content.top != content)
|
||||
return false;
|
||||
|
||||
let uri = content.document.documentURIObject;
|
||||
|
||||
if (uri.schemeIs("chrome"))
|
||||
return true;
|
||||
|
||||
if (!this.isSafeScheme(uri))
|
||||
return false;
|
||||
|
||||
let permission = Services.perms.testPermission(uri, UITOUR_PERMISSION);
|
||||
if (permission == Services.perms.ALLOW_ACTION)
|
||||
return true;
|
||||
|
||||
return this.isTestingOrigin(uri);
|
||||
},
|
||||
|
||||
receiveMessage: function(aMessage) {
|
||||
switch (aMessage.name) {
|
||||
case "UITour:SendPageCallback":
|
||||
this.sendPageEvent("Response", aMessage.data);
|
||||
break;
|
||||
case "UITour:SendPageNotification":
|
||||
this.sendPageEvent("Notification", aMessage.data);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
sendPageEvent: function (type, detail) {
|
||||
if (!this.ensureTrustedOrigin()) {
|
||||
return;
|
||||
}
|
||||
|
||||
let doc = content.document;
|
||||
let eventName = "mozUITour" + type;
|
||||
let event = new doc.defaultView.CustomEvent(eventName, {
|
||||
bubbles: true,
|
||||
detail: Cu.cloneInto(detail, doc.defaultView)
|
||||
});
|
||||
doc.dispatchEvent(event);
|
||||
}
|
||||
};
|
||||
|
||||
addEventListener("mozUITour", UITourListener, false, true);
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
browser.jar:
|
||||
content/browser/content-UITour.js
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
EXTRA_JS_MODULES += [
|
||||
'UITour.jsm',
|
||||
]
|
||||
|
||||
JAR_MANIFESTS += ['jar.mn']
|
||||
|
|
@ -37,9 +37,6 @@
|
|||
<!ENTITY helpFeedbackPage.label "Submit Feedback…">
|
||||
<!ENTITY helpFeedbackPage.accesskey "S">
|
||||
|
||||
<!ENTITY helpShowTour2.label "&brandShorterName; Tour">
|
||||
<!ENTITY helpShowTour2.accesskey "o">
|
||||
|
||||
<!ENTITY preferencesCmdMac.label "Preferences…">
|
||||
<!ENTITY preferencesCmdMac.commandkey ",">
|
||||
|
||||
|
|
|
|||
|
|
@ -828,8 +828,6 @@ you can use these alternative items. Otherwise, their values should be empty. -
|
|||
a CSS length value. -->
|
||||
<!ENTITY pluginNotification.width "28em">
|
||||
|
||||
<!ENTITY uiTour.infoPanel.close "Close">
|
||||
|
||||
<!ENTITY appMenuSidebars.label "Sidebars">
|
||||
|
||||
<!-- LOCALIZATION NOTE: (panicButton.view.mainTimeframeDesc, panicButton.view.5min, panicButton.view.2hr, panicButton.view.day):
|
||||
|
|
|
|||
|
|
@ -606,13 +606,6 @@ flashHang.message = %S changed some Adobe Flash settings to improve performance.
|
|||
flashHang.helpButton.label = Learn More…
|
||||
flashHang.helpButton.accesskey = L
|
||||
|
||||
# LOCALIZATION NOTE(customizeTips.tip0): %1$S will be replaced with the text defined
|
||||
# in customizeTips.tip0.hint, %2$S will be replaced with brandShortName, %3$S will
|
||||
# be replaced with a hyperlink containing the text defined in customizeTips.tip0.learnMore.
|
||||
customizeTips.tip0 = %1$S: You can customize %2$S to work the way you do. Simply drag any of the above to the menu or toolbar. %3$S about customizing %2$S.
|
||||
customizeTips.tip0.hint = Hint
|
||||
customizeTips.tip0.learnMore = Learn more
|
||||
|
||||
# LOCALIZATION NOTE (customizeMode.tabTitle): %S is brandShortName
|
||||
customizeMode.tabTitle = Customize %S
|
||||
|
||||
|
|
|
|||
|
|
@ -17,8 +17,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow",
|
|||
"resource:///modules/RecentWindow.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "CustomizableUI",
|
||||
"resource:///modules/CustomizableUI.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "UITour",
|
||||
"resource:///modules/UITour.jsm");
|
||||
XPCOMUtils.defineLazyGetter(this, "Timer", function() {
|
||||
let timer = {};
|
||||
Cu.import("resource://gre/modules/Timer.jsm", timer);
|
||||
|
|
@ -174,11 +172,6 @@ this.BrowserUITelemetry = {
|
|||
this.getToolbarMeasures.bind(this));
|
||||
UITelemetry.addSimpleMeasureFunction("contextmenu",
|
||||
this.getContextMenuInfo.bind(this));
|
||||
// Ensure that UITour.jsm remains lazy-loaded, yet always registers its
|
||||
// simple measure function with UITelemetry.
|
||||
UITelemetry.addSimpleMeasureFunction("UITour",
|
||||
() => UITour.getTelemetry());
|
||||
|
||||
UITelemetry.addSimpleMeasureFunction("syncstate",
|
||||
this.getSyncState.bind(this));
|
||||
|
||||
|
|
|
|||
|
|
@ -25,8 +25,6 @@ const PREF_ENABLED = "browser.selfsupport.enabled";
|
|||
const PREF_URL = "browser.selfsupport.url";
|
||||
// Unified Telemetry status.
|
||||
const PREF_TELEMETRY_UNIFIED = "toolkit.telemetry.unified";
|
||||
// UITour status.
|
||||
const PREF_UITOUR_ENABLED = "browser.uitour.enabled";
|
||||
|
||||
// Controls the interval at which the self support page tries to reload in case of
|
||||
// errors.
|
||||
|
|
@ -44,8 +42,6 @@ const PREF_LOG_DUMP = PREF_BRANCH_LOG + "dump";
|
|||
const HTML_NS = "http://www.w3.org/1999/xhtml";
|
||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
const UITOUR_FRAME_SCRIPT = "chrome://browser/content/content-UITour.js";
|
||||
|
||||
// Whether the FHR/Telemetry unification features are enabled.
|
||||
// Changing this pref requires a restart.
|
||||
const IS_UNIFIED_TELEMETRY = Preferences.get(PREF_TELEMETRY_UNIFIED, false);
|
||||
|
|
@ -90,8 +86,7 @@ var SelfSupportBackendInternal = {
|
|||
}
|
||||
|
||||
// Make sure UITour is enabled.
|
||||
let uiTourEnabled = Preferences.get(PREF_UITOUR_ENABLED, false);
|
||||
if (!uiTourEnabled) {
|
||||
if (true) {
|
||||
this._log.config("init - Disabling SelfSupport because UITour is disabled.");
|
||||
return;
|
||||
}
|
||||
|
|
@ -253,9 +248,6 @@ var SelfSupportBackendInternal = {
|
|||
|
||||
// Create the hidden browser.
|
||||
this._makeHiddenBrowser(url).then(() => {
|
||||
// Load UITour frame script.
|
||||
this._browser.messageManager.loadFrameScript(UITOUR_FRAME_SCRIPT, true);
|
||||
|
||||
// We need to watch for load errors as well and, in case, try to reload
|
||||
// the self support page.
|
||||
const webFlags = Ci.nsIWebProgress.NOTIFY_STATE_WINDOW |
|
||||
|
|
|
|||
|
|
@ -1543,11 +1543,6 @@ notification.pluginVulnerable > .notification-inner > .messageCloseButton:not(:h
|
|||
border-left: 3px solid transparent;
|
||||
}
|
||||
|
||||
/* The :hover:active style from toolkit doesn't seem to work in this panel so just use :active. */
|
||||
.customization-tipPanel-closeBox > .close-icon:active {
|
||||
background-image: -moz-image-rect(url("chrome://global/skin/icons/close.svg"), 0, 48, 16, 32);
|
||||
}
|
||||
|
||||
/* End customization mode */
|
||||
|
||||
|
||||
|
|
@ -1556,40 +1551,6 @@ notification.pluginVulnerable > .notification-inner > .messageCloseButton:not(:h
|
|||
width: 40px;
|
||||
}
|
||||
|
||||
%include ../shared/UITour.inc.css
|
||||
|
||||
#UITourHighlight {
|
||||
/* Below are some fixes for people without an X compositor on Linux.
|
||||
This is why we can't have nice things: */
|
||||
/* Animations don't repaint properly without an X compositor. */
|
||||
animation-name: none !important;
|
||||
/* Opacity rounds to 0 or 1 on Linux without an X compositor so make the
|
||||
background be transparent in that case by having all alpha values < 0.5 */
|
||||
background-image: radial-gradient(50% 100%, rgba(0,149,220,0.3) 50%, rgba(0,149,220,0.49) 100%);
|
||||
/* The highlight isn't anti-aliased without an X compositor so make it thicker.
|
||||
Make it a darker color since we don't have the box-shadow in this case. */
|
||||
border: 4px solid rgb(0,149,220);
|
||||
}
|
||||
|
||||
#UITourTooltipDescription {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
#UITourTooltipClose {
|
||||
margin-inline-end: -4px;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override the --arrowpanel-padding so the background extends
|
||||
* to the sides and bottom of the panel.
|
||||
*/
|
||||
#UITourTooltipButtons {
|
||||
margin-left: -10px;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
%include ../shared/contextmenu.inc.css
|
||||
|
||||
#context-navigation > .menuitem-iconic > .menu-iconic-left {
|
||||
|
|
|
|||
|
|
@ -3192,24 +3192,6 @@ menulist.translate-infobar-element > .menulist-dropmarker {
|
|||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
.customization-tipPanel-infoBox {
|
||||
background-image: url(chrome://browser/skin/customizableui/info-icon-customizeTip@2x.png);
|
||||
background-size: 25px 25px;
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration@2x.png);
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage:-moz-locale-dir(rtl) {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration-rtl@2x.png);
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="left"],
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="right"] {
|
||||
list-style-image: url("chrome://browser/skin/customizableui/panelarrow-customizeTip@2x.png");
|
||||
}
|
||||
|
||||
.customization-lwtheme-menu-theme[defaulttheme] {
|
||||
list-style-image: url(chrome://browser/skin/theme-switcher-icon@2x.png);
|
||||
}
|
||||
|
|
@ -3279,24 +3261,6 @@ menulist.translate-infobar-element > .menulist-dropmarker {
|
|||
-moz-box-ordinal-group: 0;
|
||||
}
|
||||
|
||||
%include ../shared/UITour.inc.css
|
||||
|
||||
#UITourTooltipDescription {
|
||||
font-size: 1.18rem;
|
||||
line-height: 2rem;
|
||||
}
|
||||
|
||||
#UITourTooltipClose {
|
||||
margin-inline-end: -10px;
|
||||
margin-top: -14px;
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
#UITourTooltipClose > .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
%include ../shared/contextmenu.inc.css
|
||||
|
||||
#context-navigation > .menuitem-iconic {
|
||||
|
|
|
|||
|
|
@ -1,293 +0,0 @@
|
|||
%if 0
|
||||
/* 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/. */
|
||||
%endif
|
||||
|
||||
/* UI Tour */
|
||||
|
||||
#UITourHighlightContainer {
|
||||
-moz-appearance: none;
|
||||
-moz-window-shadow: none;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
/* This is a buffer to compensate for the movement in the "wobble" effect,
|
||||
and for the box-shadow of #UITourHighlight. */
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
#UITourHighlight {
|
||||
background-image: radial-gradient(50% 100%, rgba(0,149,220,0.4) 50%, rgba(0,149,220,0.6) 100%);
|
||||
border-radius: 40px;
|
||||
border: 1px solid white;
|
||||
/* The box-shadow opacity needs to be < 0.5 so it doesn't appear at 100% opacity
|
||||
on Linux without an X compositor where opacity is either 0 or 1. */
|
||||
box-shadow: 0 0 3px 0 rgba(0,0,0,0.49);
|
||||
min-height: 32px;
|
||||
min-width: 32px;
|
||||
}
|
||||
|
||||
#UITourTooltipBody {
|
||||
-moz-box-align: start;
|
||||
}
|
||||
|
||||
#UITourTooltipTitleContainer {
|
||||
-moz-box-align: start;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#UITourTooltipIcon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
margin-inline-end: 10px;
|
||||
}
|
||||
|
||||
#UITourTooltipTitle,
|
||||
#UITourTooltipDescription {
|
||||
max-width: 20rem;
|
||||
}
|
||||
|
||||
#UITourTooltipTitle {
|
||||
font-size: 1.45rem;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#UITourTooltipDescription {
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 0;
|
||||
font-size: 1.15rem;
|
||||
line-height: 1.8rem;
|
||||
margin-bottom: 0; /* Override global.css */
|
||||
}
|
||||
|
||||
#UITourTooltipClose {
|
||||
position: relative;
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
min-width: 0;
|
||||
margin-inline-start: 4px;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
#UITourTooltipClose > .toolbarbutton-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons {
|
||||
-moz-box-pack: end;
|
||||
background-color: hsla(210,4%,10%,.07);
|
||||
border-top: 1px solid hsla(210,4%,10%,.14);
|
||||
margin: 10px -16px -16px;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > label,
|
||||
#UITourTooltipButtons > button {
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > label:first-child,
|
||||
#UITourTooltipButtons > button:first-child {
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > label:last-child,
|
||||
#UITourTooltipButtons > button:last-child {
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > button[image] > .button-box > .button-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-inline-end: 5px;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > label,
|
||||
#UITourTooltipButtons > button .button-text {
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > button:not(.button-link) {
|
||||
-moz-appearance: none;
|
||||
background-color: rgb(251,251,251);
|
||||
border-radius: 3px;
|
||||
border: 1px solid;
|
||||
border-color: rgb(192,192,192);
|
||||
color: rgb(71,71,71);
|
||||
padding: 4px 30px;
|
||||
transition-property: background-color, border-color;
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > button:not(.button-link):not(:active):hover {
|
||||
background-color: hsla(210,4%,10%,.15);
|
||||
border-color: hsla(210,4%,10%,.15);
|
||||
box-shadow: 0 1px 0 0 hsla(210,4%,10%,.05) inset;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > label,
|
||||
#UITourTooltipButtons > button.button-link {
|
||||
-moz-appearance: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
color: rgba(0,0,0,0.35);
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > button.button-link:hover {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* The primary button gets the same color as the customize button. */
|
||||
#UITourTooltipButtons > button.button-primary {
|
||||
background-color: rgb(116,191,67);
|
||||
color: white;
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
#UITourTooltipButtons > button.button-primary:not(:active):hover {
|
||||
background-color: rgb(105,173,61);
|
||||
}
|
||||
|
||||
/* Notification overrides for Heartbeat UI */
|
||||
|
||||
notification.heartbeat {
|
||||
%ifdef XP_MACOSX
|
||||
background-image: linear-gradient(-179deg, #FBFBFB 0%, #EBEBEB 100%);
|
||||
%else
|
||||
background-color: #F1F1F1;
|
||||
%endif
|
||||
border-bottom: 1px solid #C1C1C1;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
/* In themes/osx/global/notification.css the close icon is inverted because notifications
|
||||
on OSX are usually dark. Heartbeat is light, so override that behaviour. */
|
||||
|
||||
%ifdef XP_MACOSX
|
||||
notification.heartbeat[type="info"] .close-icon:not(:hover) {
|
||||
-moz-image-region: rect(0, 16px, 16px, 0px) !important;
|
||||
}
|
||||
@media (min-resolution: 2dppx) {
|
||||
notification.heartbeat[type="info"] .close-icon:not(:hover) {
|
||||
-moz-image-region: rect(0, 32px, 32px, 0px) !important;
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
@keyframes pulse-onshow {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(1.0);
|
||||
}
|
||||
25% {
|
||||
opacity: 1;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.0);
|
||||
}
|
||||
75% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1.0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse-twice {
|
||||
0% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(0.8);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.messageText.heartbeat {
|
||||
color: #333333;
|
||||
text-shadow: none;
|
||||
margin-inline-start: 0px;
|
||||
/* The !important is required to override OSX default style. */
|
||||
margin-inline-end: 12px !important;
|
||||
}
|
||||
|
||||
.messageImage.heartbeat {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-inline-start: 8px;
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
|
||||
.messageImage.heartbeat.pulse-onshow {
|
||||
animation-name: pulse-onshow;
|
||||
animation-duration: 1.5s;
|
||||
animation-iteration-count: 1;
|
||||
animation-timing-function: cubic-bezier(.7,1.8,.9,1.1);
|
||||
}
|
||||
|
||||
.messageImage.heartbeat.pulse-twice {
|
||||
animation-name: pulse-twice;
|
||||
animation-duration: 1s;
|
||||
animation-iteration-count: 2;
|
||||
animation-timing-function: linear;
|
||||
}
|
||||
|
||||
/* Learn More link styles */
|
||||
.heartbeat > .text-link {
|
||||
color: #0095DD;
|
||||
margin-inline-start: 0px;
|
||||
}
|
||||
|
||||
.heartbeat > .text-link:hover {
|
||||
color: #008ACB;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.heartbeat > .text-link:hover:active {
|
||||
color: #006B9D;
|
||||
}
|
||||
|
||||
/* Heartbeat UI Rating Star Classes */
|
||||
.heartbeat > #star-rating-container {
|
||||
display: -moz-box;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > #star5 {
|
||||
-moz-box-ordinal-group: 5;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > #star4 {
|
||||
-moz-box-ordinal-group: 4;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > #star3 {
|
||||
-moz-box-ordinal-group: 3;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > #star2 {
|
||||
-moz-box-ordinal-group: 2;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > .star-x {
|
||||
background: url("chrome://browser/skin/heartbeat-star-off.svg");
|
||||
cursor: pointer;
|
||||
/* Overrides the margin-inline-end for all platforms defined in the .plain class */
|
||||
margin-inline-end: 4px !important;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.heartbeat > #star-rating-container > .star-x:hover,
|
||||
.heartbeat > #star-rating-container > .star-x:hover ~ .star-x {
|
||||
background: url("chrome://browser/skin/heartbeat-star-lit.svg");
|
||||
}
|
||||
|
|
@ -457,5 +457,3 @@ toolbarpaletteitem[place="toolbar"]:not([mousedown="true"]):-moz-focusring {
|
|||
.customization-lwtheme-menu-footeritem:first-child {
|
||||
border-inline-end: 1px solid var(--panel-separator-color);
|
||||
}
|
||||
|
||||
%include customizeTip.inc.css
|
||||
|
|
|
|||
|
|
@ -1,77 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 400px;
|
||||
max-width: 1000px;
|
||||
min-height: 200px;
|
||||
border-radius: 3px;
|
||||
background-image: linear-gradient(90deg, #a0dfff 0%, #ceeeff 100%);
|
||||
border: 0px solid rgba(0,148,221,.5);
|
||||
box-shadow: 0 1px 5px 0 rgba(0,0,0,.5), inset 0 1px 1px 0 #fff;
|
||||
color: rgb(51,51,51);
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowcontent:-moz-locale-dir(rtl) {
|
||||
background-image: linear-gradient(90deg, #ceeeff 0%, #a0dfff 100%);
|
||||
}
|
||||
|
||||
.customization-tipPanel-infoBox {
|
||||
margin: 20px 25px 25px;
|
||||
width: 25px;
|
||||
background-image: url(chrome://browser/skin/customizableui/info-icon-customizeTip.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.customization-tipPanel-content {
|
||||
margin: 25px 0;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.customization-tipPanel-em {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage {
|
||||
margin-top: 25px;
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration.png);
|
||||
min-width: 300px;
|
||||
max-width: 300px;
|
||||
min-height: 190px;
|
||||
max-height: 190px;
|
||||
display: -moz-box;
|
||||
}
|
||||
|
||||
.customization-tipPanel-contentImage:-moz-locale-dir(rtl) {
|
||||
list-style-image: url(chrome://browser/skin/customizableui/customize-illustration-rtl.png);
|
||||
}
|
||||
|
||||
.customization-tipPanel-link {
|
||||
-moz-appearance: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
color: rgb(25,82,171);
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.customization-tipPanel-link > .button-box > .button-text {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.customization-tipPanel-closeBox > .close-icon {
|
||||
-moz-appearance: none;
|
||||
border: 0;
|
||||
margin-inline-end: -25px;
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="left"],
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="right"] {
|
||||
list-style-image: url("chrome://browser/skin/customizableui/panelarrow-customizeTip.png");
|
||||
}
|
||||
|
|
@ -2431,14 +2431,6 @@ notification.pluginVulnerable > .notification-inner > .messageCloseButton {
|
|||
border-bottom: 1px solid @toolbarShadowColor@;
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="left"] {
|
||||
margin-right: -2px;
|
||||
}
|
||||
|
||||
#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="right"] {
|
||||
margin-left: -2px;
|
||||
}
|
||||
|
||||
/* End customization mode */
|
||||
|
||||
/* Private browsing indicators */
|
||||
|
|
@ -2542,18 +2534,6 @@ notification.pluginVulnerable > .notification-inner > .messageCloseButton {
|
|||
|
||||
/* End private browsing indicators */
|
||||
|
||||
%include ../shared/UITour.inc.css
|
||||
|
||||
#UITourTooltipButtons {
|
||||
/**
|
||||
* Override the --arrowpanel-padding so the background extends
|
||||
* to the sides and bottom of the panel.
|
||||
*/
|
||||
margin-left: -10px;
|
||||
margin-right: -10px;
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
|
||||
%include ../shared/contextmenu.inc.css
|
||||
|
||||
#context-navigation {
|
||||
|
|
|
|||
|
|
@ -297,10 +297,6 @@ user_pref("browser.aboutHomeSnippets.updateUrl", "nonexistent://test");
|
|||
user_pref("browser.newtabpage.directory.source", 'data:application/json,{"testing":1}');
|
||||
user_pref("browser.newtabpage.directory.ping", "");
|
||||
|
||||
// Ensure UITour won't hit the network
|
||||
user_pref("browser.uitour.pinnedTabUrl", "http://%(server)s/uitour-dummy/pinnedTab");
|
||||
user_pref("browser.uitour.url", "http://%(server)s/uitour-dummy/tour");
|
||||
|
||||
// Tell the search service we are running in the US. This also has the desired
|
||||
// side-effect of preventing our geoip lookup.
|
||||
user_pref("browser.search.isUS", true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue