зеркало из https://github.com/mozilla/gecko-dev.git
Merge fx-team to m-c. a=merge
This commit is contained in:
Коммит
c6c207b13a
|
@ -636,22 +636,6 @@ window[chromehidden~="toolbar"] toolbar:not(#nav-bar):not(#TabsToolbar):not(#pri
|
|||
background-image: -moz-element(#historySwipeAnimationNextPageSnapshot);
|
||||
}
|
||||
|
||||
/* Identity UI */
|
||||
#identity-popup-content-box:not(.chromeUI) > #identity-popup-brandName,
|
||||
#identity-popup-content-box:not(.chromeUI) > #identity-popup-chromeLabel,
|
||||
#identity-popup-content-box.chromeUI > .identity-popup-label:not(#identity-popup-brandName):not(#identity-popup-chromeLabel),
|
||||
#identity-popup-content-box.chromeUI > .identity-popup-description,
|
||||
#identity-popup.chromeUI > #identity-popup-button-container,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-connectedToLabel ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-runByLabel ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-content-host ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-content-owner ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-connectedToLabel2 ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-connectedToLabel2 ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-runByLabel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Full Screen UI */
|
||||
|
||||
#fullscr-toggler {
|
||||
|
|
|
@ -6685,14 +6685,6 @@ var gIdentityHandler = {
|
|||
this._permissionList = document.getElementById("identity-popup-permission-list");
|
||||
},
|
||||
|
||||
/**
|
||||
* Handler for commands on the help button in the "identity-popup" panel.
|
||||
*/
|
||||
handleHelpCommand : function(event) {
|
||||
openHelpLink("secure-connection");
|
||||
this._identityPopup.hidePopup();
|
||||
},
|
||||
|
||||
/**
|
||||
* Handler for mouseclicks on the "More Information" button in the
|
||||
* "identity-popup" panel.
|
||||
|
@ -7051,8 +7043,6 @@ var gIdentityHandler = {
|
|||
},
|
||||
|
||||
onPopupShown : function(event) {
|
||||
document.getElementById('identity-popup-more-info-button').focus();
|
||||
|
||||
this._identityPopup.addEventListener("blur", this, true);
|
||||
this._identityPopup.addEventListener("popuphidden", this);
|
||||
},
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUIOverlay.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/browser-lightweightTheme.css" type="text/css"?>
|
||||
|
@ -406,67 +407,6 @@
|
|||
|
||||
<menupopup id="placesContext"/>
|
||||
|
||||
<!-- Popup for site identity information -->
|
||||
<panel id="identity-popup"
|
||||
type="arrow"
|
||||
hidden="true"
|
||||
noautofocus="true"
|
||||
onpopupshown="if (event.target == this)
|
||||
gIdentityHandler.onPopupShown(event);"
|
||||
orient="vertical"
|
||||
level="top">
|
||||
<hbox id="identity-popup-container" align="top">
|
||||
<image id="identity-popup-icon"/>
|
||||
<vbox id="identity-popup-content-box">
|
||||
<label id="identity-popup-brandName"
|
||||
class="identity-popup-label"
|
||||
value="&brandFullName;"/>
|
||||
<label id="identity-popup-chromeLabel"
|
||||
class="identity-popup-label"/>
|
||||
<label id="identity-popup-connectedToLabel"
|
||||
class="identity-popup-label"
|
||||
value="&identity.connectedTo;"/>
|
||||
<label id="identity-popup-connectedToLabel2"
|
||||
class="identity-popup-label"
|
||||
value="&identity.unverifiedsite2;"/>
|
||||
<description id="identity-popup-content-host"
|
||||
class="identity-popup-description"/>
|
||||
<label id="identity-popup-runByLabel"
|
||||
class="identity-popup-label"
|
||||
value="&identity.runBy;"/>
|
||||
<description id="identity-popup-content-owner"
|
||||
class="identity-popup-description"/>
|
||||
<description id="identity-popup-content-supplemental"
|
||||
class="identity-popup-description"/>
|
||||
<description id="identity-popup-content-verifier"
|
||||
class="identity-popup-description"/>
|
||||
<hbox id="identity-popup-encryption" flex="1">
|
||||
<vbox>
|
||||
<image id="identity-popup-encryption-icon"/>
|
||||
</vbox>
|
||||
<description id="identity-popup-encryption-label" flex="1"
|
||||
class="identity-popup-description"/>
|
||||
</hbox>
|
||||
<vbox id="identity-popup-permissions">
|
||||
<separator class="thin"/>
|
||||
<label class="identity-popup-label header"
|
||||
value="&identity.permissions;"/>
|
||||
<vbox id="identity-popup-permission-list" class="indent"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<!-- Footer button to open security page info -->
|
||||
<hbox id="identity-popup-button-container" align="center">
|
||||
<button id="identity-popup-help-icon"
|
||||
oncommand="gIdentityHandler.handleHelpCommand(event);"
|
||||
tooltiptext="&identity.help.tooltip;"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="identity-popup-more-info-button"
|
||||
label="&identity.moreInfoLinkText;"
|
||||
oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
||||
</hbox>
|
||||
</panel>
|
||||
|
||||
<panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
||||
<hbox>
|
||||
<button class="ctrlTab-preview" flex="1"/>
|
||||
|
@ -549,6 +489,7 @@
|
|||
#include popup-notifications.inc
|
||||
|
||||
#include ../../components/customizableui/content/panelUI.inc.xul
|
||||
#include ../../components/controlcenter/content/panel.inc.xul
|
||||
|
||||
<hbox id="downloads-animation-container" mousethrough="always">
|
||||
<vbox id="downloads-notification-anchor">
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
<!-- 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/. -->
|
||||
|
||||
<panel id="identity-popup"
|
||||
type="arrow"
|
||||
hidden="true"
|
||||
noautofocus="true"
|
||||
onpopupshown="if (event.target == this)
|
||||
gIdentityHandler.onPopupShown(event);"
|
||||
orient="vertical"
|
||||
level="top">
|
||||
<hbox id="identity-popup-container" align="top">
|
||||
<image id="identity-popup-icon"/>
|
||||
<vbox id="identity-popup-content-box">
|
||||
<label id="identity-popup-brandName"
|
||||
class="identity-popup-label"
|
||||
value="&brandFullName;"/>
|
||||
<label id="identity-popup-chromeLabel"
|
||||
class="identity-popup-label"/>
|
||||
<label id="identity-popup-connectedToLabel"
|
||||
class="identity-popup-label"
|
||||
value="&identity.connectedTo;"/>
|
||||
<label id="identity-popup-connectedToLabel2"
|
||||
class="identity-popup-label"
|
||||
value="&identity.unverifiedsite2;"/>
|
||||
<description id="identity-popup-content-host"
|
||||
class="identity-popup-description"/>
|
||||
<label id="identity-popup-runByLabel"
|
||||
class="identity-popup-label"
|
||||
value="&identity.runBy;"/>
|
||||
<description id="identity-popup-content-owner"
|
||||
class="identity-popup-description"/>
|
||||
<description id="identity-popup-content-supplemental"
|
||||
class="identity-popup-description"/>
|
||||
<description id="identity-popup-content-verifier"
|
||||
class="identity-popup-description"/>
|
||||
<hbox id="identity-popup-encryption" flex="1">
|
||||
<vbox>
|
||||
<image id="identity-popup-encryption-icon"/>
|
||||
</vbox>
|
||||
<description id="identity-popup-encryption-label" flex="1"
|
||||
class="identity-popup-description"/>
|
||||
</hbox>
|
||||
<vbox id="identity-popup-permissions">
|
||||
<separator class="thin"/>
|
||||
<label class="identity-popup-label header"
|
||||
value="&identity.permissions;"/>
|
||||
<vbox id="identity-popup-permission-list" class="indent"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<!-- Footer button to open security page info -->
|
||||
<hbox id="identity-popup-button-container" align="center">
|
||||
<button id="identity-popup-more-info-button" flex="1"
|
||||
label="&identity.moreInfoLinkText2;"
|
||||
oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
||||
</hbox>
|
||||
</panel>
|
|
@ -54,3 +54,6 @@ if CONFIG['MOZ_SAFE_BROWSING']:
|
|||
|
||||
with Files('safebrowsing/*'):
|
||||
BUG_COMPONENT = ('Toolkit', 'Phishing Protection')
|
||||
|
||||
with Files('controlcenter/**'):
|
||||
BUG_COMPONENT = ('Firefox', 'General')
|
||||
|
|
|
@ -12,6 +12,7 @@ support-files =
|
|||
helper_disable_cache.js
|
||||
doc_theme.css
|
||||
doc_viewsource.html
|
||||
browser_toolbox_options_enable_serviceworkers_testing_frame_script.js
|
||||
browser_toolbox_options_enable_serviceworkers_testing.html
|
||||
serviceworker.js
|
||||
|
||||
|
@ -66,7 +67,6 @@ skip-if = os == "mac" && os_version == "10.8" || os == "win" && os_version == "5
|
|||
[browser_toolbox_custom_host.js]
|
||||
[browser_toolbox_theme_registration.js]
|
||||
[browser_toolbox_options_enable_serviceworkers_testing.js]
|
||||
skip-if = true # Bug 1153407 - this test breaks subsequent tests and is not e10s compatible
|
||||
[browser_toolbox_selected_tool_unavailable.js]
|
||||
|
||||
# We want this test to run for mochitest-dt as well, so we include it here:
|
||||
|
|
|
@ -3,56 +3,8 @@
|
|||
<head>
|
||||
<title>browser_toolbox_options_enable_serviceworkers_testing.html</title>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
div {
|
||||
width: 260px;
|
||||
height: 24px;
|
||||
border: 1px solid #000;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 20px
|
||||
}
|
||||
</style>
|
||||
<script type="application/javascript;version=1.8">
|
||||
function log(msg) {
|
||||
var output = document.getElementById("output");
|
||||
|
||||
output.innerHTML = msg;
|
||||
}
|
||||
|
||||
navigator.serviceWorker.register("serviceworker.js").then(
|
||||
swr => {
|
||||
var msg = "";
|
||||
var button = document.getElementById("button");
|
||||
if (swr.installing) {
|
||||
msg += "Installing worker/";
|
||||
}
|
||||
if (swr.waiting) {
|
||||
msg += "Waiting worker/";
|
||||
}
|
||||
if (swr.active) {
|
||||
msg += "Active worker/";
|
||||
}
|
||||
log(msg);
|
||||
button.click();
|
||||
},
|
||||
error => {
|
||||
var button = document.getElementById("button");
|
||||
if (error.name === "SecurityError") {
|
||||
log("SecurityError");
|
||||
}
|
||||
button.click();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Test in page</h1>
|
||||
<input id="button"
|
||||
type="button"
|
||||
value="Worker clicks here"/>
|
||||
<br>
|
||||
<div id="output">No output</div>
|
||||
<h1>SW-test</h1>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -4,13 +4,19 @@
|
|||
// Test that enabling Service Workers testing option enables the
|
||||
// mServiceWorkersTestingEnabled attribute added to nsPIDOMWindow.
|
||||
|
||||
const COMMON_FRAME_SCRIPT_URL =
|
||||
"chrome://browser/content/devtools/frame-script-utils.js";
|
||||
const ROOT_TEST_DIR =
|
||||
getRootDirectory(gTestPath);
|
||||
const FRAME_SCRIPT_URL =
|
||||
ROOT_TEST_DIR +
|
||||
"browser_toolbox_options_enable_serviceworkers_testing_frame_script.js";
|
||||
const TEST_URI = URL_ROOT +
|
||||
"browser_toolbox_options_enable_serviceworkers_testing.html";
|
||||
|
||||
const ELEMENT_ID = "devtools-enable-serviceWorkersTesting";
|
||||
|
||||
let toolbox;
|
||||
let doc;
|
||||
|
||||
function test() {
|
||||
// Note: Pref dom.serviceWorkers.testing.enabled is false since we are testing
|
||||
|
@ -19,16 +25,19 @@ function test() {
|
|||
["dom.serviceWorkers.exemptFromPerDomainMax", true],
|
||||
["dom.serviceWorkers.enabled", true],
|
||||
["dom.serviceWorkers.testing.enabled", false]
|
||||
]}, start);
|
||||
]}, init);
|
||||
}
|
||||
|
||||
function start() {
|
||||
gBrowser.selectedTab = gBrowser.addTab();
|
||||
function init() {
|
||||
let tab = gBrowser.selectedTab = gBrowser.addTab();
|
||||
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
||||
let linkedBrowser = tab.linkedBrowser;
|
||||
|
||||
linkedBrowser.messageManager.loadFrameScript(COMMON_FRAME_SCRIPT_URL, false);
|
||||
linkedBrowser.messageManager.loadFrameScript(FRAME_SCRIPT_URL, false);
|
||||
|
||||
gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) {
|
||||
gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true);
|
||||
doc = content.document;
|
||||
gDevTools.showToolbox(target).then(testSelectTool);
|
||||
}, true);
|
||||
|
||||
|
@ -37,89 +46,24 @@ function start() {
|
|||
|
||||
function testSelectTool(aToolbox) {
|
||||
toolbox = aToolbox;
|
||||
toolbox.once("options-selected", () => {
|
||||
testRegisterFails().then(testRegisterInstallingWorker);
|
||||
});
|
||||
toolbox.once("options-selected", start);
|
||||
toolbox.selectTool("options");
|
||||
}
|
||||
|
||||
function testRegisterFails() {
|
||||
let deferred = promise.defer();
|
||||
|
||||
let output = doc.getElementById("output");
|
||||
let button = doc.getElementById("button");
|
||||
|
||||
function doTheCheck() {
|
||||
info("Testing it doesn't registers correctly until enable testing");
|
||||
is(output.textContent,
|
||||
"SecurityError",
|
||||
"SecurityError expected");
|
||||
deferred.resolve();
|
||||
}
|
||||
|
||||
if (output.textContent !== "No output") {
|
||||
doTheCheck();
|
||||
}
|
||||
|
||||
button.addEventListener('click', function onClick() {
|
||||
button.removeEventListener('click', onClick);
|
||||
doTheCheck();
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
function register() {
|
||||
return executeInContent("devtools:sw-test:register");
|
||||
}
|
||||
|
||||
function testRegisterInstallingWorker() {
|
||||
toggleServiceWorkersTestingCheckbox().then(() => {
|
||||
let output = doc.getElementById("output");
|
||||
let button = doc.getElementById("button");
|
||||
|
||||
function doTheCheck() {
|
||||
info("Testing it registers correctly and there is an installing worker");
|
||||
is(output.textContent,
|
||||
"Installing worker/",
|
||||
"Installing worker expected");
|
||||
testRegisterFailsWhenToolboxCloses();
|
||||
}
|
||||
|
||||
if (output.textContent !== "No output") {
|
||||
doTheCheck();
|
||||
}
|
||||
|
||||
button.addEventListener('click', function onClick() {
|
||||
button.removeEventListener('click', onClick);
|
||||
doTheCheck();
|
||||
});
|
||||
});
|
||||
function unregister(swr) {
|
||||
return executeInContent("devtools:sw-test:unregister");
|
||||
}
|
||||
|
||||
// Workers should be turned back off when we closes the toolbox
|
||||
function testRegisterFailsWhenToolboxCloses() {
|
||||
info("Testing it disable worker when closing the toolbox");
|
||||
toolbox.destroy()
|
||||
.then(reload)
|
||||
.then(testRegisterFails)
|
||||
.then(finishUp);
|
||||
}
|
||||
|
||||
function reload() {
|
||||
let deferred = promise.defer();
|
||||
|
||||
gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) {
|
||||
gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true);
|
||||
doc = content.document;
|
||||
deferred.resolve();
|
||||
}, true);
|
||||
|
||||
let mm = getFrameScript();
|
||||
mm.sendAsyncMessage("devtools:test:reload");
|
||||
|
||||
return deferred.promise;
|
||||
function testRegisterFails(data) {
|
||||
is(data.success, false, "Register should fail with security error");
|
||||
return promise.resolve();
|
||||
}
|
||||
|
||||
function toggleServiceWorkersTestingCheckbox() {
|
||||
let deferred = promise.defer();
|
||||
|
||||
let panel = toolbox.getCurrentPanel();
|
||||
let cbx = panel.panelDoc.getElementById(ELEMENT_ID);
|
||||
|
||||
|
@ -133,11 +77,46 @@ function toggleServiceWorkersTestingCheckbox() {
|
|||
|
||||
cbx.click();
|
||||
|
||||
return reload();
|
||||
return promise.resolve();
|
||||
}
|
||||
|
||||
function reload() {
|
||||
let deferred = promise.defer();
|
||||
|
||||
gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) {
|
||||
gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true);
|
||||
deferred.resolve();
|
||||
}, true);
|
||||
|
||||
executeInContent("devtools:test:reload", {}, {}, false);
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function testRegisterSuccesses(data) {
|
||||
is(data.success, true, "Register should success");
|
||||
return promise.resolve();
|
||||
}
|
||||
|
||||
function start() {
|
||||
register()
|
||||
.then(testRegisterFails)
|
||||
.then(toggleServiceWorkersTestingCheckbox)
|
||||
.then(reload)
|
||||
.then(register)
|
||||
.then(testRegisterSuccesses)
|
||||
.then(unregister)
|
||||
// Workers should be turned back off when we closes the toolbox
|
||||
.then(toolbox.destroy.bind(toolbox))
|
||||
.then(reload)
|
||||
.then(register)
|
||||
.then(testRegisterFails)
|
||||
.catch(function(e) {
|
||||
ok(false, "Some test failed with error " + e);
|
||||
}).then(finishUp);
|
||||
}
|
||||
|
||||
function finishUp() {
|
||||
gBrowser.removeCurrentTab();
|
||||
toolbox = doc = null;
|
||||
toolbox = null;
|
||||
finish();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// A helper frame-script for browser/devtools/framework service worker tests.
|
||||
|
||||
"use strict";
|
||||
|
||||
addMessageListener("devtools:sw-test:register", function(msg) {
|
||||
content.navigator.serviceWorker.register("serviceworker.js")
|
||||
.then(swr => {
|
||||
sendAsyncMessage("devtools:sw-test:register", {success: true});
|
||||
}, error => {
|
||||
sendAsyncMessage("devtools:sw-test:register", {success: false});
|
||||
});
|
||||
});
|
||||
|
||||
addMessageListener("devtools:sw-test:unregister", function(msg) {
|
||||
content.navigator.serviceWorker.getRegistration().then(swr => {
|
||||
swr.unregister().then(result => {
|
||||
sendAsyncMessage("devtools:sw-test:unregister",
|
||||
{success: result ? true : false});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -65,3 +65,47 @@ function *openScratchpadWindow () {
|
|||
});
|
||||
return p;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wait for a content -> chrome message on the message manager (the window
|
||||
* messagemanager is used).
|
||||
* @param {String} name The message name
|
||||
* @return {Promise} A promise that resolves to the response data when the
|
||||
* message has been received
|
||||
*/
|
||||
function waitForContentMessage(name) {
|
||||
info("Expecting message " + name + " from content");
|
||||
|
||||
let mm = gBrowser.selectedBrowser.messageManager;
|
||||
|
||||
let def = promise.defer();
|
||||
mm.addMessageListener(name, function onMessage(msg) {
|
||||
mm.removeMessageListener(name, onMessage);
|
||||
def.resolve(msg.data);
|
||||
});
|
||||
return def.promise;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an async message to the frame script (chrome -> content) and wait for a
|
||||
* response message with the same name (content -> chrome).
|
||||
* @param {String} name The message name. Should be one of the messages defined
|
||||
* in doc_frame_script.js
|
||||
* @param {Object} data Optional data to send along
|
||||
* @param {Object} objects Optional CPOW objects to send along
|
||||
* @param {Boolean} expectResponse If set to false, don't wait for a response
|
||||
* with the same name from the content script. Defaults to true.
|
||||
* @return {Promise} Resolves to the response data if a response is expected,
|
||||
* immediately resolves otherwise
|
||||
*/
|
||||
function executeInContent(name, data={}, objects={}, expectResponse=true) {
|
||||
info("Sending message " + name + " to content");
|
||||
let mm = gBrowser.selectedBrowser.messageManager;
|
||||
|
||||
mm.sendAsyncMessage(name, data, objects);
|
||||
if (expectResponse) {
|
||||
return waitForContentMessage(name);
|
||||
} else {
|
||||
return promise.resolve();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,17 +6,11 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const {Cc, Cu, Ci} = require("chrome");
|
||||
const {Cu, Ci} = require("chrome");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource:///modules/devtools/DOMHelpers.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource:///modules/devtools/ViewHelpers.jsm");
|
||||
const {Promise: promise} = require("resource://gre/modules/Promise.jsm");
|
||||
XPCOMUtils.defineLazyGetter(this, "DOMUtils", function () {
|
||||
return Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils);
|
||||
});
|
||||
|
||||
const PSEUDO_CLASSES = [":hover", ":active", ":focus"];
|
||||
const ENSURE_SELECTION_VISIBLE_DELAY = 50; // ms
|
||||
const ELLIPSIS = Services.prefs.getComplexValue("intl.ellipsis", Ci.nsIPrefLocalizedString).data;
|
||||
const MAX_LABEL_LENGTH = 40;
|
||||
|
@ -29,7 +23,7 @@ const LOW_PRIORITY_ELEMENTS = {
|
|||
"META": true,
|
||||
"SCRIPT": true,
|
||||
"STYLE": true,
|
||||
"TITLE": true,
|
||||
"TITLE": true
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -51,7 +45,6 @@ function HTMLBreadcrumbs(inspector) {
|
|||
this.selection = this.inspector.selection;
|
||||
this.chromeWin = this.inspector.panelWin;
|
||||
this.chromeDoc = this.inspector.panelDoc;
|
||||
this.DOMHelpers = new DOMHelpers(this.chromeWin);
|
||||
this._init();
|
||||
}
|
||||
|
||||
|
@ -93,10 +86,11 @@ HTMLBreadcrumbs.prototype = {
|
|||
this.container._scrollButtonDown.collapsed = true;
|
||||
|
||||
this.onscrollboxreflow = () => {
|
||||
if (this.container._scrollButtonDown.collapsed)
|
||||
if (this.container._scrollButtonDown.collapsed) {
|
||||
this.container.removeAttribute("overflows");
|
||||
else
|
||||
} else {
|
||||
this.container.setAttribute("overflows", true);
|
||||
}
|
||||
};
|
||||
|
||||
this.container.addEventListener("underflow", this.onscrollboxreflow, false);
|
||||
|
@ -118,12 +112,12 @@ HTMLBreadcrumbs.prototype = {
|
|||
*/
|
||||
selectionGuard: function() {
|
||||
let selection = this.selection.nodeFront;
|
||||
return (result) => {
|
||||
return result => {
|
||||
if (selection != this.selection.nodeFront) {
|
||||
return promise.reject("selection-changed");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -204,11 +198,6 @@ HTMLBreadcrumbs.prototype = {
|
|||
}
|
||||
}
|
||||
|
||||
// XXX: Until we have pseudoclass lock in the node.
|
||||
for (let pseudo of node.pseudoClassLocks) {
|
||||
|
||||
}
|
||||
|
||||
// Figure out which element (if any) needs ellipsing.
|
||||
// Substring for that element, then clear out any extras
|
||||
// (except for pseudo elements).
|
||||
|
@ -217,11 +206,11 @@ HTMLBreadcrumbs.prototype = {
|
|||
let maxClassLength = MAX_LABEL_LENGTH - tagText.length - idText.length;
|
||||
|
||||
if (tagText.length > maxTagLength) {
|
||||
tagText = tagText.substr(0, maxTagLength) + ELLIPSIS;
|
||||
idText = classesText = "";
|
||||
tagText = tagText.substr(0, maxTagLength) + ELLIPSIS;
|
||||
idText = classesText = "";
|
||||
} else if (idText.length > maxIdLength) {
|
||||
idText = idText.substr(0, maxIdLength) + ELLIPSIS;
|
||||
classesText = "";
|
||||
idText = idText.substr(0, maxIdLength) + ELLIPSIS;
|
||||
classesText = "";
|
||||
} else if (classesText.length > maxClassLength) {
|
||||
classesText = classesText.substr(0, maxClassLength) + ELLIPSIS;
|
||||
}
|
||||
|
@ -250,19 +239,20 @@ HTMLBreadcrumbs.prototype = {
|
|||
// for inspector.selection
|
||||
this.selection.setNodeFront(node, "breadcrumbs");
|
||||
|
||||
let title = this.chromeDoc.createElement("menuitem");
|
||||
title.setAttribute("label", this.inspector.strings.GetStringFromName("breadcrumbs.siblings"));
|
||||
title.setAttribute("disabled", "true");
|
||||
|
||||
let separator = this.chromeDoc.createElement("menuseparator");
|
||||
|
||||
let items = [title, separator];
|
||||
// Build a list of extra menu items that will be appended at the end of the
|
||||
// inspector node context menu.
|
||||
let items = [this.chromeDoc.createElement("menuseparator")];
|
||||
|
||||
this.walker.siblings(node, {
|
||||
whatToShow: Ci.nsIDOMNodeFilter.SHOW_ELEMENT
|
||||
}).then(siblings => {
|
||||
let nodes = siblings.nodes;
|
||||
for (let i = 0; i < nodes.length; i++) {
|
||||
// Skip siblings of the documentElement node.
|
||||
if (nodes[i].nodeType !== Ci.nsIDOMNode.ELEMENT_NODE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
let item = this.chromeDoc.createElement("menuitem");
|
||||
if (nodes[i] === node) {
|
||||
item.setAttribute("disabled", "true");
|
||||
|
@ -276,12 +266,14 @@ HTMLBreadcrumbs.prototype = {
|
|||
item.onmouseup = (function(node) {
|
||||
return function() {
|
||||
selection.setNodeFront(node, "breadcrumbs");
|
||||
}
|
||||
};
|
||||
})(nodes[i]);
|
||||
|
||||
items.push(item);
|
||||
this.inspector.showNodeMenu(button, "before_start", items);
|
||||
}
|
||||
|
||||
// Append the items to the inspector node context menu and show the menu.
|
||||
this.inspector.showNodeMenu(button, "before_start", items);
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -445,8 +437,9 @@ HTMLBreadcrumbs.prototype = {
|
|||
}
|
||||
if (index > -1) {
|
||||
this.nodeHierarchy[index].button.setAttribute("checked", "true");
|
||||
if (this.hadFocus)
|
||||
if (this.hadFocus) {
|
||||
this.nodeHierarchy[index].button.focus();
|
||||
}
|
||||
}
|
||||
this.currentIndex = index;
|
||||
},
|
||||
|
@ -457,7 +450,6 @@ HTMLBreadcrumbs.prototype = {
|
|||
* @returns {Number} The index for this node or -1 if not found.
|
||||
*/
|
||||
indexOf: function(node) {
|
||||
let i = this.nodeHierarchy.length - 1;
|
||||
for (let i = this.nodeHierarchy.length - 1; i >= 0; i--) {
|
||||
if (this.nodeHierarchy[i].node === node) {
|
||||
return i;
|
||||
|
@ -492,9 +484,10 @@ HTMLBreadcrumbs.prototype = {
|
|||
|
||||
button.onkeypress = function onBreadcrumbsKeypress(e) {
|
||||
if (e.charCode == Ci.nsIDOMKeyEvent.DOM_VK_SPACE ||
|
||||
e.keyCode == Ci.nsIDOMKeyEvent.DOM_VK_RETURN)
|
||||
e.keyCode == Ci.nsIDOMKeyEvent.DOM_VK_RETURN) {
|
||||
button.click();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
button.onBreadcrumbsClick = () => {
|
||||
this.selection.setNodeFront(node, "breadcrumbs");
|
||||
|
@ -574,9 +567,8 @@ HTMLBreadcrumbs.prototype = {
|
|||
if (response.hasLast) {
|
||||
deferred.resolve(fallback);
|
||||
return;
|
||||
} else {
|
||||
moreChildren();
|
||||
}
|
||||
moreChildren();
|
||||
}).then(null, this.selectionGuardEnd);
|
||||
};
|
||||
|
||||
|
@ -594,9 +586,8 @@ HTMLBreadcrumbs.prototype = {
|
|||
let idx = this.indexOf(node);
|
||||
if (idx > -1) {
|
||||
return idx;
|
||||
} else {
|
||||
node = node.parentNode();
|
||||
}
|
||||
node = node.parentNode();
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
|
@ -725,12 +716,14 @@ HTMLBreadcrumbs.prototype = {
|
|||
cmdDispatcher.focusedElement.parentNode == this.container);
|
||||
|
||||
if (!this.selection.isConnected()) {
|
||||
this.cutAfter(-1); // remove all the crumbs
|
||||
// remove all the crumbs
|
||||
this.cutAfter(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.selection.isElementNode()) {
|
||||
this.setCursor(-1); // no selection
|
||||
// no selection
|
||||
this.setCursor(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ support-files =
|
|||
|
||||
[browser_inspector_breadcrumbs.js]
|
||||
[browser_inspector_breadcrumbs_highlight_hover.js]
|
||||
[browser_inspector_breadcrumbs_menu.js]
|
||||
[browser_inspector_breadcrumbs_mutations.js]
|
||||
[browser_inspector_delete-selected-node-01.js]
|
||||
[browser_inspector_delete-selected-node-02.js]
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
// Test that the inspector node context menu appears when right-clicking on the
|
||||
// breadcrumbs nodes.
|
||||
|
||||
const TEST_URI = TEST_URL_ROOT + "doc_inspector_breadcrumbs.html";
|
||||
|
||||
add_task(function*() {
|
||||
let {inspector} = yield openInspectorForURL(TEST_URI);
|
||||
let container = inspector.panelDoc.getElementById("inspector-breadcrumbs");
|
||||
|
||||
info("Select a test node and try to right-click on the selected breadcrumb");
|
||||
yield selectNode("#i1", inspector);
|
||||
let button = container.querySelector("button[checked]");
|
||||
|
||||
let onMenuShown = once(inspector.nodemenu, "popupshown");
|
||||
button.onclick({button: 2});
|
||||
yield onMenuShown;
|
||||
|
||||
ok(true, "The context menu appeared on right-click");
|
||||
|
||||
info("Right-click on a non selected crumb (the body node)");
|
||||
button = button.previousSibling;
|
||||
onMenuShown = once(inspector.nodemenu, "popupshown");
|
||||
let onInspectorUpdated = inspector.once("inspector-updated");
|
||||
button.onclick({button: 2});
|
||||
|
||||
yield onMenuShown;
|
||||
ok(true, "The context menu appeared on right-click");
|
||||
|
||||
yield onInspectorUpdated;
|
||||
is(inspector.selection.nodeFront.tagName.toLowerCase(), "body",
|
||||
"The body node was selected when right-clicking in the breadcrumbs");
|
||||
|
||||
info("Right-click on the html node");
|
||||
button = button.previousSibling;
|
||||
onMenuShown = once(inspector.nodemenu, "popupshown");
|
||||
onInspectorUpdated = inspector.once("inspector-updated");
|
||||
button.onclick({button: 2});
|
||||
|
||||
yield onMenuShown;
|
||||
ok(true, "The context menu appeared on right-click");
|
||||
|
||||
yield onInspectorUpdated;
|
||||
is(inspector.selection.nodeFront.tagName.toLowerCase(), "html",
|
||||
"The html node was selected when right-clicking in the breadcrumbs");
|
||||
});
|
|
@ -2,6 +2,7 @@
|
|||
tags = devtools
|
||||
subsuite = devtools
|
||||
support-files =
|
||||
doc_force_gc.html
|
||||
doc_innerHTML.html
|
||||
doc_simple-test.html
|
||||
head.js
|
||||
|
@ -12,7 +13,6 @@ support-files =
|
|||
[browser_aaa-run-first-leaktest.js]
|
||||
[browser_marker-utils.js]
|
||||
[browser_markers-gc.js]
|
||||
skip-if = e10s # GC events seem unreliable in multiprocess
|
||||
[browser_markers-parse-html.js]
|
||||
[browser_markers-styles.js]
|
||||
[browser_markers-timestamp.js]
|
||||
|
|
|
@ -6,17 +6,16 @@
|
|||
*/
|
||||
|
||||
const TIME_CLOSE_TO = 10000;
|
||||
const TEST_URL = EXAMPLE_URL + "doc_force_gc.html"
|
||||
|
||||
function* spawnTest () {
|
||||
let { target, front } = yield initBackend(SIMPLE_URL);
|
||||
let { target, front } = yield initBackend(TEST_URL);
|
||||
let markers;
|
||||
|
||||
front.on("timeline-data", handler);
|
||||
let model = yield front.startRecording({ withTicks: true });
|
||||
|
||||
// Check async for markers found while GC/CCing between
|
||||
yield waitUntil(() => {
|
||||
forceCC();
|
||||
return !!markers;
|
||||
}, 100);
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<!-- Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ -->
|
||||
<!doctype html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Performance tool + garbage collection test page</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
window.test = function () {
|
||||
SpecialPowers.Cu.forceGC();
|
||||
setTimeout(window.test, 100);
|
||||
};
|
||||
test();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -705,6 +705,10 @@ CSSCompleter.prototype = {
|
|||
// possibility of suggestions.
|
||||
switch(this.selectorState) {
|
||||
case SELECTOR_STATES.null:
|
||||
if (this.completing === ",") {
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
|
||||
query += "*";
|
||||
break;
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ const {InspectorFront} = require("devtools/server/actors/inspector");
|
|||
const AUTOCOMPLETION_PREF = "devtools.editor.autocomplete";
|
||||
const TEST_URI = "data:text/html;charset=UTF-8,<html><body><bar></bar><div id='baz'></div><body></html>";
|
||||
|
||||
const wait = (delay) => new Promise(resolve => setTimeout(resolve, delay));
|
||||
|
||||
add_task(function*() {
|
||||
yield promiseTab(TEST_URI);
|
||||
yield runTests();
|
||||
|
@ -27,6 +29,7 @@ function* runTests() {
|
|||
yield testKeyboard(ed, edWin);
|
||||
yield testKeyboardCycle(ed, edWin);
|
||||
yield testKeyboardCycleForPrefixedString(ed, edWin);
|
||||
yield testKeyboardCSSComma(ed, edWin);
|
||||
teardown(ed, win);
|
||||
}
|
||||
|
||||
|
@ -87,6 +90,22 @@ function* testKeyboardCycleForPrefixedString(ed, win) {
|
|||
is (ed.getText(), "#baz", "Editor text has been updated");
|
||||
}
|
||||
|
||||
function* testKeyboardCSSComma(ed, win) {
|
||||
ed.focus();
|
||||
ed.setText("b");
|
||||
ed.setCursor({line: 1, ch: 1});
|
||||
|
||||
let isPopupOpened = false;
|
||||
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
||||
popupOpened.then(() => isPopupOpened = true);
|
||||
|
||||
EventUtils.synthesizeKey(",", { }, win);
|
||||
|
||||
yield wait(500);
|
||||
|
||||
ok(!isPopupOpened, "Autocompletion shouldn't be opened");
|
||||
}
|
||||
|
||||
function* testMouse(ed, win) {
|
||||
ed.focus();
|
||||
ed.setText("b");
|
||||
|
|
|
@ -686,15 +686,10 @@ with that structure, consider a translation which ignores the preceding domain a
|
|||
just addresses the organization to follow, e.g. "This site is run by " -->
|
||||
<!ENTITY identity.runBy "which is run by">
|
||||
|
||||
<!ENTITY identity.moreInfoLinkText "More Information…">
|
||||
<!ENTITY identity.moreInfoLinkText2 "More Information">
|
||||
|
||||
<!ENTITY identity.permissions "Permissions">
|
||||
|
||||
<!-- LOCALIZATION NOTE (identity.help.tooltip) : This string should be the
|
||||
localized title of this SUMO article
|
||||
https://support.mozilla.org/kb/how-do-i-tell-if-my-connection-is-secure -->
|
||||
<!ENTITY identity.help.tooltip "How do I tell if my connection to a website is secure?">
|
||||
|
||||
<!-- Name for the tabs toolbar as spoken by screen readers.
|
||||
The word "toolbar" is appended automatically and should not be contained below! -->
|
||||
<!ENTITY tabsToolbar.label "Browser tabs">
|
||||
|
|
|
@ -1025,105 +1025,6 @@ toolbarbutton[constrain-size="true"][cui-areatype="toolbar"] > .toolbarbutton-ba
|
|||
-moz-margin-end: 1px;
|
||||
}
|
||||
|
||||
/* Identity popup icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
/* Identity popup body text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-owner {
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -18px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure.png");
|
||||
}
|
||||
|
||||
#identity-popup-help-icon {
|
||||
-moz-appearance: none;
|
||||
margin-left: 0px;
|
||||
border: none;
|
||||
background: none;
|
||||
min-width: 0;
|
||||
list-style-image: url("moz-icon://stock/gtk-dialog-question?size=16");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-icon {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon:-moz-focusring {
|
||||
outline: 1px dotted;
|
||||
outline-offset: 1px;
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
min-width: 280px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#identity-popup-button-container {
|
||||
background: linear-gradient(to bottom, rgba(0,0,0,0.04) 60%, transparent);
|
||||
padding: 10px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
%include ../shared/notification-icons.inc.css
|
||||
|
||||
.popup-notification-body[popupid="addon-progress"],
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
/* 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/. */
|
||||
|
||||
%include ../../shared/controlcenter/panel.inc.css
|
||||
|
||||
/* Identity popup icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
/* Identity popup body text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-owner {
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -18px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure.png");
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
min-width: 280px;
|
||||
padding: 10px;
|
||||
}
|
|
@ -134,6 +134,7 @@ browser.jar:
|
|||
skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
|
||||
skin/classic/browser/loop/toolbar.png (loop/toolbar.png)
|
||||
skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
|
||||
* skin/classic/browser/controlcenter/panel.css (controlcenter/panel.css)
|
||||
skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
|
||||
|
|
|
@ -3118,140 +3118,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
background-color: Highlight;
|
||||
}
|
||||
|
||||
/* Popup Icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
#identity-popup-icon {
|
||||
list-style-image: url("chrome://browser/skin/identity@2x.png");
|
||||
-moz-image-region: rect(0px, 128px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 128px, 256px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(256px, 128px, 384px, 0px);
|
||||
}
|
||||
}
|
||||
|
||||
/* Popup Body Text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-owner {
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -24px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
margin-top: 5px;
|
||||
list-style-image: url("chrome://browser/skin/Secure-Glyph.png");
|
||||
}
|
||||
|
||||
#identity-popup-help-icon {
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
margin: 10px 0 0 2px;
|
||||
background: none;
|
||||
min-width: 0;
|
||||
list-style-image: url("chrome://global/skin/icons/question-16.png");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-icon {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon:focus {
|
||||
@hudButtonFocused@
|
||||
}
|
||||
|
||||
#identity-popup-help-icon:hover:active {
|
||||
@hudButtonPressed@
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure-Glyph@2x.png");
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon {
|
||||
list-style-image: url("chrome://global/skin/icons/question-32.png");
|
||||
}
|
||||
}
|
||||
|
||||
#identity-popup {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
#identity-popup-button-container {
|
||||
background-color: hsla(210,4%,10%,.07);
|
||||
border-top: 1px solid hsla(210,4%,10%,.12);
|
||||
padding: 16px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
%include ../shared/notification-icons.inc.css
|
||||
|
||||
#notification-popup-box {
|
||||
|
@ -3431,21 +3297,6 @@ notification[value="loop-sharing-notification"] .messageImage {
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Popup Buttons */
|
||||
#identity-popup-more-info-button {
|
||||
@hudButton@
|
||||
margin: 10px 0 0;
|
||||
min-height: 0px;
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button:focus {
|
||||
@hudButtonFocused@
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button:hover:active {
|
||||
@hudButtonPressed@
|
||||
}
|
||||
|
||||
/* ::::: Keyboard UI Panel ::::: */
|
||||
|
||||
.KUI-panel {
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
/* 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/. */
|
||||
|
||||
%include ../../shared/controlcenter/panel.inc.css
|
||||
|
||||
/* Popup Icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
#identity-popup-icon {
|
||||
list-style-image: url("chrome://browser/skin/identity@2x.png");
|
||||
-moz-image-region: rect(0px, 128px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 128px, 256px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(256px, 128px, 384px, 0px);
|
||||
}
|
||||
}
|
||||
|
||||
/* Popup Body Text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-owner {
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-host ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -24px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
margin-top: 5px;
|
||||
list-style-image: url("chrome://browser/skin/Secure-Glyph.png");
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure-Glyph@2x.png");
|
||||
width: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
#identity-popup {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
padding: 16px;
|
||||
}
|
|
@ -192,6 +192,7 @@ browser.jar:
|
|||
skin/classic/browser/yosemite/loop/menuPanel@2x.png (loop/menuPanel-yosemite@2x.png)
|
||||
skin/classic/browser/yosemite/loop/toolbar.png (loop/toolbar-yosemite.png)
|
||||
skin/classic/browser/yosemite/loop/toolbar@2x.png (loop/toolbar-yosemite@2x.png)
|
||||
* skin/classic/browser/controlcenter/panel.css (controlcenter/panel.css)
|
||||
skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/browser/customizableui/customize-titleBar-toggle.png (customizableui/customize-titleBar-toggle.png)
|
||||
skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png (customizableui/customize-titleBar-toggle@2x.png)
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
#identity-popup-content-box:not(.chromeUI) > #identity-popup-brandName,
|
||||
#identity-popup-content-box:not(.chromeUI) > #identity-popup-chromeLabel,
|
||||
#identity-popup-content-box.chromeUI > .identity-popup-label:not(#identity-popup-brandName):not(#identity-popup-chromeLabel),
|
||||
#identity-popup-content-box.chromeUI > .identity-popup-description,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-connectedToLabel ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-runByLabel ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-content-host ,
|
||||
#identity-popup-content-box.unknownIdentity > #identity-popup-content-owner ,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-connectedToLabel2 ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-connectedToLabel2 ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-runByLabel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#identity-popup.chromeUI > #identity-popup-container > #identity-popup-icon {
|
||||
list-style-image: url("chrome://branding/content/icon64.png");
|
||||
}
|
||||
|
||||
#identity-popup-brandName {
|
||||
font-weight: bold;
|
||||
font-size: 1.25em;
|
||||
margin-top: .5em;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
#identity-popup-content-box {
|
||||
max-width: 50ch;
|
||||
}
|
||||
|
||||
#identity-popup-button-container {
|
||||
background-color: hsla(210,4%,10%,.07);
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button {
|
||||
border: none;
|
||||
border-top: 1px solid hsla(210,4%,10%,.14);
|
||||
background: transparent;
|
||||
-moz-appearance: none;
|
||||
margin-top: 5px;
|
||||
padding: 1.1em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button:hover {
|
||||
background-color: hsla(210,4%,10%,.07);
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button:hover:active {
|
||||
color: inherit;
|
||||
background-color: hsla(210,4%,10%,.12);
|
||||
box-shadow: 0 1px 0 hsla(210,4%,10%,.05) inset;
|
||||
}
|
||||
|
||||
@media (min-resolution: 1.1dppx) {
|
||||
#identity-popup.chromeUI > #identity-popup-container > #identity-popup-icon {
|
||||
list-style-image: url("chrome://branding/content/icon128.png");
|
||||
-moz-image-region: rect(0, 128px, 128px, 0);
|
||||
}
|
||||
}
|
|
@ -91,21 +91,6 @@
|
|||
opacity: 0.3;
|
||||
}
|
||||
|
||||
#identity-popup.chromeUI > #identity-popup-container > #identity-popup-icon {
|
||||
list-style-image: url("chrome://branding/content/icon64.png");
|
||||
}
|
||||
|
||||
#identity-popup-brandName {
|
||||
font-weight: bold;
|
||||
font-size: 1.25em;
|
||||
margin-top: .5em;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
#identity-popup-content-box {
|
||||
max-width: 50ch;
|
||||
}
|
||||
|
||||
@media not all and (min-resolution: 1.1dppx) {
|
||||
#page-proxy-favicon {
|
||||
-moz-image-region: rect(0, 16px, 16px, 0);
|
||||
|
@ -159,9 +144,4 @@
|
|||
#identity-box[open=true] > #page-proxy-favicon {
|
||||
-moz-image-region: rect(0, 96px, 32px, 64px);
|
||||
}
|
||||
|
||||
#identity-popup.chromeUI > #identity-popup-container > #identity-popup-icon {
|
||||
list-style-image: url("chrome://branding/content/icon128.png");
|
||||
-moz-image-region: rect(0, 128px, 128px, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,26 +158,33 @@
|
|||
text-shadow: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255,255,255,.4);
|
||||
}
|
||||
|
||||
/* Vertical toolbar border */
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox:not(:-moz-lwtheme)::after,
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar):not(:-moz-lwtheme),
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox:-moz-lwtheme,
|
||||
#main-window[customizing] #navigator-toolbox::after,
|
||||
#main-window[customizing] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar) {
|
||||
border-left: 1px solid @toolbarShadowColor@;
|
||||
border-right: 1px solid @toolbarShadowColor@;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
#main-window[sizemode=normal] #browser-border-start,
|
||||
#main-window[sizemode=normal] #browser-border-end {
|
||||
display: -moz-box;
|
||||
background-color: @toolbarShadowColor@;
|
||||
width: 1px;
|
||||
}
|
||||
#main-window[sizemode=normal] #browser-bottombox {
|
||||
border: 1px solid @toolbarShadowColor@;
|
||||
border-top-style: none;
|
||||
background-clip: padding-box;
|
||||
/* Show borders on vista through win8, but not on win10 and later: */
|
||||
@media (-moz-os-version: windows-vista),
|
||||
(-moz-os-version: windows-win7),
|
||||
(-moz-os-version: windows-win8) {
|
||||
/* Vertical toolbar border */
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox:not(:-moz-lwtheme)::after,
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar):not(:-moz-lwtheme),
|
||||
#main-window:not([customizing])[sizemode=normal] #navigator-toolbox:-moz-lwtheme,
|
||||
#main-window[customizing] #navigator-toolbox::after,
|
||||
#main-window[customizing] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar) {
|
||||
border-left: 1px solid @toolbarShadowColor@;
|
||||
border-right: 1px solid @toolbarShadowColor@;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
#main-window[sizemode=normal] #browser-border-start,
|
||||
#main-window[sizemode=normal] #browser-border-end {
|
||||
display: -moz-box;
|
||||
background-color: @toolbarShadowColor@;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
#main-window[sizemode=normal] #browser-bottombox {
|
||||
border: 1px solid @toolbarShadowColor@;
|
||||
border-top-style: none;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
}
|
||||
|
||||
#main-window[sizemode=normal] #TabsToolbar {
|
||||
|
|
|
@ -2138,116 +2138,6 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||
background-color: Highlight;
|
||||
}
|
||||
|
||||
/* ::::: Identity Indicator Styling ::::: */
|
||||
|
||||
/* Popup Icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
/* Popup Body Text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
#identity-popup-content-host {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 5px;
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 0 !important;
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
.verifiedDomain > #identity-popup-content-owner {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -24px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure24.png");
|
||||
}
|
||||
|
||||
#identity-popup-help-icon {
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
margin: 7px 0 0 -3px;
|
||||
background: none;
|
||||
min-width: 0;
|
||||
list-style-image: url("chrome://global/skin/icons/question-16.png");
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-text {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#identity-popup-help-icon > .button-box > .button-icon {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#identity-popup-more-info-button {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 0;
|
||||
-moz-margin-end: 0;
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
min-width: 280px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#identity-popup-button-container {
|
||||
background: linear-gradient(to bottom, rgba(0,0,0,0.04) 60%, transparent);
|
||||
padding: 10px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
%include ../shared/notification-icons.inc.css
|
||||
|
||||
.popup-notification-body[popupid="addon-progress"],
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
/* 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/. */
|
||||
|
||||
%include ../../shared/controlcenter/panel.inc.css
|
||||
|
||||
/* Popup Icons */
|
||||
#identity-popup-icon {
|
||||
height: 64px;
|
||||
width: 64px;
|
||||
padding: 0;
|
||||
list-style-image: url("chrome://browser/skin/identity.png");
|
||||
-moz-image-region: rect(0px, 64px, 64px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedDomain > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(64px, 64px, 128px, 0px);
|
||||
}
|
||||
|
||||
#identity-popup.verifiedIdentity > #identity-popup-container > #identity-popup-icon {
|
||||
-moz-image-region: rect(128px, 64px, 192px, 0px);
|
||||
}
|
||||
|
||||
/* Popup Body Text */
|
||||
.identity-popup-description {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 2px 0 4px;
|
||||
}
|
||||
|
||||
.identity-popup-label {
|
||||
white-space: pre-wrap;
|
||||
-moz-padding-start: 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#identity-popup-content-host,
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-content-owner {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
#identity-popup-content-host {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 5px;
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
#identity-popup-content-owner {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 0 !important;
|
||||
font-weight: bold;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
.verifiedDomain > #identity-popup-content-owner {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#identity-popup-content-verifier {
|
||||
margin: 4px 0 2px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
|
||||
margin-top: 10px;
|
||||
-moz-margin-start: -24px;
|
||||
}
|
||||
|
||||
#identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
|
||||
#identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
|
||||
list-style-image: url("chrome://browser/skin/Secure24.png");
|
||||
}
|
||||
|
||||
#identity-popup > .panel-arrowcontainer > .panel-arrowcontent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#identity-popup-container {
|
||||
min-width: 280px;
|
||||
padding: 10px;
|
||||
}
|
|
@ -177,6 +177,7 @@ browser.jar:
|
|||
skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
|
||||
skin/classic/browser/loop/toolbar-XP.png (loop/toolbar-XP.png)
|
||||
skin/classic/browser/loop/toolbar-lunaSilver.png (loop/toolbar-lunaSilver.png)
|
||||
* skin/classic/browser/controlcenter/panel.css (controlcenter/panel.css)
|
||||
skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
|
||||
skin/classic/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
|
||||
skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
|
||||
|
|
|
@ -29,6 +29,7 @@ XPCOMUtils.defineLazyGetter(this, "debuggerServer", () => {
|
|||
let debuggerServer = serverLoader.DebuggerServer;
|
||||
debuggerServer.init();
|
||||
debuggerServer.addBrowserActors();
|
||||
debuggerServer.allowChromeProcess = !l10n.hiddenByChromePref();
|
||||
return debuggerServer;
|
||||
});
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ var Cu = require('chrome').Cu;
|
|||
|
||||
var prefSvc = Cc['@mozilla.org/preferences-service;1']
|
||||
.getService(Ci.nsIPrefService);
|
||||
var prefBranch = prefSvc.getBranch(null).QueryInterface(Ci.nsIPrefBranch2);
|
||||
var prefBranch = prefSvc.getBranch(null).QueryInterface(Ci.nsIPrefBranch);
|
||||
|
||||
var Services = Cu.import('resource://gre/modules/Services.jsm', {}).Services;
|
||||
var stringBundle = Services.strings.createBundle(
|
||||
|
@ -75,5 +75,5 @@ exports.lookupFormat = function(name, swaps) {
|
|||
* </pre>
|
||||
*/
|
||||
exports.hiddenByChromePref = function() {
|
||||
return !prefBranch.prefHasUserValue('devtools.chrome.enabled');
|
||||
return !prefBranch.getBoolPref('devtools.chrome.enabled');
|
||||
};
|
||||
|
|
|
@ -83,3 +83,8 @@ notification[type="critical"] {
|
|||
.popup-notification-button-container {
|
||||
margin-top: 17px;
|
||||
}
|
||||
|
||||
.popup-notification-closebutton {
|
||||
-moz-margin-end: -10px;
|
||||
margin-top: -6px;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче