зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to fx-team
This commit is contained in:
Коммит
3c2fdef3ca
|
@ -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="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="dc5ca96695cab87b4c2fcd7c9f046ae3415a70a5"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="71f5a35e3bc1801847413cff1f14fc3b5cd991ca"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="999e945b85c578c503ad445c2285940f16aacdae">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -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="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="dc5ca96695cab87b4c2fcd7c9f046ae3415a70a5"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="71f5a35e3bc1801847413cff1f14fc3b5cd991ca"/>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
"remote": "",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "9863517bfb599a39300f5e8c6f94e16189a4c698",
|
||||
"revision": "d7d92199ea7e8f850ca0c6f0514bf596f178a16f",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -17,7 +17,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="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -15,7 +15,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="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="dc5ca96695cab87b4c2fcd7c9f046ae3415a70a5"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="71f5a35e3bc1801847413cff1f14fc3b5cd991ca"/>
|
||||
|
|
|
@ -17,7 +17,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="fadfafa17f5175203b8b9457bfb95e5816f54f58"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="449d632c69b1a4bd5101d07d18f76799d3fd5f38"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="7f792d756385bb894fba7645da59c67fe2c804bf"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -5646,7 +5646,6 @@ fi
|
|||
dnl ========================================================
|
||||
dnl = ANGLE OpenGL->D3D translator for WebGL
|
||||
dnl = * only applies to win32
|
||||
dnl = * enabled by default (shipping build); requires explicit --disable to disable
|
||||
dnl ========================================================
|
||||
|
||||
MOZ_ANGLE_RENDERER=
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <stagefright/foundation/AMessage.h>
|
||||
#include <stagefright/MediaBuffer.h>
|
||||
#include <stagefright/MediaCodec.h>
|
||||
#include <stagefright/MediaDefs.h>
|
||||
#include <stagefright/MediaExtractor.h>
|
||||
#include <stagefright/MediaSource.h>
|
||||
#include <stagefright/MetaData.h>
|
||||
|
@ -105,6 +106,20 @@ MediaCodecReader::VideoResourceListener::codecCanceled()
|
|||
}
|
||||
}
|
||||
|
||||
bool MediaCodecReader::TrackInputCopier::Copy(MediaBuffer* aSourceBuffer, sp<ABuffer> aCodecBuffer)
|
||||
{
|
||||
if (aSourceBuffer == nullptr ||
|
||||
aCodecBuffer == nullptr ||
|
||||
aSourceBuffer->range_length() > aCodecBuffer->capacity()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
aCodecBuffer->setRange(0, aSourceBuffer->range_length());
|
||||
memcpy(aCodecBuffer->data(), aSourceBuffer->data() + aSourceBuffer->range_offset(), aSourceBuffer->range_length());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
MediaCodecReader::Track::Track()
|
||||
: mDurationUs(INT64_C(0))
|
||||
, mInputIndex(sInvalidInputIndex)
|
||||
|
@ -114,6 +129,29 @@ MediaCodecReader::Track::Track()
|
|||
{
|
||||
}
|
||||
|
||||
// Append the value of |kKeyValidSamples| to the end of each vorbis buffer.
|
||||
// https://github.com/mozilla-b2g/platform_frameworks_av/blob/master/media/libstagefright/OMXCodec.cpp#L3128
|
||||
// https://github.com/mozilla-b2g/platform_frameworks_av/blob/master/media/libstagefright/NuMediaExtractor.cpp#L472
|
||||
bool MediaCodecReader::VorbisInputCopier::Copy(MediaBuffer* aSourceBuffer, sp<ABuffer> aCodecBuffer)
|
||||
{
|
||||
if (aSourceBuffer == nullptr ||
|
||||
aCodecBuffer == nullptr ||
|
||||
aSourceBuffer->range_length() + sizeof(int32_t) > aCodecBuffer->capacity()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t numPageSamples = 0;
|
||||
if (!aSourceBuffer->meta_data()->findInt32(kKeyValidSamples, &numPageSamples)) {
|
||||
numPageSamples = -1;
|
||||
}
|
||||
|
||||
aCodecBuffer->setRange(0, aSourceBuffer->range_length() + sizeof(int32_t));
|
||||
memcpy(aCodecBuffer->data(), aSourceBuffer->data() + aSourceBuffer->range_offset(), aSourceBuffer->range_length());
|
||||
memcpy(aCodecBuffer->data() + aSourceBuffer->range_length(), &numPageSamples, sizeof(numPageSamples));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
MediaCodecReader::AudioTrack::AudioTrack()
|
||||
{
|
||||
}
|
||||
|
@ -678,6 +716,12 @@ MediaCodecReader::CreateMediaCodec(sp<ALooper> &aLooper,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_VORBIS)) {
|
||||
aTrack.mInputCopier = new VorbisInputCopier;
|
||||
} else {
|
||||
aTrack.mInputCopier = new TrackInputCopier;
|
||||
}
|
||||
|
||||
if (!aAsync) {
|
||||
// Pending configure() and start() to codecReserved() if the creation
|
||||
// should be asynchronous.
|
||||
|
@ -999,12 +1043,9 @@ MediaCodecReader::FillCodecInputData(Track &aTrack)
|
|||
if (aTrack.mInputIndex.value() < aTrack.mInputBuffers.size()) {
|
||||
input_buffer = aTrack.mInputBuffers[aTrack.mInputIndex.value()];
|
||||
}
|
||||
if (input_buffer != nullptr && input_buffer->capacity() >= source_buffer->range_length()) {
|
||||
input_buffer->setRange(0, source_buffer->range_length());
|
||||
memcpy((uint8_t *)input_buffer->data() + input_buffer->offset(),
|
||||
(uint8_t *)source_buffer->data() + source_buffer->range_offset(),
|
||||
source_buffer->range_length());
|
||||
|
||||
if (input_buffer != nullptr &&
|
||||
aTrack.mInputCopier != nullptr &&
|
||||
aTrack.mInputCopier->Copy(source_buffer, input_buffer)) {
|
||||
int64_t timestamp = sInvalidTimestampUs;
|
||||
sp<MetaData> codec_format = source_buffer->meta_data();
|
||||
if (codec_format != nullptr) {
|
||||
|
|
|
@ -22,6 +22,7 @@ struct ALooper;
|
|||
struct AMessage;
|
||||
|
||||
class MOZ_EXPORT MediaExtractor;
|
||||
class MOZ_EXPORT MediaBuffer;
|
||||
struct MOZ_EXPORT MediaSource;
|
||||
struct MediaCodec;
|
||||
} // namespace android
|
||||
|
@ -85,6 +86,11 @@ public:
|
|||
virtual bool IsMediaSeekable() MOZ_OVERRIDE;
|
||||
|
||||
protected:
|
||||
struct TrackInputCopier
|
||||
{
|
||||
virtual bool Copy(android::MediaBuffer* aSourceBuffer, android::sp<android::ABuffer> aCodecBuffer);
|
||||
};
|
||||
|
||||
struct Track
|
||||
{
|
||||
Track();
|
||||
|
@ -95,6 +101,9 @@ protected:
|
|||
android::Vector<android::sp<android::ABuffer> > mInputBuffers;
|
||||
android::Vector<android::sp<android::ABuffer> > mOutputBuffers;
|
||||
|
||||
// pipeline copier
|
||||
nsAutoPtr<TrackInputCopier> mInputCopier;
|
||||
|
||||
// media parameters
|
||||
int64_t mDurationUs;
|
||||
|
||||
|
@ -156,6 +165,11 @@ private:
|
|||
};
|
||||
friend class VideoResourceListener;
|
||||
|
||||
class VorbisInputCopier : public TrackInputCopier
|
||||
{
|
||||
virtual bool Copy(android::MediaBuffer* aSourceBuffer, android::sp<android::ABuffer> aCodecBuffer);
|
||||
};
|
||||
|
||||
struct AudioTrack : public Track
|
||||
{
|
||||
AudioTrack();
|
||||
|
|
|
@ -516,6 +516,7 @@ TabChildBase::DispatchSynthesizedMouseEvent(uint32_t aMsg, uint64_t aTime,
|
|||
event.time = aTime;
|
||||
event.button = WidgetMouseEvent::eLeftButton;
|
||||
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_TOUCH;
|
||||
event.ignoreRootScrollFrame = true;
|
||||
if (aMsg != NS_MOUSE_MOVE) {
|
||||
event.clickCount = 1;
|
||||
}
|
||||
|
@ -1845,7 +1846,7 @@ TabChild::RecvHandleLongTap(const CSSPoint& aPoint, const ScrollableLayerGuid& a
|
|||
bool eventHandled =
|
||||
DispatchMouseEvent(NS_LITERAL_STRING("contextmenu"),
|
||||
APZCCallbackHelper::ApplyCallbackTransform(aPoint, aGuid),
|
||||
2, 1, 0, false,
|
||||
2, 1, 0, true,
|
||||
nsIDOMMouseEvent::MOZ_SOURCE_TOUCH);
|
||||
|
||||
// If no one handle context menu, fire MOZLONGTAP event
|
||||
|
@ -2078,7 +2079,7 @@ TabChild::FireContextMenuEvent()
|
|||
2 /* Right button */,
|
||||
1 /* Click count */,
|
||||
0 /* Modifiers */,
|
||||
false /* Ignore root scroll frame */,
|
||||
true /* Ignore root scroll frame */,
|
||||
nsIDOMMouseEvent::MOZ_SOURCE_TOUCH);
|
||||
|
||||
// Fire a click event if someone didn't call preventDefault() on the context
|
||||
|
|
|
@ -73,6 +73,9 @@ skip-if = toolkit == 'gonk' # b2g(Bug 960442, video support for WebRTC is disabl
|
|||
[test_peerConnection_bug835370.html]
|
||||
[test_peerConnection_bug1013809.html]
|
||||
skip-if = (toolkit == 'gonk' && debug) # b2g emulator seems to be too slow (Bug 1016498 and 1008080)
|
||||
[test_peerConnection_bug1042791.html]
|
||||
skip-if = true # disabled until we can resolve plugin installation issues
|
||||
#skip-if = toolkit == 'gonk' || toolkit == 'android' # no openh264 on b2g/android
|
||||
[test_peerConnection_close.html]
|
||||
[test_peerConnection_errorCallbacks.html]
|
||||
[test_peerConnection_offerRequiresReceiveAudio.html]
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="head.js"></script>
|
||||
<script type="application/javascript" src="mediaStreamPlayback.js"></script>
|
||||
<script type="application/javascript" src="pc.js"></script>
|
||||
<script type="application/javascript" src="templates.js"></script>
|
||||
<script type="application/javascript" src="turnConfig.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<pre id="test">
|
||||
<script type="application/javascript;version=1.8">
|
||||
createHTML({
|
||||
bug: "1040346",
|
||||
title: "Basic H.264 GMP video-only peer connection"
|
||||
});
|
||||
|
||||
var test;
|
||||
runNetworkTest(function (options) {
|
||||
options = options || { };
|
||||
options.h264 = true;
|
||||
test = new PeerConnectionTest(options);
|
||||
test.setMediaConstraints([{video: true}], [{video: true}]);
|
||||
test.chain.removeAfter("PC_LOCAL_CREATE_OFFER");
|
||||
|
||||
test.chain.append([[
|
||||
"PC_LOCAL_VERIFY_H264_OFFER",
|
||||
function (test) {
|
||||
ok(!test.pcLocal._last_offer.sdp.contains("profile-level-id=0x42e00c"),
|
||||
"H264 offer does not contain profile-level-id=0x42e00c");
|
||||
ok(test.pcLocal._last_offer.sdp.contains("profile-level-id=42e00c"),
|
||||
"H264 offer contains profile-level-id=42e00c");
|
||||
test.next();
|
||||
}
|
||||
]]);
|
||||
|
||||
test.run();
|
||||
});
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -116,10 +116,6 @@ public:
|
|||
|
||||
using namespace mozilla::gfx;
|
||||
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
extern nsIntRect gScreenBounds;
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
namespace gl {
|
||||
|
||||
|
@ -205,12 +201,6 @@ CreateSurfaceForWindow(nsIWidget* widget, const EGLConfig& config) {
|
|||
#else
|
||||
MOZ_ASSERT(widget != nullptr);
|
||||
newSurface = sEGLLibrary.fCreateWindowSurface(EGL_DISPLAY(), config, GET_NATIVE_WINDOW(widget), 0);
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
gScreenBounds.x = 0;
|
||||
gScreenBounds.y = 0;
|
||||
sEGLLibrary.fQuerySurface(EGL_DISPLAY(), newSurface, LOCAL_EGL_WIDTH, &gScreenBounds.width);
|
||||
sEGLLibrary.fQuerySurface(EGL_DISPLAY(), newSurface, LOCAL_EGL_HEIGHT, &gScreenBounds.height);
|
||||
#endif
|
||||
#endif
|
||||
return newSurface;
|
||||
}
|
||||
|
|
|
@ -4646,10 +4646,23 @@ nsImageRenderer::Draw(nsPresContext* aPresContext,
|
|||
return;
|
||||
}
|
||||
|
||||
gfxContext* ctx = aRenderingContext.ThebesContext();
|
||||
gfxContext::GraphicsOperator op = ctx->CurrentOperator();
|
||||
if (op != gfxContext::OPERATOR_OVER) {
|
||||
ctx->PushGroup(gfxContentType::COLOR_ALPHA);
|
||||
ctx->SetOperator(gfxContext::OPERATOR_OVER);
|
||||
}
|
||||
|
||||
nsCOMPtr<imgIContainer> image(ImageOps::CreateFromDrawable(drawable));
|
||||
nsLayoutUtils::DrawImage(&aRenderingContext, aPresContext, image,
|
||||
filter, aDest, aFill, aAnchor, aDirtyRect,
|
||||
ConvertImageRendererToDrawFlags(mFlags));
|
||||
|
||||
if (op != gfxContext::OPERATOR_OVER) {
|
||||
ctx->PopGroupToSource();
|
||||
ctx->Paint();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
case eStyleImageType_Null:
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
|
||||
.c {
|
||||
height: 10px;
|
||||
background: rgb(0,255,0,.5);
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="c"></div>
|
||||
<div class="c"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
|
||||
div {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
#b {
|
||||
background: rgb(0,255,0,.5);
|
||||
}
|
||||
#c {
|
||||
background: -moz-element(#b);
|
||||
background-blend-mode: difference;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="b"></div>
|
||||
<div id="c"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -82,3 +82,5 @@ pref(layout.css.background-blend-mode.enabled,true) == background-blending-backg
|
|||
|
||||
pref(layout.css.background-blend-mode.enabled,true) == background-blend-mode-body-image.html background-blend-mode-body-image-ref.html
|
||||
pref(layout.css.background-blend-mode.enabled,true) == background-blend-mode-body-transparent-image.html background-blend-mode-body-transparent-image-ref.html
|
||||
|
||||
pref(layout.css.background-blend-mode.enabled,true) == background-blending-moz-element.html background-blending-moz-element-ref.html
|
||||
|
|
|
@ -100,7 +100,7 @@ GetProcSelfSmapsPrivate(int64_t* aN)
|
|||
char* ptr = buffer;
|
||||
end[carryOver] = '\0';
|
||||
// We are looking for lines like "Private_{Clean,Dirty}: 4 kB".
|
||||
while (ptr = strstr(ptr, "Private")) {
|
||||
while ((ptr = strstr(ptr, "Private"))) {
|
||||
if (ptr >= end) {
|
||||
break;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче