зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to mozilla-inbound
This commit is contained in:
Коммит
a75608405a
|
@ -180,7 +180,7 @@
|
|||
children: [
|
||||
{
|
||||
// #document ("about:newtab" preloaded)
|
||||
role: ROLE_APPLICATION
|
||||
role: ROLE_DOCUMENT
|
||||
// children: [ ... ] // Ignore document content.
|
||||
}
|
||||
]
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
@ -38,7 +38,7 @@
|
|||
<project name="platform/bootable/recovery" path="bootable/recovery" revision="286354e69491f7cba5b9ec6b551831fe6f85ad0d"/>
|
||||
<project name="platform/external/aac" path="external/aac" revision="fa3eba16446cc8f2f5e2dfc20d86a49dbd37299e"/>
|
||||
<project name="platform/external/bison" path="external/bison" revision="c2418b886165add7f5a31fc5609f0ce2d004a90e"/>
|
||||
<project name="platform/external/bluetooth/bluedroid" path="external/bluetooth/bluedroid" revision="3e5570325187f5cd9f8a944cbe4a93822e8c6328"/>
|
||||
<project name="platform/external/bluetooth/bluedroid" path="external/bluetooth/bluedroid" revision="d6cfe067653ee2625827b08b3e8b3662c51f575b"/>
|
||||
<project name="platform/external/bsdiff" path="external/bsdiff" revision="23e322ab19fb7d74c2c37e40ce364d9f709bdcee"/>
|
||||
<project name="platform/external/bzip2" path="external/bzip2" revision="1cb636bd8e9e5cdfd5d5b2909a122f6e80db62de"/>
|
||||
<project name="platform/external/checkpolicy" path="external/checkpolicy" revision="0d73ef7049feee794f14cf1af88d05dae8139914"/>
|
||||
|
@ -105,7 +105,7 @@
|
|||
<project name="platform/frameworks/native" path="frameworks/native" revision="8d54940d9bdad8fec3208ff58ddab590be9fe0d4"/>
|
||||
<project name="platform/frameworks/opt/emoji" path="frameworks/opt/emoji" revision="dbbe673145107e99883f62bafd70c5f43f11065c"/>
|
||||
<project name="platform/frameworks/wilhelm" path="frameworks/wilhelm" revision="aac6c4bb59a6577c97cbda68699829b507b7490d"/>
|
||||
<project name="platform/hardware/libhardware" path="hardware/libhardware" revision="fbeca55f4695dd07c0291213403533b8fbca4885"/>
|
||||
<project name="platform/hardware/libhardware" path="hardware/libhardware" revision="264e408d639c94a922965e3cbee5b1819674992b"/>
|
||||
<project name="platform/hardware/libhardware_legacy" path="hardware/libhardware_legacy" revision="68b0c269fd1889f47ecfb9119c05281e9b6db0af"/>
|
||||
<project name="platform/libcore" path="libcore" revision="e195beab082c09217318fc19250caeaf4c1bd800"/>
|
||||
<project name="platform/libnativehelper" path="libnativehelper" revision="feeb36c2bd4adfe285f98f5de92e0f3771b2c115"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="8bc59310552179f9a8bc6cdd0188e2475df52fb7"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="657894b4a1dc0a926117f4812e0940229f9f676f"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="1b587ca868ee75758959c2470a9c35a21299377f"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="8bc59310552179f9a8bc6cdd0188e2475df52fb7"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"git": {
|
||||
"git_revision": "f04fdbfa1943dddeab8ecd1299a76ab56e590d00",
|
||||
"git_revision": "aa1698251e86c820c50c045b0a3ff65fd6b0eee7",
|
||||
"remote": "https://git.mozilla.org/releases/gaia.git",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "01d6b677af341b70496c9ae304bd07b2697f9410",
|
||||
"revision": "0cf27fd21b9b89578d2114bfd5a397e4352748f6",
|
||||
"repo_path": "integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="657894b4a1dc0a926117f4812e0940229f9f676f"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="1b587ca868ee75758959c2470a9c35a21299377f"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f04fdbfa1943dddeab8ecd1299a76ab56e590d00"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="aa1698251e86c820c50c045b0a3ff65fd6b0eee7"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9f45c1988fe72749f0659409e6e3320fabf7b79a"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -110,14 +110,7 @@ let gFxAccounts = {
|
|||
// notified of fxa-migration:state-changed in response if necessary.
|
||||
Services.obs.notifyObservers(null, "fxa-migration:state-request", null);
|
||||
|
||||
let contentUri = Services.urlFormatter.formatURLPref("identity.fxaccounts.remote.webchannel.uri");
|
||||
// The FxAccountsWebChannel listens for events and updates
|
||||
// the state machine accordingly.
|
||||
let fxAccountsWebChannel = new FxAccountsWebChannel({
|
||||
content_uri: contentUri,
|
||||
channel_id: this.FxAccountsCommon.WEBCHANNEL_ID
|
||||
});
|
||||
|
||||
EnsureFxAccountsWebChannel();
|
||||
this._initialized = true;
|
||||
|
||||
this.updateUI();
|
||||
|
@ -482,5 +475,5 @@ XPCOMUtils.defineLazyGetter(gFxAccounts, "FxAccountsCommon", function () {
|
|||
XPCOMUtils.defineLazyModuleGetter(gFxAccounts, "fxaMigrator",
|
||||
"resource://services-sync/FxaMigrator.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FxAccountsWebChannel",
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "EnsureFxAccountsWebChannel",
|
||||
"resource://gre/modules/FxAccountsWebChannel.jsm");
|
||||
|
|
|
@ -140,7 +140,7 @@ let gDrag = {
|
|||
// drag image with its default opacity.
|
||||
let dragElement = document.createElementNS(HTML_NAMESPACE, "div");
|
||||
dragElement.classList.add("newtab-drag");
|
||||
let scrollbox = document.getElementById("newtab-scrollbox");
|
||||
let scrollbox = document.getElementById("newtab-vertical-margin");
|
||||
scrollbox.appendChild(dragElement);
|
||||
dt.setDragImage(dragElement, 0, 0);
|
||||
|
||||
|
|
|
@ -2,6 +2,25 @@
|
|||
* 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/. */
|
||||
|
||||
html {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font: message-box;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: #F9F9F9;
|
||||
display: -moz-box;
|
||||
position: relative;
|
||||
-moz-box-flex: 1;
|
||||
-moz-user-focus: normal;
|
||||
-moz-box-orient: vertical;
|
||||
}
|
||||
|
||||
input {
|
||||
font: message-box !important;
|
||||
font-size: 16px !important;
|
||||
|
@ -11,23 +30,9 @@ input[type=button] {
|
|||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* SCROLLBOX */
|
||||
#newtab-scrollbox {
|
||||
display: -moz-box;
|
||||
position: relative;
|
||||
-moz-box-flex: 1;
|
||||
-moz-user-focus: normal;
|
||||
-moz-box-orient: vertical;
|
||||
}
|
||||
|
||||
#newtab-scrollbox:not([page-disabled]) {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* UNDO */
|
||||
#newtab-undo-container {
|
||||
transition: opacity 100ms ease-out;
|
||||
display: -moz-box;
|
||||
-moz-box-align: center;
|
||||
-moz-box-pack: center;
|
||||
}
|
||||
|
@ -45,7 +50,7 @@ input[type=button] {
|
|||
z-index: 101;
|
||||
}
|
||||
|
||||
#newtab-customize-button:-moz-locale-dir(rtl) {
|
||||
#newtab-customize-button:-moz-dir(rtl) {
|
||||
left: 20px;
|
||||
right: auto;
|
||||
}
|
||||
|
@ -66,11 +71,15 @@ input[type=button] {
|
|||
z-index: 1;
|
||||
}
|
||||
|
||||
#newtab-margin-undo-container:-moz-locale-dir(rtl) {
|
||||
#newtab-margin-undo-container:-moz-dir(rtl) {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
|
||||
#newtab-undo-close-button:-moz-dir(rtl) {
|
||||
float:left;
|
||||
}
|
||||
|
||||
#newtab-horizontal-margin {
|
||||
display: -moz-box;
|
||||
-moz-box-flex: 1;
|
||||
|
@ -238,7 +247,7 @@ input[type=button] {
|
|||
background-color: #000000;
|
||||
}
|
||||
|
||||
.newtab-sponsored:-moz-locale-dir(rtl) {
|
||||
.newtab-sponsored:-moz-dir(rtl) {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
|
@ -302,13 +311,13 @@ input[type=button] {
|
|||
}
|
||||
}
|
||||
|
||||
.newtab-control-pin:-moz-locale-dir(ltr),
|
||||
.newtab-control-block:-moz-locale-dir(rtl) {
|
||||
.newtab-control-pin:-moz-dir(ltr),
|
||||
.newtab-control-block:-moz-dir(rtl) {
|
||||
left: 4px;
|
||||
}
|
||||
|
||||
.newtab-control-block:-moz-locale-dir(ltr),
|
||||
.newtab-control-pin:-moz-locale-dir(rtl) {
|
||||
.newtab-control-block:-moz-dir(ltr),
|
||||
.newtab-control-pin:-moz-dir(rtl) {
|
||||
right: 4px;
|
||||
}
|
||||
|
||||
|
@ -442,6 +451,7 @@ input[type=button] {
|
|||
transition-duration: 0ms;
|
||||
}
|
||||
|
||||
/* CUSTOMIZE */
|
||||
#newtab-customize-overlay {
|
||||
opacity: 0;
|
||||
display: none;
|
||||
|
@ -456,6 +466,12 @@ input[type=button] {
|
|||
.newtab-customize-panel-container {
|
||||
position: absolute;
|
||||
margin-right: 40px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.newtab-customize-panel-container:-moz-dir(rtl) {
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#newtab-customize-panel {
|
||||
|
@ -471,12 +487,12 @@ input[type=button] {
|
|||
transform: translate(-30px, -20px) scale(0) translate(30px, 20px);
|
||||
}
|
||||
|
||||
#newtab-customize-panel:-moz-locale-dir(rtl) {
|
||||
#newtab-customize-panel:-moz-dir(rtl) {
|
||||
transform-origin: 40px top 20px;
|
||||
}
|
||||
|
||||
#newtab-customize-panel:-moz-locale-dir(rtl),
|
||||
#newtab-customize-panel-anchor:-moz-locale-dir(rtl) {
|
||||
#newtab-customize-panel:-moz-dir(rtl),
|
||||
#newtab-customize-panel-anchor:-moz-dir(rtl) {
|
||||
left: 15px;
|
||||
right: auto;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ function newTabString(name, args) {
|
|||
}
|
||||
|
||||
function inPrivateBrowsingMode() {
|
||||
return PrivateBrowsingUtils.isWindowPrivate(window);
|
||||
return PrivateBrowsingUtils.isContentWindowPrivate(window);
|
||||
}
|
||||
|
||||
const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
|
||||
|
|
|
@ -4,21 +4,27 @@
|
|||
- 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/. -->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/content/contentSearchUI.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/content/newtab/newTab.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://browser/skin/newtab/newTab.css" type="text/css"?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<!DOCTYPE html [
|
||||
<!ENTITY % newTabDTD SYSTEM "chrome://browser/locale/newTab.dtd">
|
||||
%newTabDTD;
|
||||
<!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
|
||||
%browserDTD;
|
||||
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
|
||||
%globalDTD;
|
||||
]>
|
||||
|
||||
<xul:window id="newtab-window" xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="&newtab.pageTitle;">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>&newtab.pageTitle;</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" media="all" href="chrome://global/skin/" />
|
||||
<link rel="stylesheet" type="text/css" media="all" href="chrome://browser/content/contentSearchUI.css" />
|
||||
<link rel="stylesheet" type="text/css" media="all" href="chrome://browser/content/newtab/newTab.css" />
|
||||
<link rel="stylesheet" type="text/css" media="all" href="chrome://browser/skin/newtab/newTab.css" />
|
||||
</head>
|
||||
|
||||
<body dir="&locale.dir;">
|
||||
<div id="newtab-customize-overlay"></div>
|
||||
|
||||
<div class="newtab-customize-panel-container">
|
||||
<div id="newtab-customize-panel" orient="vertical">
|
||||
|
@ -47,8 +53,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="newtab-customize-overlay"></div>
|
||||
|
||||
<div id="newtab-intro-mask">
|
||||
<div id="newtab-intro-modal">
|
||||
<div id="newtab-intro-header"/>
|
||||
|
@ -70,27 +74,18 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="newtab-scrollbox">
|
||||
|
||||
<div id="newtab-vertical-margin">
|
||||
|
||||
<div id="newtab-margin-top"/>
|
||||
|
||||
<div id="newtab-margin-undo-container">
|
||||
<div id="newtab-undo-container" undo-disabled="true">
|
||||
<xul:label id="newtab-undo-label"
|
||||
value="&newtab.undo.removedLabel;" />
|
||||
<xul:button id="newtab-undo-button" tabindex="-1"
|
||||
label="&newtab.undo.undoButton;"
|
||||
class="newtab-undo-button" />
|
||||
<xul:button id="newtab-undo-restore-button" tabindex="-1"
|
||||
label="&newtab.undo.restoreButton;"
|
||||
class="newtab-undo-button" />
|
||||
<xul:toolbarbutton id="newtab-undo-close-button" tabindex="-1"
|
||||
class="close-icon tabbable"
|
||||
tooltiptext="&newtab.undo.closeTooltip;" />
|
||||
<div id="newtab-margin-undo-container">
|
||||
<div id="newtab-undo-container" undo-disabled="true">
|
||||
<label id="newtab-undo-label">&newtab.undo.removedLabel;</label>
|
||||
<button id="newtab-undo-button" tabindex="-1"
|
||||
class="newtab-undo-button">&newtab.undo.undoButton;</button>
|
||||
<button id="newtab-undo-restore-button" tabindex="-1"
|
||||
class="newtab-undo-button">&newtab.undo.restoreButton;</button>
|
||||
<button id="newtab-undo-close-button" tabindex="-1" title="&newtab.undo.closeTooltip;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="newtab-search-container">
|
||||
<div id="newtab-search-form">
|
||||
|
@ -112,13 +107,9 @@
|
|||
</div>
|
||||
|
||||
<div id="newtab-margin-bottom"/>
|
||||
|
||||
</div>
|
||||
<input id="newtab-customize-button" type="button" title="&newtab.customize.title;"/>
|
||||
</div>
|
||||
|
||||
<xul:script type="text/javascript;version=1.8"
|
||||
src="chrome://browser/content/contentSearchUI.js"/>
|
||||
<xul:script type="text/javascript;version=1.8"
|
||||
src="chrome://browser/content/newtab/newTab.js"/>
|
||||
</xul:window>
|
||||
<input id="newtab-customize-button" type="button" dir="&locale.dir;" title="&newtab.customize.title;"/>
|
||||
</body>
|
||||
<script type="text/javascript;version=1.8" src="chrome://browser/content/contentSearchUI.js"/>
|
||||
<script type="text/javascript;version=1.8" src="chrome://browser/content/newtab/newTab.js"/>
|
||||
</html>
|
|
@ -146,7 +146,7 @@ let gPage = {
|
|||
*/
|
||||
_updateAttributes: function Page_updateAttributes(aValue) {
|
||||
// Set the nodes' states.
|
||||
let nodeSelector = "#newtab-scrollbox, #newtab-grid, #newtab-search-container";
|
||||
let nodeSelector = "#newtab-grid, #newtab-search-container";
|
||||
for (let node of document.querySelectorAll(nodeSelector)) {
|
||||
if (aValue)
|
||||
node.removeAttribute("page-disabled");
|
||||
|
@ -157,7 +157,7 @@ let gPage = {
|
|||
// Enables/disables the control and link elements.
|
||||
let inputSelector = ".newtab-control, .newtab-link";
|
||||
for (let input of document.querySelectorAll(inputSelector)) {
|
||||
if (aValue)
|
||||
if (aValue)
|
||||
input.removeAttribute("tabindex");
|
||||
else
|
||||
input.setAttribute("tabindex", "-1");
|
||||
|
|
|
@ -103,7 +103,7 @@ let gTransformation = {
|
|||
|
||||
let style = aSite.node.style;
|
||||
let comp = getComputedStyle(aSite.node, null);
|
||||
style.width = comp.getPropertyValue("width")
|
||||
style.width = comp.getPropertyValue("width");
|
||||
style.height = comp.getPropertyValue("height");
|
||||
|
||||
aSite.node.setAttribute("frozen", "true");
|
||||
|
|
|
@ -5658,6 +5658,44 @@
|
|||
|
||||
<implementation>
|
||||
|
||||
<!--
|
||||
This code is the same as in toolkit/content/widgets/tabbox.xml,
|
||||
except for the _tabAttrModified call. If you modify it, tabbox.xml
|
||||
might also need to be modified.
|
||||
-->
|
||||
<property name="_visuallySelected">
|
||||
<setter>
|
||||
<![CDATA[
|
||||
if (val)
|
||||
this.setAttribute("visuallyselected", "true");
|
||||
else
|
||||
this.removeAttribute("visuallyselected");
|
||||
gBrowser._tabAttrModified(this, ["visuallyselected"]);
|
||||
|
||||
if (this.previousSibling && this.previousSibling.localName == "tab") {
|
||||
if (val)
|
||||
this.previousSibling.setAttribute("beforeselected", "true");
|
||||
else
|
||||
this.previousSibling.removeAttribute("beforeselected");
|
||||
this.removeAttribute("first-tab");
|
||||
}
|
||||
else
|
||||
this.setAttribute("first-tab", "true");
|
||||
|
||||
if (this.nextSibling && this.nextSibling.localName == "tab") {
|
||||
if (val)
|
||||
this.nextSibling.setAttribute("afterselected", "true");
|
||||
else
|
||||
this.nextSibling.removeAttribute("afterselected");
|
||||
this.removeAttribute("last-tab");
|
||||
}
|
||||
else
|
||||
this.setAttribute("last-tab", "true");
|
||||
return val;
|
||||
]]>
|
||||
</setter>
|
||||
</property>
|
||||
|
||||
<property name="_selected">
|
||||
<setter>
|
||||
<![CDATA[
|
||||
|
|
|
@ -12,8 +12,9 @@ XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
|
|||
XPCOMUtils.defineLazyModuleGetter(this, "WebChannel",
|
||||
"resource://gre/modules/WebChannel.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FxAccountsWebChannel",
|
||||
"resource://gre/modules/FxAccountsWebChannel.jsm");
|
||||
// FxAccountsWebChannel isn't explicitly exported by FxAccountsWebChannel.jsm
|
||||
// but we can get it here via a backstage pass.
|
||||
let {FxAccountsWebChannel} = Components.utils.import("resource://gre/modules/FxAccountsWebChannel.jsm", {});
|
||||
|
||||
const TEST_HTTP_PATH = "http://example.com";
|
||||
const TEST_BASE_URL = TEST_HTTP_PATH + "/browser/browser/base/content/test/general/browser_fxa_web_channel.html";
|
||||
|
|
|
@ -105,7 +105,7 @@ browser.jar:
|
|||
content/browser/gcli_sec_bad.svg (content/gcli_sec_bad.svg)
|
||||
content/browser/gcli_sec_good.svg (content/gcli_sec_good.svg)
|
||||
content/browser/gcli_sec_moderate.svg (content/gcli_sec_moderate.svg)
|
||||
content/browser/newtab/newTab.xul (content/newtab/newTab.xul)
|
||||
content/browser/newtab/newTab.xhtml (content/newtab/newTab.xhtml)
|
||||
* content/browser/newtab/newTab.js (content/newtab/newTab.js)
|
||||
content/browser/newtab/newTab.css (content/newtab/newTab.css)
|
||||
content/browser/newtab/newTab.inadjacent.json (content/newtab/newTab.inadjacent.json)
|
||||
|
|
|
@ -89,7 +89,7 @@ static RedirEntry kRedirMap[] = {
|
|||
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
|
||||
nsIAboutModule::ALLOW_SCRIPT |
|
||||
nsIAboutModule::ENABLE_INDEXED_DB },
|
||||
{ "newtab", "chrome://browser/content/newtab/newTab.xul",
|
||||
{ "newtab", "chrome://browser/content/newtab/newTab.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "permissions", "chrome://browser/content/preferences/aboutPermissions.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
|
|
|
@ -47,10 +47,8 @@
|
|||
"no-console": 0, // Leave as 0. We use console logging in content code.
|
||||
"no-empty": 0, // TODO: Remove (use default)
|
||||
"no-extra-bind": 0, // Leave as 0
|
||||
"no-extra-boolean-cast": 0, // TODO: Remove (use default)
|
||||
"no-multi-spaces": 0, // TBD.
|
||||
"no-new": 0, // TODO: Remove (use default)
|
||||
"no-redeclare": 0, // TODO: Remove (use default)
|
||||
"no-return-assign": 0, // TODO: Remove (use default)
|
||||
"no-underscore-dangle": 0, // Leave as 0. Commonly used for private variables.
|
||||
"no-unexpected-multiline": 2,
|
||||
|
|
|
@ -700,7 +700,7 @@ loop.contacts = (function(_, mozL10n) {
|
|||
category: ["local"]
|
||||
};
|
||||
var tel = this.state.tel.trim();
|
||||
if (!!tel) {
|
||||
if (tel) {
|
||||
contact.tel = [{
|
||||
pref: true,
|
||||
type: ["fxos"],
|
||||
|
|
|
@ -700,7 +700,7 @@ loop.contacts = (function(_, mozL10n) {
|
|||
category: ["local"]
|
||||
};
|
||||
var tel = this.state.tel.trim();
|
||||
if (!!tel) {
|
||||
if (tel) {
|
||||
contact.tel = [{
|
||||
pref: true,
|
||||
type: ["fxos"],
|
||||
|
|
|
@ -151,8 +151,8 @@ loop.shared.mixins = (function() {
|
|||
boundingRect.width -= boundOffset;
|
||||
boundingRect.height -= boundOffset;
|
||||
|
||||
var x = menuNodeRect.left;
|
||||
var y = menuNodeRect.top;
|
||||
x = menuNodeRect.left;
|
||||
y = menuNodeRect.top;
|
||||
|
||||
// If there's an anchor present, position it relative to it first.
|
||||
var anchor = this.refs.anchor && this.refs.anchor.getDOMNode();
|
||||
|
@ -472,8 +472,8 @@ loop.shared.mixins = (function() {
|
|||
// Supply some sensible defaults for the remoteVideoDimensions if no remote
|
||||
// stream is connected (yet).
|
||||
if (!remoteVideoDimensions) {
|
||||
var node = this._getElement(".remote");
|
||||
var width = node.offsetWidth;
|
||||
node = this._getElement(".remote");
|
||||
width = node.offsetWidth;
|
||||
var height = node.offsetHeight;
|
||||
remoteVideoDimensions = {
|
||||
width: width,
|
||||
|
|
|
@ -173,13 +173,13 @@ XPCOMUtils.defineLazyGetter(this, "log", () => {
|
|||
});
|
||||
|
||||
function setJSONPref(aName, aValue) {
|
||||
let value = !!aValue ? JSON.stringify(aValue) : "";
|
||||
let value = aValue ? JSON.stringify(aValue) : "";
|
||||
Services.prefs.setCharPref(aName, value);
|
||||
}
|
||||
|
||||
function getJSONPref(aName) {
|
||||
let value = Services.prefs.getCharPref(aName);
|
||||
return !!value ? JSON.parse(value) : null;
|
||||
return value ? JSON.parse(value) : null;
|
||||
}
|
||||
|
||||
let gHawkClient = null;
|
||||
|
|
|
@ -1286,7 +1286,7 @@
|
|||
var warningsMismatch = caughtWarnings.length !== expectedWarningsCount;
|
||||
if (uncaughtError || warningsMismatch) {
|
||||
$("#results").append("<div class='failures'><em>" +
|
||||
(!!(uncaughtError && warningsMismatch) ? 2 : 1) + "</em></div>");
|
||||
((uncaughtError && warningsMismatch) ? 2 : 1) + "</em></div>");
|
||||
if (warningsMismatch) {
|
||||
$("#results").append("<li class='test fail'>" +
|
||||
"<h2>Unexpected number of warnings detected in UI-Showcase</h2>" +
|
||||
|
|
|
@ -1286,7 +1286,7 @@
|
|||
var warningsMismatch = caughtWarnings.length !== expectedWarningsCount;
|
||||
if (uncaughtError || warningsMismatch) {
|
||||
$("#results").append("<div class='failures'><em>" +
|
||||
(!!(uncaughtError && warningsMismatch) ? 2 : 1) + "</em></div>");
|
||||
((uncaughtError && warningsMismatch) ? 2 : 1) + "</em></div>");
|
||||
if (warningsMismatch) {
|
||||
$("#results").append("<li class='test fail'>" +
|
||||
"<h2>Unexpected number of warnings detected in UI-Showcase</h2>" +
|
||||
|
|
|
@ -8,16 +8,6 @@
|
|||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* SCROLLBOX */
|
||||
#newtab-scrollbox:not([page-disabled]) {
|
||||
color: rgb(0,0,0);
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
#newtab-scrollbox:not([page-disabled]) #newtab-margin-bottom {
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
/* UNDO */
|
||||
#newtab-undo-container {
|
||||
padding: 4px 3px;
|
||||
|
@ -57,8 +47,24 @@
|
|||
border: none;
|
||||
}
|
||||
|
||||
#newtab-undo-close-button:-moz-focusring {
|
||||
outline: 1px dotted;
|
||||
#newtab-undo-close-button {
|
||||
-moz-appearance: none;
|
||||
padding: 0;
|
||||
border: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
float: right;
|
||||
right: 0;
|
||||
background-image: -moz-image-rect(url(chrome://global/skin/icons/close.png), 0, 16, 16, 0);
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#newtab-undo-close-button:hover {
|
||||
background-image: -moz-image-rect(url(chrome://global/skin/icons/close.png), 0, 32, 16, 16);
|
||||
}
|
||||
|
||||
#newtab-undo-close-button:active {
|
||||
background-image: -moz-image-rect(url(chrome://global/skin/icons/close.png), 0, 48, 16, 32);
|
||||
}
|
||||
|
||||
/* CUSTOMIZE */
|
||||
|
@ -180,7 +186,7 @@
|
|||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.newtab-site[pinned] .newtab-title:-moz-locale-dir(rtl)::before {
|
||||
.newtab-site[pinned] .newtab-title:-moz-dir(rtl)::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
|
|
|
@ -57,13 +57,13 @@ extern bool gBluetoothDebugFlag;
|
|||
*/
|
||||
#define BT_LOGR(msg, ...) \
|
||||
__android_log_print(ANDROID_LOG_INFO, "GeckoBluetooth", \
|
||||
"%s: " msg, __FUNCTION__, ##__VA_ARGS__) \
|
||||
"%s: " msg, __FUNCTION__, ##__VA_ARGS__)
|
||||
|
||||
/**
|
||||
* Prints DEBUG build warnings, which show in DEBUG build only.
|
||||
*/
|
||||
#define BT_WARNING(args...) \
|
||||
NS_WARNING(nsPrintfCString(args).get()) \
|
||||
NS_WARNING(nsPrintfCString(args).get())
|
||||
|
||||
#else
|
||||
#define BT_LOGD(msg, ...) \
|
||||
|
@ -88,11 +88,25 @@ extern bool gBluetoothDebugFlag;
|
|||
/**
|
||||
* Wrap literal name and value into a BluetoothNamedValue
|
||||
* and insert it to the array.
|
||||
*
|
||||
* TODO: remove with bluetooth1
|
||||
*/
|
||||
#define BT_INSERT_NAMED_VALUE(array, index, name, value) \
|
||||
array.InsertElementAt(index, BluetoothNamedValue(NS_LITERAL_STRING(name), \
|
||||
BluetoothValue(value)))
|
||||
|
||||
/**
|
||||
* Convert an enum value to string and append it to a fallible array.
|
||||
*/
|
||||
#define BT_APPEND_ENUM_STRING_FALLIBLE(array, enumType, enumValue) \
|
||||
do { \
|
||||
uint32_t index = uint32_t(enumValue); \
|
||||
nsAutoString name; \
|
||||
name.AssignASCII(enumType##Values::strings[index].value, \
|
||||
enumType##Values::strings[index].length); \
|
||||
array.AppendElement(name, mozilla::fallible); \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* Ensure success of system message broadcast with void return.
|
||||
*/
|
||||
|
@ -105,30 +119,6 @@ extern bool gBluetoothDebugFlag;
|
|||
} \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* Convert an enum value to string then append it to an array.
|
||||
*/
|
||||
#define BT_APPEND_ENUM_STRING(array, enumType, enumValue) \
|
||||
do { \
|
||||
uint32_t index = uint32_t(enumValue); \
|
||||
nsAutoString name; \
|
||||
name.AssignASCII(enumType##Values::strings[index].value, \
|
||||
enumType##Values::strings[index].length); \
|
||||
array.AppendElement(name); \
|
||||
} while(0) \
|
||||
|
||||
/**
|
||||
* Convert an enum value to string then append it to a fallible array.
|
||||
*/
|
||||
#define BT_APPEND_ENUM_STRING_FALLIBLE(array, enumType, enumValue) \
|
||||
do { \
|
||||
uint32_t index = uint32_t(enumValue); \
|
||||
nsAutoString name; \
|
||||
name.AssignASCII(enumType##Values::strings[index].value, \
|
||||
enumType##Values::strings[index].length); \
|
||||
array.AppendElement(name, mozilla::fallible); \
|
||||
} while(0) \
|
||||
|
||||
/**
|
||||
* Resolve |promise| with |ret| if |x| is false.
|
||||
*/
|
||||
|
@ -153,6 +143,12 @@ extern bool gBluetoothDebugFlag;
|
|||
} \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* Reject |promise| with |ret| if nsresult |rv| is not successful.
|
||||
*/
|
||||
#define BT_ENSURE_SUCCESS_REJECT(rv, promise, ret) \
|
||||
BT_ENSURE_TRUE_REJECT(NS_SUCCEEDED(rv), promise, ret)
|
||||
|
||||
#define BEGIN_BLUETOOTH_NAMESPACE \
|
||||
namespace mozilla { namespace dom { namespace bluetooth {
|
||||
#define END_BLUETOOTH_NAMESPACE \
|
||||
|
|
|
@ -399,7 +399,7 @@ BluetoothRilListener::ServiceChanged(uint32_t aClientId, bool aRegistered)
|
|||
// Restart listening
|
||||
ListenMobileConnAndIccInfo(true);
|
||||
|
||||
BT_LOGR("%d client %d. new mClientId %d", aRegistered, aClientId,
|
||||
BT_LOGD("%d client %d. new mClientId %d", aRegistered, aClientId,
|
||||
(mClientId < mMobileConnListeners.Length()) ? mClientId : -1);
|
||||
}
|
||||
|
||||
|
|
|
@ -409,10 +409,9 @@ BluetoothAdapter::SetPropertyByValue(const BluetoothNamedValue& aValue)
|
|||
= value.get_ArrayOfnsString();
|
||||
|
||||
for (uint32_t i = 0; i < pairedDeviceAddresses.Length(); i++) {
|
||||
// Check whether or not the address exists in mDevices.
|
||||
if (mDevices.Contains(pairedDeviceAddresses[i])) {
|
||||
// If the paired device exists in mDevices, it would handle
|
||||
// 'PropertyChanged' signal in BluetoothDevice::Notify().
|
||||
// Existing paired devices handle 'PropertyChanged' signal
|
||||
// in BluetoothDevice::Notify()
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -420,12 +419,9 @@ BluetoothAdapter::SetPropertyByValue(const BluetoothNamedValue& aValue)
|
|||
BT_APPEND_NAMED_VALUE(props, "Address", pairedDeviceAddresses[i]);
|
||||
BT_APPEND_NAMED_VALUE(props, "Paired", true);
|
||||
|
||||
// Create paired device with 'address' and 'paired' attributes
|
||||
nsRefPtr<BluetoothDevice> pairedDevice =
|
||||
BluetoothDevice::Create(GetOwner(), BluetoothValue(props));
|
||||
|
||||
// Append to adapter's device array
|
||||
mDevices.AppendElement(pairedDevice);
|
||||
// Create paired device and append to adapter's device array
|
||||
mDevices.AppendElement(
|
||||
BluetoothDevice::Create(GetOwner(), BluetoothValue(props)));
|
||||
}
|
||||
|
||||
// Retrieve device properties, result will be handled by device objects.
|
||||
|
@ -693,12 +689,10 @@ BluetoothAdapter::SetName(const nsAString& aName, ErrorResult& aRv)
|
|||
nsString name(aName);
|
||||
BluetoothNamedValue property(NS_LITERAL_STRING("Name"),
|
||||
BluetoothValue(name));
|
||||
BT_ENSURE_TRUE_REJECT(
|
||||
NS_SUCCEEDED(
|
||||
bs->SetProperty(BluetoothObjectType::TYPE_ADAPTER, property,
|
||||
new BluetoothVoidReplyRunnable(nullptr, promise))),
|
||||
promise,
|
||||
NS_ERROR_DOM_OPERATION_ERR);
|
||||
BT_ENSURE_SUCCESS_REJECT(
|
||||
bs->SetProperty(BluetoothObjectType::TYPE_ADAPTER, property,
|
||||
new BluetoothVoidReplyRunnable(nullptr, promise)),
|
||||
promise, NS_ERROR_DOM_OPERATION_ERR);
|
||||
|
||||
return promise.forget();
|
||||
}
|
||||
|
@ -733,12 +727,10 @@ BluetoothAdapter::SetDiscoverable(bool aDiscoverable, ErrorResult& aRv)
|
|||
// Wrap property to set and runnable to handle result
|
||||
BluetoothNamedValue property(NS_LITERAL_STRING("Discoverable"),
|
||||
BluetoothValue(aDiscoverable));
|
||||
BT_ENSURE_TRUE_REJECT(
|
||||
NS_SUCCEEDED(
|
||||
bs->SetProperty(BluetoothObjectType::TYPE_ADAPTER, property,
|
||||
new BluetoothVoidReplyRunnable(nullptr, promise))),
|
||||
promise,
|
||||
NS_ERROR_DOM_OPERATION_ERR);
|
||||
BT_ENSURE_SUCCESS_REJECT(
|
||||
bs->SetProperty(BluetoothObjectType::TYPE_ADAPTER, property,
|
||||
new BluetoothVoidReplyRunnable(nullptr, promise)),
|
||||
promise, NS_ERROR_DOM_OPERATION_ERR);
|
||||
|
||||
return promise.forget();
|
||||
}
|
||||
|
|
|
@ -152,7 +152,7 @@ private:
|
|||
*
|
||||
* @param aAdvData [in] advertising data which provided by the LeScan result.
|
||||
*/
|
||||
void UpdatePropertiesFromAdvData(const nsTArray<uint8_t>& aAdvData);
|
||||
void UpdatePropertiesFromAdvData(const nsTArray<uint8_t>& aAdvData);
|
||||
|
||||
/****************************************************************************
|
||||
* Variables
|
||||
|
|
|
@ -143,7 +143,7 @@ BluetoothPairingListener::TryListeningToBluetoothSignal()
|
|||
!HasListenersFor(nsGkAtoms::onenterpincodereq) ||
|
||||
!HasListenersFor(nsGkAtoms::onpairingconfirmationreq) ||
|
||||
!HasListenersFor(nsGkAtoms::onpairingconsentreq)) {
|
||||
BT_LOGR("Pairing listener is not ready to handle pairing requests!");
|
||||
BT_LOGD("Pairing listener is not ready to handle pairing requests!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import org.mozilla.gecko.AppConstants.Versions;
|
|||
import org.mozilla.gecko.db.BrowserDB;
|
||||
import org.mozilla.gecko.db.BrowserContract;
|
||||
import org.mozilla.gecko.favicons.Favicons;
|
||||
import org.mozilla.gecko.home.ImageLoader;
|
||||
import org.mozilla.gecko.util.ThreadUtils;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
|
@ -179,6 +180,7 @@ class MemoryMonitor extends BroadcastReceiver {
|
|||
}
|
||||
|
||||
Favicons.clearMemCache();
|
||||
ImageLoader.clearLruCache();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.net.Uri;
|
|||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
|
||||
import com.squareup.picasso.LruCache;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Downloader.Response;
|
||||
import com.squareup.picasso.UrlConnectionDownloader;
|
||||
|
@ -46,11 +47,14 @@ public class ImageLoader {
|
|||
}
|
||||
}
|
||||
|
||||
// Picasso instance and LruCache lrucache are protected by synchronization.
|
||||
private static Picasso instance;
|
||||
private static LruCache lrucache;
|
||||
|
||||
public static synchronized Picasso with(Context context) {
|
||||
if (instance == null) {
|
||||
Picasso.Builder builder = new Picasso.Builder(context);
|
||||
lrucache = new LruCache(context);
|
||||
Picasso.Builder builder = new Picasso.Builder(context).memoryCache(lrucache);
|
||||
|
||||
final Distribution distribution = Distribution.getInstance(context);
|
||||
builder.downloader(new ImageDownloader(context, distribution));
|
||||
|
@ -60,6 +64,12 @@ public class ImageLoader {
|
|||
return instance;
|
||||
}
|
||||
|
||||
public static synchronized void clearLruCache() {
|
||||
if (lrucache != null) {
|
||||
lrucache.evictAll();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom Downloader built on top of Picasso's UrlConnectionDownloader
|
||||
* that supports loading images from custom URIs.
|
||||
|
|
|
@ -49,7 +49,7 @@ public class SendTabList extends ListView {
|
|||
|
||||
// The maximum number of target devices to show in the main list. Further devices are available
|
||||
// from a secondary menu.
|
||||
public static final int MAXIMUM_INLINE_ELEMENTS = 2;
|
||||
public static final int MAXIMUM_INLINE_ELEMENTS = R.integer.number_of_inline_share_devices;
|
||||
|
||||
private SendTabDeviceListArrayAdapter clientListAdapter;
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?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/. -->
|
||||
|
||||
<resources>
|
||||
|
||||
<integer name="number_of_inline_share_devices">3</integer>
|
||||
|
||||
</resources>
|
|
@ -8,5 +8,6 @@
|
|||
<integer name="number_of_top_sites">9</integer>
|
||||
<integer name="number_of_top_sites_cols">3</integer>
|
||||
<integer name="panel_icon_grid_view_columns">6</integer>
|
||||
<integer name="number_of_inline_share_devices">4</integer>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -9,5 +9,6 @@
|
|||
<integer name="number_of_top_sites_cols">2</integer>
|
||||
<integer name="max_icon_grid_columns">4</integer>
|
||||
<integer name="panel_icon_grid_view_columns">3</integer>
|
||||
<integer name="number_of_inline_share_devices">2</integer>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -45,6 +45,7 @@ let Logins = {
|
|||
|
||||
_getLogins: function() {
|
||||
let logins;
|
||||
this._toggleListBody(true);
|
||||
try {
|
||||
logins = Services.logins.getAllLogins();
|
||||
} catch(e) {
|
||||
|
@ -52,11 +53,25 @@ let Logins = {
|
|||
debug("Master password permissions error: " + e);
|
||||
logins = [];
|
||||
}
|
||||
|
||||
this._toggleListBody(false);
|
||||
logins.sort((a, b) => a.hostname.localeCompare(b.hostname));
|
||||
return this._logins = logins;
|
||||
},
|
||||
|
||||
_toggleListBody: function(isLoading) {
|
||||
let nonemptyBody = document.getElementById("logins-list-nonempty-body");
|
||||
let loadingBody = document.getElementById("logins-list-loading-body");
|
||||
|
||||
if (isLoading) {
|
||||
nonemptyBody.classList.add("hidden");
|
||||
loadingBody.classList.remove("hidden");
|
||||
} else {
|
||||
loadingBody.classList.add("hidden");
|
||||
nonemptyBody.classList.remove("hidden");
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
init: function () {
|
||||
window.addEventListener("popstate", this , false);
|
||||
|
||||
|
|
|
@ -36,6 +36,11 @@
|
|||
<div id="filter-clear"/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="logins-list-loading-body" class="hidden">
|
||||
<div id="loading-img-container">
|
||||
<object type="image/svg+xml" id="spinner" data="chrome://browser/skin/images/spinning_throbber.svg"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="edit-login-page" class="hidden">
|
||||
|
|
|
@ -184,3 +184,15 @@ body {
|
|||
background-image: url("resource://android/res/drawable-xhdpi-v4/favicon_globe.png");
|
||||
}
|
||||
}
|
||||
|
||||
#loading-img-container{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#spinner {
|
||||
margin-top: 60px;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- 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 class="spinner" width="65px" height="65px" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
|
||||
<style type="text/css">
|
||||
.spinner {
|
||||
animation: rotator 1.4s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes rotator {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
}
|
||||
|
||||
.path {
|
||||
stroke-dasharray: 187;
|
||||
stroke-dashoffset: 0;
|
||||
transform-origin: center;
|
||||
animation: dash 1.4s ease-in-out infinite, colors 5.6s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes colors {
|
||||
0% {
|
||||
stroke: #FF9500;
|
||||
}
|
||||
25% {
|
||||
stroke: #FF9500;
|
||||
}
|
||||
50% {
|
||||
stroke: #FF9500;
|
||||
}
|
||||
75% {
|
||||
stroke: #FF9500;
|
||||
}
|
||||
100% {
|
||||
stroke: #FF9500;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes dash {
|
||||
0% {
|
||||
stroke-dashoffset: 187;
|
||||
}
|
||||
50% {
|
||||
stroke-dashoffset: 46.75;
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
100% {
|
||||
stroke-dashoffset: 187;
|
||||
transform: rotate(450deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle>
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 1.4 KiB |
|
@ -45,6 +45,7 @@ chrome.jar:
|
|||
|
||||
#ifdef NIGHTLY_BUILD
|
||||
* skin/aboutLogins.css (aboutLogins.css)
|
||||
skin/images/spinning_throbber.svg (images/spinning_throbber.svg)
|
||||
#endif
|
||||
|
||||
skin/images/search.png (images/search.png)
|
||||
|
|
|
@ -471,15 +471,6 @@ HostDB_ClearEntry(PLDHashTable *table,
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
{
|
||||
MutexAutoLock lock(he->rec->addr_info_lock);
|
||||
if (he->rec->addr_info) {
|
||||
delete hr->addr_info;
|
||||
he->rec->addr_info = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
NS_RELEASE(he->rec);
|
||||
}
|
||||
|
||||
|
@ -862,12 +853,8 @@ nsHostResolver::ResolveHost(const char *host,
|
|||
LOG((" Trying AF_UNSPEC entry for host [%s%s%s] af: %s.\n",
|
||||
LOG_HOST(host, netInterface),
|
||||
(af == PR_AF_INET) ? "AF_INET" : "AF_INET6"));
|
||||
// Ensure existing `addr_info` in `he` is cleared before
|
||||
// copying from `unSpecHe`.
|
||||
if (he->rec->addr_info) {
|
||||
delete he->rec->addr_info;
|
||||
he->rec->addr_info = nullptr;
|
||||
}
|
||||
|
||||
he->rec->addr_info = nullptr;
|
||||
if (unspecHe->rec->negative) {
|
||||
he->rec->negative = unspecHe->rec->negative;
|
||||
he->rec->CopyExpirationTimesAndFlagsFrom(unspecHe->rec);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* about account state changes.
|
||||
*/
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["FxAccountsWebChannel"];
|
||||
this.EXPORTED_SYMBOLS = ["EnsureFxAccountsWebChannel"];
|
||||
|
||||
const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||
|
||||
|
@ -311,3 +311,21 @@ this.FxAccountsWebChannelHelpers.prototype = {
|
|||
return pressed === 0; // 0 is the "continue" button
|
||||
}
|
||||
};
|
||||
|
||||
let singleton;
|
||||
// The entry-point for this module, which ensures only one of our channels is
|
||||
// ever created - we require this because the WebChannel is global in scope
|
||||
// (eg, it uses the observer service to tell interested parties of interesting
|
||||
// things) and allowing multiple channels would cause such notifications to be
|
||||
// sent multiple times.
|
||||
this.EnsureFxAccountsWebChannel = function() {
|
||||
if (!singleton) {
|
||||
let contentUri = Services.urlFormatter.formatURLPref("identity.fxaccounts.remote.webchannel.uri");
|
||||
// The FxAccountsWebChannel listens for events and updates
|
||||
// the state machine accordingly.
|
||||
singleton = new this.FxAccountsWebChannel({
|
||||
content_uri: contentUri,
|
||||
channel_id: WEBCHANNEL_ID,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"repo": "https://hg.mozilla.org/build/mozharness",
|
||||
"revision": "239491bc393a"
|
||||
"revision": "565f7f26ec17"
|
||||
}
|
||||
|
|
|
@ -727,6 +727,11 @@
|
|||
<property name="selected" readonly="true"
|
||||
onget="return this.getAttribute('selected') == 'true';"/>
|
||||
|
||||
<!--
|
||||
This code is the same as in browser/base/content/tabbrowser.xml,
|
||||
except for the _tabAttrModified call. If you modify it, tabbrowser.xml
|
||||
should probably also be modified.
|
||||
-->
|
||||
<property name="_visuallySelected">
|
||||
<setter>
|
||||
<![CDATA[
|
||||
|
|
Загрузка…
Ссылка в новой задаче