mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Merge b2ginbound to central, a=merge
This commit is contained in:
commit
276a64cd67
@ -244,6 +244,9 @@ pref("security.alternate_certificate_error_page", "certerror");
|
||||
|
||||
pref("security.warn_viewing_mixed", false); // Warning is disabled. See Bug 616712.
|
||||
|
||||
// Block insecure active content on https pages
|
||||
pref("security.mixed_content.block_active_content", true);
|
||||
|
||||
// 2 = strict certificate pinning checks.
|
||||
// This default preference is more strict than Firefox because B2G
|
||||
// currently does not have a way to install local root certificates.
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<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="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
@ -123,7 +123,7 @@
|
||||
<project name="platform/system/media" path="system/media" revision="c1332c21c608f4932a6d7e83450411cde53315ef"/>
|
||||
<default remote="caf" revision="LNX.LA.3.5.2.1.1" sync-j="4"/>
|
||||
<!-- Platform common things -->
|
||||
<project name="device-shinano-common" path="device/sony/shinano-common" remote="b2g" revision="4a5672c356ba539095109d827ba103cd8dfdcf1a"/>
|
||||
<project name="device-shinano-common" path="device/sony/shinano-common" remote="b2g" revision="070ec6f75572a336b7b80db406b11398e5089626"/>
|
||||
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="1bb28abbc215f45220620af5cd60a8ac1be93722"/>
|
||||
<project name="device/qcom/common" path="device/qcom/common" revision="2501e5940ba69ece7654ff85611c76ae5bda299c"/>
|
||||
<project name="codeaurora_kernel_msm" path="kernel" remote="b2g" revision="d620691cad7aee780018e98159ff03bf99840317"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<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="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="4ace9aaee0e048dfda11bb787646c59982a3dc80"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="3b9a47b517d345b8d98bc7f787b9a6c2f51ca75d"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="0c28789b9957913be975eb002a22323f93585d4c"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="4ace9aaee0e048dfda11bb787646c59982a3dc80"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<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="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"git": {
|
||||
"git_revision": "29ce8ec8606e59f582375234440812b046346513",
|
||||
"git_revision": "f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86",
|
||||
"remote": "https://git.mozilla.org/releases/gaia.git",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "9ba6b51b109bb675c8c8c2687c75b088df7e50ac",
|
||||
"revision": "4112549b51a4790f29bfb983c1f04fc5f4cc569e",
|
||||
"repo_path": "integration/gaia-central"
|
||||
}
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<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="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="3b9a47b517d345b8d98bc7f787b9a6c2f51ca75d"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="0c28789b9957913be975eb002a22323f93585d4c"/>
|
||||
|
@ -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="29ce8ec8606e59f582375234440812b046346513"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="f4c7fbf7a3ae24315b7937c77cdaf7cdb127ff86"/>
|
||||
<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="c1bbb66f52f9e2d76ce97e7b3aa0cb29957cd7d8"/>
|
||||
|
@ -774,6 +774,11 @@ AudioChannelService::SetAudioChannelMuted(nsPIDOMWindow* aWindow,
|
||||
MOZ_ASSERT(aWindow);
|
||||
MOZ_ASSERT(aWindow->IsOuterWindow());
|
||||
|
||||
if (aAudioChannel == AudioChannel::System) {
|
||||
// Workaround for bug1183033, system channel type can always playback.
|
||||
return;
|
||||
}
|
||||
|
||||
AudioChannelWindow* winData = GetOrCreateWindowData(aWindow);
|
||||
winData->mChannels[(uint32_t)aAudioChannel].mMuted = aMuted;
|
||||
RefreshAgentsVolume(aWindow);
|
||||
|
@ -175,7 +175,10 @@ private:
|
||||
{
|
||||
explicit AudioChannelWindow(uint64_t aWindowID)
|
||||
: mWindowID(aWindowID)
|
||||
{}
|
||||
{
|
||||
// Workaround for bug1183033, system channel type can always playback.
|
||||
mChannels[(int16_t)AudioChannel::System].mMuted = false;
|
||||
}
|
||||
|
||||
uint64_t mWindowID;
|
||||
AudioChannelConfig mChannels[NUMBER_OF_AUDIO_CHANNELS];
|
||||
|
@ -77,6 +77,7 @@
|
||||
#include "nsIAppsService.h"
|
||||
#include "mozIApplication.h"
|
||||
#include "WidgetUtils.h"
|
||||
#include "nsIPresentationService.h"
|
||||
|
||||
#ifdef MOZ_MEDIA_NAVIGATOR
|
||||
#include "mozilla/dom/MediaDevices.h"
|
||||
@ -2620,6 +2621,64 @@ Navigator::HasTVSupport(JSContext* aCx, JSObject* aGlobal)
|
||||
return status == nsIPrincipal::APP_STATUS_CERTIFIED;
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
Navigator::HasPresentationSupport(JSContext* aCx, JSObject* aGlobal)
|
||||
{
|
||||
JS::Rooted<JSObject*> global(aCx, aGlobal);
|
||||
|
||||
nsCOMPtr<nsPIDOMWindow> win = GetWindowFromGlobal(global);
|
||||
if (NS_WARN_IF(!win)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Grant access if it has the permission.
|
||||
if (CheckPermission(win, "presentation")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Grant access to browser receiving pages and their same-origin iframes. (App
|
||||
// pages should be controlled by "presentation" permission in app manifests.)
|
||||
mozilla::dom::ContentChild* cc =
|
||||
mozilla::dom::ContentChild::GetSingleton();
|
||||
if (!cc || !cc->IsForBrowser()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDOMWindow> top;
|
||||
nsresult rv = win->GetTop(getter_AddRefs(top));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIScriptObjectPrincipal> sop = do_QueryInterface(win);
|
||||
nsCOMPtr<nsIScriptObjectPrincipal> topSop = do_QueryInterface(top);
|
||||
if (!sop || !topSop) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsIPrincipal* principal = sop->GetPrincipal();
|
||||
nsIPrincipal* topPrincipal = topSop->GetPrincipal();
|
||||
if (!principal || !topPrincipal || !principal->Subsumes(topPrincipal)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsPIDOMWindow> piTop = do_QueryInterface(top);
|
||||
if (!piTop || !(piTop = piTop->GetCurrentInnerWindow())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIPresentationService> presentationService =
|
||||
do_GetService(PRESENTATION_SERVICE_CONTRACTID);
|
||||
if (NS_WARN_IF(!presentationService)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nsAutoString sessionId;
|
||||
presentationService->GetExistentSessionIdAtLaunch(piTop->WindowID(), sessionId);
|
||||
return !sessionId.IsEmpty();
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool
|
||||
Navigator::IsE10sEnabled(JSContext* aCx, JSObject* aGlobal)
|
||||
|
@ -335,6 +335,8 @@ public:
|
||||
|
||||
static bool HasTVSupport(JSContext* aCx, JSObject* aGlobal);
|
||||
|
||||
static bool HasPresentationSupport(JSContext* aCx, JSObject* aGlobal);
|
||||
|
||||
static bool IsE10sEnabled(JSContext* aCx, JSObject* aGlobal);
|
||||
|
||||
nsPIDOMWindow* GetParentObject() const
|
||||
|
@ -1590,6 +1590,11 @@ HTMLMediaElement::Seek(double aTime,
|
||||
// MediaDecoderReaders.
|
||||
|
||||
mPlayingBeforeSeek = IsPotentiallyPlaying();
|
||||
// Set the Variable if the Seekstarted while active playing
|
||||
if (mPlayingThroughTheAudioChannel) {
|
||||
mPlayingThroughTheAudioChannelBeforeSeek = true;
|
||||
}
|
||||
|
||||
// The media backend is responsible for dispatching the timeupdate
|
||||
// event if it changes the playback position as a result of the seek.
|
||||
LOG(LogLevel::Debug, ("%p SetCurrentTime(%f) starting seek", this, aTime));
|
||||
@ -3545,10 +3550,6 @@ void HTMLMediaElement::PlaybackEnded()
|
||||
void HTMLMediaElement::SeekStarted()
|
||||
{
|
||||
DispatchAsyncEvent(NS_LITERAL_STRING("seeking"));
|
||||
// Set the Variable if the Seekstarted while active playing
|
||||
if(mPlayingThroughTheAudioChannel) {
|
||||
mPlayingThroughTheAudioChannelBeforeSeek = true;
|
||||
}
|
||||
}
|
||||
|
||||
void HTMLMediaElement::SeekCompleted()
|
||||
|
@ -28,8 +28,7 @@ function finish() {
|
||||
|
||||
function testConnectionAvailable() {
|
||||
return new Promise(function(aResolve, aReject) {
|
||||
ok(navigator.presentation, "navigator.presentation should be available in OOP pages.");
|
||||
ok(!navigator.presentation.receiver, "Non-receiving OOP pages shouldn't get a presentation receiver instance.");
|
||||
ok(!navigator.presentation, "navigator.presentation shouldn't be available in non-receiving OOP pages.");
|
||||
aResolve();
|
||||
});
|
||||
}
|
||||
|
@ -34,8 +34,8 @@ var connection;
|
||||
|
||||
function testConnectionAvailable() {
|
||||
return new Promise(function(aResolve, aReject) {
|
||||
ok(navigator.presentation, "navigator.presentation should be available.");
|
||||
ok(navigator.presentation.receiver, "navigator.presentation.receiver should be available.");
|
||||
ok(navigator.presentation, "navigator.presentation should be available in OOP receiving pages.");
|
||||
ok(navigator.presentation.receiver, "navigator.presentation.receiver should be available in OOP receiving pages.");
|
||||
|
||||
navigator.presentation.receiver.getConnection().then(
|
||||
function(aConnection) {
|
||||
@ -54,6 +54,16 @@ function testConnectionAvailable() {
|
||||
});
|
||||
}
|
||||
|
||||
function testConnectionAvailableInnerIframe() {
|
||||
return new Promise(function(aResolve, aReject) {
|
||||
var iframe = document.createElement('iframe');
|
||||
iframe.setAttribute('src', './file_presentation_receiver_inner_iframe_oop.html');
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
aResolve();
|
||||
});
|
||||
}
|
||||
|
||||
function testConnectionReady() {
|
||||
return new Promise(function(aResolve, aReject) {
|
||||
connection.onstatechange = function() {
|
||||
@ -94,6 +104,7 @@ function testTerminateConnection() {
|
||||
}
|
||||
|
||||
testConnectionAvailable().
|
||||
then(testConnectionAvailableInnerIframe).
|
||||
then(testConnectionReady).
|
||||
then(testIncomingMessage).
|
||||
then(testTerminateConnection).
|
||||
|
@ -32,9 +32,6 @@ function setup() {
|
||||
gScript.sendAsyncMessage('trigger-device-add');
|
||||
|
||||
// Create a receiver OOP iframe.
|
||||
SpecialPowers.addPermission('presentation', true, { url: receiverUrl,
|
||||
appId: SpecialPowers.Ci.nsIScriptSecurityManager.NO_APP_ID,
|
||||
isInBrowserElement: true });
|
||||
var receiverIframe = document.createElement('iframe');
|
||||
receiverIframe.setAttribute('remote', 'true');
|
||||
receiverIframe.setAttribute('mozbrowser', 'true');
|
||||
@ -72,9 +69,6 @@ function setup() {
|
||||
obs.notifyObservers(promise, 'setup-request-promise', null);
|
||||
|
||||
// Create a non-receiver OOP iframe.
|
||||
SpecialPowers.addPermission('presentation', true, { url: nonReceiverUrl,
|
||||
appId: SpecialPowers.Ci.nsIScriptSecurityManager.NO_APP_ID,
|
||||
isInBrowserElement: true });
|
||||
var nonReceiverIframe = document.createElement('iframe');
|
||||
nonReceiverIframe.setAttribute('remote', 'true');
|
||||
nonReceiverIframe.setAttribute('mozbrowser', 'true');
|
||||
|
@ -32,7 +32,7 @@ function verifyInitialState() {
|
||||
}
|
||||
|
||||
function verifyMtu(aInterfaceName, aMtu) {
|
||||
runEmulatorShellCmdSafe(['ip', 'link', 'show', 'dev', aInterfaceName])
|
||||
return runEmulatorShellCmdSafe(['ip', 'link', 'show', 'dev', aInterfaceName])
|
||||
.then(aLines => {
|
||||
// Sample output:
|
||||
//
|
||||
@ -59,9 +59,7 @@ function testDefaultDataCallMtu() {
|
||||
log("= testDefaultDataCallMtu =");
|
||||
|
||||
return setDataEnabledAndWait(true)
|
||||
.then(aNetworkInfo => {
|
||||
verifyMtu(aNetworkInfo.name, TEST_MTU1);
|
||||
})
|
||||
.then(aNetworkInfo => verifyMtu(aNetworkInfo.name, TEST_MTU1))
|
||||
.then(() => setDataEnabledAndWait(false));
|
||||
}
|
||||
|
||||
@ -72,9 +70,7 @@ function testNonDefaultDataCallMtu() {
|
||||
log("doTestNonDefaultDataCallMtu: " + aType);
|
||||
|
||||
return setupDataCallAndWait(aType)
|
||||
.then(aNetworkInfo => {
|
||||
verifyMtu(aNetworkInfo.name, TEST_MTU2);
|
||||
})
|
||||
.then(aNetworkInfo => verifyMtu(aNetworkInfo.name, TEST_MTU2))
|
||||
.then(() => deactivateDataCallAndWait(aType));
|
||||
}
|
||||
|
||||
|
@ -433,7 +433,7 @@ partial interface Navigator {
|
||||
};
|
||||
|
||||
partial interface Navigator {
|
||||
[Throws, Pref="dom.presentation.enabled", CheckAnyPermissions="presentation", SameObject]
|
||||
[Throws, Pref="dom.presentation.enabled", Func="Navigator::HasPresentationSupport", SameObject]
|
||||
readonly attribute Presentation? presentation;
|
||||
};
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
[Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface Presentation : EventTarget {
|
||||
/*
|
||||
* This should be used by the UA as the default presentation request for the
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
[Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface PresentationAvailability : EventTarget {
|
||||
/*
|
||||
* If there is at least one device discovered by UA, the value is |true|.
|
||||
|
@ -18,7 +18,7 @@ enum PresentationConnectionState
|
||||
};
|
||||
|
||||
[Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface PresentationConnection : EventTarget {
|
||||
/*
|
||||
* Unique id for all existing connections.
|
||||
|
@ -7,7 +7,7 @@
|
||||
[Constructor(DOMString type,
|
||||
optional PresentationConnectionAvailableEventInit eventInitDict),
|
||||
Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface PresentationConnectionAvailableEvent : Event
|
||||
{
|
||||
[SameObject]
|
||||
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
[Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface PresentationReceiver : EventTarget {
|
||||
/*
|
||||
* Get the first connected presentation connection in a receiving browsing
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
[Constructor(DOMString url),
|
||||
Pref="dom.presentation.enabled",
|
||||
CheckAnyPermissions="presentation"]
|
||||
Func="Navigator::HasPresentationSupport"]
|
||||
interface PresentationRequest : EventTarget {
|
||||
/*
|
||||
* A requesting page use start() to start a new connection, and it will be
|
||||
|
@ -13,5 +13,5 @@ RUN pip install awscli
|
||||
RUN npm install -g bower gulp apm grunt-cli
|
||||
|
||||
# Set a default command useful for debugging
|
||||
ENTRYPOINT ["validate_task.py"]
|
||||
ENTRYPOINT ["bootstrap.py"]
|
||||
|
||||
|
@ -1 +1 @@
|
||||
0.0.22
|
||||
0.1.5
|
||||
|
131
testing/docker/phone-builder/bin/bootstrap.py
Executable file
131
testing/docker/phone-builder/bin/bootstrap.py
Executable file
@ -0,0 +1,131 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import json
|
||||
import urllib2
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
import shutil
|
||||
|
||||
HOME = os.getenv('HOME')
|
||||
|
||||
WORKSPACE = os.path.join(HOME, 'workspace')
|
||||
ARTIFACTS_PUBLIC = os.path.normpath(os.path.join(HOME, 'artifacts-public'))
|
||||
SCRIPTS_PATH = os.path.join(HOME, 'bin')
|
||||
COMMANDS = {
|
||||
'phone': 'build-phone.sh',
|
||||
'phone-ota': 'build-phone-ota.sh',
|
||||
'dolphin': 'build-dolphin.sh'
|
||||
}
|
||||
|
||||
# Be careful when adding username containing '.', as it expands to any character
|
||||
# in regular expressions. It must be escaped properly:
|
||||
# right: r'foo\.bar',
|
||||
# wrong: 'foo.bar' # matches fooabar, foo1bar, foo_bar, etc
|
||||
|
||||
github_allowed_accounts = [
|
||||
'walac',
|
||||
'nhirata',
|
||||
'selenamarie',
|
||||
'ShakoHo',
|
||||
]
|
||||
|
||||
bitbucket_allowed_accounts = [
|
||||
'walac',
|
||||
'selenamarie',
|
||||
]
|
||||
|
||||
def build_repo_matcher():
|
||||
github_expr = r'(github\.com/(' + '|'.join(github_allowed_accounts) + ')/)'
|
||||
bitbucket_expr = r'(bitbucket\.org/(' + '|'.join(bitbucket_allowed_accounts) + ')/)'
|
||||
mozilla_expr = r'((hg|git)\.mozilla\.org)'
|
||||
expr = r'^https?://(' + '|'.join((github_expr, bitbucket_expr, mozilla_expr)) + ')'
|
||||
return re.compile(expr)
|
||||
|
||||
repo_matcher = build_repo_matcher()
|
||||
|
||||
def get_task(taskid):
|
||||
return json.load(urllib2.urlopen('https://queue.taskcluster.net/v1/task/' + taskid))
|
||||
|
||||
def check_repo(repo):
|
||||
if not repo_matcher.match(repo):
|
||||
print('Invalid repository "{}"'.format(repo), file=sys.stderr)
|
||||
return -1
|
||||
return 0
|
||||
|
||||
# Cleanup artifacts and known credentials. This is to avoid a malicious
|
||||
# task to map a directory containing sensible files expose secret files.
|
||||
def cleanup(task):
|
||||
payload = task['payload']
|
||||
for key, value in payload.get('artifacts', {}).items():
|
||||
shutil.rmtree(value['path'], ignore_errors=True)
|
||||
|
||||
shutil.rmtree(os.path.join(HOME, '.aws'), ignore_errors=True)
|
||||
|
||||
try:
|
||||
os.remove(os.path.join(HOME, 'socorro.token'))
|
||||
except (IOError, OSError):
|
||||
pass
|
||||
|
||||
def check_task(task):
|
||||
repositories_to_check = [
|
||||
'GECKO_HEAD_REPOSITORY',
|
||||
'GECKO_BASE_REPOSITORY',
|
||||
]
|
||||
|
||||
payload = task['payload']
|
||||
|
||||
for repo in repositories_to_check:
|
||||
if repo not in payload['env']:
|
||||
print('Repository {} is not in payload.env.'.format(repo), file=sys.stderr)
|
||||
return -1
|
||||
ret = check_repo(payload['env'][repo])
|
||||
if ret != 0:
|
||||
return ret
|
||||
|
||||
for key, value in payload.get('artifacts', {}).items():
|
||||
if key.startswith('public') and \
|
||||
os.path.normpath(value['path']) != ARTIFACTS_PUBLIC:
|
||||
print('{} cannot be a public artifact.'.format(value['path']),
|
||||
file=sys.stderr)
|
||||
return -1
|
||||
|
||||
if sys.argv[1] not in COMMANDS:
|
||||
print("Invalid build command '{}', valid commands are '{}'".format(sys.argv[1], ", ".join(COMMANDS.keys())))
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
def run():
|
||||
command = COMMANDS[sys.argv[1]]
|
||||
|
||||
checkout_gecko = ['checkout-gecko', WORKSPACE]
|
||||
cd_scripts = ['cd', SCRIPTS_PATH]
|
||||
build = ['buildbot_step', '"Build"', os.path.join(SCRIPTS_PATH, command), WORKSPACE]
|
||||
and_ = ['&&']
|
||||
command = ' '.join(checkout_gecko + and_ + cd_scripts + and_ + build)
|
||||
|
||||
try:
|
||||
return subprocess.call(command, shell=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
return e.returncode
|
||||
|
||||
def main():
|
||||
taskid = os.getenv('TASK_ID')
|
||||
|
||||
# If the task id is None, we assume we are running docker locally
|
||||
if taskid is not None:
|
||||
task = get_task(taskid)
|
||||
ret = check_task(task)
|
||||
if ret != 0:
|
||||
cleanup(task)
|
||||
return ret
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
return run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
@ -4,7 +4,7 @@
|
||||
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
PATH=$DIRNAME:$PATH
|
||||
|
||||
WORKSPACE=$1
|
||||
export WORKSPACE=$HOME/workspace
|
||||
|
||||
gecko_objdir=/home/worker/objdir-gecko/objdir
|
||||
|
||||
@ -16,7 +16,10 @@ test $GECKO_HEAD_REV # Should be an hg revision to pull down
|
||||
test $TARGET
|
||||
test $VARIANT
|
||||
|
||||
. ../builder/setup-ccache.sh
|
||||
export CCACHE_DIR=$WORKSPACE/ccache
|
||||
|
||||
ccache -M 12G
|
||||
ccache -s
|
||||
|
||||
# Figure out where the remote manifest is so we can use caches for it.
|
||||
MANIFEST=$(repository-url.py $GECKO_HEAD_REPOSITORY $GECKO_HEAD_REV b2g/config/$TARGET/sources.xml)
|
@ -1,67 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import os.path
|
||||
import json
|
||||
import urllib2
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
repo_matcher = re.compile(r'[a-z]+://(hg|git)\.mozilla\.org')
|
||||
|
||||
def get_task(taskid):
|
||||
return json.load(urllib2.urlopen('https://queue.taskcluster.net/v1/task/' + taskid))
|
||||
|
||||
def check_task(task):
|
||||
payload = task['payload']
|
||||
|
||||
if 'GECKO_HEAD_REPOSITORY' not in payload['env']:
|
||||
print('Task has no head gecko repository', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
repo = payload['env']['GECKO_HEAD_REPOSITORY']
|
||||
# if it is not a mozilla repository, fail
|
||||
if not repo_matcher.match(repo):
|
||||
print('Invalid head repository', repo, file=sys.stderr)
|
||||
return -1
|
||||
|
||||
if 'GECKO_BASE_REPOSITORY' not in payload['env']:
|
||||
print('Task has no base gecko repository', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
repo = payload['env']['GECKO_BASE_REPOSITORY']
|
||||
if not repo_matcher.match(repo):
|
||||
print('Invalid base repository', repo, file=sys.stderr)
|
||||
return -1
|
||||
|
||||
locations = task["extra"]["locations"]
|
||||
if "img" in locations:
|
||||
img = locations["img"]
|
||||
if img.startswith("public"):
|
||||
print('Cannot upload images to public', file=sys.stderr)
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
def main():
|
||||
taskid = os.getenv('TASK_ID')
|
||||
|
||||
# If the task id is None, we assume we are running docker locally
|
||||
if taskid is not None:
|
||||
task = get_task(taskid)
|
||||
ret = check_task(task)
|
||||
if ret != 0:
|
||||
return ret
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
try:
|
||||
return subprocess.call(sys.argv[1:], shell=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
return e.returncode
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
@ -23,13 +23,13 @@ task:
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
|
||||
GECKO_BASE_REPOSITORY: 'http://github.com/mozilla/gecko-dev'
|
||||
|
||||
image: 'quay.io/mozilla/phone-builder:0.0.1'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
- phone
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
|
52
testing/docker/phone-builder/tests/invalid_command.yml
Normal file
52
testing/docker/phone-builder/tests/invalid_command.yml
Normal file
@ -0,0 +1,52 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G flame-kk opt
|
||||
description: B2G flame-kk opt
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-phone-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-phone-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: '{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
expires: '{{#from_now}}1 year{{/from_now}}'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'private/build/b2g-android-arm.tar.gz'
|
||||
img: 'private/build/flame-kk.zip'
|
||||
tests: 'private/build/gaia.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -22,14 +22,14 @@ task:
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
|
||||
GECKO_HEAD_REPOSITORY: 'http://bitbucket.org/mozilla/gecko-dev'
|
||||
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: 'quay.io/mozilla/phone-builder:0.0.1'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
- phone
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
|
@ -29,7 +29,7 @@ task:
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
- phone
|
||||
|
||||
artifacts:
|
||||
'public/build':
|
||||
@ -41,10 +41,11 @@ task:
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'public/build/emulator.tar.gz'
|
||||
tests: 'public/build/b2g-tests.zip'
|
||||
symbols: 'public/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'public/build/sources.xml'
|
||||
build: 'private/build/emulator.tar.gz'
|
||||
tests: 'private/build/b2g-tests.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
img: 'private/build/image.zip'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -4,28 +4,31 @@ import unittest
|
||||
import sys
|
||||
import yaml
|
||||
sys.path.append('../bin')
|
||||
from validate_task import check_task
|
||||
from bootstrap import check_task
|
||||
import glob
|
||||
|
||||
def load_task(task_file):
|
||||
content = open(task_file, 'r')
|
||||
return yaml.load(content)['task']
|
||||
task = yaml.load(content)['task']
|
||||
sys.argv[1:] = task['payload']['command']
|
||||
return task
|
||||
|
||||
class TaskValidationTest(unittest.TestCase):
|
||||
def test_valid_task(self):
|
||||
task = load_task('valid.yml')
|
||||
self.assertEquals(check_task(task), 0)
|
||||
def __init__(self, methodName='runTest'):
|
||||
super(TaskValidationTest, self).__init__(methodName)
|
||||
sys.argv.append('')
|
||||
|
||||
def test_invalid_base_repo(self):
|
||||
task = load_task('invalid_base_repo.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
def test_valid_tasks(self):
|
||||
valid_tasks = glob.glob('valid*.yml')
|
||||
for t in valid_tasks:
|
||||
task = load_task(t)
|
||||
self.assertEqual(check_task(task), 0)
|
||||
|
||||
def test_invalid_head_repo(self):
|
||||
task = load_task('invalid_head_repo.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
|
||||
def test_public_artifact(self):
|
||||
task = load_task('public.yml')
|
||||
self.assertEquals(check_task(task), -1)
|
||||
def test_invalid_tasks(self):
|
||||
invalid_tasks = glob.glob('invalid*.yml')
|
||||
for t in invalid_tasks:
|
||||
task = load_task(t)
|
||||
self.assertNotEquals(check_task(task), 0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
@ -23,13 +23,13 @@ task:
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
|
||||
GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-central'
|
||||
|
||||
image: '{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- build-phone.sh
|
||||
- phone
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
|
52
testing/docker/phone-builder/tests/valid_external_repo.yml
Normal file
52
testing/docker/phone-builder/tests/valid_external_repo.yml
Normal file
@ -0,0 +1,52 @@
|
||||
taskId: 1
|
||||
task:
|
||||
metadata:
|
||||
source: http://todo.com/soon
|
||||
owner: user@domain.com
|
||||
name: B2G flame-kk opt
|
||||
description: B2G flame-kk opt
|
||||
|
||||
workerType: b2gbuild
|
||||
provisionerId: aws-provisioner
|
||||
|
||||
scopes:
|
||||
- 'docker-worker:cache:build-phone-objects'
|
||||
- 'docker-worker:image:{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
|
||||
payload:
|
||||
cache:
|
||||
build-phone-objects: '/home/worker/object-folder-flame-kk-1'
|
||||
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
B2G_DEBUG: '1'
|
||||
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
|
||||
REVISION: 'tip'
|
||||
GECKO_HEAD_REPOSITORY: 'http://github.com/walac/gecko-dev'
|
||||
GECKO_BASE_REPOSITORY: 'https://bitbucket.org/walac/gecko-dev'
|
||||
|
||||
image: '{{#docker_image}}phone-builder{{/docker_image}}'
|
||||
maxRunTime: 14400
|
||||
|
||||
command:
|
||||
- phone
|
||||
|
||||
artifacts:
|
||||
'private/build':
|
||||
type: directory
|
||||
path: '/home/worker/artifacts/'
|
||||
expires: '{{#from_now}}1 year{{/from_now}}'
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
# tasks provide the "build" extra field to specify where the build and tests
|
||||
# files are located.
|
||||
locations:
|
||||
build: 'private/build/b2g-android-arm.tar.gz'
|
||||
img: 'private/build/flame-kk.zip'
|
||||
tests: 'private/build/gaia.zip'
|
||||
symbols: 'private/build/b2g-crashreporter-symbols.zip'
|
||||
sources: 'private/build/sources.xml'
|
||||
|
||||
treeherder:
|
||||
symbol: B
|
@ -123,6 +123,30 @@ builds:
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_dolphin_512_eng.yml
|
||||
nexus-4:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_4_user.yml
|
||||
nexus-4-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_4_eng.yml
|
||||
nexus-5l:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_user.yml
|
||||
nexus-5l-eng:
|
||||
platforms:
|
||||
- b2g
|
||||
types:
|
||||
opt:
|
||||
task: tasks/builds/b2g_nexus_5l_eng.yml
|
||||
android-api-11:
|
||||
platforms:
|
||||
- Android
|
||||
|
@ -23,10 +23,7 @@ task:
|
||||
B2G_SYSTEM_APPS: '1'
|
||||
MOZHARNESS_CONFIG: b2g/taskcluster-spark.py
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -23,10 +23,7 @@ task:
|
||||
B2G_SYSTEM_APPS: '1'
|
||||
MOZHARNESS_CONFIG: b2g/taskcluster-spark.py
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -13,10 +13,7 @@ task:
|
||||
DEBUG: 0
|
||||
MOZHARNESS_CONFIG: b2g/taskcluster-spark-ota.py
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone-ota.sh $HOME/workspace
|
||||
- phone-ota
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
|
@ -15,10 +15,7 @@ task:
|
||||
maxRunTime: 7200
|
||||
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-dolphin.sh $HOME/workspace
|
||||
- dolphin
|
||||
|
||||
extra:
|
||||
# Rather then enforcing particular conventions we require that all build
|
||||
|
@ -20,10 +20,7 @@ task:
|
||||
DEBUG: 0
|
||||
VARIANT: userdebug
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -19,10 +19,7 @@ task:
|
||||
TARGET: 'flame-kk'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -12,10 +12,7 @@ task:
|
||||
TARGET: 'flame-kk'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone-ota.sh $HOME/workspace
|
||||
- phone-ota
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
|
@ -16,7 +16,6 @@ task:
|
||||
build-flame-kk-spark-eng-objdir-gecko-{{project}}: /home/worker/objdir-gecko
|
||||
env:
|
||||
TARGET: 'flame-kk'
|
||||
MOZHARNESS_CONFIG: b2g/taskcluster-spark.py
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- staging
|
||||
|
@ -15,11 +15,6 @@ task:
|
||||
env:
|
||||
TARGET: 'nexus-4'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -17,11 +17,6 @@ task:
|
||||
env:
|
||||
TARGET: 'nexus-4-kk'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -18,10 +18,7 @@ task:
|
||||
TARGET: 'nexus-4-kk'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -17,10 +17,7 @@ task:
|
||||
TARGET: 'nexus-4'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -15,11 +15,6 @@ task:
|
||||
env:
|
||||
TARGET: 'nexus-5-l'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -17,10 +17,7 @@ task:
|
||||
TARGET: 'nexus-5-l'
|
||||
DEBUG: 0
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
extra:
|
||||
treeherderEnv:
|
||||
- production
|
||||
|
@ -14,7 +14,4 @@ task:
|
||||
GAIA_KEYBOARD_LAYOUTS: 'en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak'
|
||||
B2G_UPDATE_CHANNEL: 'default'
|
||||
command:
|
||||
- >
|
||||
checkout-gecko workspace &&
|
||||
cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
|
||||
buildbot_step 'Build' ./build-phone.sh $HOME/workspace
|
||||
- phone
|
||||
|
@ -276,6 +276,9 @@ class B2GXPCShellRunner(MozbuildObject):
|
||||
log = kwargs.pop("log")
|
||||
self.log_manager.enable_unstructured()
|
||||
|
||||
if kwargs["device_name"].startswith('emulator') and 'x86' in kwargs["device_name"]:
|
||||
kwargs["emulator"] = 'x86'
|
||||
|
||||
if kwargs["xpcshell"] is None:
|
||||
kwargs["xpcshell"] = "xpcshell"
|
||||
if kwargs["b2g_path"] is None:
|
||||
@ -304,9 +307,6 @@ class B2GXPCShellRunner(MozbuildObject):
|
||||
if kwargs["use_device_libs"] is None:
|
||||
kwargs["use_device_libs"] = True
|
||||
|
||||
if kwargs["device_name"].startswith('emulator') and 'x86' in kwargs["device_name"]:
|
||||
kwargs["emulator"] = 'x86'
|
||||
|
||||
parser = parser_b2g()
|
||||
options = argparse.Namespace(**kwargs)
|
||||
rv = runtestsb2g.run_remote_xpcshell(parser, options, log)
|
||||
|
Loading…
Reference in New Issue
Block a user