mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 882299 - Implement VTTCue::Line r=smaug,rillian,bz
This commit is contained in:
parent
0b1976d65d
commit
1fe94a73b3
@ -8,9 +8,6 @@
|
||||
#include "nsComponentManagerUtils.h"
|
||||
#include "mozilla/ClearOnShutdown.h"
|
||||
|
||||
// Alternate value for the 'auto' keyword.
|
||||
#define WEBVTT_AUTO -1
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
@ -38,7 +35,7 @@ TextTrackCue::SetDefaultCueSettings()
|
||||
mSize = 100;
|
||||
mPauseOnExit = false;
|
||||
mSnapToLines = true;
|
||||
mLine = WEBVTT_AUTO;
|
||||
mLineIsAutoKeyword = true;
|
||||
mAlign = AlignSetting::Middle;
|
||||
mLineAlign = AlignSetting::Start;
|
||||
mVertical = DirectionSetting::_empty;
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "mozilla/StaticPtr.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "mozilla/dom/HTMLDivElement.h"
|
||||
#include "mozilla/dom/UnionTypes.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
@ -168,16 +169,30 @@ public:
|
||||
CueChanged();
|
||||
}
|
||||
|
||||
double Line() const
|
||||
void GetLine(OwningLongOrAutoKeyword& aLine) const
|
||||
{
|
||||
return mLine;
|
||||
if (mLineIsAutoKeyword) {
|
||||
aLine.SetAsAutoKeyword() = AutoKeyword::Auto;
|
||||
return;
|
||||
}
|
||||
aLine.SetAsLong() = mLineLong;
|
||||
}
|
||||
|
||||
void SetLine(double aLine)
|
||||
void SetLine(const LongOrAutoKeyword& aLine)
|
||||
{
|
||||
//XXX: TODO Line position can be a keyword auto. bug882299
|
||||
if (aLine.IsLong() &&
|
||||
(mLineIsAutoKeyword || (aLine.GetAsLong() != mLineLong))) {
|
||||
mLineIsAutoKeyword = false;
|
||||
mLineLong = aLine.GetAsLong();
|
||||
CueChanged();
|
||||
mReset = true;
|
||||
mLine = aLine;
|
||||
return;
|
||||
}
|
||||
if (aLine.IsAutoKeyword() && !mLineIsAutoKeyword) {
|
||||
mLineIsAutoKeyword = true;
|
||||
CueChanged();
|
||||
mReset = true;
|
||||
}
|
||||
}
|
||||
|
||||
AlignSetting LineAlign() const
|
||||
@ -355,7 +370,8 @@ private:
|
||||
bool mSnapToLines;
|
||||
nsString mRegionId;
|
||||
DirectionSetting mVertical;
|
||||
int mLine;
|
||||
bool mLineIsAutoKeyword;
|
||||
long mLineLong;
|
||||
AlignSetting mAlign;
|
||||
AlignSetting mLineAlign;
|
||||
|
||||
|
@ -130,6 +130,13 @@ SpecialPowers.pushPrefEnv({"set": [["media.webvtt.enabled", true]]},
|
||||
cue.positionAlign = "end";
|
||||
is(cue.positionAlign, "end", "Cue's position align should be end.");
|
||||
|
||||
// Check cue.line
|
||||
is(cue.line, "auto", "Cue's line value should initially be auto.");
|
||||
cue.line = 12410
|
||||
is(cue.line, 12410, "Cue's line value should now be 12410.");
|
||||
cue.line = "auto";
|
||||
is(cue.line, "auto", "Cue's line value should now be auto.");
|
||||
|
||||
// Check that we can create and add new VTTCues
|
||||
var vttCue = new VTTCue(3.999, 4, "foo");
|
||||
trackElement.track.addCue(vttCue);
|
||||
|
@ -840,7 +840,9 @@ def UnionTypes(descriptors, dictionaries, callbacks, config):
|
||||
if typeNeedsRooting(f):
|
||||
headers.add("mozilla/dom/RootedDictionary.h")
|
||||
elif f.isEnum():
|
||||
headers.add(CGHeaders.getDeclarationFilename(f))
|
||||
# Need to see the actual definition of the enum,
|
||||
# unfortunately.
|
||||
headers.add(CGHeaders.getDeclarationFilename(f.inner))
|
||||
|
||||
map(addInfoForType, getAllTypes(descriptors, dictionaries, callbacks))
|
||||
|
||||
|
@ -35,8 +35,7 @@ interface VTTCue : EventTarget {
|
||||
attribute DOMString regionId;
|
||||
attribute DirectionSetting vertical;
|
||||
attribute boolean snapToLines;
|
||||
// XXXhumph: https://www.w3.org/Bugs/Public/show_bug.cgi?id=20651
|
||||
// attribute (long or AutoKeyword) line;
|
||||
attribute (long or AutoKeyword) line;
|
||||
[SetterThrows]
|
||||
attribute AlignSetting lineAlign;
|
||||
[SetterThrows]
|
||||
|
Loading…
Reference in New Issue
Block a user