Merge m-c to inbound, a=merge

--HG--
extra : commitid : BuzWgtZwBCW
This commit is contained in:
Wes Kocher 2015-11-17 13:23:01 -08:00
commit fbf34fffd5
45 changed files with 286 additions and 218 deletions

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="8d83715f08b7849f16a0dfc88f78d5c3a89c0a54">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="8d83715f08b7849f16a0dfc88f78d5c3a89c0a54">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>

View File

@ -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="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cb4604d5a578efd027277059ce3e0f6e3af59bd1"/>

View File

@ -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="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ac7e9ae8a24ab4a3f3da801ca53f95f39a32b89f"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="94bbf7890326d37f03fd2a6822b6618b08bec8e2"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="8d83715f08b7849f16a0dfc88f78d5c3a89c0a54">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="c9d4fe680662ee44a4bdea42ae00366f5df399cf">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -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="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cb4604d5a578efd027277059ce3e0f6e3af59bd1"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="8d83715f08b7849f16a0dfc88f78d5c3a89c0a54">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>

View File

@ -1,9 +1,9 @@
{
"git": {
"git_revision": "9473dbcbebf4e758a3b73200968efc69071b4312",
"git_revision": "28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5",
"remote": "https://git.mozilla.org/releases/gaia.git",
"branch": ""
},
"revision": "0513f90869b616c88cfaa5fe52ff8ba22a472062",
"revision": "f1fbe09c3fd9e47b2ca2709b471b2c9cfd7a733f",
"repo_path": "integration/gaia-central"
}

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="8d83715f08b7849f16a0dfc88f78d5c3a89c0a54">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
@ -128,7 +128,7 @@
<project name="platform_system_core" path="system/core" remote="b2g" revision="8586f55fe4b015911b48e731b69c592ad82a0807"/>
<default remote="caf" revision="refs/tags/android-4.4.2_r1" sync-j="4"/>
<!-- Nexus 4 specific things -->
<project name="device-mako" path="device/lge/mako" remote="b2g" revision="aea6908cd694b4ef9e7ad64a930d52eab6ab1e17"/>
<project name="device-mako" path="device/lge/mako" remote="b2g" revision="d7b8c7b6be661270437704760a8cfc27ddbf9a9d"/>
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="72ffdf71c68a96309212eb13d63560d66db14c9e"/>
<project name="device_lge_mako-kernel" path="device/lge/mako-kernel" remote="b2g" revision="a49f2c34bc50a07b02f010a53d80477542209a81"/>
<project name="platform/external/libnfc-nci" path="external/libnfc-nci" revision="f37bd545063039e30a92f2550ae78c0e6e4e2d08"/>

View File

@ -18,7 +18,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ac7e9ae8a24ab4a3f3da801ca53f95f39a32b89f"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="94bbf7890326d37f03fd2a6822b6618b08bec8e2"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="c9d4fe680662ee44a4bdea42ae00366f5df399cf">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9473dbcbebf4e758a3b73200968efc69071b4312"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="fake-qemu-kernel" path="prebuilts/qemu-kernel" remote="b2g" revision="939b377d55a2f081d94029a30a75d05e5a20daf3"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="9a58f2e395da17c252f61f28900b5b09aeb813bd"/>
@ -142,7 +142,7 @@
<default remote="caf" revision="refs/tags/android-5.1.0_r1" sync-j="4"/>
<!-- Nexus 5 specific things -->
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="fe7df1bc8dd0fd71571505d7be1c31a4ad1e40fb"/>
<project name="device-hammerhead" path="device/lge/hammerhead" remote="b2g" revision="22ab4b0b7fa7ed7b10c1b0576462008c53127f10"/>
<project name="device-hammerhead" path="device/lge/hammerhead" remote="b2g" revision="1401762a4eea0b92141e8ff3100f93e9d6556fc8"/>
<project name="device_lge_hammerhead-kernel" path="device/lge/hammerhead-kernel" remote="b2g" revision="8b3ffcfdd3d3852eca5488628f8bb2a08acbffa7"/>
<project name="platform/external/libnfc-nci" path="external/libnfc-nci" revision="5d0ae53d9588c3d70c005aec9be94af9a534de16"/>
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="c15b6e266136cd0cdd9b94d0bbed1962d9dd6672"/>

View File

@ -1405,6 +1405,7 @@ pref("loop.debug.twoWayMediaTelemetry", false);
pref("loop.feedback.dateLastSeenSec", 0);
pref("loop.feedback.periodSec", 15770000); // 6 months.
pref("loop.feedback.formURL", "https://www.mozilla.org/firefox/hello/npssurvey/");
pref("loop.feedback.manualFormURL", "https://www.mozilla.org/firefox/hello/feedbacksurvey/");
#ifdef DEBUG
pref("loop.CSP", "default-src 'self' about: file: chrome: http://localhost:*; img-src * data:; font-src 'none'; connect-src wss://*.tokbox.com https://*.opentok.com https://*.tokbox.com wss://*.mozilla.com https://*.mozilla.org wss://*.mozaws.net http://localhost:* ws://localhost:*; media-src blob:");
#else

View File

@ -230,7 +230,7 @@ loop.panel = (function(_, mozL10n) {
*/
handleSubmitFeedback: function(event) {
event.preventDefault();
var helloFeedbackUrl = this.props.mozLoop.getLoopPref("feedback.formURL");
var helloFeedbackUrl = this.props.mozLoop.getLoopPref("feedback.manualFormURL");
this.props.mozLoop.openURL(helloFeedbackUrl);
this.closeWindow();
},

View File

@ -230,7 +230,7 @@ loop.panel = (function(_, mozL10n) {
*/
handleSubmitFeedback: function(event) {
event.preventDefault();
var helloFeedbackUrl = this.props.mozLoop.getLoopPref("feedback.formURL");
var helloFeedbackUrl = this.props.mozLoop.getLoopPref("feedback.manualFormURL");
this.props.mozLoop.openURL(helloFeedbackUrl);
this.closeWindow();
},

View File

@ -493,7 +493,7 @@ describe("loop.panel", function() {
beforeEach(function() {
feedbackUrl = "https://example.com";
fakeMozLoop.getLoopPref = function(pref) {
if (pref === "feedback.formURL") {
if (pref === "feedback.manualFormURL") {
return feedbackUrl;
}

View File

@ -95,15 +95,8 @@ var gSearchPane = {
buildDefaultEngineDropDown: function() {
// This is called each time something affects the list of engines.
let list = document.getElementById("defaultEngine");
let currentEngine;
// First, try to preserve the current selection.
if (list.selectedItem)
currentEngine = list.selectedItem.label;
// If there's no current selection, use the current default engine.
if (!currentEngine)
currentEngine = Services.search.currentEngine.name;
// Set selection to the current default engine.
let currentEngine = Services.search.currentEngine.name;
// If the current engine isn't in the list any more, select the first item.
let engines = gEngineView._engineStore._engines;
@ -411,6 +404,7 @@ EngineStore.prototype = {
added++;
}
}
Services.search.resetToOriginalDefaultEngine();
gSearchPane.showRestoreDefaults(false);
gSearchPane.buildDefaultEngineDropDown();
return added;

View File

@ -332,3 +332,4 @@ devtools.jar:
skin/tooltip/arrow-horizontal-light@2x.png (themes/tooltip/arrow-horizontal-light@2x.png)
skin/tooltip/arrow-vertical-light.png (themes/tooltip/arrow-vertical-light.png)
skin/tooltip/arrow-vertical-light@2x.png (themes/tooltip/arrow-vertical-light@2x.png)
skin/images/reload.svg (themes/images/reload.svg)

View File

@ -89,6 +89,7 @@
<!ENTITY runtimePanel_installsimulator "Install Simulator">
<!ENTITY runtimePanel_noadbhelper "Install ADB Helper">
<!ENTITY runtimePanel_nousbdevice "Can't see your device?">
<!ENTITY runtimePanel_refreshDevices_label "Refresh Devices">
<!-- Lense -->
<!ENTITY details_valid_header "valid">

View File

@ -1,9 +1,6 @@
<!-- 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" width="9" height="12">
<g transform="matrix(1.0251088,0,0,0.85613344,-3.1546734,-888.94343)">
<path d="m 5.1284819,1038.3667 6.4950901,0 -2.7147491,4.6651 2.9438561,0 -8.1148915,9.3081 1.6126718,-6.8973 -2.2701022,0 z" style="fill:white;"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 12" width="16" height="16">
<path d="M5.75 0l-1 5.5 2 .5-3.5 6 1-5-2-.5z" fill="#fff"/>
</svg>

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 364 B

View File

@ -0,0 +1,6 @@
<!-- 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" viewBox="0 0 14 14" width="14" height="14">
<path d="M12,7H6l2.4-2.4C7.6,4,6.6,3.8,5.5,4.1C4.3,4.5,3.3,5.5,3,6.8 C2.6,9,4.3,11,6.5,11c1,0,2-0.5,2.6-1.2l1.7,1c-1.3,1.6-3.3,2.5-5.6,2c-2-0.5-3.6-2.1-4-4.1C0.4,5.1,3.1,2,6.5,2 c1.3,0,2.4,0.4,3.3,1.2L12,1V7z"/>
</svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@ -26,7 +26,7 @@
<label class="panel-header" id="panel-header-runtimeapps" hidden="true">&projectPanel_runtimeApps;</label>
<div id="project-panel-runtimeapps"/>
<label class="panel-header" id="panel-header-tabs" hidden="true">&projectPanel_tabs;
<button class="panel-item project-panel-item-refreshtabs" id="refresh-tabs">&projectMenu_refreshTabs_label;</button>
<button class="project-panel-item-refreshtabs refresh-icon" id="refresh-tabs" title="&projectMenu_refreshTabs_label;"></button>
</label>
<div id="project-panel-tabs"/>
</div>

View File

@ -19,6 +19,7 @@ window.addEventListener("load", function onLoad() {
document.getElementById("runtime-panel-installsimulator").onclick = ShowAddons;
document.getElementById("runtime-panel-noadbhelper").onclick = ShowAddons;
document.getElementById("runtime-panel-nousbdevice").onclick = ShowTroubleShooting;
document.getElementById("refresh-devices").onclick = RefreshScanners;
runtimeList.update();
runtimeList.updateCommands();
}, true);
@ -48,6 +49,10 @@ function ShowSettings() {
runtimeList.showSettings();
}
function RefreshScanners() {
runtimeList.refreshScanners();
}
function DisconnectRuntime() {
window.parent.Cmds.disconnectRuntime();
}

View File

@ -18,7 +18,9 @@
<body>
<div id="runtime-panel">
<div id="runtime-panel-box">
<label class="panel-header">&runtimePanel_usb;</label>
<label class="panel-header">&runtimePanel_usb;
<button class="runtime-panel-item-refreshdevices refresh-icon" id="refresh-devices" title="&runtimePanel_refreshDevices_label;"></button>
</label>
<button class="panel-item" id="runtime-panel-nousbdevice">&runtimePanel_nousbdevice;</button>
<button class="panel-item" id="runtime-panel-noadbhelper">&runtimePanel_noadbhelper;</button>
<div id="runtime-panel-usb"></div>

View File

@ -158,11 +158,7 @@ ProjectList.prototype = {
let tabs = AppManager.tabStore.tabs;
if (tabs.length > 0) {
tabsHeaderNode.removeAttribute("hidden");
} else {
tabsHeaderNode.setAttribute("hidden", "true");
}
tabsHeaderNode.removeAttribute("hidden");
for (let i = 0; i < tabs.length; i++) {
let tab = tabs[i];

View File

@ -86,6 +86,10 @@ RuntimeList.prototype = {
this._Cmds.showAddons();
},
refreshScanners: function() {
RuntimeScanners.scan();
},
updateCommands: function() {
let doc = this._doc;

View File

@ -54,8 +54,8 @@
let panelNode = docProject.querySelector("#project-panel");
let items = panelNode.querySelectorAll(".panel-item");
// 4 controls, + 2 projects
is(items.length, 6, "6 projects in panel");
// 3 controls, + 2 projects
is(items.length, 5, "5 projects in panel");
is(items[3].querySelector("span").textContent, "A name (in app directory)", "Panel text is correct");
is(items[4].querySelector("span").textContent, "hosted manifest name property", "Panel text is correct");

View File

@ -60,7 +60,7 @@
let panelNode = docProject.querySelector("#project-panel");
let items = panelNode.querySelectorAll(".panel-item");
// 4 controls, + 2 projects
is(items.length, 7, "7 projects in panel");
is(items.length, 6, "6 projects in panel");
is(items[3].querySelector("span").textContent, "A name (in app directory)", "Panel text is correct");
is(items[4].querySelector("span").textContent, "hosted manifest name property", "Panel text is correct");

View File

@ -91,21 +91,19 @@ button.panel-item {
cursor: default;
}
#refresh-tabs {
background-color: #FFF;
border-top: 1px solid #EDEDED;
.refresh-icon {
background-image: url("chrome://devtools/skin/images/reload.svg");
height: 14px;
width: 14px;
border: 0;
opacity: 0.6;
display: inline-block;
margin: 3px;
float: right;
padding: 3px;
text-transform: none;
border-right: 1px solid #CCC;
width: auto;
margin: 0 4px 5px 5px;
}
.panel-item:not(:disabled):hover,
button.panel-item:not(:disabled):hover,
#refresh-tabs:hover {
button.panel-item:not(:disabled):hover {
background-color: #CCF0FD;
border-top: 1px solid #EDEDED;
}

View File

@ -97,7 +97,7 @@ window.busy-determined #action-busy-undetermined {
.panel-list {
display: none;
position: relative;
max-width: 180px;
max-width: 190px;
overflow: hidden;
}

View File

@ -7,17 +7,17 @@
const {Cc, Ci} = require("chrome");
const events = require("sdk/event/core");
const protocol = require("devtools/server/protocol");
const {async} = require("devtools/shared/async-utils");
const {Arg, method, RetVal, types} = protocol;
const {LongStringActor} = require("devtools/server/actors/string");
const {DebuggerServer} = require("devtools/server/main");
const Services = require("Services");
const promise = require("promise");
const {isWindowIncluded} = require("devtools/shared/layout/utils");
const { setTimeout, clearTimeout } = require("sdk/timers");
const {setTimeout, clearTimeout} = require("sdk/timers");
loader.lazyImporter(this, "OS", "resource://gre/modules/osfile.jsm");
loader.lazyImporter(this, "Sqlite", "resource://gre/modules/Sqlite.jsm");
loader.lazyImporter(this, "Task", "resource://gre/modules/Task.jsm", "Task");
var gTrackedMessageManager = new Map();
@ -245,7 +245,7 @@ StorageActors.defaults = function(typeName, observationTopic, storeObjectType) {
* @param {window} window
* The window which was added.
*/
onWindowReady: async(function*(window) {
onWindowReady: Task.async(function*(window) {
let host = this.getHostName(window.location);
if (!this.hostVsStores.has(host)) {
yield this.populateStoresForHost(host, window);
@ -329,7 +329,7 @@ StorageActors.defaults = function(typeName, observationTopic, storeObjectType) {
* - total - The total number of entries possible.
* - data - The requested values.
*/
getStoreObjects: method(async(function*(host, names, options = {}) {
getStoreObjects: method(Task.async(function*(host, names, options = {}) {
let offset = options.offset || 0;
let size = options.size || MAX_STORE_OBJECT_COUNT;
if (size > MAX_STORE_OBJECT_COUNT) {
@ -1143,7 +1143,7 @@ StorageActors.createActor({
* method, as that method is called in initialize method of the actor, which
* cannot be asynchronous.
*/
preListStores: async(function*() {
preListStores: Task.async(function*() {
this.hostVsStores = new Map();
for (let host of this.hosts) {
@ -1151,7 +1151,7 @@ StorageActors.createActor({
}
}),
populateStoresForHost: async(function*(host) {
populateStoresForHost: Task.async(function*(host) {
let storeMap = new Map();
let {names} = yield this.getDBNamesForHost(host);
@ -1292,7 +1292,7 @@ var indexedDBHelpers = {
* `name` for the given `host`. The stored metadata information is of
* `DatabaseMetadata` type.
*/
getDBMetaData: async(function*(host, name) {
getDBMetaData: Task.async(function*(host, name) {
let request = this.openWithOrigin(host, name);
let success = promise.defer();
@ -1333,7 +1333,7 @@ var indexedDBHelpers = {
/**
* Fetches all the databases and their metadata for the given `host`.
*/
getDBNamesForHost: async(function*(host) {
getDBNamesForHost: Task.async(function*(host) {
let sanitizedHost = this.getSanitizedHost(host);
let directory = OS.Path.join(OS.Constants.Path.profileDir, "storage",
"default", sanitizedHost, "idb");
@ -1389,7 +1389,7 @@ var indexedDBHelpers = {
* Retrieves the proper indexed db database name from the provided .sqlite
* file location.
*/
getNameFromDatabaseFile: async(function*(path) {
getNameFromDatabaseFile: Task.async(function*(path) {
let connection = null;
let retryCount = 0;
@ -1422,7 +1422,7 @@ var indexedDBHelpers = {
}),
getValuesForHost:
async(function*(host, name = "null", options, hostVsStores) {
Task.async(function*(host, name = "null", options, hostVsStores) {
name = JSON.parse(name);
if (!name || !name.length) {
// This means that details about the db in this particular host are
@ -1824,7 +1824,7 @@ var StorageActor = exports.StorageActor = protocol.ActorClass({
* host: <hostname>
* }]
*/
listStores: method(async(function*() {
listStores: method(Task.async(function*() {
let toReturn = {};
for (let [name, value] of this.childActorPool) {

View File

@ -17,20 +17,6 @@ var {Cu} = require("chrome");
var {Task} = require("resource://gre/modules/Task.jsm");
var Promise = require("promise");
/**
* Create an async function from a generator function.
*
* @param Function func
* The generator function that to wrap as an async function.
* @return Function
* The async function.
*/
exports.async = function async(func) {
return function(...args) {
return Task.spawn(func.apply(this, args));
};
};
/**
* Create an async function that only executes once per instance of an object.
* Once called on a given object, the same promise will be returned for any

View File

@ -12,16 +12,15 @@ Object.defineProperty(this, "Promise", {
value: require("promise"),
writable: false, configurable: false
});
const {async, asyncOnce, promiseInvoke, promiseCall} = require("devtools/shared/async-utils");
const {asyncOnce, promiseInvoke, promiseCall} = require("devtools/shared/async-utils");
function run_test() {
do_test_pending();
Task.spawn(function*() {
for (let helper of [async, asyncOnce]) {
yield test_async_args(helper);
yield test_async_return(helper);
yield test_async_throw(helper);
}
yield test_async_args(asyncOnce);
yield test_async_return(asyncOnce);
yield test_async_throw(asyncOnce);
yield test_async_once();
yield test_async_invoke();
do_test_finished();

View File

@ -154,13 +154,10 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mAppUuid, appUuidStr);
// Notify application to clear the cache values of
// service/characteristic/descriptor.
bs->DistributeSignal(NS_LITERAL_STRING("DiscoverCompleted"),
appUuidStr,
mAppUuid,
BluetoothValue(aSuccess));
// Resolve/Reject the Promise.
@ -659,13 +656,10 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mClient->mAppUuid, appUuidStr);
// Notify BluetoothGatt for client disconnected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
mClient->mAppUuid,
BluetoothValue(false)); // Disconnected
// Reject the connect request
@ -698,12 +692,9 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mClient->mAppUuid, appUuidStr);
// Notify BluetoothGatt to clear the clientIf
bs->DistributeSignal(NS_LITERAL_STRING("ClientUnregistered"),
appUuidStr);
mClient->mAppUuid);
// Resolve the unregister request
DispatchReplySuccess(mClient->mUnregisterClientRunnable);
@ -906,13 +897,10 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mClient->mAppUuid, appUuidStr);
// Notify BluetoothGatt for client disconnected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
mClient->mAppUuid,
BluetoothValue(false)); // Disconnected
// Reject the connect request
@ -976,13 +964,10 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mClient->mAppUuid, appUuidStr);
// Notify BluetoothGatt that the client remains connected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
mClient->mAppUuid,
BluetoothValue(true)); // Connected
// Reject the disconnect request
@ -1836,12 +1821,9 @@ public:
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(mServer->mAppUuid, appUuidStr);
// Notify BluetoothGattServer to clear the serverIf
bs->DistributeSignal(NS_LITERAL_STRING("ServerUnregistered"),
appUuidStr);
mServer->mAppUuid);
// Resolve the unregister request
if (mServer->mUnregisterServerRunnable) {
@ -2543,17 +2525,17 @@ BluetoothGattManager::RegisterClientNotification(BluetoothGattStatus aStatus,
BluetoothService* bs = BluetoothService::Get();
NS_ENSURE_TRUE_VOID(bs);
nsAutoString appUuidStr;
UuidToString(aAppUuid, appUuidStr);
if (aStatus != GATT_STATUS_SUCCESS) {
nsAutoString appUuidStr;
UuidToString(aAppUuid, appUuidStr);
BT_LOGD("RegisterClient failed: clientIf = %d, status = %d, appUuid = %s",
aClientIf, aStatus, NS_ConvertUTF16toUTF8(appUuidStr).get());
// Notify BluetoothGatt for client disconnected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr, BluetoothValue(false)); // Disconnected
aAppUuid, BluetoothValue(false)); // Disconnected
if (client->mStartLeScanRunnable) {
// Reject the LE scan request
@ -2578,7 +2560,7 @@ BluetoothGattManager::RegisterClientNotification(BluetoothGattStatus aStatus,
// Notify BluetoothGatt to update the clientIf
bs->DistributeSignal(
NS_LITERAL_STRING("ClientRegistered"),
appUuidStr, BluetoothValue(uint32_t(aClientIf)));
aAppUuid, BluetoothValue(uint32_t(aClientIf)));
if (client->mStartLeScanRunnable) {
// Client just registered, proceed remaining startLeScan request.
@ -2677,9 +2659,6 @@ BluetoothGattManager::ConnectNotification(int aConnId,
RefPtr<BluetoothGattClient> client = sClients->ElementAt(index);
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
if (aStatus != GATT_STATUS_SUCCESS) {
BT_LOGD("Connect failed: clientIf = %d, connId = %d, status = %d",
aClientIf, aConnId, aStatus);
@ -2687,7 +2666,7 @@ BluetoothGattManager::ConnectNotification(int aConnId,
// Notify BluetoothGatt that the client remains disconnected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(false)); // Disconnected
// Reject the connect request
@ -2705,7 +2684,7 @@ BluetoothGattManager::ConnectNotification(int aConnId,
// Notify BluetoothGatt for client connected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(true)); // Connected
// Resolve the connect request
@ -2733,14 +2712,11 @@ BluetoothGattManager::DisconnectNotification(
RefPtr<BluetoothGattClient> client = sClients->ElementAt(index);
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
if (aStatus != GATT_STATUS_SUCCESS) {
// Notify BluetoothGatt that the client remains connected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(true)); // Connected
// Reject the disconnect request
@ -2758,7 +2734,7 @@ BluetoothGattManager::DisconnectNotification(
// Notify BluetoothGatt for client disconnected
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(false)); // Disconnected
// Resolve the disconnect request
@ -2789,12 +2765,9 @@ BluetoothGattManager::SearchCompleteNotification(int aConnId,
return;
}
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
// Notify BluetoothGatt to create all services
bs->DistributeSignal(NS_LITERAL_STRING("ServicesDiscovered"),
appUuidStr,
client->mAppUuid,
BluetoothValue(client->mServices));
// All services are discovered, continue to search included services of each
@ -2872,11 +2845,8 @@ BluetoothGattManager::GetCharacteristicNotification(
AppendNamedValue(values, "serviceId", aServiceId);
AppendNamedValue(values, "characteristics", client->mCharacteristics);
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
bs->DistributeSignal(NS_LITERAL_STRING("CharacteristicsDiscovered"),
appUuidStr,
client->mAppUuid,
BluetoothValue(values));
ProceedDiscoverProcess(client, aServiceId);
@ -2922,11 +2892,8 @@ BluetoothGattManager::GetDescriptorNotification(
AppendNamedValue(values, "characteristicId", aCharId);
AppendNamedValue(values, "descriptors", client->mDescriptors);
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
bs->DistributeSignal(NS_LITERAL_STRING("DescriptorsDiscovered"),
appUuidStr,
client->mAppUuid,
BluetoothValue(values));
client->mDescriptors.Clear();
@ -2970,11 +2937,8 @@ BluetoothGattManager::GetIncludedServiceNotification(
AppendNamedValue(values, "serviceId", aServiceId);
AppendNamedValue(values, "includedServices", client->mIncludedServices);
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
bs->DistributeSignal(NS_LITERAL_STRING("IncludedServicesDiscovered"),
appUuidStr,
client->mAppUuid,
BluetoothValue(values));
client->mIncludedServices.Clear();
@ -3045,11 +3009,8 @@ BluetoothGattManager::NotifyNotification(
ids.AppendElement(BluetoothNamedValue(NS_LITERAL_STRING("charId"),
aNotifyParam.mCharId));
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
bs->DistributeSignal(NS_LITERAL_STRING(GATT_CHARACTERISTIC_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(ids));
}
@ -3092,11 +3053,8 @@ BluetoothGattManager::ReadCharacteristicNotification(
ids.AppendElement(BluetoothNamedValue(NS_LITERAL_STRING("charId"),
aReadParam.mCharId));
nsAutoString appUuidStr;
UuidToString(client->mAppUuid, appUuidStr);
bs->DistributeSignal(NS_LITERAL_STRING(GATT_CHARACTERISTIC_CHANGED_ID),
appUuidStr,
client->mAppUuid,
BluetoothValue(ids));
// Resolve the promise
@ -3320,9 +3278,6 @@ BluetoothGattManager::RegisterServerNotification(BluetoothGattStatus aStatus,
{
MOZ_ASSERT(NS_IsMainThread());
nsAutoString appUuidStr;
UuidToString(aAppUuid, appUuidStr);
size_t index = sServers->IndexOf(aAppUuid, 0 /* Start */, UuidComparator());
NS_ENSURE_TRUE_VOID(index != sServers->NoIndex);
@ -3332,6 +3287,9 @@ BluetoothGattManager::RegisterServerNotification(BluetoothGattStatus aStatus,
BluetoothService* bs = BluetoothService::Get();
if (!bs || aStatus != GATT_STATUS_SUCCESS) {
nsAutoString appUuidStr;
UuidToString(aAppUuid, appUuidStr);
BT_LOGD("RegisterServer failed: serverIf = %d, status = %d, appUuid = %s",
aServerIf, aStatus, NS_ConvertUTF16toUTF8(appUuidStr).get());
@ -3362,7 +3320,7 @@ BluetoothGattManager::RegisterServerNotification(BluetoothGattStatus aStatus,
// Notify BluetoothGattServer to update the serverIf
bs->DistributeSignal(
NS_LITERAL_STRING("ServerRegistered"),
appUuidStr, BluetoothValue(uint32_t(aServerIf)));
aAppUuid, BluetoothValue(uint32_t(aServerIf)));
if (server->mConnectPeripheralRunnable) {
// Only one entry exists in the map during first connect peripheral request
@ -3409,16 +3367,13 @@ BluetoothGattManager::ConnectionNotification(int aConnId,
nsAutoString bdAddrStr;
AddressToString(aBdAddr, bdAddrStr);
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Notify BluetoothGattServer that connection status changed
InfallibleTArray<BluetoothNamedValue> props;
AppendNamedValue(props, "Connected", aConnected);
AppendNamedValue(props, "Address", bdAddrStr);
bs->DistributeSignal(
NS_LITERAL_STRING(GATT_CONNECTION_STATE_CHANGED_ID),
appUuidStr,
server->mAppUuid,
BluetoothValue(props));
// Resolve or reject connect/disconnect peripheral requests
@ -3466,15 +3421,12 @@ BluetoothGattManager::ServiceAddedNotification(
return;
}
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Notify BluetoothGattServer to update service handle
InfallibleTArray<BluetoothNamedValue> props;
AppendNamedValue(props, "ServiceId", aServiceId);
AppendNamedValue(props, "ServiceHandle", aServiceHandle);
bs->DistributeSignal(NS_LITERAL_STRING("ServiceHandleUpdated"),
appUuidStr,
server->mAppUuid,
BluetoothValue(props));
if (server->mAddServiceState.mRunnable) {
@ -3541,16 +3493,13 @@ BluetoothGattManager::CharacteristicAddedNotification(
return;
}
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Notify BluetoothGattServer to update characteristic handle
InfallibleTArray<BluetoothNamedValue> props;
AppendNamedValue(props, "CharacteristicUuid", aCharId);
AppendNamedValue(props, "ServiceHandle", aServiceHandle);
AppendNamedValue(props, "CharacteristicHandle", aCharacteristicHandle);
bs->DistributeSignal(NS_LITERAL_STRING("CharacteristicHandleUpdated"),
appUuidStr,
server->mAppUuid,
BluetoothValue(props));
if (server->mAddCharacteristicRunnable) {
@ -3587,9 +3536,6 @@ BluetoothGattManager::DescriptorAddedNotification(
return;
}
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Notify BluetoothGattServer to update descriptor handle
InfallibleTArray<BluetoothNamedValue> props;
AppendNamedValue(props, "CharacteristicUuid", aCharId);
@ -3598,7 +3544,7 @@ BluetoothGattManager::DescriptorAddedNotification(
server->mAddDescriptorState.mCharacteristicHandle);
AppendNamedValue(props, "DescriptorHandle", aDescriptorHandle);
bs->DistributeSignal(NS_LITERAL_STRING("DescriptorHandleUpdated"),
appUuidStr,
server->mAppUuid,
BluetoothValue(props));
if (server->mAddDescriptorState.mRunnable) {
@ -3734,9 +3680,6 @@ BluetoothGattManager::RequestReadNotification(
nsAutoString bdAddrStr;
AddressToString(aBdAddr, bdAddrStr);
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Distribute a signal to gattServer
InfallibleTArray<BluetoothNamedValue> properties;
@ -3747,7 +3690,7 @@ BluetoothGattManager::RequestReadNotification(
AppendNamedValue(properties, "Value", new nsTArray<uint8_t>());
bs->DistributeSignal(NS_LITERAL_STRING("ReadRequested"),
appUuidStr,
server->mAppUuid,
properties);
}
@ -3793,9 +3736,6 @@ BluetoothGattManager::RequestWriteNotification(
nsAutoString bdAddrStr;
AddressToString(aBdAddr, bdAddrStr);
nsAutoString appUuidStr;
UuidToString(server->mAppUuid, appUuidStr);
// Distribute a signal to gattServer
InfallibleTArray<BluetoothNamedValue> properties;
@ -3809,7 +3749,7 @@ BluetoothGattManager::RequestWriteNotification(
AppendNamedValue(properties, "Value", value);
bs->DistributeSignal(NS_LITERAL_STRING("WrtieRequested"),
appUuidStr,
server->mAppUuid,
properties);
}

View File

@ -240,8 +240,7 @@ BluetoothService::Cleanup()
void
BluetoothService::RegisterBluetoothSignalHandler(
const nsAString& aNodeName,
BluetoothSignalObserver* aHandler)
const nsAString& aNodeName, BluetoothSignalObserver* aHandler)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(aHandler);
@ -334,6 +333,48 @@ BluetoothService::DistributeSignal(const nsAString& aName,
DistributeSignal(signal);
}
void
BluetoothService::DistributeSignal(const nsAString& aName,
const BluetoothAddress& aAddress)
{
nsAutoString path;
AddressToString(aAddress, path);
DistributeSignal(aName, path);
}
void
BluetoothService::DistributeSignal(const nsAString& aName,
const BluetoothAddress& aAddress,
const BluetoothValue& aValue)
{
nsAutoString path;
AddressToString(aAddress, path);
DistributeSignal(aName, path, aValue);
}
void
BluetoothService::DistributeSignal(const nsAString& aName,
const BluetoothUuid& aUuid)
{
nsAutoString path;
UuidToString(aUuid, path);
DistributeSignal(aName, path);
}
void
BluetoothService::DistributeSignal(const nsAString& aName,
const BluetoothUuid& aUuid,
const BluetoothValue& aValue)
{
nsAutoString path;
UuidToString(aUuid, path);
DistributeSignal(aName, path, aValue);
}
void
BluetoothService::DistributeSignal(const BluetoothSignal& aSignal)
{

View File

@ -107,6 +107,46 @@ public:
DistributeSignal(const nsAString& aName, const nsAString& aPath,
const BluetoothValue& aValue);
/**
* Create a signal without value and distribute it to the observer list
*
* @param aName Name of the signal
* @param aAddress Path of the signal to distribute to
*/
void
DistributeSignal(const nsAString& aName, const BluetoothAddress& aAddress);
/**
* Create a signal and distribute it to the observer list
*
* @param aName Name of the signal
* @param aAddress Path of the signal to distribute to
* @param aValue Value of the signal to carry
*/
void
DistributeSignal(const nsAString& aName, const BluetoothAddress& aAddress,
const BluetoothValue& aValue);
/**
* Create a signal without value and distribute it to the observer list
*
* @param aName Name of the signal
* @param aUuid Path of the signal to distribute to
*/
void
DistributeSignal(const nsAString& aName, const BluetoothUuid& aUuid);
/**
* Create a signal and distribute it to the observer list
*
* @param aName Name of the signal
* @param aUuid Path of the signal to distribute to
* @param aValue Value of the signal to carry
*/
void
DistributeSignal(const nsAString& aName, const BluetoothUuid& aUuid,
const BluetoothValue& aValue);
/**
* Distribute a signal to the observer list
*

View File

@ -440,6 +440,26 @@ RegisterBluetoothSignalHandler(const nsAString& aPath,
aHandler->SetSignalRegistered(true);
}
void
RegisterBluetoothSignalHandler(const BluetoothAddress& aAddress,
BluetoothSignalObserver* aHandler)
{
nsAutoString path;
AddressToString(aAddress, path);
RegisterBluetoothSignalHandler(path, aHandler);
}
void
RegisterBluetoothSignalHandler(const BluetoothUuid& aUuid,
BluetoothSignalObserver* aHandler)
{
nsAutoString path;
UuidToString(aUuid, path);
RegisterBluetoothSignalHandler(path, aHandler);
}
void
UnregisterBluetoothSignalHandler(const nsAString& aPath,
BluetoothSignalObserver* aHandler)
@ -454,6 +474,26 @@ UnregisterBluetoothSignalHandler(const nsAString& aPath,
aHandler->SetSignalRegistered(false);
}
void
UnregisterBluetoothSignalHandler(const BluetoothAddress& aAddress,
BluetoothSignalObserver* aHandler)
{
nsAutoString path;
AddressToString(aAddress, path);
UnregisterBluetoothSignalHandler(path, aHandler);
}
void
UnregisterBluetoothSignalHandler(const BluetoothUuid& aUuid,
BluetoothSignalObserver* aHandler)
{
nsAutoString path;
UuidToString(aUuid, path);
UnregisterBluetoothSignalHandler(path, aHandler);
}
/**
* |SetJsObject| is an internal function used by |BroadcastSystemMessage| only
*/

View File

@ -180,7 +180,7 @@ GeneratePathFromGattId(const BluetoothGattId& aId,
//
/**
* Register the bluetooth signal handler.
* Register the Bluetooth signal handler.
*
* @param aPath Path of the signal to be registered.
* @param aHandler The message handler object to be added into the observer
@ -191,7 +191,29 @@ RegisterBluetoothSignalHandler(const nsAString& aPath,
BluetoothSignalObserver* aHandler);
/**
* Unregister the bluetooth signal handler.
* Register the Bluetooth signal handler.
*
* @param aAddress Address of the signal to be unregistered.
* @param aHandler The message handler object to be added into the observer
* list. Note that this function doesn't take references to it.
*/
void
RegisterBluetoothSignalHandler(const BluetoothAddress& aAddress,
BluetoothSignalObserver* aHandler);
/**
* Register the Bluetooth signal handler.
*
* @param aUuid UUID of the signal to be unregistered.
* @param aHandler The message handler object to be added into the observer
* list. Note that this function doesn't take references to it.
*/
void
RegisterBluetoothSignalHandler(const BluetoothUuid& aUuid,
BluetoothSignalObserver* aHandler);
/**
* Unregister the Bluetooth signal handler.
*
* @param aPath Path of the signal to be unregistered.
* @param aHandler The message handler object to be removed from the observer
@ -201,6 +223,28 @@ void
UnregisterBluetoothSignalHandler(const nsAString& aPath,
BluetoothSignalObserver* aHandler);
/**
* Unregister the Bluetooth signal handler.
*
* @param aAddress Address of the signal to be unregistered.
* @param aHandler The message handler object to be removed from the observer
* list. Note that this function doesn't take references to it.
*/
void
UnregisterBluetoothSignalHandler(const BluetoothAddress& aAddress,
BluetoothSignalObserver* aHandler);
/**
* Unregister the Bluetooth signal handler.
*
* @param aUuid UUID of the signal to be unregistered.
* @param aHandler The message handler object to be removed from the observer
* list. Note that this function doesn't take references to it.
*/
void
UnregisterBluetoothSignalHandler(const BluetoothUuid& aUuid,
BluetoothSignalObserver* aHandler);
//
// Broadcast system message
//

View File

@ -27,7 +27,6 @@ public class RestrictedProfileConfiguration implements RestrictionConfiguration
Restriction.DISALLOW_CLEAR_HISTORY,
Restriction.DISALLOW_MASTER_PASSWORD,
Restriction.DISALLOW_GUEST_BROWSING,
Restriction.DISALLOW_DEFAULT_THEME,
Restriction.DISALLOW_ADVANCED_SETTINGS,
Restriction.DISALLOW_CAMERA_MICROPHONE
);

View File

@ -50,11 +50,9 @@ public enum Restriction {
DISALLOW_GUEST_BROWSING(16, "no_guest_browsing", R.string.restriction_disallow_guest_browsing_title),
DISALLOW_DEFAULT_THEME(17, "no_default_theme", 0),
DISALLOW_ADVANCED_SETTINGS(17, "no_advanced_settings", R.string.restriction_disallow_advanced_settings_title),
DISALLOW_ADVANCED_SETTINGS(18, "no_advanced_settings", R.string.restriction_disallow_advanced_settings_title),
DISALLOW_CAMERA_MICROPHONE(19, "no_camera_microphone", R.string.restriction_disallow_camera_microphone_title);
DISALLOW_CAMERA_MICROPHONE(18, "no_camera_microphone", R.string.restriction_disallow_camera_microphone_title);
public final int id;
public final String name;

View File

@ -58,11 +58,6 @@ public class RestrictionProvider extends BroadcastReceiver {
continue;
}
if (restriction == Restriction.DISALLOW_DEFAULT_THEME) {
// This restriction is not configurable
continue;
}
RestrictionEntry entry = createRestrictionEntryWithDefaultValue(context, restriction,
oldRestrictions.getBoolean(restriction.name, true));
entries.add(entry);

View File

@ -3169,13 +3169,6 @@ var LightWeightThemeWebInstaller = {
BrowserApp.deck.addEventListener("InstallBrowserTheme", this, false, true);
BrowserApp.deck.addEventListener("PreviewBrowserTheme", this, false, true);
BrowserApp.deck.addEventListener("ResetBrowserThemePreview", this, false, true);
if (ParentalControls.parentalControlsEnabled &&
!this._manager.currentTheme &&
!ParentalControls.isAllowed(ParentalControls.DEFAULT_THEME)) {
// We are using the DEFAULT_THEME restriction to differentiate between restricted profiles & guest mode - Bug 1199596
this._installParentalControlsTheme();
}
},
handleEvent: function (event) {
@ -3212,18 +3205,6 @@ var LightWeightThemeWebInstaller = {
return this._manager = temp.LightweightThemeManager;
},
_installParentalControlsTheme: function() {
let mgr = this._manager;
let parentalControlsTheme = {
"headerURL": "resource://android/assets/parental_controls_theme.png",
"name": "Parental Controls Theme",
"id": "parental-controls-theme@mozilla.org"
};
mgr.addBuiltInTheme(parentalControlsTheme);
mgr.themeChanged(parentalControlsTheme);
},
_installRequest: function (event) {
let node = event.target;
let data = this._getThemeFromNode(node);

View File

@ -13,13 +13,13 @@
var helpers = require("../helpers");
var cpows = new Set([
var cpows = [
/^gBrowser\.contentWindow/,
/^gBrowser\.contentDocument/,
/^gBrowser\.selectedBrowser.contentWindow/,
/^browser\.contentDocument/,
/^window\.content/
]);
];
module.exports = function(context) {
//--------------------------------------------------------------------------
@ -45,12 +45,13 @@ module.exports = function(context) {
var expression = context.getSource(node);
for (var cpow of cpows) {
cpows.some(function(cpow) {
if (cpow.test(expression)) {
showError(context, node, expression);
return;
return true;
}
}
return false;
});
if (helpers.getIsGlobalScope(context)) {
if (/^content\./.test(expression)) {
showError(context, node, expression);

View File

@ -11,7 +11,7 @@ interface nsIFile;
interface nsIInterfaceRequestor;
interface nsIArray;
[scriptable, uuid(ca8eb4f8-89bc-4479-91c9-1f381e045ed7)]
[scriptable, uuid(c7713ad7-0804-4353-91d5-4d7f1376bded)]
interface nsIParentalControlsService : nsISupports
{
/**
@ -33,9 +33,8 @@ interface nsIParentalControlsService : nsISupports
const short CLEAR_HISTORY = 14; // Clear browsing history
const short MASTER_PASSWORD = 15; // Setting master password for logins
const short GUEST_BROWSING = 16; // Disallow usage of guest browsing
const short DEFAULT_THEME = 17; // Use default theme or a special parental controls theme
const short ADVANCED_SETTINGS = 18; // Advanced settings
const short CAMERA_MICROPHONE = 19; // Camera and microphone (WebRTC)
const short ADVANCED_SETTINGS = 17; // Advanced settings
const short CAMERA_MICROPHONE = 18; // Camera and microphone (WebRTC)
/**
* @returns true if the current user account has parental controls

View File

@ -105,7 +105,7 @@ enum {
didActivateNotification:(id<FakeNSUserNotification>)notification
{
unsigned long long additionalActionIndex = ULLONG_MAX;
if ([notification respondsToSelector:@selector(get_alternateActionIndex:)]) {
if ([notification respondsToSelector:@selector(_alternateActionIndex)]) {
NSNumber *alternateActionIndex = [(NSObject*)notification valueForKey:@"_alternateActionIndex"];
additionalActionIndex = [alternateActionIndex unsignedLongLongValue];
}