Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Unified Diff: Source/bindings/v8/custom/V8TextTrackCueCustom.cpp

Issue 59623008: Let the TextTrackCue constructor return a VTTCue (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@vttcue
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/v8/custom/V8TextTrackCueCustom.cpp
diff --git a/Source/bindings/v8/custom/V8TextTrackCueCustom.cpp b/Source/bindings/v8/custom/V8TextTrackCueCustom.cpp
index 0ccc04e67607f955b3c68b25add624aa3cb50d8f..905b2f3c91744cc98ad62bb1481e169110beee7e 100644
--- a/Source/bindings/v8/custom/V8TextTrackCueCustom.cpp
+++ b/Source/bindings/v8/custom/V8TextTrackCueCustom.cpp
@@ -40,4 +40,23 @@ v8::Handle<v8::Value> toV8(TextTrackCue* impl, v8::Handle<v8::Object> creationCo
return toV8(toVTTCue(impl), creationContext, isolate);
}
+// Custom constructor to make new TextTrackCue(...) return a VTTCue. This is legacy
+// compat, not per spec, and should be removed at the earliest opportunity.
+void V8TextTrackCue::constructorCustom(const v8::FunctionCallbackInfo<v8::Value>& info)
+{
+ if (UNLIKELY(info.Length() < 3)) {
+ throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TextTrackCue", ExceptionMessages::notEnoughArguments(3, info.Length())), info.GetIsolate());
+ return;
+ }
+ V8TRYCATCH_VOID(double, startTime, static_cast<double>(info[0]->NumberValue()));
+ V8TRYCATCH_VOID(double, endTime, static_cast<double>(info[1]->NumberValue()));
+ V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, text, info[2]);
+
+ Document& document = *toDocument(getExecutionContext());
+ UseCounter::count(document, UseCounter::TextTrackCueConstructor);
+ VTTCue* impl = VTTCue::create(document, startTime, endTime, text).leakRef();
+ v8::Handle<v8::Object> wrapper = wrap(impl, info.Holder(), info.GetIsolate());
+ info.GetReturnValue().Set(wrapper);
+}
+
} // namespace WebCore
« no previous file with comments | « LayoutTests/media/track/text-track-cue-constructor-expected.txt ('k') | Source/core/html/track/TextTrackCue.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698