зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1206244 - Replace globe with the "i" icon, keep separate lock for secure pages. r=past
--HG-- extra : commitid : FK2Mm4rfvXP extra : rebase_source : 27b3567bb0db0f8b5dc042f3958a4374b012429e
This commit is contained in:
Родитель
8695070fe8
Коммит
383af26e19
|
@ -60,9 +60,7 @@ var CustomizationHandler = {
|
||||||
if (aDetails.changed) {
|
if (aDetails.changed) {
|
||||||
gURLBar = document.getElementById("urlbar");
|
gURLBar = document.getElementById("urlbar");
|
||||||
|
|
||||||
gProxyFavIcon = document.getElementById("page-proxy-favicon");
|
|
||||||
gHomeButton.updateTooltip();
|
gHomeButton.updateTooltip();
|
||||||
gIdentityHandler._cacheElements();
|
|
||||||
XULBrowserWindow.init();
|
XULBrowserWindow.init();
|
||||||
|
|
||||||
#ifndef XP_MACOSX
|
#ifndef XP_MACOSX
|
||||||
|
|
|
@ -370,7 +370,7 @@ var PlacesCommandHook = {
|
||||||
|
|
||||||
// Try to dock the panel to:
|
// Try to dock the panel to:
|
||||||
// 1. the bookmarks menu button
|
// 1. the bookmarks menu button
|
||||||
// 2. the page-proxy-favicon
|
// 2. the identity icon
|
||||||
// 3. the content area
|
// 3. the content area
|
||||||
if (BookmarkingUI.anchor) {
|
if (BookmarkingUI.anchor) {
|
||||||
StarUI.showEditBookmarkPopup(itemId, BookmarkingUI.anchor,
|
StarUI.showEditBookmarkPopup(itemId, BookmarkingUI.anchor,
|
||||||
|
@ -378,9 +378,9 @@ var PlacesCommandHook = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let pageProxyFavicon = document.getElementById("page-proxy-favicon");
|
let identityIcon = document.getElementById("identity-icon");
|
||||||
if (isElementVisible(pageProxyFavicon)) {
|
if (isElementVisible(identityIcon)) {
|
||||||
StarUI.showEditBookmarkPopup(itemId, pageProxyFavicon,
|
StarUI.showEditBookmarkPopup(itemId, identityIcon,
|
||||||
"bottomcenter topright");
|
"bottomcenter topright");
|
||||||
} else {
|
} else {
|
||||||
StarUI.showEditBookmarkPopup(itemId, aBrowser, "overlap");
|
StarUI.showEditBookmarkPopup(itemId, aBrowser, "overlap");
|
||||||
|
@ -446,7 +446,7 @@ var PlacesCommandHook = {
|
||||||
|
|
||||||
// Try to dock the panel to:
|
// Try to dock the panel to:
|
||||||
// 1. the bookmarks menu button
|
// 1. the bookmarks menu button
|
||||||
// 2. the page-proxy-favicon
|
// 2. the identity icon
|
||||||
// 3. the content area
|
// 3. the content area
|
||||||
if (BookmarkingUI.anchor) {
|
if (BookmarkingUI.anchor) {
|
||||||
StarUI.showEditBookmarkPopup(node, BookmarkingUI.anchor,
|
StarUI.showEditBookmarkPopup(node, BookmarkingUI.anchor,
|
||||||
|
@ -454,9 +454,9 @@ var PlacesCommandHook = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let pageProxyFavicon = document.getElementById("page-proxy-favicon");
|
let identityIcon = document.getElementById("identity-icon");
|
||||||
if (isElementVisible(pageProxyFavicon)) {
|
if (isElementVisible(identityIcon)) {
|
||||||
StarUI.showEditBookmarkPopup(node, pageProxyFavicon,
|
StarUI.showEditBookmarkPopup(node, identityIcon,
|
||||||
"bottomcenter topright");
|
"bottomcenter topright");
|
||||||
} else {
|
} else {
|
||||||
StarUI.showEditBookmarkPopup(node, aBrowser, "overlap");
|
StarUI.showEditBookmarkPopup(node, aBrowser, "overlap");
|
||||||
|
|
|
@ -95,7 +95,6 @@ XPCOMUtils.defineLazyGetter(this, "gBrowserBundle", function() {
|
||||||
const nsIWebNavigation = Ci.nsIWebNavigation;
|
const nsIWebNavigation = Ci.nsIWebNavigation;
|
||||||
|
|
||||||
var gLastBrowserCharset = null;
|
var gLastBrowserCharset = null;
|
||||||
var gProxyFavIcon = null;
|
|
||||||
var gLastValidURLStr = "";
|
var gLastValidURLStr = "";
|
||||||
var gInPrintPreviewMode = false;
|
var gInPrintPreviewMode = false;
|
||||||
var gContextMenu = null; // nsContextMenu instance
|
var gContextMenu = null; // nsContextMenu instance
|
||||||
|
@ -2562,11 +2561,7 @@ function SetPageProxyState(aState)
|
||||||
if (!gURLBar)
|
if (!gURLBar)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!gProxyFavIcon)
|
|
||||||
gProxyFavIcon = document.getElementById("page-proxy-favicon");
|
|
||||||
|
|
||||||
gURLBar.setAttribute("pageproxystate", aState);
|
gURLBar.setAttribute("pageproxystate", aState);
|
||||||
gProxyFavIcon.setAttribute("pageproxystate", aState);
|
|
||||||
|
|
||||||
// the page proxy state is set to valid via OnLocationChange, which
|
// the page proxy state is set to valid via OnLocationChange, which
|
||||||
// gets called when we switch tabs.
|
// gets called when we switch tabs.
|
||||||
|
@ -7001,38 +6996,15 @@ var gIdentityHandler = {
|
||||||
delete this._identityIconCountryLabel;
|
delete this._identityIconCountryLabel;
|
||||||
return this._identityIconCountryLabel = document.getElementById("identity-icon-country-label");
|
return this._identityIconCountryLabel = document.getElementById("identity-icon-country-label");
|
||||||
},
|
},
|
||||||
get _identityIcons () {
|
|
||||||
delete this._identityIcons;
|
|
||||||
return this._identityIcons = document.getElementById("identity-icons");
|
|
||||||
},
|
|
||||||
get _identityIcon () {
|
get _identityIcon () {
|
||||||
delete this._identityIcon;
|
delete this._identityIcon;
|
||||||
return this._identityIcon = document.getElementById("page-proxy-favicon");
|
return this._identityIcon = document.getElementById("identity-icon");
|
||||||
},
|
},
|
||||||
get _permissionList () {
|
get _permissionList () {
|
||||||
delete this._permissionList;
|
delete this._permissionList;
|
||||||
return this._permissionList = document.getElementById("identity-popup-permission-list");
|
return this._permissionList = document.getElementById("identity-popup-permission-list");
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Rebuild cache of the elements that may or may not exist depending
|
|
||||||
* on whether there's a location bar.
|
|
||||||
*/
|
|
||||||
_cacheElements : function() {
|
|
||||||
delete this._identityBox;
|
|
||||||
delete this._identityIcons;
|
|
||||||
delete this._identityIconLabel;
|
|
||||||
delete this._identityIconCountryLabel;
|
|
||||||
delete this._identityIcon;
|
|
||||||
delete this._permissionList;
|
|
||||||
this._identityBox = document.getElementById("identity-box");
|
|
||||||
this._identityIcons = document.getElementById("identity-icons");
|
|
||||||
this._identityIconLabel = document.getElementById("identity-icon-label");
|
|
||||||
this._identityIconCountryLabel = document.getElementById("identity-icon-country-label");
|
|
||||||
this._identityIcon = document.getElementById("page-proxy-favicon");
|
|
||||||
this._permissionList = document.getElementById("identity-popup-permission-list");
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler for mouseclicks on the "More Information" button in the
|
* Handler for mouseclicks on the "More Information" button in the
|
||||||
* "identity-popup" panel.
|
* "identity-popup" panel.
|
||||||
|
@ -7532,7 +7504,7 @@ var gIdentityHandler = {
|
||||||
this._identityBox.setAttribute("open", "true");
|
this._identityBox.setAttribute("open", "true");
|
||||||
|
|
||||||
// Now open the popup, anchored off the primary chrome element
|
// Now open the popup, anchored off the primary chrome element
|
||||||
this._identityPopup.openPopup(this._identityIcons, "bottomcenter topleft");
|
this._identityPopup.openPopup(this._identityIcon, "bottomcenter topleft");
|
||||||
},
|
},
|
||||||
|
|
||||||
onPopupShown(event) {
|
onPopupShown(event) {
|
||||||
|
@ -7575,7 +7547,7 @@ var gIdentityHandler = {
|
||||||
dt.setData("text/uri-list", value);
|
dt.setData("text/uri-list", value);
|
||||||
dt.setData("text/plain", value);
|
dt.setData("text/plain", value);
|
||||||
dt.setData("text/html", htmlString);
|
dt.setData("text/html", htmlString);
|
||||||
dt.setDragImage(gProxyFavIcon, 16, 16);
|
dt.setDragImage(this._identityIcon, 16, 16);
|
||||||
},
|
},
|
||||||
|
|
||||||
updateSitePermissions: function () {
|
updateSitePermissions: function () {
|
||||||
|
|
|
@ -738,13 +738,11 @@
|
||||||
onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
|
onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||||
onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);"
|
onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||||
ondragstart="gIdentityHandler.onDragStart(event);">
|
ondragstart="gIdentityHandler.onDragStart(event);">
|
||||||
<hbox id="identity-icons"
|
<image id="identity-icon"
|
||||||
consumeanchor="identity-box">
|
consumeanchor="identity-box"
|
||||||
<image id="tracking-protection-icon"/>
|
onclick="PageProxyClickHandler(event);"/>
|
||||||
<image id="page-proxy-favicon"
|
<image id="tracking-protection-icon"/>
|
||||||
onclick="PageProxyClickHandler(event);"
|
<image id="connection-icon"/>
|
||||||
pageproxystate="invalid"/>
|
|
||||||
</hbox>
|
|
||||||
<hbox id="identity-icon-labels">
|
<hbox id="identity-icon-labels">
|
||||||
<label id="identity-icon-label" class="plain" flex="1"/>
|
<label id="identity-icon-label" class="plain" flex="1"/>
|
||||||
<label id="identity-icon-country-label" class="plain"/>
|
<label id="identity-icon-country-label" class="plain"/>
|
||||||
|
|
|
@ -41,8 +41,9 @@ add_task(function* test_simple() {
|
||||||
document.getElementById("identity-popup-security-expander").click();
|
document.getElementById("identity-popup-security-expander").click();
|
||||||
|
|
||||||
if (expectWarning) {
|
if (expectWarning) {
|
||||||
let identityBoxImage = gBrowser.ownerGlobal
|
is_element_visible(document.getElementById("connection-icon"));
|
||||||
.getComputedStyle(document.getElementById("page-proxy-favicon"), "")
|
let connectionIconImage = gBrowser.ownerGlobal
|
||||||
|
.getComputedStyle(document.getElementById("connection-icon"), "")
|
||||||
.getPropertyValue("list-style-image");
|
.getPropertyValue("list-style-image");
|
||||||
let securityViewBG = gBrowser.ownerGlobal
|
let securityViewBG = gBrowser.ownerGlobal
|
||||||
.getComputedStyle(document.getElementById("identity-popup-securityView"), "")
|
.getComputedStyle(document.getElementById("identity-popup-securityView"), "")
|
||||||
|
@ -50,7 +51,7 @@ add_task(function* test_simple() {
|
||||||
let securityContentBG = gBrowser.ownerGlobal
|
let securityContentBG = gBrowser.ownerGlobal
|
||||||
.getComputedStyle(document.getElementById("identity-popup-security-content"), "")
|
.getComputedStyle(document.getElementById("identity-popup-security-content"), "")
|
||||||
.getPropertyValue("background-image");
|
.getPropertyValue("background-image");
|
||||||
is(identityBoxImage,
|
is(connectionIconImage,
|
||||||
"url(\"chrome://browser/skin/identity-mixed-active-loaded.svg\")",
|
"url(\"chrome://browser/skin/identity-mixed-active-loaded.svg\")",
|
||||||
"Using expected icon image in the identity block");
|
"Using expected icon image in the identity block");
|
||||||
is(securityViewBG,
|
is(securityViewBG,
|
||||||
|
|
|
@ -781,7 +781,8 @@ function assertMixedContentBlockingState(tabbrowser, states = {}) {
|
||||||
let doc = tabbrowser.ownerDocument;
|
let doc = tabbrowser.ownerDocument;
|
||||||
let identityBox = gIdentityHandler._identityBox;
|
let identityBox = gIdentityHandler._identityBox;
|
||||||
let classList = identityBox.classList;
|
let classList = identityBox.classList;
|
||||||
let identityBoxImage = tabbrowser.ownerGlobal.getComputedStyle(doc.getElementById("page-proxy-favicon"), "").
|
let connectionIcon = doc.getElementById("connection-icon");
|
||||||
|
let connectionIconImage = tabbrowser.ownerGlobal.getComputedStyle(connectionIcon, "").
|
||||||
getPropertyValue("list-style-image");
|
getPropertyValue("list-style-image");
|
||||||
|
|
||||||
let stateSecure = gIdentityHandler._state & Ci.nsIWebProgressListener.STATE_IS_SECURE;
|
let stateSecure = gIdentityHandler._state & Ci.nsIWebProgressListener.STATE_IS_SECURE;
|
||||||
|
@ -799,7 +800,7 @@ function assertMixedContentBlockingState(tabbrowser, states = {}) {
|
||||||
// HTTP request, there should be no MCB classes for the identity box and the non secure icon
|
// HTTP request, there should be no MCB classes for the identity box and the non secure icon
|
||||||
// should always be visible regardless of MCB state.
|
// should always be visible regardless of MCB state.
|
||||||
ok(classList.contains("unknownIdentity"), "unknownIdentity on HTTP page");
|
ok(classList.contains("unknownIdentity"), "unknownIdentity on HTTP page");
|
||||||
is(identityBoxImage, "url(\"chrome://browser/skin/identity-not-secure.svg\")", "Using 'non-secure' icon");
|
is_element_hidden(connectionIcon);
|
||||||
|
|
||||||
ok(!classList.contains("mixedActiveContent"), "No MCB icon on HTTP page");
|
ok(!classList.contains("mixedActiveContent"), "No MCB icon on HTTP page");
|
||||||
ok(!classList.contains("mixedActiveBlocked"), "No MCB icon on HTTP page");
|
ok(!classList.contains("mixedActiveBlocked"), "No MCB icon on HTTP page");
|
||||||
|
@ -816,20 +817,21 @@ function assertMixedContentBlockingState(tabbrowser, states = {}) {
|
||||||
is(classList.contains("mixedDisplayContentLoadedActiveBlocked"), passiveLoaded && activeBlocked,
|
is(classList.contains("mixedDisplayContentLoadedActiveBlocked"), passiveLoaded && activeBlocked,
|
||||||
"identityBox has expected class for passiveLoaded && activeBlocked");
|
"identityBox has expected class for passiveLoaded && activeBlocked");
|
||||||
|
|
||||||
|
is_element_visible(connectionIcon);
|
||||||
if (activeLoaded) {
|
if (activeLoaded) {
|
||||||
is(identityBoxImage, "url(\"chrome://browser/skin/identity-mixed-active-loaded.svg\")",
|
is(connectionIconImage, "url(\"chrome://browser/skin/identity-mixed-active-loaded.svg\")",
|
||||||
"Using active loaded icon");
|
"Using active loaded icon");
|
||||||
}
|
}
|
||||||
if (activeBlocked && !passiveLoaded) {
|
if (activeBlocked && !passiveLoaded) {
|
||||||
is(identityBoxImage, "url(\"chrome://browser/skin/identity-mixed-active-blocked.svg\")",
|
is(connectionIconImage, "url(\"chrome://browser/skin/identity-mixed-active-blocked.svg\")",
|
||||||
"Using active blocked icon");
|
"Using active blocked icon");
|
||||||
}
|
}
|
||||||
if (passiveLoaded && !(activeLoaded || activeBlocked)) {
|
if (passiveLoaded && !(activeLoaded || activeBlocked)) {
|
||||||
is(identityBoxImage, "url(\"chrome://browser/skin/identity-mixed-passive-loaded.svg\")",
|
is(connectionIconImage, "url(\"chrome://browser/skin/identity-mixed-passive-loaded.svg\")",
|
||||||
"Using passive loaded icon");
|
"Using passive loaded icon");
|
||||||
}
|
}
|
||||||
if (passiveLoaded && activeBlocked) {
|
if (passiveLoaded && activeBlocked) {
|
||||||
is(identityBoxImage, "url(\"chrome://browser/skin/identity-mixed-passive-loaded.svg\")",
|
is(connectionIconImage, "url(\"chrome://browser/skin/identity-mixed-passive-loaded.svg\")",
|
||||||
"Using active blocked and passive loaded icon");
|
"Using active blocked and passive loaded icon");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,13 +75,42 @@
|
||||||
padding-inline-start: calc(var(--backbutton-urlbar-overlap) + 4.01px);
|
padding-inline-start: calc(var(--backbutton-urlbar-overlap) + 4.01px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* MAIN IDENTITY ICON */
|
||||||
|
|
||||||
|
#identity-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
list-style-image: url(chrome://browser/skin/identity-icon.svg#normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
#identity-box:hover > #identity-icon,
|
||||||
|
#identity-box[open=true] > #identity-icon {
|
||||||
|
list-style-image: url(chrome://browser/skin/identity-icon.svg#hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
#urlbar[pageproxystate="valid"] > #identity-box.chromeUI > #identity-icon {
|
||||||
|
list-style-image: url(chrome://branding/content/identity-icons-brand.svg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#urlbar[pageproxystate="invalid"] > #identity-box > #identity-icon {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#urlbar[actiontype="searchengine"] > #identity-box > #identity-icon {
|
||||||
|
-moz-image-region: inherit;
|
||||||
|
list-style-image: url(chrome://global/skin/icons/autocomplete-search.svg#search-icon);
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* TRACKING PROTECTION ICON */
|
/* TRACKING PROTECTION ICON */
|
||||||
|
|
||||||
#tracking-protection-icon {
|
#tracking-protection-icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
margin-inline-start: 0;
|
margin-inline-start: 2px;
|
||||||
margin-inline-end: 2px;
|
margin-inline-end: 0;
|
||||||
list-style-image: url(chrome://browser/skin/tracking-protection-16.svg);
|
list-style-image: url(chrome://browser/skin/tracking-protection-16.svg);
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
@ -95,57 +124,46 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tracking-protection-icon:not([state]) {
|
#tracking-protection-icon:not([state]) {
|
||||||
margin-inline-start: -18px;
|
margin-inline-end: -18px;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
/* Only animate the shield in, when it disappears hide it immediately. */
|
/* Only animate the shield in, when it disappears hide it immediately. */
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#urlbar[pageproxystate="invalid"] > #identity-box > #identity-icons > #tracking-protection-icon {
|
#urlbar[pageproxystate="invalid"] > #identity-box > #tracking-protection-icon {
|
||||||
visibility: collapse;
|
visibility: collapse;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MAIN IDENTITY ICON */
|
/* CONNECTION ICON */
|
||||||
|
|
||||||
#page-proxy-favicon {
|
#connection-icon {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
list-style-image: url(chrome://browser/skin/identity-not-secure.svg);
|
margin-inline-start: 2px;
|
||||||
|
visibility: collapse;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chromeUI > #identity-icons > #page-proxy-favicon[pageproxystate="valid"] {
|
#urlbar[pageproxystate="valid"] > #identity-box.verifiedDomain > #connection-icon,
|
||||||
list-style-image: url(chrome://branding/content/identity-icons-brand.svg);
|
#urlbar[pageproxystate="valid"] > #identity-box.verifiedIdentity > #connection-icon {
|
||||||
}
|
|
||||||
|
|
||||||
.verifiedDomain > #identity-icons > #page-proxy-favicon[pageproxystate="valid"],
|
|
||||||
.verifiedIdentity > #identity-icons > #page-proxy-favicon[pageproxystate="valid"] {
|
|
||||||
list-style-image: url(chrome://browser/skin/identity-secure.svg);
|
list-style-image: url(chrome://browser/skin/identity-secure.svg);
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.insecureLoginForms > #identity-icons > #page-proxy-favicon[pageproxystate="valid"],
|
#urlbar[pageproxystate="valid"] > #identity-box.insecureLoginForms > #connection-icon,
|
||||||
.mixedActiveContent > #identity-icons > #page-proxy-favicon[pageproxystate="valid"] {
|
#urlbar[pageproxystate="valid"] > #identity-box.mixedActiveContent > #connection-icon {
|
||||||
list-style-image: url(chrome://browser/skin/identity-mixed-active-loaded.svg);
|
list-style-image: url(chrome://browser/skin/identity-mixed-active-loaded.svg);
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.weakCipher > #identity-icons > #page-proxy-favicon[pageproxystate="valid"],
|
#urlbar[pageproxystate="valid"] > #identity-box.weakCipher > #connection-icon,
|
||||||
.mixedDisplayContent > #identity-icons > #page-proxy-favicon[pageproxystate="valid"],
|
#urlbar[pageproxystate="valid"] > #identity-box.mixedDisplayContent > #connection-icon,
|
||||||
.mixedDisplayContentLoadedActiveBlocked > #identity-icons > #page-proxy-favicon[pageproxystate="valid"] {
|
#urlbar[pageproxystate="valid"] > #identity-box.mixedDisplayContentLoadedActiveBlocked > #connection-icon {
|
||||||
list-style-image: url(chrome://browser/skin/identity-mixed-passive-loaded.svg);
|
list-style-image: url(chrome://browser/skin/identity-mixed-passive-loaded.svg);
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mixedActiveBlocked > #identity-icons > #page-proxy-favicon[pageproxystate="valid"] {
|
#urlbar[pageproxystate="valid"] > #identity-box.mixedActiveBlocked > #connection-icon {
|
||||||
list-style-image: url(chrome://browser/skin/identity-mixed-active-blocked.svg);
|
list-style-image: url(chrome://browser/skin/identity-mixed-active-blocked.svg);
|
||||||
}
|
visibility: visible;
|
||||||
|
|
||||||
#page-proxy-favicon[pageproxystate="invalid"] {
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
#urlbar[actiontype="searchengine"] > #identity-box > #identity-icons > #page-proxy-favicon {
|
|
||||||
-moz-image-region: inherit;
|
|
||||||
list-style-image: url(chrome://global/skin/icons/autocomplete-search.svg#search-icon);
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- 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/. -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
width="48" height="16" viewBox="0 0 32 16">
|
||||||
|
<defs>
|
||||||
|
<circle id="shape-circle-base" cx="8" cy="8" r="7" />
|
||||||
|
<g id="shape-i">
|
||||||
|
<circle cx="8" cy="5" r="1" />
|
||||||
|
<rect x="7" y="7" width="2" height="5" rx="1" ry="1" />
|
||||||
|
</g>
|
||||||
|
<mask id="mask-ring-cutout">
|
||||||
|
<rect width="16" height="16" fill="#000" />
|
||||||
|
<use xlink:href="#shape-circle-base" fill="#fff" />
|
||||||
|
<circle cx="8" cy="8" r="6" fill="#000" />
|
||||||
|
</mask>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<view id="normal" viewBox="0 0 16 16"/>
|
||||||
|
<g>
|
||||||
|
<use xlink:href="#shape-circle-base" mask="url(#mask-ring-cutout)" fill="#999" />
|
||||||
|
<use xlink:href="#shape-i" fill="#999" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<view id="hover" viewBox="16 0 16 16"/>
|
||||||
|
<g transform="translate(16)">
|
||||||
|
<use xlink:href="#shape-circle-base" fill="#4c9ed9" />
|
||||||
|
<use xlink:href="#shape-i" fill="#fff" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
После Ширина: | Высота: | Размер: 1.2 KiB |
|
@ -59,6 +59,7 @@
|
||||||
skin/classic/browser/heartbeat-icon.svg (../shared/heartbeat-icon.svg)
|
skin/classic/browser/heartbeat-icon.svg (../shared/heartbeat-icon.svg)
|
||||||
skin/classic/browser/heartbeat-star-lit.svg (../shared/heartbeat-star-lit.svg)
|
skin/classic/browser/heartbeat-star-lit.svg (../shared/heartbeat-star-lit.svg)
|
||||||
skin/classic/browser/heartbeat-star-off.svg (../shared/heartbeat-star-off.svg)
|
skin/classic/browser/heartbeat-star-off.svg (../shared/heartbeat-star-off.svg)
|
||||||
|
skin/classic/browser/identity-icon.svg (../shared/identity-block/identity-icon.svg)
|
||||||
skin/classic/browser/identity-not-secure.svg (../shared/identity-block/identity-not-secure.svg)
|
skin/classic/browser/identity-not-secure.svg (../shared/identity-block/identity-not-secure.svg)
|
||||||
skin/classic/browser/identity-secure.svg (../shared/identity-block/identity-secure.svg)
|
skin/classic/browser/identity-secure.svg (../shared/identity-block/identity-secure.svg)
|
||||||
skin/classic/browser/identity-mixed-active-blocked.svg (../shared/identity-block/identity-mixed-active-blocked.svg)
|
skin/classic/browser/identity-mixed-active-blocked.svg (../shared/identity-block/identity-mixed-active-blocked.svg)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче