diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 188d66335f2..b6cf637c250 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 1e27df02be8..46d753f8276 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,11 +19,11 @@ - + - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 8bc271c5271..dd5af9ee6ae 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 14d96ec60b1..bbb87c12eae 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 92b2ad5ae70..52c4c5e3dbe 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 1e27df02be8..46d753f8276 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,11 +19,11 @@ - + - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 361c4fd5880..b0ac2010b80 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/flame/sources.xml b/b2g/config/flame/sources.xml index af075609220..99689d02f14 100644 --- a/b2g/config/flame/sources.xml +++ b/b2g/config/flame/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 47f1e550878..4c788ca5e83 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "1d14f4a6809de81ebd638117ed4ddd3b1b18f033", + "git_revision": "03164bd160809747e6a198e0dba1b7c3ee7789f5", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "f69a6e0dc3d86a13a8a0960a21e599c3fa9e7845", + "revision": "696e7b30b79f77008c68c3df0a5d501bb8718c0c", "repo_path": "integration/gaia-central" } diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index e530f54d3fa..91faf774be0 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 7bec0e6e8b1..fc2e9191791 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/dom/bluetooth/BluetoothCommon.h b/dom/bluetooth/BluetoothCommon.h index 63ca63b6ddf..81e28203b1c 100644 --- a/dom/bluetooth/BluetoothCommon.h +++ b/dom/bluetooth/BluetoothCommon.h @@ -433,6 +433,19 @@ enum BluetoothAvrcpPlayerAttribute { AVRCP_PLAYER_ATTRIBUTE_SCAN }; +enum BluetoothAvrcpPlayerRepeatValue { + AVRCP_PLAYER_VAL_OFF_REPEAT = 0x01, + AVRCP_PLAYER_VAL_SINGLE_REPEAT = 0x02, + AVRCP_PLAYER_VAL_ALL_REPEAT = 0x03, + AVRCP_PLAYER_VAL_GROUP_REPEAT = 0x04, +}; + +enum BluetoothAvrcpPlayerShuffleValue { + AVRCP_PLAYER_VAL_OFF_SHUFFLE = 0x01, + AVRCP_PLAYER_VAL_ALL_SHUFFLE = 0x02, + AVRCP_PLAYER_VAL_GROUP_SHUFFLE = 0x03, +}; + enum BluetoothAvrcpStatus { AVRCP_STATUS_BAD_COMMAND, AVRCP_STATUS_BAD_PARAMETER, diff --git a/dom/bluetooth/bluedroid/BluetoothA2dpManager.cpp b/dom/bluetooth/bluedroid/BluetoothA2dpManager.cpp index 86a09ea8d11..8650b315ec1 100644 --- a/dom/bluetooth/bluedroid/BluetoothA2dpManager.cpp +++ b/dom/bluetooth/bluedroid/BluetoothA2dpManager.cpp @@ -926,6 +926,14 @@ BluetoothA2dpManager::UpdateRegisterNotification(BluetoothAvrcpEvent aEvent, } mPlaybackInterval = aParam; break; + case AVRCP_EVENT_APP_SETTINGS_CHANGED: + mAppSettingsChangedNotifyType = AVRCP_NTF_INTERIM; + param.mNumAttr = 2; + param.mIds[0] = AVRCP_PLAYER_ATTRIBUTE_REPEAT; + param.mValues[0] = AVRCP_PLAYER_VAL_OFF_REPEAT; + param.mIds[1] = AVRCP_PLAYER_ATTRIBUTE_SHUFFLE; + param.mValues[1] = AVRCP_PLAYER_VAL_OFF_SHUFFLE; + break; default: break; } diff --git a/dom/bluetooth/bluedroid/BluetoothA2dpManager.h b/dom/bluetooth/bluedroid/BluetoothA2dpManager.h index f30f9ebd5e8..bcd314a6c5a 100644 --- a/dom/bluetooth/bluedroid/BluetoothA2dpManager.h +++ b/dom/bluetooth/bluedroid/BluetoothA2dpManager.h @@ -161,6 +161,7 @@ private: BluetoothAvrcpNotification mPlayStatusChangedNotifyType; BluetoothAvrcpNotification mTrackChangedNotifyType; BluetoothAvrcpNotification mPlayPosChangedNotifyType; + BluetoothAvrcpNotification mAppSettingsChangedNotifyType; }; END_BLUETOOTH_NAMESPACE diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp index 2c7cd6ce00e..0520545ca97 100644 --- a/dom/html/HTMLMediaElement.cpp +++ b/dom/html/HTMLMediaElement.cpp @@ -1861,7 +1861,8 @@ NS_IMETHODIMP HTMLMediaElement::SetMuted(bool aMuted) } already_AddRefed -HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded) +HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded, + MediaStreamGraph* aGraph) { nsIDOMWindow* window = OwnerDoc()->GetInnerWindow(); if (!window) { @@ -1873,7 +1874,7 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded) } #endif OutputMediaStream* out = mOutputStreams.AppendElement(); - out->mStream = DOMMediaStream::CreateTrackUnionStream(window); + out->mStream = DOMMediaStream::CreateTrackUnionStream(window, aGraph); nsRefPtr principal = GetCurrentPrincipal(); out->mStream->CombineWithPrincipal(principal); out->mStream->SetCORSMode(mCORSMode); @@ -1885,8 +1886,8 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded) // back into the output stream. out->mStream->GetStream()->ChangeExplicitBlockerCount(1); if (mDecoder) { - mDecoder->AddOutputStream( - out->mStream->GetStream()->AsProcessedStream(), aFinishWhenEnded); + mDecoder->AddOutputStream(out->mStream->GetStream()->AsProcessedStream(), + aFinishWhenEnded); if (mReadyState >= HAVE_METADATA) { // Expose the tracks to JS directly. if (HasAudio()) { @@ -1904,9 +1905,10 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded) } already_AddRefed -HTMLMediaElement::MozCaptureStream(ErrorResult& aRv) +HTMLMediaElement::MozCaptureStream(ErrorResult& aRv, + MediaStreamGraph* aGraph) { - nsRefPtr stream = CaptureStreamInternal(false); + nsRefPtr stream = CaptureStreamInternal(false, aGraph); if (!stream) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; @@ -1916,9 +1918,10 @@ HTMLMediaElement::MozCaptureStream(ErrorResult& aRv) } already_AddRefed -HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv) +HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv, + MediaStreamGraph* aGraph) { - nsRefPtr stream = CaptureStreamInternal(true); + nsRefPtr stream = CaptureStreamInternal(true, aGraph); if (!stream) { aRv.Throw(NS_ERROR_FAILURE); return nullptr; @@ -2790,7 +2793,7 @@ nsresult HTMLMediaElement::FinishDecoderSetup(MediaDecoder* aDecoder, for (uint32_t i = 0; i < mOutputStreams.Length(); ++i) { OutputMediaStream* ms = &mOutputStreams[i]; aDecoder->AddOutputStream(ms->mStream->GetStream()->AsProcessedStream(), - ms->mFinishWhenEnded); + ms->mFinishWhenEnded); } // Update decoder principal before we start decoding, since it diff --git a/dom/html/HTMLMediaElement.h b/dom/html/HTMLMediaElement.h index c50d91f1efd..2120e3c77bf 100644 --- a/dom/html/HTMLMediaElement.h +++ b/dom/html/HTMLMediaElement.h @@ -576,9 +576,11 @@ public: return mAutoplayEnabled; } - already_AddRefed MozCaptureStream(ErrorResult& aRv); + already_AddRefed MozCaptureStream(ErrorResult& aRv, + MediaStreamGraph* aGraph = nullptr); - already_AddRefed MozCaptureStreamUntilEnded(ErrorResult& aRv); + already_AddRefed MozCaptureStreamUntilEnded(ErrorResult& aRv, + MediaStreamGraph* aGraph = nullptr); bool MozAudioCaptured() const { @@ -724,7 +726,8 @@ protected: * When aFinishWhenEnded is false, ending playback does not finish the stream. * The stream will never finish. */ - already_AddRefed CaptureStreamInternal(bool aFinishWhenEnded); + already_AddRefed CaptureStreamInternal(bool aFinishWhenEnded, + MediaStreamGraph* aGraph = nullptr); /** * Initialize a decoder as a clone of an existing decoder in another diff --git a/dom/media/DOMMediaStream.cpp b/dom/media/DOMMediaStream.cpp index de651547b73..8b3da2eeb35 100644 --- a/dom/media/DOMMediaStream.cpp +++ b/dom/media/DOMMediaStream.cpp @@ -274,19 +274,26 @@ DOMMediaStream::IsFinished() } void -DOMMediaStream::InitSourceStream(nsIDOMWindow* aWindow) +DOMMediaStream::InitSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { mWindow = aWindow; - MediaStreamGraph* gm = MediaStreamGraph::GetInstance(); - InitStreamCommon(gm->CreateSourceStream(this)); + if (!aGraph) { + aGraph = MediaStreamGraph::GetInstance(); + } + InitStreamCommon(aGraph->CreateSourceStream(this)); } void -DOMMediaStream::InitTrackUnionStream(nsIDOMWindow* aWindow) +DOMMediaStream::InitTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { mWindow = aWindow; - MediaStreamGraph* gm = MediaStreamGraph::GetInstance(); - InitStreamCommon(gm->CreateTrackUnionStream(this)); + + if (!aGraph) { + aGraph = MediaStreamGraph::GetInstance(); + } + InitStreamCommon(aGraph->CreateTrackUnionStream(this)); } void @@ -300,18 +307,20 @@ DOMMediaStream::InitStreamCommon(MediaStream* aStream) } already_AddRefed -DOMMediaStream::CreateSourceStream(nsIDOMWindow* aWindow) +DOMMediaStream::CreateSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { nsRefPtr stream = new DOMMediaStream(); - stream->InitSourceStream(aWindow); + stream->InitSourceStream(aWindow, aGraph); return stream.forget(); } already_AddRefed -DOMMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow) +DOMMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { nsRefPtr stream = new DOMMediaStream(); - stream->InitTrackUnionStream(aWindow); + stream->InitTrackUnionStream(aWindow, aGraph); return stream.forget(); } @@ -623,18 +632,20 @@ DOMLocalMediaStream::Stop() } already_AddRefed -DOMLocalMediaStream::CreateSourceStream(nsIDOMWindow* aWindow) +DOMLocalMediaStream::CreateSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { nsRefPtr stream = new DOMLocalMediaStream(); - stream->InitSourceStream(aWindow); + stream->InitSourceStream(aWindow, aGraph); return stream.forget(); } already_AddRefed -DOMLocalMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow) +DOMLocalMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph) { nsRefPtr stream = new DOMLocalMediaStream(); - stream->InitTrackUnionStream(aWindow); + stream->InitTrackUnionStream(aWindow, aGraph); return stream.forget(); } @@ -649,9 +660,10 @@ DOMAudioNodeMediaStream::~DOMAudioNodeMediaStream() already_AddRefed DOMAudioNodeMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow, - AudioNode* aNode) + AudioNode* aNode, + MediaStreamGraph* aGraph) { nsRefPtr stream = new DOMAudioNodeMediaStream(aNode); - stream->InitTrackUnionStream(aWindow); + stream->InitTrackUnionStream(aWindow, aGraph); return stream.forget(); } diff --git a/dom/media/DOMMediaStream.h b/dom/media/DOMMediaStream.h index 5f64cd5d0eb..eed38839238 100644 --- a/dom/media/DOMMediaStream.h +++ b/dom/media/DOMMediaStream.h @@ -34,6 +34,7 @@ namespace mozilla { class DOMLocalMediaStream; class MediaStream; class MediaEngineSource; +class MediaStreamGraph; namespace dom { class AudioNode; @@ -180,14 +181,14 @@ public: /** * Create an nsDOMMediaStream whose underlying stream is a SourceMediaStream. */ - static already_AddRefed - CreateSourceStream(nsIDOMWindow* aWindow); + static already_AddRefed CreateSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); /** * Create an nsDOMMediaStream whose underlying stream is a TrackUnionStream. */ - static already_AddRefed - CreateTrackUnionStream(nsIDOMWindow* aWindow); + static already_AddRefed CreateTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); void SetLogicalStreamStartTime(StreamTime aTime) { @@ -249,8 +250,10 @@ protected: virtual ~DOMMediaStream(); void Destroy(); - void InitSourceStream(nsIDOMWindow* aWindow); - void InitTrackUnionStream(nsIDOMWindow* aWindow); + void InitSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); + void InitTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); void InitStreamCommon(MediaStream* aStream); already_AddRefed CreateAudioTrack(AudioStreamTrack* aStreamTrack); already_AddRefed CreateVideoTrack(VideoStreamTrack* aStreamTrack); @@ -331,13 +334,15 @@ public: * Create an nsDOMLocalMediaStream whose underlying stream is a SourceMediaStream. */ static already_AddRefed - CreateSourceStream(nsIDOMWindow* aWindow); + CreateSourceStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); /** * Create an nsDOMLocalMediaStream whose underlying stream is a TrackUnionStream. */ static already_AddRefed - CreateTrackUnionStream(nsIDOMWindow* aWindow); + CreateTrackUnionStream(nsIDOMWindow* aWindow, + MediaStreamGraph* aGraph = nullptr); protected: virtual ~DOMLocalMediaStream(); @@ -360,7 +365,8 @@ public: */ static already_AddRefed CreateTrackUnionStream(nsIDOMWindow* aWindow, - AudioNode* aNode); + AudioNode* aNode, + MediaStreamGraph* aGraph = nullptr); protected: ~DOMAudioNodeMediaStream(); diff --git a/dom/media/MediaDecoder.cpp b/dom/media/MediaDecoder.cpp index 43fad14148d..757705b3b00 100644 --- a/dom/media/MediaDecoder.cpp +++ b/dom/media/MediaDecoder.cpp @@ -480,16 +480,21 @@ void MediaDecoder::UpdateStreamBlockingForStateMachinePlaying() } } -void MediaDecoder::RecreateDecodedStream(int64_t aStartTimeUSecs) +void MediaDecoder::RecreateDecodedStream(int64_t aStartTimeUSecs, + MediaStreamGraph* aGraph) { MOZ_ASSERT(NS_IsMainThread()); ReentrantMonitorAutoEnter mon(GetReentrantMonitor()); DECODER_LOG("RecreateDecodedStream aStartTimeUSecs=%lld!", aStartTimeUSecs); + if (!aGraph) { + aGraph = mDecodedStream->mStream->Graph(); + } DestroyDecodedStream(); - mDecodedStream = new DecodedStreamData(this, aStartTimeUSecs, - MediaStreamGraph::GetInstance()->CreateSourceStream(nullptr)); + mDecodedStream = new DecodedStreamData(this, + aStartTimeUSecs, + aGraph->CreateSourceStream(nullptr)); // Note that the delay between removing ports in DestroyDecodedStream // and adding new ones won't cause a glitch since all graph operations @@ -522,7 +527,7 @@ void MediaDecoder::AddOutputStream(ProcessedMediaStream* aStream, if (!GetDecodedStream()) { int64_t t = mDecoderStateMachine ? mDecoderStateMachine->GetCurrentTimeUs() : 0; - RecreateDecodedStream(t); + RecreateDecodedStream(t, aStream->Graph()); } OutputStreamData* os = mOutputStreams.AppendElement(); os->Init(this, aStream); diff --git a/dom/media/MediaDecoder.h b/dom/media/MediaDecoder.h index 45f2ce23f6b..cff5b625bd7 100644 --- a/dom/media/MediaDecoder.h +++ b/dom/media/MediaDecoder.h @@ -519,7 +519,8 @@ public: * aStartTimeUSecs is relative to the state machine's mStartTime. * Decoder monitor must be held. */ - void RecreateDecodedStream(int64_t aStartTimeUSecs); + void RecreateDecodedStream(int64_t aStartTimeUSecs, + MediaStreamGraph* aGraph = nullptr); /** * Call this when mDecoderStateMachine or mDecoderStateMachine->IsPlaying() changes. * Decoder monitor must be held. diff --git a/dom/media/MediaDecoderStateMachine.cpp b/dom/media/MediaDecoderStateMachine.cpp index a98ae55139e..b3ca057a93c 100644 --- a/dom/media/MediaDecoderStateMachine.cpp +++ b/dom/media/MediaDecoderStateMachine.cpp @@ -1823,8 +1823,10 @@ MediaDecoderStateMachine::InitiateSeek() // as far as fast-seek is concerned. It also fix the problem where stream // clock seems to go backwards during seeking. nsCOMPtr event = - NS_NewRunnableMethodWithArg(mDecoder, &MediaDecoder::RecreateDecodedStream, - seekTime - mStartTime); + NS_NewRunnableMethodWithArgs(mDecoder, + &MediaDecoder::RecreateDecodedStream, + seekTime - mStartTime, + nullptr); NS_DispatchToMainThread(event, NS_DISPATCH_NORMAL); } diff --git a/dom/media/MediaStreamGraph.cpp b/dom/media/MediaStreamGraph.cpp index 972151c342d..aa2dcb90b73 100644 --- a/dom/media/MediaStreamGraph.cpp +++ b/dom/media/MediaStreamGraph.cpp @@ -1910,6 +1910,7 @@ MediaStream::SetGraphImpl(MediaStreamGraphImpl* aGraph) { MOZ_ASSERT(!mGraph, "Should only be called once"); mGraph = aGraph; + mAudioChannelType = static_cast(aGraph->AudioChannel()); mBuffer.InitGraphRate(aGraph->GraphRate()); } diff --git a/dom/media/webaudio/AudioContext.cpp b/dom/media/webaudio/AudioContext.cpp index 352a45f3e52..81033d1cec0 100644 --- a/dom/media/webaudio/AudioContext.cpp +++ b/dom/media/webaudio/AudioContext.cpp @@ -300,7 +300,8 @@ AudioContext::CreateMediaElementSource(HTMLMediaElement& aMediaElement, return nullptr; } #endif - nsRefPtr stream = aMediaElement.MozCaptureStream(aRv); + nsRefPtr stream = aMediaElement.MozCaptureStream(aRv, + mDestination->Stream()->Graph()); if (aRv.Failed()) { return nullptr; } diff --git a/dom/secureelement/gonk/UiccConnector.js b/dom/secureelement/gonk/UiccConnector.js index 059e63da02e..b1a38af26a8 100644 --- a/dom/secureelement/gonk/UiccConnector.js +++ b/dom/secureelement/gonk/UiccConnector.js @@ -18,7 +18,7 @@ "use strict"; /* globals Components, XPCOMUtils, SE, dump, libcutils, Services, - iccProvider, SEUtils */ + iccProvider, iccService, SEUtils */ const { interfaces: Ci, utils: Cu } = Components; @@ -47,6 +47,10 @@ XPCOMUtils.defineLazyServiceGetter(this, "iccProvider", "@mozilla.org/ril/content-helper;1", "nsIIccProvider"); +XPCOMUtils.defineLazyServiceGetter(this, "iccService", + "@mozilla.org/icc/iccservice;1", + "nsIIccService"); + const UICCCONNECTOR_CONTRACTID = "@mozilla.org/secureelement/connector/uicc;1"; const UICCCONNECTOR_CID = @@ -84,7 +88,8 @@ UiccConnector.prototype = { _init: function() { Services.obs.addObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false); - iccProvider.registerIccMsg(PREFERRED_UICC_CLIENTID, this); + let icc = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID); + icc.registerListener(this); // Update the state in order to avoid race condition. // By this time, 'notifyCardStateChanged (with proper card state)' @@ -94,21 +99,22 @@ UiccConnector.prototype = { _shutdown: function() { Services.obs.removeObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID); - iccProvider.unregisterIccMsg(PREFERRED_UICC_CLIENTID, this); + let icc = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID); + icc.unregisterListener(this); }, _updatePresenceState: function() { - // Consider following Card states as not quite ready for performing - // IccChannel* related commands - let notReadyStates = [ - "unknown", - "illegal", - "personalizationInProgress", - "permanentBlocked", + let uiccNotReadyStates = [ + Ci.nsIIcc.CARD_STATE_UNKNOWN, + Ci.nsIIcc.CARD_STATE_ILLEGAL, + Ci.nsIIcc.CARD_STATE_PERSONALIZATION_IN_PROGRESS, + Ci.nsIIcc.CARD_STATE_PERMANENT_BLOCKED, + Ci.nsIIcc.CARD_STATE_UNDETECTED ]; - let cardState = iccProvider.getCardState(PREFERRED_UICC_CLIENTID); + + let cardState = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID).cardState; this._isPresent = cardState !== null && - notReadyStates.indexOf(cardState) == -1; + uiccNotReadyStates.indexOf(cardState) == -1; }, // See GP Spec, 11.1.4 Class Byte Coding diff --git a/testing/taskcluster/mach_commands.py b/testing/taskcluster/mach_commands.py index 86e33655883..43de912d2ff 100644 --- a/testing/taskcluster/mach_commands.py +++ b/testing/taskcluster/mach_commands.py @@ -221,6 +221,10 @@ class Graph(object): @CommandArgument('--project', required=True, help='Project to use for creating task graph. Example: --project=try') + @CommandArgument('--pushlog-id', + dest='pushlog_id', + required=False, + default=0) @CommandArgument('--owner', required=True, help='email address of who owns this graph') @@ -247,6 +251,8 @@ class Graph(object): job_graph = parse_commit(message, jobs) # Template parameters used when expanding the graph parameters = dict(gaia_info().items() + { + 'project': project, + 'pushlog_id': params.get('pushlog_id', 0), 'docker_image': docker_image, 'base_repository': params['base_repository'] or \ params['head_repository'], diff --git a/testing/taskcluster/tasks/build.yml b/testing/taskcluster/tasks/build.yml index f3973f9a3a2..09006f239ef 100644 --- a/testing/taskcluster/tasks/build.yml +++ b/testing/taskcluster/tasks/build.yml @@ -17,6 +17,9 @@ task: provisionerId: aws-provisioner schedulerId: task-graph-scheduler + routes: + - 'index.gecko.v1.{{project}}.revision.{{head_rev}}.{{build_name}}.{{build_type}}' + - 'index.gecko.v1.{{project}}.latest.{{build_name}}.{{build_type}}' scopes: # Nearly all of our build tasks use tc-vcs so just include the scope across # the board. @@ -54,6 +57,8 @@ task: MOZHARNESS_REF: '{{mozharness_ref}}' extra: + index: + rank: {{pushlog_id}} treeherder: groupSymbol: tc groupName: Submitted by taskcluster diff --git a/testing/taskcluster/tasks/builds/b2g_desktop_debug.yml b/testing/taskcluster/tasks/builds/b2g_desktop_debug.yml index 46a6d3e3c02..4ac570bad47 100644 --- a/testing/taskcluster/tasks/builds/b2g_desktop_debug.yml +++ b/testing/taskcluster/tasks/builds/b2g_desktop_debug.yml @@ -1,6 +1,7 @@ $inherits: from: 'tasks/builds/b2g_desktop_base.yml' variables: + build_name: 'b2g-desktop' build_type: 'debug' task: diff --git a/testing/taskcluster/tasks/builds/b2g_desktop_opt.yml b/testing/taskcluster/tasks/builds/b2g_desktop_opt.yml index ffd715035cb..b1ac478c982 100644 --- a/testing/taskcluster/tasks/builds/b2g_desktop_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_desktop_opt.yml @@ -1,8 +1,8 @@ $inherits: from: 'tasks/builds/b2g_desktop_base.yml' variables: + build_name: 'b2g-desktop' build_type: 'opt' - task: scopes: - 'docker-worker:cache:workspace-b2g-desktop-objects-opt' diff --git a/testing/taskcluster/tasks/builds/b2g_dolphin_eng.yml b/testing/taskcluster/tasks/builds/b2g_dolphin_eng.yml index 3b0f3475089..c7b9228a295 100644 --- a/testing/taskcluster/tasks/builds/b2g_dolphin_eng.yml +++ b/testing/taskcluster/tasks/builds/b2g_dolphin_eng.yml @@ -15,4 +15,3 @@ task: extra: locations: img: 'private/build/dolphin.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_ics_debug.yml b/testing/taskcluster/tasks/builds/b2g_emulator_ics_debug.yml index 79922c6a2c5..d9cd3628c01 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_ics_debug.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_ics_debug.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emulator-ics' + build_type: 'debug' task: workerType: emulator-ics-debug scopes: diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_ics_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_ics_opt.yml index 2a7b848bb68..38add4cd8e8 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_ics_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_ics_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_type: 'opt' + build_name: 'emulator-ics' task: workerType: emulator-ics scopes: @@ -18,4 +21,3 @@ task: env: TARGET: 'emulator' - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_jb_debug.yml b/testing/taskcluster/tasks/builds/b2g_emulator_jb_debug.yml index b2552df0b02..a6c255a9c8a 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_jb_debug.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_jb_debug.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-jb' + build_type: 'debug' task: workerType: emulator-jb-debug scopes: @@ -22,4 +25,3 @@ task: env: TARGET: 'emulator-jb' B2G_DEBUG: 1 - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_jb_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_jb_opt.yml index 8fa8b1c2a58..675d5044262 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_jb_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_jb_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-jb' + build_type: 'opt' task: workerType: emulator-jb scopes: diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_kk_debug.yml b/testing/taskcluster/tasks/builds/b2g_emulator_kk_debug.yml index 7a4373b237d..3e38ba31173 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_kk_debug.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_kk_debug.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-kk' + build_type: 'debug' task: workerType: emulator-kk-debug scopes: diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_kk_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_kk_opt.yml index e9fca4c86ff..037e86842ef 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_kk_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_kk_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-kk' + build_type: 'opt' task: workerType: emulator-kk scopes: @@ -22,4 +25,3 @@ task: workspace-emulator-kk-opt: /home/worker/workspace env: TARGET: 'emulator-kk' - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_l_debug.yml b/testing/taskcluster/tasks/builds/b2g_emulator_l_debug.yml index b2809d0c5ad..277aed3aacd 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_l_debug.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_l_debug.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-l' + build_type: 'opt' task: workerType: emulator-l-debug scopes: @@ -25,4 +28,3 @@ task: env: TARGET: 'emulator-l' B2G_DEBUG: 1 - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_l_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_l_opt.yml index ca9e480e5ce..03214fb0eb4 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_l_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_l_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-l' + build_type: 'opt' task: workerType: emulator-l scopes: @@ -22,5 +25,3 @@ task: workspace-emulator-l-opt: /home/worker/workspace env: TARGET: 'emulator-l' - - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_x86_base.yml b/testing/taskcluster/tasks/builds/b2g_emulator_x86_base.yml index a02597a1c87..b67f55fe9a3 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_x86_base.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_x86_base.yml @@ -31,4 +31,3 @@ task: tests: 'public/build/b2g-tests.zip' symbols: 'public/build/b2g-crashreporter-symbols.zip' sources: 'public/build/sources.xml' - diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_x86_kk_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_x86_kk_opt.yml index 77a5ddc1143..45bfd64a068 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_x86_kk_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_x86_kk_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_x86_base.yml' + variables: + build_name: 'emualtor-x86-kk' + build_type: 'opt' task: workerType: emualtor-x86-kk scopes: diff --git a/testing/taskcluster/tasks/builds/b2g_emulator_x86_l_opt.yml b/testing/taskcluster/tasks/builds/b2g_emulator_x86_l_opt.yml index 01efe5c6b4f..4c928124431 100644 --- a/testing/taskcluster/tasks/builds/b2g_emulator_x86_l_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_emulator_x86_l_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_emulator_base.yml' + variables: + build_name: 'emualtor-x86-l' + build_type: 'opt' task: workerType: emulator-l scopes: @@ -29,6 +32,3 @@ task: workspace-emulator-l-x86-opt: /home/worker/workspace env: TARGET: 'emulator-x86-l' - - - diff --git a/testing/taskcluster/tasks/builds/b2g_flame_kk_eng.yml b/testing/taskcluster/tasks/builds/b2g_flame_kk_eng.yml index 166ea5d74ca..d8f52a507ee 100644 --- a/testing/taskcluster/tasks/builds/b2g_flame_kk_eng.yml +++ b/testing/taskcluster/tasks/builds/b2g_flame_kk_eng.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'flame-kk-eng' + build_type: 'opt' task: workerType: flame-kk scopes: diff --git a/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml b/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml index 63b4559e70e..40451b85d97 100644 --- a/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml +++ b/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'flame-kk-nightly' + build_type: 'opt' task: workerType: flame-kk scopes: @@ -29,4 +32,3 @@ task: locations: img: 'private/build/flame-kk.zip' mar: 'public/build/b2g-flame-gecko-update.mar' - diff --git a/testing/taskcluster/tasks/builds/b2g_flame_kk_opt.yml b/testing/taskcluster/tasks/builds/b2g_flame_kk_opt.yml index b9ad6fd1343..a93f3b0c583 100644 --- a/testing/taskcluster/tasks/builds/b2g_flame_kk_opt.yml +++ b/testing/taskcluster/tasks/builds/b2g_flame_kk_opt.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'flame-kk' + build_type: 'opt' task: workerType: flame-kk scopes: @@ -27,4 +30,3 @@ task: platform: b2g-device-image locations: img: 'private/build/flame-kk.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_hamachi_eng.yml b/testing/taskcluster/tasks/builds/b2g_hamachi_eng.yml index 5971e9bcff3..b205ac0fce7 100644 --- a/testing/taskcluster/tasks/builds/b2g_hamachi_eng.yml +++ b/testing/taskcluster/tasks/builds/b2g_hamachi_eng.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'hamachi-eng' + build_type: 'opt' task: scopes: - 'docker-worker:cache:build-hamachi-eng' @@ -15,4 +18,3 @@ task: extra: locations: img: 'private/build/hamachi.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_hamachi_user.yml b/testing/taskcluster/tasks/builds/b2g_hamachi_user.yml index b41b91ddb21..08502e99d94 100644 --- a/testing/taskcluster/tasks/builds/b2g_hamachi_user.yml +++ b/testing/taskcluster/tasks/builds/b2g_hamachi_user.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'hamachi' + build_type: 'opt' task: scopes: - 'docker-worker:cache:build-hamachi-user' @@ -14,4 +17,3 @@ task: extra: locations: img: 'private/build/hamachi.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_helix_user.yml b/testing/taskcluster/tasks/builds/b2g_helix_user.yml index 8841fd2d236..89f698af331 100644 --- a/testing/taskcluster/tasks/builds/b2g_helix_user.yml +++ b/testing/taskcluster/tasks/builds/b2g_helix_user.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'helix' + build_type: 'opt' task: scopes: - 'docker-worker:cache:build-helix-user' @@ -14,4 +17,3 @@ task: extra: locations: img: 'private/build/helix.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_nexus4_eng.yml b/testing/taskcluster/tasks/builds/b2g_nexus4_eng.yml index 494d4c587d7..21d7fe2bf31 100644 --- a/testing/taskcluster/tasks/builds/b2g_nexus4_eng.yml +++ b/testing/taskcluster/tasks/builds/b2g_nexus4_eng.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'nexus-4-eng' + build_type: 'opt' task: scopes: - 'docker-worker:cache:build-nexus-4-eng' @@ -14,4 +17,3 @@ task: extra: locations: img: 'private/build/nexus-4.zip' - diff --git a/testing/taskcluster/tasks/builds/b2g_nexus4_user.yml b/testing/taskcluster/tasks/builds/b2g_nexus4_user.yml index 2f13f39c8e8..b2a00d5fb4a 100644 --- a/testing/taskcluster/tasks/builds/b2g_nexus4_user.yml +++ b/testing/taskcluster/tasks/builds/b2g_nexus4_user.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'nexus-4-user' + build_type: 'opt' task: scopes: - 'docker-worker:cache:build-nexus-4-user' @@ -21,4 +24,3 @@ task: platform: b2g-device-image locations: img: 'private/build/nexus-4.zip' - diff --git a/testing/taskcluster/tasks/builds/mulet_linux.yml b/testing/taskcluster/tasks/builds/mulet_linux.yml index c753568c753..b62cbdd867e 100644 --- a/testing/taskcluster/tasks/builds/mulet_linux.yml +++ b/testing/taskcluster/tasks/builds/mulet_linux.yml @@ -1,5 +1,8 @@ $inherits: from: 'tasks/build.yml' + variables: + build_name: 'mulet' + build_type: 'opt' task: metadata: name: '[TC] Mulet Linux' diff --git a/testing/taskcluster/tasks/decision/branch.yml b/testing/taskcluster/tasks/decision/branch.yml index cf2227d709b..c83ec4c7a87 100644 --- a/testing/taskcluster/tasks/decision/branch.yml +++ b/testing/taskcluster/tasks/decision/branch.yml @@ -67,6 +67,7 @@ tasks: - > source ./bin/decision.sh && ./mach taskcluster-graph + --pushlog-id='{{pushlog_id}}' --message='{{comment}}' --project='{{project}}' --owner='{{owner}}' @@ -78,4 +79,3 @@ tasks: extra: treeherder: symbol: D - diff --git a/testing/taskcluster/tasks/decision/try.yml b/testing/taskcluster/tasks/decision/try.yml index fc310c3e34b..241e6c51532 100644 --- a/testing/taskcluster/tasks/decision/try.yml +++ b/testing/taskcluster/tasks/decision/try.yml @@ -73,6 +73,7 @@ tasks: checkout-gecko workspace && cd workspace/gecko && ./mach taskcluster-graph + --pushlog-id='{{pushlog_id}}' --project='{{project}}' --message='{{comment}}' --owner='{{owner}}' @@ -84,4 +85,3 @@ tasks: extra: treeherder: symbol: D - diff --git a/widget/gonk/GeckoTouchDispatcher.cpp b/widget/gonk/GeckoTouchDispatcher.cpp index 3caabd7c9e2..24053ef7623 100644 --- a/widget/gonk/GeckoTouchDispatcher.cpp +++ b/widget/gonk/GeckoTouchDispatcher.cpp @@ -169,7 +169,6 @@ GeckoTouchDispatcher::DispatchTouchMoveEvents(TimeStamp aVsyncTime) { MutexAutoLock lock(mTouchQueueLock); if (!mHavePendingTouchMoves) { - MOZ_ASSERT(mTouchMoveEvents.empty()); return; } mHavePendingTouchMoves = false;