Merge m-c to fx-team, a=merge

This commit is contained in:
Wes Kocher 2015-07-15 16:44:38 -07:00
commit f1f60449ff
44 changed files with 256 additions and 87 deletions

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>

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="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="87a2d8ab9248540910e56921654367b78a587095"/>

View File

@ -17,10 +17,10 @@
</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="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="657894b4a1dc0a926117f4812e0940229f9f676f"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<!-- Stock Android things -->

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="f92a936f2aa97526d4593386754bdbf02db07a12"/>
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="6e47ff2790f5656b5b074407829ceecf3e6188c4"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="pdk,linux" name="platform/prebuilts/clang/linux-x86/host/3.5" path="prebuilts/clang/linux-x86/host/3.5" revision="ffc05a232799fe8fcb3e47b7440b52b1fb4244c0"/>
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" path="prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" revision="337e0ef5e40f02a1ae59b90db0548976c70a7226"/>

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="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="87a2d8ab9248540910e56921654367b78a587095"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>

View File

@ -1,9 +1,9 @@
{
"git": {
"git_revision": "b9968cdc4a1dee49848fed6159a59c378cea062d",
"git_revision": "c2c798dd2faadc49c5440abaa60fb2ea3f57113f",
"remote": "https://git.mozilla.org/releases/gaia.git",
"branch": ""
},
"revision": "275f9f64b346b08c91bbe10bfc786827a5bd0531",
"revision": "76c556f31dcbe9e77390aa71db867fd4f28aa70f",
"repo_path": "integration/gaia-central"
}

View File

@ -17,10 +17,10 @@
</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="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="657894b4a1dc0a926117f4812e0940229f9f676f"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<!-- Stock Android things -->

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="b9968cdc4a1dee49848fed6159a59c378cea062d"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c2c798dd2faadc49c5440abaa60fb2ea3f57113f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="c490ae41c67f892232599f4ef049467a922b613e"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
@ -23,7 +23,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="cfa80d0c1c13a13a64b049173ea3a1d605f2cffd"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="7d810e5c522d146a3ee6d13b9422110119a3689f"/>
<!-- Stock Android things -->
<project groups="pdk,linux" name="platform/prebuilts/clang/linux-x86/host/3.5" path="prebuilts/clang/linux-x86/host/3.5" revision="ffc05a232799fe8fcb3e47b7440b52b1fb4244c0"/>
<project groups="pdk,linux,arm" name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" path="prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.8" revision="337e0ef5e40f02a1ae59b90db0548976c70a7226"/>

View File

@ -194,7 +194,7 @@ def append_signatures(d, sigs):
def generate_file_content(signatures):
output = []
for s in sorted(signatures.keys()):
archs = set(signatures[s])
archs = set(sorted(signatures[s]))
if len(archs.symmetric_difference(architecture_independent)) == 0:
output.append(s + ';\n')
if s.startswith('inline'):

View File

@ -119,6 +119,11 @@ public:
return mNextDriver || mPreviousDriver;
}
GraphDriver* NextDriver()
{
return mNextDriver;
}
/**
* If we are running a real time graph, get the current time stamp to schedule
* video frames. This has to be reimplemented by real time drivers.

View File

@ -3420,15 +3420,21 @@ MediaStreamGraphImpl::ApplyAudioContextOperationImpl(AudioNodeStream* aStream,
// If we have suspended the last AudioContext, and we don't have other
// streams that have audio, this graph will automatically switch to a
// SystemCallbackDriver, because it can't find a MediaStream that has an audio
// track. When resuming, force switching to an AudioCallbackDriver. It would
// have happened at the next iteration anyways, but doing this now save
// some time.
// track. When resuming, force switching to an AudioCallbackDriver (if we're
// not already switching). It would have happened at the next iteration
// anyways, but doing this now save some time.
if (aOperation == AudioContextOperation::Resume) {
if (!CurrentDriver()->AsAudioCallbackDriver()) {
AudioCallbackDriver* driver = new AudioCallbackDriver(this);
AudioCallbackDriver* driver;
if (CurrentDriver()->Switching()) {
MOZ_ASSERT(CurrentDriver()->NextDriver()->AsAudioCallbackDriver());
driver = CurrentDriver()->NextDriver()->AsAudioCallbackDriver();
} else {
driver = new AudioCallbackDriver(this);
mMixer.AddCallback(driver);
CurrentDriver()->SwitchAtNextIteration(driver);
}
driver->EnqueueStreamAndPromiseForOperation(aStream, aPromise, aOperation);
mMixer.AddCallback(driver);
CurrentDriver()->SwitchAtNextIteration(driver);
} else {
// We are resuming a context, but we are already using an
// AudioCallbackDriver, we can resolve the promise now.
@ -3456,9 +3462,14 @@ MediaStreamGraphImpl::ApplyAudioContextOperationImpl(AudioNodeStream* aStream,
CurrentDriver()->AsAudioCallbackDriver()->
EnqueueStreamAndPromiseForOperation(aStream, aPromise, aOperation);
SystemClockDriver* driver = new SystemClockDriver(this);
mMixer.RemoveCallback(CurrentDriver()->AsAudioCallbackDriver());
CurrentDriver()->SwitchAtNextIteration(driver);
SystemClockDriver* driver;
if (CurrentDriver()->NextDriver()) {
MOZ_ASSERT(!CurrentDriver()->NextDriver()->AsAudioCallbackDriver());
} else {
driver = new SystemClockDriver(this);
mMixer.RemoveCallback(CurrentDriver()->AsAudioCallbackDriver());
CurrentDriver()->SwitchAtNextIteration(driver);
}
} else {
// We are closing or suspending an AudioContext, but something else is
// using the audio stream, we can resolve the promise now.

View File

@ -85,6 +85,7 @@ MOCHITEST_MANIFESTS += [
if CONFIG['MOZ_WEBRTC']:
MOCHITEST_MANIFESTS += ['tests/mochitest/mochitest.ini']
WEBRTC_SIGNALLING_TEST_MANIFESTS += ['tests/mochitest/steeplechase.ini']
WEBRTC_SIGNALLING_TEST_MANIFESTS += ['tests/mochitest/steeplechase_long/steeplechase_long.ini']
XPIDL_SOURCES += [
'nsIDOMNavigatorUserMedia.idl',

View File

@ -0,0 +1,5 @@
<script>
var ac = new AudioContext();
ac.resume();
ac.resume();
</script>

View File

@ -80,6 +80,7 @@ load 1158427.html
load 1157994.html
load 1122218.html
load 1127188.html
load audiocontext-double-suspend.html
include ../../mediasource/test/crashtests/crashtests.list
# This needs to run at the end to avoid leaking busted state into other tests.

View File

@ -1,11 +1,11 @@
[DEFAULT]
support-files =
head.js
long.js
mediaStreamPlayback.js
pc.js
templates.js
turnConfig.js
../head.js
../mediaStreamPlayback.js
../pc.js
../templates.js
../turnConfig.js
[test_peerConnection_basicAudio_long.html]
[test_peerConnection_basicVideo_long.html]

View File

@ -37,9 +37,11 @@ SharedPlanarYCbCrImage::~SharedPlanarYCbCrImage() {
if (mCompositable->GetAsyncID() != 0 &&
!InImageBridgeChildThread()) {
ADDREF_MANUALLY(mTextureClient);
ImageBridgeChild::DispatchReleaseTextureClient(mTextureClient);
mTextureClient = nullptr;
if (mTextureClient) {
ADDREF_MANUALLY(mTextureClient);
ImageBridgeChild::DispatchReleaseTextureClient(mTextureClient);
mTextureClient = nullptr;
}
ImageBridgeChild::DispatchReleaseImageClient(mCompositable.forget().take());
}

View File

@ -1689,6 +1689,30 @@ bool DoesD3D11DeviceWork(ID3D11Device *device)
return true;
}
static void
CheckForAdapterMismatch(ID3D11Device *device)
{
nsRefPtr<IDXGIDevice> dxgiDevice;
if (FAILED(device->QueryInterface(__uuidof(IDXGIDevice),
getter_AddRefs(dxgiDevice)))) {
return;
}
nsRefPtr<IDXGIAdapter> dxgiAdapter;
if (FAILED(dxgiDevice->GetAdapter(getter_AddRefs(dxgiAdapter)))) {
return;
}
nsCOMPtr<nsIGfxInfo> gfxInfo = services::GetGfxInfo();
nsString vendorID;
gfxInfo->GetAdapterVendorID(vendorID);
nsresult ec;
int32_t vendor = vendorID.ToInteger(&ec, 16);
DXGI_ADAPTER_DESC desc;
dxgiAdapter->GetDesc(&desc);
if (vendor != desc.VendorId) {
gfxCriticalNote << "VendorIDMismatch " << hexa(vendor) << " " << hexa(desc.VendorId);
}
}
void CheckIfRenderTargetViewNeedsRecreating(ID3D11Device *device)
{
nsRefPtr<ID3D11DeviceContext> deviceContext;
@ -1758,6 +1782,9 @@ void CheckIfRenderTargetViewNeedsRecreating(ID3D11Device *device)
}
keyedMutex->ReleaseSync(0);
// It seems like this may only happen when we're using the NVIDIA gpu
CheckForAdapterMismatch(device);
}

View File

@ -0,0 +1,15 @@
// |jit-test| error:98
function foo() {
function gen() {
try {
yield 1;
} finally {
throw 98;
}
}
for (i in gen()) {
for each (var i in this)
return false;
}
}
foo();

View File

@ -0,0 +1,12 @@
function foo(date) {
var F = date.split(" ");
var D = F[0].split("-");
var C = F[1].split(":");
return new Date(D[0], D[1], D[2], C[0], C[1], C[2]);
}
function test() {
with(this) {};
for (var i = 0; i < 1200; i++)
foo("13-5-2015 18:30:" + i);
}
test();

View File

@ -4103,10 +4103,11 @@ MNewArray::MNewArray(CompilerConstraintList* constraints, uint32_t count, MConst
{
setResultType(MIRType_Object);
if (templateObject()) {
TemporaryTypeSet* types = MakeSingletonTypeSet(constraints, templateObject());
setResultTypeSet(types);
if (types->convertDoubleElements(constraints) == TemporaryTypeSet::AlwaysConvertToDoubles)
convertDoubleElements_ = true;
if (TemporaryTypeSet* types = MakeSingletonTypeSet(constraints, templateObject())) {
setResultTypeSet(types);
if (types->convertDoubleElements(constraints) == TemporaryTypeSet::AlwaysConvertToDoubles)
convertDoubleElements_ = true;
}
}
}

View File

@ -1541,6 +1541,13 @@ already_AddRefed<LayerManager> nsDisplayList::PaintRoot(nsDisplayListBuilder* aB
props = Move(LayerProperties::CloneFrom(layerManager->GetRoot()));
}
// Clear any FrameMetrics that may have been set on the root layer on a
// previous paint. This paint will set new metrics if necessary, and if we
// don't clear the old one here, we may be left with extra metrics.
if (Layer* root = layerManager->GetRoot()) {
root->SetFrameMetrics(nsTArray<FrameMetrics>());
}
ContainerLayerParameters containerParameters
(presShell->GetResolution(), presShell->GetResolution());
nsRefPtr<ContainerLayer> root = layerBuilder->
@ -1616,9 +1623,6 @@ already_AddRefed<LayerManager> nsDisplayList::PaintRoot(nsDisplayListBuilder* aB
aBuilder->FindReferenceFrameFor(frame),
root, FrameMetrics::NULL_SCROLL_ID, viewport, Nothing(),
isRootContent, containerParameters));
} else {
// Set empty metrics to clear any metrics that might be on a recycled layer.
root->SetFrameMetrics(nsTArray<FrameMetrics>());
}
// NS_WARNING is debug-only, so don't even bother checking the conditions in

View File

@ -30,7 +30,7 @@ interface nsIURIClassifierCallback : nsISupports
* The URI classifier service checks a URI against lists of phishing
* and malware sites.
*/
[scriptable, uuid(750c4313-f689-4a4c-87c2-a04710a2395b)]
[scriptable, uuid(9168a330-7fba-40e8-9c47-4ce8f15a57fd)]
interface nsIURIClassifier : nsISupports
{
/**
@ -55,14 +55,6 @@ interface nsIURIClassifier : nsISupports
in boolean aTrackingProtectionEnabled,
in nsIURIClassifierCallback aCallback);
/**
* Synchronously classify a Principal locally using its URI. This does not
* make network requests. The result is an error code with which the channel
* should be cancelled, or NS_OK if no result was found.
*/
nsresult classifyLocal(in nsIPrincipal aPrincipal,
in boolean aTrackingProtectionEnabled);
/**
* Synchronously classify a Principal locally using its URI with a
* comma-separated string containing the given tables. This does not make

View File

@ -5037,23 +5037,27 @@ nsHttpChannel::BeginConnect()
if (mLoadFlags & LOAD_CLASSIFY_URI) {
nsCOMPtr<nsIURIClassifier> classifier = do_GetService(NS_URICLASSIFIERSERVICE_CONTRACTID);
if (classifier) {
bool tp = false;
channelClassifier->ShouldEnableTrackingProtection(this, &tp);
bool tpEnabled = false;
channelClassifier->ShouldEnableTrackingProtection(this, &tpEnabled);
// We skip speculative connections by setting mLocalBlocklist only
// when tracking protection is enabled. Though we could do this for
// both phishing and malware, it is not necessary for correctness,
// since no network events will be received while the
// nsChannelClassifier is in progress. See bug 1122691.
if (tp) {
if (tpEnabled) {
nsCOMPtr<nsIPrincipal> principal = GetURIPrincipal();
nsresult response = NS_OK;
classifier->ClassifyLocal(principal, tp, &response);
if (NS_FAILED(response)) {
LOG(("nsHttpChannel::ClassifyLocal found principal on local "
"blocklist [this=%p]", this));
nsAutoCString tables;
Preferences::GetCString("urlclassifier.trackingTable", &tables);
nsAutoCString results;
rv = classifier->ClassifyLocalWithTables(principal, tables, results);
if (NS_SUCCEEDED(rv) && !results.IsEmpty()) {
LOG(("nsHttpChannel::ClassifyLocalWithTables found "
"principal on local tracking blocklist [this=%p]",
this));
mLocalBlocklist = true;
} else {
LOG(("nsHttpChannel::ClassifyLocal no result found [this=%p]", this));
LOG(("nsHttpChannel::ClassifyLocalWithTables no result "
"found [this=%p]", this));
}
}
}

View File

@ -16,9 +16,9 @@ import sys
from io import BytesIO
from buildconfig import topsrcdir
from header import print_header
from typelib import write_typelib
from xpidl import IDLParser
from xpidl.header import print_header
from xpidl.typelib import write_typelib
from xpidl.xpidl import IDLParser
from xpt import xpt_link
from mozbuild.makeutil import Makefile

View File

@ -21,6 +21,10 @@ __all__ = ['parse', 'ParseError', 'ExpressionParser']
# | expr '||' expr
# | expr '==' expr
# | expr '!=' expr
# | expr '<' expr
# | expr '>' expr
# | expr '<=' expr
# | expr '>=' expr
# literal := BOOL
# | INT
# | STRING
@ -63,6 +67,26 @@ class neq_op_token(object):
def led(self, parser, left):
return left != parser.expression(self.lbp)
class lt_op_token(object):
"<"
def led(self, parser, left):
return left < parser.expression(self.lbp)
class gt_op_token(object):
">"
def led(self, parser, left):
return left > parser.expression(self.lbp)
class le_op_token(object):
"<="
def led(self, parser, left):
return left <= parser.expression(self.lbp)
class ge_op_token(object):
">="
def led(self, parser, left):
return left >= parser.expression(self.lbp)
class not_op_token(object):
"!"
def nud(self, parser):
@ -111,7 +135,8 @@ class string_token(literal_token):
precedence = [(end_token, rparen_token),
(or_op_token,),
(and_op_token,),
(eq_op_token, neq_op_token),
(lt_op_token, gt_op_token, le_op_token, ge_op_token,
eq_op_token, neq_op_token),
(lparen_token,),
]
for index, rank in enumerate(precedence):
@ -128,7 +153,7 @@ class ExpressionParser(object):
The expression language can be described as follows::
EXPRESSION ::= LITERAL | '(' EXPRESSION ')' | '!' EXPRESSION | EXPRESSION OP EXPRESSION
OP ::= '==' | '!=' | '&&' | '||'
OP ::= '==' | '!=' | '<' | '>' | '<=' | '>=' | '&&' | '||'
LITERAL ::= BOOL | INT | IDENT | STRING
BOOL ::= 'true' | 'false'
INT ::= [0-9]+
@ -179,6 +204,10 @@ class ExpressionParser(object):
(r'("[^"]*")|(\'[^\']*\')', string_token),
(r"==", eq_op_token()),
(r"!=", neq_op_token()),
(r"<=", le_op_token()),
(r">=", ge_op_token()),
(r"<", lt_op_token()),
(r">", gt_op_token()),
(r"\|\|", or_op_token()),
(r"!", not_op_token()),
(r"&&", and_op_token()),

View File

@ -91,5 +91,62 @@ class ExpressionParserTest(unittest.TestCase):
self.assertFalse(parse("!true && true"))
self.assertFalse(parse("true && !true"))
def test_lesser_than(self):
"""
Test the < operator.
"""
self.assertTrue(parse("1 < 2"))
self.assertFalse(parse("3 < 2"))
self.assertTrue(parse("false || (1 < 2)"))
self.assertTrue(parse("1 < 2 && true"))
self.assertTrue(parse("true && 1 < 2"))
self.assertTrue(parse("!(5 < 1)"))
self.assertTrue(parse("'abc' < 'def'"))
self.assertFalse(parse("1 < 1"))
self.assertFalse(parse("'abc' < 'abc'"))
def test_greater_than(self):
"""
Test the > operator.
"""
self.assertTrue(parse("2 > 1"))
self.assertFalse(parse("2 > 3"))
self.assertTrue(parse("false || (2 > 1)"))
self.assertTrue(parse("2 > 1 && true"))
self.assertTrue(parse("true && 2 > 1"))
self.assertTrue(parse("!(1 > 5)"))
self.assertTrue(parse("'def' > 'abc'"))
self.assertFalse(parse("1 > 1"))
self.assertFalse(parse("'abc' > 'abc'"))
def test_lesser_or_equals_than(self):
"""
Test the <= operator.
"""
self.assertTrue(parse("1 <= 2"))
self.assertFalse(parse("3 <= 2"))
self.assertTrue(parse("false || (1 <= 2)"))
self.assertTrue(parse("1 < 2 && true"))
self.assertTrue(parse("true && 1 <= 2"))
self.assertTrue(parse("!(5 <= 1)"))
self.assertTrue(parse("'abc' <= 'def'"))
self.assertTrue(parse("1 <= 1"))
self.assertTrue(parse("'abc' <= 'abc'"))
def test_greater_or_equals_than(self):
"""
Test the > operator.
"""
self.assertTrue(parse("2 >= 1"))
self.assertFalse(parse("2 >= 3"))
self.assertTrue(parse("false || (2 >= 1)"))
self.assertTrue(parse("2 >= 1 && true"))
self.assertTrue(parse("true && 2 >= 1"))
self.assertTrue(parse("!(1 >= 5)"))
self.assertTrue(parse("'def' >= 'abc'"))
self.assertTrue(parse("1 >= 1"))
self.assertTrue(parse("'abc' >= 'abc'"))
if __name__ == '__main__':
unittest.main()

View File

@ -1228,22 +1228,6 @@ nsUrlClassifierDBService::Classify(nsIPrincipal* aPrincipal,
return NS_OK;
}
NS_IMETHODIMP
nsUrlClassifierDBService::ClassifyLocal(nsIPrincipal* aPrincipal,
bool aTrackingProtectionEnabled,
nsresult* aResponse)
{
MOZ_ASSERT(NS_IsMainThread(), "ClassifyLocal must be on main thread");
*aResponse = NS_OK;
nsAutoCString tables;
BuildTables(aTrackingProtectionEnabled, tables);
nsAutoCString results;
nsresult rv = ClassifyLocalWithTables(aPrincipal, tables, results);
NS_ENSURE_SUCCESS(rv, rv);
*aResponse = TablesToResponse(results);
return NS_OK;
}
NS_IMETHODIMP
nsUrlClassifierDBService::ClassifyLocalWithTables(nsIPrincipal *aPrincipal,
const nsACString & aTables,

15
xpcom/idl-parser/setup.py Normal file
View File

@ -0,0 +1,15 @@
from setuptools import setup, find_packages
setup(
name='xpidl',
version='1.0',
description='Parser and header generator for xpidl files.',
author='Mozilla Foundation',
license='MPL 2.0',
packages=find_packages(),
install_requires=['ply>=3.6,<4.0'],
url='https://github.com/pelmers/xpidl',
entry_points={'console_scripts': ['header.py = xpidl.header:main']},
keywords=['xpidl', 'parser']
)

View File

View File

@ -501,7 +501,8 @@ def write_interface(iface, fd):
fd.write(iface_template_epilog)
if __name__ == '__main__':
def main():
from optparse import OptionParser
o = OptionParser()
o.add_option('-I', action='append', dest='incdirs', default=['.'],
@ -569,3 +570,6 @@ if __name__ == '__main__':
print >>depfd, "%s: %s" % (options.outfile, " ".join(deps))
for dep in deps:
print >>depfd, "%s:" % dep
if __name__ == '__main__':
main()

View File

@ -8,7 +8,7 @@ with Files('**'):
BUG_COMPONENT = ('Core', 'XPCOM')
DIRS += [
'idl-parser',
'idl-parser/xpidl',
]
DIRS += [

View File

@ -4,7 +4,7 @@
export::
ifndef LIBXUL_SDK
$(call SUBMAKE,xpidl-parser,$(DEPTH)/xpcom/idl-parser)
$(call SUBMAKE,xpidl-parser,$(DEPTH)/xpcom/idl-parser/xpidl)
endif
$(call py_action,process_install_manifest,$(DIST)/idl $(DEPTH)/_build_manifests/install/dist_idl)
$(call SUBMAKE,xpidl,$(DEPTH)/config/makefiles/xpidl)