mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
5a5b052a7c
- Bug 930218 part 1. Factor out the computation of block-size taken up by box-sizing into a separate function so we can reuse it. r=dbaron (22033f4184) - Bug 930218 part 2. Account for the parent's box-sizing whe figuring out the percentage height of a kid with an intrinsic ratio for purposes of determining the parent's shrink-wrap width. r=dbaron (041711f58f) - Bug 1235306 - Fix -Wimplicit-fallthrough warnings in layout/. r=dholbert (581c212254) - Bug 1074971 - Add support for reserved commandkey combinations that can't be handled by content (e10s-only feature). r=smaug (e43d39dcef) - Bug 1186799 part.1 nsHTMLEditorEventListener should commit composition when it receives unacceptable mousedown event r=smaug (17f2c48e96) - Bug 1230216 - Changing nsIDOM*Event interfaces so that they don't inherit nsIDOMEvent. r=smaug (df77f91ecc) - fix cancelBubble situation and align to gecko (bc133dc50a) - Bug 1211402. Re-enable the upload step, but take out the stuff that no longer works (as in, everything.) r=me (cb7abd67d2) - align (bac4aec6cc) - Bug 1243608: P1. Only use video time if video frame contains seek target. r=cpearce (21d9e988ed) - Bug 1244477: Offset seek time by start time. r=jwwang (743c24b2f7) - Bug 1243608: P2. Pass the full SeekTarget object to MediaDecoderReader::Seek. r=cpearce (6ff30b4b65) - Bug 1243608: P3. Make SeekTarget::mTime a TimeUnit object. r=cpearce (357d9864de) - Bug 1243608: P4. Have MediaDecoderReader::SeekPromise return a TimeUnit. r=cpearce (53b476c62d) - Bug 1159343: Interrupt seek early when possible. r=jwwang (9e26e69593) - Bug 1243608: P5. Add type utility methods to SeekTarget class. r=cpearce (8e740bab50) - Bug 1243608: P6. Only seek audio to video seek time when performing a fast seek. r=cpearce (d2a51a71f0) - Bug 1233650. Part 1 - extract OutputStreamManager to its own file. r=roc. (52d533f923) - Bug 1230882. Part 2 - remove DecodedStream::BeginShutdown() and other unused code. r=roc. (b2820b8f14) - Bug 1231091. Part 1 - Add mVideoCompleted so MDSM can check when audio/video is done rendering. This removes the only caller of DecodedStream::IsFinished(). r=roc. (536f63e385) - Bug 1146086: Properly marking overridden member with override keyword. v2. a=bustage (b6ed1b4e6c) - Bug 1177243 - Use PodZero rather than memset in WebM decoders. r=rillian (f9853b72ee) - Bug 1230054: Remove unused WebMReader. r=kinetik (1f88fe3c43) - Bug 1230054: Add missing headers ON A CLOSED TREE. r=me (6e33accf03) - Bug 1231091. Part 2 - return correct promises when audio/video track is asked. r=roc. (aef6342e59) - Bug 1231091. Part 3 - resolve the end promise when all frames are rendered. r=roc. (bbb180dd90) - Bug 1231091. Part 4 - ensure the end promise is resolved in the special case where video duration is 0. r=roc. (7835c31e75) - Bug 1231091. Part 5 - Remove DecodedStream::IsFinished() and unused code. r=roc. (6dd02e5d6b) - Bug 1231091. Part 6 - fix test_streams_element_capture.html timeout. r=roc. (8aae5c09cc) - Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase. r=jya. (5434d0f370) - Bug 1233650. Part 2 - make OutputStreamManager ref-counted so it can be shared between MDSM and DecodedStream. r=roc. (93e7d0e065) - Bug 1233650. Part 3 - move creation of OutputStreamManager from DecodedStream to MDSM. r=roc. (a469dbcc9f) - Bug 1233650. Part 4 - remove unused functions from DecodedStream. r=roc. (ec8753365e) - Bug 1248314. Part 1 - Since OutputStreamManager::Connect/Disconnect is tightly coupled with the constructor/destructor of DecodedStreamData, it would improve cohesion to let DecodedStreamData manage an OutputStreamManager and know when to call OutputStreamManager::Connect/Disconnect. r=roc. (467d1472ca) - Bug 1234424. Part 1 - share the underlying value of MDSM::mSameOriginMedia with DecodedStream. r=roc. (ff0abefb26) - Bug 1234424. Part 2 - remove unused code. r=roc. (5a8266779b) - Bug 1248314. part 2 - move track initialization code into the constructor of DecodedStreamData. r=roc. (4d57f47654) - Bug 1248229. Part 1 - add test case to test if playback can work correctly after GC. r=roc. (83c81dc7cc) - Bug 1248229. Part 2 - GC might happen in between OutputStreamManager::Disconnect() and OutputStreamManager::Connect(). We need to check if the stream is already destroyed before trying to connect it. r=roc. (c5a0ed670c) - remove PM leftover (ed9ce00aad) - Bug 1236703: P1. Add debugging information for MSE to about:media plugin. r=kentuckyfriedtakahe (4385a86197) - Bug 1236703: P2. Add methods to retrieve debugging data on plain readers. r=jwwang (34bf637124) - Bug 1236703: P3. Add moz specific method to retrieve debug data to media object IDL. r=bz (65c95eff74) - Bug 1194721: Add additional PDU pack and unpack functions, r=shuang (d6ae416a10) - Bug 1261307: Convert Unix socket IPC code to |UniquePtr|, r=nfroyd (cd797f4581) - Bug 1236574 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in SocketBase subclasses; r=tzimmerman (6a20e9e905) - Bug 1239207 - Don't process IPDL when not compiling; r=glandium (20ba7fb311) - Bug 1210099 - Use diagnostic assert for union discriminator checks (r=jld) (74844eee1b) - Bug 1208226 - Don't crash when failing to map a segment of shared memory. r=sotaro, billm (1822a634d9) - Bug 1236635 - Fix compile error in IPC unit tests (r=jld) (c82e0bfe61) - Bug 1263429 - Don't build libevent with sysctl on Linux. r=billm (00f248f61e) - Bug 1304266 - Remove libevent workaround for MacOS 10.4 bug (r=dvander) a=jcristau (676758a926) - Bug 1241776 - turn ENABLE_SHARED_ARRAY_BUFFER on for all channels. r=nbp (dc53fff545) - Bug 1248851 part 1 - Explicitly mark some release() calls result-unused. r=Waldo (b377e3d86e) - Bug 1246697 - Use simpler semantics for PersistentRooted<Traceable>; r=sfink (7afab5c807) - bug 1225649 use CreatePlanarYCbCrImage() now that CreateImage() is gone r=dvander (b8a30f3d84) - Bug 1234092: P1. Remove GStreamer support. r=kentuckyfriedtakahe (bf6a5d8811) - Bug 1234092: P2. Remove GStreamer check from configure. r=glandium (73b69b41db) - remove configure options (f9585af0d1) - Bug 1168309 - Add the define, MOZ_GONK_MEDIACODEC, to dom/media. r=cpearce. (a4481af932) - Bug 1240616 - mach mochitest-run suggests deprecated commands as an alternative r=cmanchester (17687db974) - Bug 1249838 - Avoid dependency from the mozconfig loader on mach. r=gps (a88506c027) - Bug 382721 - Part 0: Add missing includes and namespaces. r=jrmuizel (eecf253c5e)
167 lines
4.9 KiB
C++
167 lines
4.9 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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 "mozilla/dom/CSSLexer.h"
|
|
#include "js/Value.h"
|
|
#include "mozilla/dom/CSSLexerBinding.h"
|
|
#include "mozilla/dom/ToJSValue.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
// Ensure that constants are consistent.
|
|
|
|
#define CHECK(X, Y) \
|
|
static_assert(static_cast<int>(X) == static_cast<int>(Y), \
|
|
"nsCSSToken and CSSTokenType should have identical values")
|
|
|
|
CHECK(eCSSToken_Whitespace, CSSTokenType::Whitespace);
|
|
CHECK(eCSSToken_Comment, CSSTokenType::Comment);
|
|
CHECK(eCSSToken_Ident, CSSTokenType::Ident);
|
|
CHECK(eCSSToken_Function, CSSTokenType::Function);
|
|
CHECK(eCSSToken_AtKeyword, CSSTokenType::At);
|
|
CHECK(eCSSToken_ID, CSSTokenType::Id);
|
|
CHECK(eCSSToken_Hash, CSSTokenType::Hash);
|
|
CHECK(eCSSToken_Number, CSSTokenType::Number);
|
|
CHECK(eCSSToken_Dimension, CSSTokenType::Dimension);
|
|
CHECK(eCSSToken_Percentage, CSSTokenType::Percentage);
|
|
CHECK(eCSSToken_String, CSSTokenType::String);
|
|
CHECK(eCSSToken_Bad_String, CSSTokenType::Bad_string);
|
|
CHECK(eCSSToken_URL, CSSTokenType::Url);
|
|
CHECK(eCSSToken_Bad_URL, CSSTokenType::Bad_url);
|
|
CHECK(eCSSToken_Symbol, CSSTokenType::Symbol);
|
|
CHECK(eCSSToken_Includes, CSSTokenType::Includes);
|
|
CHECK(eCSSToken_Dashmatch, CSSTokenType::Dashmatch);
|
|
CHECK(eCSSToken_Beginsmatch, CSSTokenType::Beginsmatch);
|
|
CHECK(eCSSToken_Endsmatch, CSSTokenType::Endsmatch);
|
|
CHECK(eCSSToken_Containsmatch, CSSTokenType::Containsmatch);
|
|
CHECK(eCSSToken_URange, CSSTokenType::Urange);
|
|
CHECK(eCSSToken_HTMLComment, CSSTokenType::Htmlcomment);
|
|
|
|
#undef CHECK
|
|
|
|
CSSLexer::CSSLexer(const nsAString& aText)
|
|
: mInput(aText)
|
|
, mScanner(mInput, 1)
|
|
{
|
|
}
|
|
|
|
CSSLexer::~CSSLexer()
|
|
{
|
|
}
|
|
|
|
bool
|
|
CSSLexer::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto,
|
|
JS::MutableHandle<JSObject*> aReflector)
|
|
{
|
|
return CSSLexerBinding::Wrap(aCx, this, aGivenProto, aReflector);
|
|
}
|
|
|
|
uint32_t
|
|
CSSLexer::LineNumber()
|
|
{
|
|
// The scanner uses 1-based line numbers, but our callers expect
|
|
// 0-based.
|
|
return mScanner.GetLineNumber() - 1;
|
|
}
|
|
|
|
uint32_t
|
|
CSSLexer::ColumnNumber()
|
|
{
|
|
return mScanner.GetColumnNumber();
|
|
}
|
|
|
|
void
|
|
CSSLexer::PerformEOFFixup(const nsAString& aInputString, bool aPreserveBackslash,
|
|
nsAString& aResult)
|
|
{
|
|
aResult.Append(aInputString);
|
|
uint32_t eofChars = mScanner.GetEOFCharacters();
|
|
|
|
if (aPreserveBackslash &&
|
|
(eofChars & (nsCSSScanner::eEOFCharacters_DropBackslash |
|
|
nsCSSScanner::eEOFCharacters_ReplacementChar)) != 0) {
|
|
eofChars &= ~(nsCSSScanner::eEOFCharacters_DropBackslash |
|
|
nsCSSScanner::eEOFCharacters_ReplacementChar);
|
|
aResult.Append('\\');
|
|
}
|
|
|
|
if ((eofChars & nsCSSScanner::eEOFCharacters_DropBackslash) != 0 &&
|
|
aResult.Length() > 0 && aResult.Last() == '\\') {
|
|
aResult.Truncate(aResult.Length() - 1);
|
|
}
|
|
|
|
nsCSSScanner::AppendImpliedEOFCharacters(nsCSSScanner::EOFCharacters(eofChars),
|
|
aResult);
|
|
}
|
|
|
|
void
|
|
CSSLexer::NextToken(Nullable<CSSToken>& aResult)
|
|
{
|
|
nsCSSToken token;
|
|
if (!mScanner.Next(token, eCSSScannerExclude_None)) {
|
|
return;
|
|
}
|
|
|
|
CSSToken& resultToken(aResult.SetValue());
|
|
|
|
resultToken.mTokenType = static_cast<CSSTokenType>(token.mType);
|
|
resultToken.mStartOffset = mScanner.GetTokenOffset();
|
|
resultToken.mEndOffset = mScanner.GetTokenEndOffset();
|
|
|
|
switch (token.mType) {
|
|
case eCSSToken_Whitespace:
|
|
break;
|
|
|
|
case eCSSToken_Ident:
|
|
case eCSSToken_Function:
|
|
case eCSSToken_AtKeyword:
|
|
case eCSSToken_ID:
|
|
case eCSSToken_Hash:
|
|
resultToken.mText.Construct(token.mIdent);
|
|
break;
|
|
|
|
case eCSSToken_Dimension:
|
|
resultToken.mText.Construct(token.mIdent);
|
|
MOZ_FALLTHROUGH;
|
|
case eCSSToken_Number:
|
|
case eCSSToken_Percentage:
|
|
resultToken.mNumber.Construct(token.mNumber);
|
|
resultToken.mHasSign.Construct(token.mHasSign);
|
|
resultToken.mIsInteger.Construct(token.mIntegerValid);
|
|
break;
|
|
|
|
case eCSSToken_String:
|
|
case eCSSToken_Bad_String:
|
|
case eCSSToken_URL:
|
|
case eCSSToken_Bad_URL:
|
|
resultToken.mText.Construct(token.mIdent);
|
|
/* Don't bother emitting the delimiter, as it is readily extracted
|
|
from the source string when needed. */
|
|
break;
|
|
|
|
case eCSSToken_Symbol:
|
|
resultToken.mText.Construct(nsString(&token.mSymbol, 1));
|
|
break;
|
|
|
|
case eCSSToken_Includes:
|
|
case eCSSToken_Dashmatch:
|
|
case eCSSToken_Beginsmatch:
|
|
case eCSSToken_Endsmatch:
|
|
case eCSSToken_Containsmatch:
|
|
case eCSSToken_URange:
|
|
break;
|
|
|
|
case eCSSToken_Comment:
|
|
case eCSSToken_HTMLComment:
|
|
/* The comment text is easily extracted from the source string,
|
|
and is rarely useful. */
|
|
break;
|
|
}
|
|
}
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|