Merge m-c to inbound. a=merge

CLOSED TREE
This commit is contained in:
Ryan VanderMeulen 2015-08-28 12:12:44 -04:00
commit ce8ecfe229
102 changed files with 254 additions and 787 deletions

View File

@ -22,5 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more.
Bug 1195388 - Moving location of generated R.java files requires a
clobber.
Bug 1193379 - Moving location of files under dom/bluetooth requires a clobber

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e935894ef5f27e2f04b9e929a45a958e6288a223">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e935894ef5f27e2f04b9e929a45a958e6288a223">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<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="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="2d58f4b9206b50b8fda0d5036da6f0c62608db7c"/>

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="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="51ebaf824cc634665c5efcae95b8301ad1758c5e"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="b4f6fd4afd03161f53c7d2a663750f94762bd238"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e935894ef5f27e2f04b9e929a45a958e6288a223">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="05a36844c1046a1eb07d5b1325f85ed741f961ea">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<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="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="2d58f4b9206b50b8fda0d5036da6f0c62608db7c"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e935894ef5f27e2f04b9e929a45a958e6288a223">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -1,9 +1,9 @@
{
"git": {
"git_revision": "fa15462b29258fdec8329bfc367e590022dbc9e5",
"git_revision": "7a77326ef8b14ddef4d101efc336d7b26670ef94",
"remote": "https://git.mozilla.org/releases/gaia.git",
"branch": ""
},
"revision": "b575200962cb9cc340aa6b704b8f1cc1ac680176",
"revision": "6eaf499cb32bdf152ff5bf9f607e896a08b14f9c",
"repo_path": "integration/gaia-central"
}

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="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="51ebaf824cc634665c5efcae95b8301ad1758c5e"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="b4f6fd4afd03161f53c7d2a663750f94762bd238"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="05a36844c1046a1eb07d5b1325f85ed741f961ea">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="fa15462b29258fdec8329bfc367e590022dbc9e5"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="7a77326ef8b14ddef4d101efc336d7b26670ef94"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -413,8 +413,8 @@ FAIL_ON_WARNINGS = True
LOCAL_INCLUDES += [
'../battery',
'../bluetooth',
'../bluetooth/bluetooth2',
'../bluetooth/common',
'../bluetooth/common/webapi',
'../events',
'../media',
'../network',

View File

@ -44,8 +44,7 @@ FAIL_ON_WARNINGS = True
LOCAL_INCLUDES += [
'/dom/base',
'/dom/battery',
'/dom/bluetooth',
'/dom/bluetooth/bluetooth2',
'/dom/bluetooth/common/webapi',
'/dom/camera',
'/dom/canvas',
'/dom/geolocation',

View File

@ -12,6 +12,7 @@
#include "BluetoothUuid.h"
#include "ObexBase.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/ipc/BlobParent.h"
#include "mozilla/RefPtr.h"
#include "mozilla/Services.h"

View File

@ -1,457 +0,0 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothRilListener.h"
#include "BluetoothHfpManager.h"
#include "nsIIccService.h"
#include "nsIMobileConnectionInfo.h"
#include "nsIMobileConnectionService.h"
#include "nsITelephonyService.h"
#include "nsServiceManagerUtils.h"
#include "nsString.h"
#include "nsQueryObject.h"
USING_BLUETOOTH_NAMESPACE
/**
* IccListener
*/
NS_IMPL_ISUPPORTS(IccListener, nsIIccListener)
NS_IMETHODIMP
IccListener::NotifyIccInfoChanged()
{
// mOwner would be set to nullptr only in the dtor of BluetoothRilListener
NS_ENSURE_TRUE(mOwner, NS_ERROR_FAILURE);
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
NS_ENSURE_TRUE(hfp, NS_ERROR_FAILURE);
hfp->HandleIccInfoChanged(mOwner->mClientId);
return NS_OK;
}
NS_IMETHODIMP
IccListener::NotifyStkCommand(nsIStkProactiveCmd *aStkProactiveCmd)
{
return NS_OK;
}
NS_IMETHODIMP
IccListener::NotifyStkSessionEnd()
{
return NS_OK;
}
NS_IMETHODIMP
IccListener::NotifyCardStateChanged()
{
return NS_OK;
}
bool
IccListener::Listen(bool aStart)
{
NS_ENSURE_TRUE(mOwner, false);
nsCOMPtr<nsIIccService> service =
do_GetService(ICC_SERVICE_CONTRACTID);
NS_ENSURE_TRUE(service, false);
nsCOMPtr<nsIIcc> icc;
service->GetIccByServiceId(mOwner->mClientId, getter_AddRefs(icc));
NS_ENSURE_TRUE(icc, false);
nsresult rv;
if (aStart) {
rv = icc->RegisterListener(this);
} else {
rv = icc->UnregisterListener(this);
}
return NS_SUCCEEDED(rv);
}
void
IccListener::SetOwner(BluetoothRilListener *aOwner)
{
mOwner = aOwner;
}
/**
* MobileConnectionListener
*/
NS_IMPL_ISUPPORTS(MobileConnectionListener, nsIMobileConnectionListener)
NS_IMETHODIMP
MobileConnectionListener::NotifyVoiceChanged()
{
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
NS_ENSURE_TRUE(hfp, NS_OK);
hfp->HandleVoiceConnectionChanged(mClientId);
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyDataChanged()
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyDataError(const nsAString & message)
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyCFStateChanged(uint16_t action,
uint16_t reason,
const nsAString& number,
uint16_t timeSeconds,
uint16_t serviceClass)
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyEmergencyCbModeChanged(bool active,
uint32_t timeoutMs)
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyOtaStatusChanged(const nsAString & status)
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyRadioStateChanged()
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyClirModeChanged(uint32_t aMode)
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyLastKnownNetworkChanged()
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyLastKnownHomeNetworkChanged()
{
return NS_OK;
}
NS_IMETHODIMP
MobileConnectionListener::NotifyNetworkSelectionModeChanged()
{
return NS_OK;
}
bool
MobileConnectionListener::Listen(bool aStart)
{
nsCOMPtr<nsIMobileConnectionService> service =
do_GetService(NS_MOBILE_CONNECTION_SERVICE_CONTRACTID);
NS_ENSURE_TRUE(service, false);
nsCOMPtr<nsIMobileConnection> connection;
service->GetItemByServiceId(mClientId, getter_AddRefs(connection));
NS_ENSURE_TRUE(connection, false);
nsresult rv;
if (aStart) {
rv = connection->RegisterListener(this);
} else {
rv = connection->UnregisterListener(this);
}
return NS_SUCCEEDED(rv);
}
/**
* TelephonyListener Implementation
*/
NS_IMPL_ISUPPORTS(TelephonyListener, nsITelephonyListener)
/**
* @param aSend A boolean indicates whether we need to notify headset or not
*/
nsresult
TelephonyListener::HandleCallInfo(nsITelephonyCallInfo* aInfo, bool aSend)
{
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
NS_ENSURE_TRUE(hfp, NS_ERROR_FAILURE);
uint32_t callIndex;
uint16_t callState;
nsAutoString number;
bool isOutgoing;
bool isConference;
aInfo->GetCallIndex(&callIndex);
aInfo->GetCallState(&callState);
aInfo->GetNumber(number);
aInfo->GetIsOutgoing(&isOutgoing);
aInfo->GetIsConference(&isConference);
hfp->HandleCallStateChanged(callIndex, callState, EmptyString(), number,
isOutgoing, isConference, aSend);
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::CallStateChanged(uint32_t aLength,
nsITelephonyCallInfo** aAllInfo)
{
for (uint32_t i = 0; i < aLength; ++i) {
HandleCallInfo(aAllInfo[i], true);
}
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::EnumerateCallState(nsITelephonyCallInfo* aInfo)
{
return HandleCallInfo(aInfo, false);
}
NS_IMETHODIMP
TelephonyListener::NotifyError(uint32_t aServiceId,
int32_t aCallIndex,
const nsAString& aError)
{
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
NS_ENSURE_TRUE(hfp, NS_ERROR_FAILURE);
if (aCallIndex > 0) {
// In order to not miss any related call state transition.
// It's possible that 3G network signal lost for unknown reason.
// If a call is released abnormally, NotifyError() will be called,
// instead of CallStateChanged(). We need to reset the call array state
// via setting CALL_STATE_DISCONNECTED
hfp->HandleCallStateChanged(aCallIndex,
nsITelephonyService::CALL_STATE_DISCONNECTED,
aError, EmptyString(), false, false, true);
BT_WARNING("Reset the call state due to call transition ends abnormally");
}
BT_WARNING(NS_ConvertUTF16toUTF8(aError).get());
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::ConferenceCallStateChanged(uint16_t aCallState)
{
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::EnumerateCallStateComplete()
{
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::SupplementaryServiceNotification(uint32_t aServiceId,
int32_t aCallIndex,
uint16_t aNotification)
{
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::NotifyConferenceError(const nsAString& aName,
const nsAString& aMessage)
{
BT_WARNING(NS_ConvertUTF16toUTF8(aName).get());
BT_WARNING(NS_ConvertUTF16toUTF8(aMessage).get());
return NS_OK;
}
NS_IMETHODIMP
TelephonyListener::NotifyCdmaCallWaiting(uint32_t aServiceId,
const nsAString& aNumber,
uint16_t aNumberPresentation,
const nsAString& aName,
uint16_t aNamePresentation)
{
BluetoothHfpManager* hfp = BluetoothHfpManager::Get();
NS_ENSURE_TRUE(hfp, NS_ERROR_FAILURE);
hfp->UpdateSecondNumber(aNumber);
return NS_OK;
}
bool
TelephonyListener::Listen(bool aStart)
{
nsCOMPtr<nsITelephonyService> service =
do_GetService(TELEPHONY_SERVICE_CONTRACTID);
NS_ENSURE_TRUE(service, false);
nsresult rv;
if (aStart) {
rv = service->RegisterListener(this);
} else {
rv = service->UnregisterListener(this);
}
return NS_SUCCEEDED(rv);
}
/**
* BluetoothRilListener
*/
BluetoothRilListener::BluetoothRilListener()
{
nsCOMPtr<nsIMobileConnectionService> service =
do_GetService(NS_MOBILE_CONNECTION_SERVICE_CONTRACTID);
NS_ENSURE_TRUE_VOID(service);
// Query number of total clients (sim slots)
uint32_t numItems = 0;
if (NS_SUCCEEDED(service->GetNumItems(&numItems))) {
// Init MobileConnectionListener array and IccInfoListener
for (uint32_t i = 0; i < numItems; i++) {
mMobileConnListeners.AppendElement(new MobileConnectionListener(i));
}
}
mTelephonyListener = new TelephonyListener();
mIccListener = new IccListener();
mIccListener->SetOwner(this);
// Probe for available client
SelectClient();
}
BluetoothRilListener::~BluetoothRilListener()
{
mIccListener->SetOwner(nullptr);
}
bool
BluetoothRilListener::Listen(bool aStart)
{
NS_ENSURE_TRUE(ListenMobileConnAndIccInfo(aStart), false);
NS_ENSURE_TRUE(mTelephonyListener->Listen(aStart), false);
return true;
}
void
BluetoothRilListener::SelectClient()
{
// Reset mClientId
mClientId = mMobileConnListeners.Length();
nsCOMPtr<nsIMobileConnectionService> service =
do_GetService(NS_MOBILE_CONNECTION_SERVICE_CONTRACTID);
NS_ENSURE_TRUE_VOID(service);
for (uint32_t i = 0; i < mMobileConnListeners.Length(); i++) {
nsCOMPtr<nsIMobileConnection> connection;
service->GetItemByServiceId(i, getter_AddRefs(connection));
if (!connection) {
BT_WARNING("%s: Failed to get mobile connection", __FUNCTION__);
continue;
}
nsCOMPtr<nsIMobileConnectionInfo> voiceInfo;
connection->GetVoice(getter_AddRefs(voiceInfo));
if (!voiceInfo) {
BT_WARNING("%s: Failed to get voice connection info", __FUNCTION__);
continue;
}
nsString regState;
voiceInfo->GetState(regState);
if (regState.EqualsLiteral("registered")) {
// Found available client
mClientId = i;
return;
}
}
}
void
BluetoothRilListener::ServiceChanged(uint32_t aClientId, bool aRegistered)
{
// Stop listening
ListenMobileConnAndIccInfo(false);
/**
* aRegistered:
* - TRUE: service becomes registered. We were listening to all clients
* and one of them becomes available. Select it to listen.
* - FALSE: service becomes un-registered. The client we were listening
* becomes unavailable. Select another registered one to listen.
*/
if (aRegistered) {
mClientId = aClientId;
} else {
SelectClient();
}
// Restart listening
ListenMobileConnAndIccInfo(true);
BT_LOGR("%d client %d. new mClientId %d", aRegistered, aClientId,
(mClientId < mMobileConnListeners.Length()) ? mClientId : -1);
}
void
BluetoothRilListener::EnumerateCalls()
{
nsCOMPtr<nsITelephonyService> service =
do_GetService(TELEPHONY_SERVICE_CONTRACTID);
NS_ENSURE_TRUE_VOID(service);
nsCOMPtr<nsITelephonyListener> listener(
do_QueryObject(mTelephonyListener));
service->EnumerateCalls(listener);
}
bool
BluetoothRilListener::ListenMobileConnAndIccInfo(bool aStart)
{
/**
* mClientId < number of total clients:
* The client with mClientId is available. Start/Stop listening
* mobile connection and icc info of this client only.
*
* mClientId >= number of total clients:
* All clients are unavailable. Start/Stop listening mobile
* connections of all clients.
*/
if (mClientId < mMobileConnListeners.Length()) {
NS_ENSURE_TRUE(mMobileConnListeners[mClientId]->Listen(aStart), false);
NS_ENSURE_TRUE(mIccListener->Listen(aStart), false);
} else {
for (uint32_t i = 0; i < mMobileConnListeners.Length(); i++) {
NS_ENSURE_TRUE(mMobileConnListeners[i]->Listen(aStart), false);
}
}
return true;
}

View File

@ -9,7 +9,6 @@
#include "BluetoothCommon.h"
#include "BluetoothInterface.h"
#include "BluetoothPbapRequestHandle.h"
#include "BluetoothProfileManagerBase.h"
#include "nsAutoPtr.h"
#include "nsClassHashtable.h"

View File

@ -10,44 +10,42 @@ if CONFIG['MOZ_B2G_BT']:
# Generic code
#
SOURCES += [
'BluetoothHidManager.cpp',
'BluetoothInterface.cpp',
'BluetoothPbapRequestHandle.cpp',
'BluetoothUtils.cpp',
'BluetoothUuid.cpp',
'ObexBase.cpp'
]
if CONFIG['MOZ_B2G_RIL']:
SOURCES += [
'BluetoothRilListener.cpp'
'common/BluetoothRilListener.cpp'
]
SOURCES += [
'bluetooth2/BluetoothAdapter.cpp',
'bluetooth2/BluetoothClassOfDevice.cpp',
'bluetooth2/BluetoothDevice.cpp',
'bluetooth2/BluetoothDiscoveryHandle.cpp',
'bluetooth2/BluetoothGatt.cpp',
'bluetooth2/BluetoothGattCharacteristic.cpp',
'bluetooth2/BluetoothGattDescriptor.cpp',
'bluetooth2/BluetoothGattServer.cpp',
'bluetooth2/BluetoothGattService.cpp',
'bluetooth2/BluetoothLeDeviceEvent.cpp',
'bluetooth2/BluetoothManager.cpp',
'bluetooth2/BluetoothPairingHandle.cpp',
'bluetooth2/BluetoothPairingListener.cpp',
'bluetooth2/BluetoothProfileController.cpp',
'bluetooth2/BluetoothReplyRunnable.cpp',
'bluetooth2/BluetoothService.cpp',
'bluetooth2/ipc/BluetoothChild.cpp',
'bluetooth2/ipc/BluetoothParent.cpp',
'bluetooth2/ipc/BluetoothServiceChildProcess.cpp',
'common/BluetoothHidManager.cpp',
'common/BluetoothInterface.cpp',
'common/BluetoothProfileController.cpp',
'common/BluetoothReplyRunnable.cpp',
'common/BluetoothService.cpp',
'common/BluetoothUtils.cpp',
'common/BluetoothUuid.cpp',
'common/ObexBase.cpp',
'common/webapi/BluetoothAdapter.cpp',
'common/webapi/BluetoothClassOfDevice.cpp',
'common/webapi/BluetoothDevice.cpp',
'common/webapi/BluetoothDiscoveryHandle.cpp',
'common/webapi/BluetoothGatt.cpp',
'common/webapi/BluetoothGattCharacteristic.cpp',
'common/webapi/BluetoothGattDescriptor.cpp',
'common/webapi/BluetoothGattServer.cpp',
'common/webapi/BluetoothGattService.cpp',
'common/webapi/BluetoothLeDeviceEvent.cpp',
'common/webapi/BluetoothManager.cpp',
'common/webapi/BluetoothPairingHandle.cpp',
'common/webapi/BluetoothPairingListener.cpp',
'common/webapi/BluetoothPbapRequestHandle.cpp',
'ipc/BluetoothChild.cpp',
'ipc/BluetoothParent.cpp',
'ipc/BluetoothServiceChildProcess.cpp'
]
LOCAL_INCLUDES += [
'bluetooth2',
'bluetooth2/ipc',
'common',
'common/webapi',
'ipc'
]
#
@ -129,29 +127,29 @@ if CONFIG['MOZ_B2G_BT']:
#
EXPORTS.mozilla.dom.bluetooth.ipc += [
'bluetooth2/ipc/BluetoothMessageUtils.h',
'ipc/BluetoothMessageUtils.h',
]
EXPORTS.mozilla.dom.bluetooth += [
'bluetooth2/BluetoothAdapter.h',
'bluetooth2/BluetoothClassOfDevice.h',
'bluetooth2/BluetoothDevice.h',
'bluetooth2/BluetoothDiscoveryHandle.h',
'bluetooth2/BluetoothGatt.h',
'bluetooth2/BluetoothGattCharacteristic.h',
'bluetooth2/BluetoothGattDescriptor.h',
'bluetooth2/BluetoothGattServer.h',
'bluetooth2/BluetoothGattService.h',
'bluetooth2/BluetoothLeDeviceEvent.h',
'bluetooth2/BluetoothManager.h',
'bluetooth2/BluetoothPairingHandle.h',
'bluetooth2/BluetoothPairingListener.h',
'BluetoothCommon.h',
'BluetoothPbapRequestHandle.h',
'common/BluetoothCommon.h',
'common/webapi/BluetoothAdapter.h',
'common/webapi/BluetoothClassOfDevice.h',
'common/webapi/BluetoothDevice.h',
'common/webapi/BluetoothDiscoveryHandle.h',
'common/webapi/BluetoothGatt.h',
'common/webapi/BluetoothGattCharacteristic.h',
'common/webapi/BluetoothGattDescriptor.h',
'common/webapi/BluetoothGattServer.h',
'common/webapi/BluetoothGattService.h',
'common/webapi/BluetoothLeDeviceEvent.h',
'common/webapi/BluetoothManager.h',
'common/webapi/BluetoothPairingHandle.h',
'common/webapi/BluetoothPairingListener.h',
'common/webapi/BluetoothPbapRequestHandle.h'
]
IPDL_SOURCES += [
'bluetooth2/ipc/BluetoothTypes.ipdlh',
'bluetooth2/ipc/PBluetooth.ipdl',
'bluetooth2/ipc/PBluetoothRequest.ipdl',
'ipc/BluetoothTypes.ipdlh',
'ipc/PBluetooth.ipdl',
'ipc/PBluetoothRequest.ipdl'
]
FAIL_ON_WARNINGS = True
@ -159,7 +157,7 @@ FAIL_ON_WARNINGS = True
LOCAL_INCLUDES += [
'../base',
'../network',
'../system/gonk',
'../system/gonk'
]
include('/ipc/chromium/chromium-config.mozbuild')

View File

@ -128,9 +128,8 @@ LOCAL_INCLUDES += [
'/chrome',
'/docshell/base',
'/dom/base',
'/dom/bluetooth',
'/dom/bluetooth/bluetooth2',
'/dom/bluetooth/bluetooth2/ipc',
'/dom/bluetooth/common',
'/dom/bluetooth/ipc',
'/dom/devicestorage',
'/dom/filesystem',
'/dom/fmradio/ipc',

View File

@ -119,8 +119,7 @@ include('/ipc/chromium/chromium-config.mozbuild')
LOCAL_INCLUDES += [
'/dom/base',
'/dom/bluetooth',
'/dom/bluetooth/bluetooth2',
'/dom/bluetooth/common',
'/dom/geolocation',
'/dom/wifi',
]

View File

@ -72,6 +72,5 @@ LOCAL_INCLUDES += [
if CONFIG['MOZ_B2G_BT']:
LOCAL_INCLUDES += [
'/dom/bluetooth',
'/dom/bluetooth/bluetooth2',
'/dom/bluetooth/common',
]

View File

@ -335,20 +335,21 @@ AccessibleCaretManager::SelectWordOrShortcut(const nsPoint& aPoint)
return NS_ERROR_FAILURE;
}
nsIFrame* focusedFrame = ChangeFocus(ptFrame);
nsIFrame* focusableFrame = GetFocusableFrame(ptFrame);
#ifdef DEBUG_FRAME_DUMP
AC_LOG("%s: Found %s under (%d, %d)", __FUNCTION__, ptFrame->ListTag().get(),
aPoint.x, aPoint.y);
AC_LOG("%s: Focused on %s", __FUNCTION__,
focusedFrame ? focusedFrame->ListTag().get() : "no frame");
AC_LOG("%s: Found %s focusable", __FUNCTION__,
focusableFrame ? focusableFrame->ListTag().get() : "no frame");
#endif
// Firstly check long press on an empty editable content.
Element* newFocusEditingHost = ptFrame->GetContent()->GetEditingHost();
if (focusedFrame && newFocusEditingHost &&
if (focusableFrame && newFocusEditingHost &&
!nsContentUtils::HasNonEmptyTextContent(
newFocusEditingHost, nsContentUtils::eRecurseIntoChildren)) {
ChangeFocusToOrClearOldFocus(focusableFrame);
// We need to update carets to get correct information before dispatching
// CaretStateChangedEvent.
UpdateCarets();
@ -356,6 +357,21 @@ AccessibleCaretManager::SelectWordOrShortcut(const nsPoint& aPoint)
return NS_OK;
}
bool selectable = false;
ptFrame->IsSelectable(&selectable, nullptr);
#ifdef DEBUG_FRAME_DUMP
AC_LOG("%s: %s %s selectable.", __FUNCTION__, ptFrame->ListTag().get(),
selectable ? "is" : "is NOT");
#endif
if (!selectable) {
return NS_ERROR_FAILURE;
}
// ptFrame is selectable. Now change the focus.
ChangeFocusToOrClearOldFocus(focusableFrame);
// Then try select a word under point.
nsPoint ptInFrame = aPoint;
nsLayoutUtils::TransformPoint(rootFrame, ptFrame, ptInFrame);
@ -508,7 +524,7 @@ AccessibleCaretManager::GetCaretMode() const
}
nsIFrame*
AccessibleCaretManager::ChangeFocus(nsIFrame* aFrame) const
AccessibleCaretManager::GetFocusableFrame(nsIFrame* aFrame) const
{
// This implementation is similar to EventStateManager::PostHandleEvent().
// Look for the nearest enclosing focusable frame.
@ -519,14 +535,17 @@ AccessibleCaretManager::ChangeFocus(nsIFrame* aFrame) const
}
focusableFrame = focusableFrame->GetParent();
}
return focusableFrame;
}
// If a focusable frame is found, move focus to it. Otherwise, clear the old
// focus then re-focus the window.
void
AccessibleCaretManager::ChangeFocusToOrClearOldFocus(nsIFrame* aFrame) const
{
nsFocusManager* fm = nsFocusManager::GetFocusManager();
MOZ_ASSERT(fm);
if (focusableFrame) {
nsIContent* focusableContent = focusableFrame->GetContent();
if (aFrame) {
nsIContent* focusableContent = aFrame->GetContent();
MOZ_ASSERT(focusableContent, "Focusable frame must have content!");
nsCOMPtr<nsIDOMElement> focusableElement = do_QueryInterface(focusableContent);
fm->SetFocus(focusableElement, nsIFocusManager::FLAG_BYMOUSE);
@ -537,19 +556,11 @@ AccessibleCaretManager::ChangeFocus(nsIFrame* aFrame) const
fm->SetFocusedWindow(win);
}
}
return focusableFrame;
}
nsresult
AccessibleCaretManager::SelectWord(nsIFrame* aFrame, const nsPoint& aPoint) const
{
bool selectable;
aFrame->IsSelectable(&selectable, nullptr);
if (!selectable) {
return NS_ERROR_FAILURE;
}
SetSelectionDragState(true);
nsFrame* frame = static_cast<nsFrame*>(aFrame);
nsresult rs = frame->SelectByTypeAtPoint(mPresShell->GetPresContext(), aPoint,

View File

@ -115,9 +115,13 @@ protected:
void UpdateCaretsForSelectionMode();
void UpdateCaretsForTilt();
// Change focus to the nearest enclosing focusable frame of aFrame.
// Get the nearest enclosing focusable frame of aFrame.
// @return focusable frame if there is any; nullptr otherwise.
nsIFrame* ChangeFocus(nsIFrame* aFrame) const;
nsIFrame* GetFocusableFrame(nsIFrame* aFrame) const;
// Change focus to aFrame if it isn't nullptr. Otherwise, clear the old focus
// then re-focus the window.
void ChangeFocusToOrClearOldFocus(nsIFrame* aFrame) const;
nsresult SelectWord(nsIFrame* aFrame, const nsPoint& aPoint) const;
void SetSelectionDragState(bool aState) const;

View File

@ -106,8 +106,7 @@ if CONFIG['MOZ_B2G_FM']:
if CONFIG['MOZ_B2G_BT']:
LOCAL_INCLUDES += [
'/dom/bluetooth',
'/dom/bluetooth/bluetooth2',
'/dom/bluetooth/common',
]
if CONFIG['MOZ_WEBSPEECH']:

View File

@ -0,0 +1,148 @@
# 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/.
# XXX Bug 1181261 - Please update config in testing/mozharness/config
# instead. This file is still needed for mulet mochitests, but should
# be removed once bug 1188330 is finished.
config = {
"suite_definitions": {
"cppunittest": {
"options": [
"--dm_trans=adb",
"--symbols-path=%(symbols_path)s",
"--xre-path=%(xre_path)s",
"--addEnv",
"LD_LIBRARY_PATH=/vendor/lib:/system/lib:/system/b2g",
"--with-b2g-emulator=%(b2gpath)s",
"."
],
"run_filename": "remotecppunittests.py",
"testsdir": "cppunittest"
},
"crashtest": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--emulator-res=800x1000",
"--logdir=%(logcat_dir)s",
"--remote-webserver=%(remote_webserver)s",
"--ignore-window-size",
"--xre-path=%(xre_path)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"tests/testing/crashtest/crashtests.list"
],
"run_filename": "runreftestb2g.py",
"testsdir": "reftest"
},
"jsreftest": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--emulator-res=800x1000",
"--logdir=%(logcat_dir)s",
"--remote-webserver=%(remote_webserver)s",
"--ignore-window-size",
"--xre-path=%(xre_path)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"--extra-profile-file=jsreftest/tests/user.js",
"jsreftest/tests/jstests.list"
],
"run_filename": "remotereftest.py",
"testsdir": "reftest"
},
"mochitest": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--logdir=%(logcat_dir)s",
"--remote-webserver=%(remote_webserver)s",
"--xre-path=%(xre_path)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"--quiet",
"--log-raw=%(raw_log_file)s",
"--log-errorsummary=%(error_summary_file)s",
"--certificate-path=%(certificate_path)s",
"--screenshot-on-fail",
"%(test_path)s"
],
"run_filename": "runtestsb2g.py",
"testsdir": "mochitest"
},
"mochitest-chrome": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--logdir=%(logcat_dir)s",
"--remote-webserver=%(remote_webserver)s",
"--xre-path=%(xre_path)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"--quiet",
"--chrome",
"--log-raw=%(raw_log_file)s",
"--log-errorsummary=%(error_summary_file)s",
"--certificate-path=%(certificate_path)s",
"--screenshot-on-fail",
"%(test_path)s"
],
"run_filename": "runtestsb2g.py",
"testsdir": "mochitest"
},
"reftest": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--emulator-res=800x1000",
"--logdir=%(logcat_dir)s",
"--remote-webserver=%(remote_webserver)s",
"--ignore-window-size",
"--xre-path=%(xre_path)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"--enable-oop",
"tests/layout/reftests/reftest.list"
],
"run_filename": "runreftestsb2g.py",
"testsdir": "reftest"
},
"xpcshell": {
"options": [
"--adbpath=%(adbpath)s",
"--b2gpath=%(b2gpath)s",
"--emulator=%(emulator)s",
"--logdir=%(logcat_dir)s",
"--manifest=tests/xpcshell.ini",
"--use-device-libs",
"--testing-modules-dir=%(modules_dir)s",
"--symbols-path=%(symbols_path)s",
"--busybox=%(busybox)s",
"--total-chunks=%(total_chunks)s",
"--this-chunk=%(this_chunk)s",
"--log-raw=%(raw_log_file)s",
"--log-errorsummary=%(error_summary_file)s",
],
"run_filename": "runtestsb2g.py",
"testsdir": "xpcshell"
}
}
}

View File

@ -12,7 +12,7 @@ b2g = true
skip = false
; webapi tests
[include:../../../../../dom/bluetooth/bluetooth2/tests/marionette/manifest.ini]
[include:../../../../../dom/bluetooth/tests/marionette/manifest.ini]
[include:../../../../../dom/telephony/test/marionette/manifest.ini]
[include:../../../../../dom/voicemail/test/marionette/manifest.ini]
[include:../../../../../dom/battery/test/marionette/manifest.ini]

View File

@ -39,21 +39,6 @@ tests:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_linter.yml
gaia-ui-test-accessibility:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
tasks/builds/b2g_emulator.yml:
task: tasks/tests/b2g_emulator_gaia_ui_test_accessibility.yml
gaia-ui-test-functional:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
chunks: 3
gaia-ui-test-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
gaia-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:

View File

@ -42,8 +42,6 @@ flags:
- gaia-unit
- gaia-unit-oop
- gaia-ui-test-sanity
- gaia-ui-test-oop
- gaia-ui-test-accessibility
- gaia-ui-test-functional
- gaia-ui-test-functional-dsds
- gaia-ui-test-unit

View File

@ -122,18 +122,8 @@ tests:
task: tasks/tests/b2g_linter.yml
tasks/builds/mulet_linux.yml:
task: tasks/tests/mulet_linter.yml
gaia-ui-test-accessibility:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
gaia-ui-test-functional:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
tasks/builds/b2g_flame_kk_eng.yml:
task: tasks/tests/flame_kk_gaia_ui_test_functional.yml
gaia-ui-test-functional-dsds:
@ -146,10 +136,6 @@ tests:
task: tasks/tests/flame_kk_gaia_ui_test_sanity.yml
gaia-ui-test-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
tasks/builds/b2g_flame_kk_eng.yml:
task: tasks/tests/flame_kk_gaia_ui_test_unit.yml
gaia-unit:

View File

@ -84,23 +84,6 @@ tests:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_unit.yml
gaia-ui-test-accessibility:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
gaia-ui-test-functional:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
chunks: 3
gaia-ui-test-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
gaia-ui-test-oop:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gip_oop.yml
jsreftest:
allowed_build_tasks:
tasks/builds/b2g_emulator_ics_opt.yml:

View File

@ -231,24 +231,6 @@ tests:
task: tasks/tests/b2g_linter.yml
tasks/builds/mulet_linux.yml:
task: tasks/tests/mulet_linter.yml
gaia-ui-test-accessibility:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_accessibility.yml
gaia-ui-test-functional:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_functional.yml
gaia-ui-test-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
tasks/builds/b2g_desktop_debug.yml:
task: tasks/tests/b2g_gaia_ui_test_unit.yml
gaia-unit:
allowed_build_tasks:
tasks/builds/b2g_desktop_opt.yml:

View File

@ -1,41 +0,0 @@
---
$inherits:
from: 'tasks/test.yml'
task:
metadata:
name: '[TC] - Gaia Python Accessibility Integration Tests'
description: Gaia Python Accessibility Integration Tests run {{chunk}}
payload:
command:
- entrypoint # entrypoint ensures we are running in xvfb
- ./bin/pull_gaia.sh &&
- >
python ./mozharness/scripts/marionette.py
--no-read-buildbot-config
--config-file marionette/gaia_ui_test_prod_config.py
--config-file ./mozharness_configs/gaia_integration_override.py
--config-file ./mozharness_configs/remove_executables.py
--no-pull
--installer-url {{build_url}}
--test-packages-url {{test_packages_url}}
--download-symbols ondemand
--gip-suite accessibility
--gaia-repo https://hg.mozilla.org/integration/gaia-central
--gaia-dir /home/worker
--xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
artifacts:
'public/build':
type: directory
path: '/home/worker/artifacts/'
expires: '{{#from_now}}1 year{{/from_now}}'
extra:
treeherderEnv:
- production
- staging
treeherder:
groupName: Gaia Python Integration Tests
groupSymbol: Gip
symbol: 'a'
productName: b2g

View File

@ -1,45 +0,0 @@
---
$inherits:
from: 'tasks/test.yml'
task:
metadata:
name: '[TC] - Gaia Python Functional Integration Tests'
description: Gaia Python Functional Integration Tests run {{chunk}}
payload:
command:
- entrypoint # entrypoint ensures we are running in xvfb
- ./bin/pull_gaia.sh &&
- >
python ./mozharness/scripts/marionette.py
--no-read-buildbot-config
--config-file marionette/gaia_ui_test_prod_config.py
--config-file ./mozharness_configs/gaia_integration_override.py
--config-file ./mozharness_configs/remove_executables.py
--no-pull
--installer-url {{build_url}}
--test-packages-url {{test_packages_url}}
--download-symbols ondemand
--gip-suite functional
--total-chunk {{total_chunks}}
--this-chunk {{chunk}}
--gaia-repo https://hg.mozilla.org/integration/gaia-central
--gaia-dir /home/worker
--xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
artifacts:
'public/build':
type: directory
path: '/home/worker/artifacts/'
expires: '{{#from_now}}1 year{{/from_now}}'
extra:
chunks:
total: 15
treeherderEnv:
- production
- staging
treeherder:
groupName: Gaia Python Integration Tests
groupSymbol: Gip
symbol: 'f{{chunk}}'
productName: b2g

Some files were not shown because too many files have changed in this diff Show More