Diff
Modified: trunk/Source/WebCore/ChangeLog (197632 => 197633)
--- trunk/Source/WebCore/ChangeLog 2016-03-06 04:34:16 UTC (rev 197632)
+++ trunk/Source/WebCore/ChangeLog 2016-03-06 05:02:49 UTC (rev 197633)
@@ -1,3 +1,15 @@
+2016-03-05 Tim Horton <timothy_hor...@apple.com>
+
+ Create a DOMHTMLVideoElement when wrapping <video> elements
+ https://bugs.webkit.org/show_bug.cgi?id=155084
+ <rdar://problem/24997193>
+
+ Reviewed by Dan Bernstein.
+
+ * bindings/objc/DOM.mm:
+ (WebCore::createElementClassMap):
+ Add <video> to the mapping.
+
2016-03-05 Ryosuke Niwa <rn...@webkit.org>
Minor cleans up in custom elements' code per Darin's comments
Modified: trunk/Source/WebCore/bindings/objc/DOM.mm (197632 => 197633)
--- trunk/Source/WebCore/bindings/objc/DOM.mm 2016-03-06 04:34:16 UTC (rev 197632)
+++ trunk/Source/WebCore/bindings/objc/DOM.mm 2016-03-06 05:02:49 UTC (rev 197633)
@@ -33,6 +33,7 @@
#import "DOMElementInternal.h"
#import "DOMHTMLCanvasElement.h"
#import "DOMHTMLTableCellElementInternal.h"
+#import "DOMHTMLVideoElement.h"
#import "DOMNodeInternal.h"
#import "DOMPrivate.h"
#import "DOMRangeInternal.h"
@@ -163,6 +164,9 @@
addElementClass(HTMLNames::titleTag, [DOMHTMLTitleElement class]);
addElementClass(HTMLNames::trTag, [DOMHTMLTableRowElement class]);
addElementClass(HTMLNames::ulTag, [DOMHTMLUListElement class]);
+#if ENABLE(VIDEO)
+ addElementClass(HTMLNames::videoTag, [DOMHTMLVideoElement class]);
+#endif
addElementClass(HTMLNames::xmpTag, [DOMHTMLPreElement class]);
}
Modified: trunk/Tools/ChangeLog (197632 => 197633)
--- trunk/Tools/ChangeLog 2016-03-06 04:34:16 UTC (rev 197632)
+++ trunk/Tools/ChangeLog 2016-03-06 05:02:49 UTC (rev 197633)
@@ -1,3 +1,17 @@
+2016-03-05 Tim Horton <timothy_hor...@apple.com>
+
+ Create a DOMHTMLVideoElement when wrapping <video> elements
+ https://bugs.webkit.org/show_bug.cgi?id=155084
+ <rdar://problem/24997193>
+
+ Reviewed by Dan Bernstein.
+
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/mac/DOMHTMLVideoElementWrapper.mm: Added.
+ (-[VideoWrapperFrameLoadDelegate webView:didFinishLoadForFrame:]):
+ (TestWebKitAPI::TEST):
+ Add an API test for this behavior.
+
2016-03-05 Carlos Alberto Lopez Perez <clo...@igalia.com>
[GTK] Fix logging details after r197505 (Run the run-benchmark script on the performance bot.)
Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (197632 => 197633)
--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2016-03-06 04:34:16 UTC (rev 197632)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2016-03-06 05:02:49 UTC (rev 197633)
@@ -42,6 +42,7 @@
297234B7173AFAC700983601 /* CustomProtocolsInvalidScheme_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 297234B5173AFAC700983601 /* CustomProtocolsInvalidScheme_Bundle.cpp */; };
2D00065F1C1F589A0088E6A7 /* WKPDFViewResizeCrash.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D00065D1C1F58940088E6A7 /* WKPDFViewResizeCrash.mm */; };
2D1FE0B01AD465C1006CD9E6 /* FixedLayoutSize.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D1FE0AF1AD465C1006CD9E6 /* FixedLayoutSize.mm */; };
+ 2D51A0C71C8BF00C00765C45 /* DOMHTMLVideoElementWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D51A0C51C8BF00400765C45 /* DOMHTMLVideoElementWrapper.mm */; };
2D8104CC1BEC13E70020DA46 /* FindInPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D8104CB1BEC13E70020DA46 /* FindInPage.mm */; };
2D9A53AF1B31FA8D0074D5AA /* ShrinkToFit.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D9A53AE1B31FA8D0074D5AA /* ShrinkToFit.mm */; };
2DD355361BD08378005DF4A7 /* AutoLayoutIntegration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2DD355351BD08378005DF4A7 /* AutoLayoutIntegration.mm */; };
@@ -560,6 +561,7 @@
29AB8AA3164C7A9300D49BEC /* TestBrowsingContextLoadDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestBrowsingContextLoadDelegate.h; sourceTree = "<group>"; };
2D00065D1C1F58940088E6A7 /* WKPDFViewResizeCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKPDFViewResizeCrash.mm; sourceTree = "<group>"; };
2D1FE0AF1AD465C1006CD9E6 /* FixedLayoutSize.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FixedLayoutSize.mm; sourceTree = "<group>"; };
+ 2D51A0C51C8BF00400765C45 /* DOMHTMLVideoElementWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMHTMLVideoElementWrapper.mm; sourceTree = "<group>"; };
2D640B5417875DFF00BFAF99 /* ScrollPinningBehaviors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollPinningBehaviors.cpp; sourceTree = "<group>"; };
2D8104CB1BEC13E70020DA46 /* FindInPage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FindInPage.mm; sourceTree = "<group>"; };
2D9A53AE1B31FA8D0074D5AA /* ShrinkToFit.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ShrinkToFit.mm; sourceTree = "<group>"; };
@@ -1426,6 +1428,7 @@
3776BC62150946BC0043A66D /* DeviceScaleFactorInDashboardRegions.mm */,
939BA91614103412001A01BD /* DeviceScaleFactorOnBack.mm */,
37E1064A1697676400B78BD0 /* DOMHTMLTableCellCellAbove.mm */,
+ 2D51A0C51C8BF00400765C45 /* DOMHTMLVideoElementWrapper.mm */,
3751AF7A169518F800764319 /* DOMNodeFromJSObject.mm */,
37DC678B140D7C5000ABCCDB /* DOMRangeOfString.mm */,
C07E6CAE13FD67650038B22B /* DynamicDeviceScaleFactor.mm */,
@@ -1875,6 +1878,7 @@
CE3524F91B1441C40028A7C5 /* TextFieldDidBeginAndEndEditing.cpp in Sources */,
7CCE7EDD1A411A9200447C4C /* TimeRanges.cpp in Sources */,
7CCE7ED31A411A7E00447C4C /* TypingStyleCrash.mm in Sources */,
+ 2D51A0C71C8BF00C00765C45 /* DOMHTMLVideoElementWrapper.mm in Sources */,
7CCE7EDE1A411A9200447C4C /* URL.cpp in Sources */,
7CCE7EB01A411A4400447C4C /* URLExtras.mm in Sources */,
7C882E0A1C80C764006BF731 /* UserContentWorld.mm in Sources */,
Added: trunk/Tools/TestWebKitAPI/Tests/mac/DOMHTMLVideoElementWrapper.mm (0 => 197633)
--- trunk/Tools/TestWebKitAPI/Tests/mac/DOMHTMLVideoElementWrapper.mm (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/mac/DOMHTMLVideoElementWrapper.mm 2016-03-06 05:02:49 UTC (rev 197633)
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "PlatformUtilities.h"
+#import <WebKit/WebDocumentPrivate.h>
+#import <WebKit/DOMHTMLVideoElement.h>
+#import <WebKit/DOMPrivate.h>
+#import <wtf/RetainPtr.h>
+
+@interface VideoWrapperFrameLoadDelegate : NSObject <WebFrameLoadDelegate> {
+}
+@end
+
+static bool didFinishLoad;
+
+@implementation VideoWrapperFrameLoadDelegate
+
+- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
+{
+ didFinishLoad = true;
+}
+
+@end
+
+namespace TestWebKitAPI {
+
+TEST(WebKit1, DOMHTMLVideoElementWrapper)
+{
+ RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]);
+ RetainPtr<VideoWrapperFrameLoadDelegate> frameLoadDelegate = adoptNS([VideoWrapperFrameLoadDelegate new]);
+
+ webView.get().frameLoadDelegate = frameLoadDelegate.get();
+ [webView.get().mainFrame loadHTMLString:@"" baseURL:[NSURL URLWithString:@"about:blank"]];
+
+ Util::run(&didFinishLoad);
+
+ DOMDocument *document = webView.get().mainFrameDocument;
+ DOMElement *video = [document createElement:@"video"];
+ EXPECT_TRUE([video isKindOfClass:[DOMHTMLVideoElement class]]);
+}
+
+} // namespace TestWebKitAPI