<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[205633] releases/WebKitGTK/webkit-2.14</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/205633">205633</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2016-09-08 05:33:05 -0700 (Thu, 08 Sep 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/205360">r205360</a> - REGRESSION (<a href="http://trac.webkit.org/projects/webkit/changeset/204839">r204839</a>): [mac-wk1] LayoutTest webgl/max-active-contexts-webglcontextlost-prevent-default.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=161205
Reviewed by Geoffrey Garen.
Source/WebCore:
Fixes several issues:
- Add missing isReachableFromOpaqueRoots() implementation for JSWebGLRenderingContextBase.
It used to rely on the one from its JSCanvasRenderingContext base. However, that base
was dropped in <a href="http://trac.webkit.org/projects/webkit/changeset/204839">r204839</a>.
- Update JSWebGLRenderingContextBase::visitAdditionalChildren() to add its canvas
object as opaque root as well. This used to be taken care of by
JSCanvasRenderingContext::visitAdditionalChildren() but it got dropped in <a href="http://trac.webkit.org/projects/webkit/changeset/204839">r204839</a>.
This also refactors the code a bit for clarity.
No new tests, unskipped existing test.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCanvasRenderingContext.h: Removed.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::getCSSCanvasContext):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSWebGLRenderingContextBaseOwner::isReachableFromOpaqueRoots):
(WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
* html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::is3d):
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLRenderingContextBase.idl:
LayoutTests:
Unskip test case now that it is no longer flaky.
* platform/mac-wk1/TestExpectations:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit214LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit214LayoutTestsplatformmacwk1TestExpectations">releases/WebKitGTK/webkit-2.14/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCoreWebCorexcodeprojprojectpbxproj">releases/WebKitGTK/webkit-2.14/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSDocumentCustomcpp">releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSDocumentCustom.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp">releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSWebGLRenderingContextBaseCustomcpp">releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasCanvasRenderingContexth">releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/CanvasRenderingContext.h</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasWebGLRenderingContextBaseh">releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.h</a></li>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasWebGLRenderingContextBaseidl">releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSCanvasRenderingContexth">releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSCanvasRenderingContext.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit214LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-09-02 Chris Dumez <cdumez@apple.com>
+
+ REGRESSION (r204839): [mac-wk1] LayoutTest webgl/max-active-contexts-webglcontextlost-prevent-default.html is a flaky timeout
+ https://bugs.webkit.org/show_bug.cgi?id=161205
+
+ Reviewed by Geoffrey Garen.
+
+ Unskip test case now that it is no longer flaky.
+
+ * platform/mac-wk1/TestExpectations:
+
</ins><span class="cx"> 2016-08-31 Zalan Bujtas <zalan@apple.com>
</span><span class="cx">
</span><span class="cx"> ASSERTION FAILED: !flow->layer() && !flow->isInlineElementContinuation() in WebCore::RenderBlock::addContinuationWithOutline
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214LayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/LayoutTests/platform/mac-wk1/TestExpectations (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/LayoutTests/platform/mac-wk1/TestExpectations        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/platform/mac-wk1/TestExpectations        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -252,4 +252,3 @@
</span><span class="cx">
</span><span class="cx"> webkit.org/b/161191 imported/w3c/web-platform-tests/url/url-setters.html [ Skip ]
</span><span class="cx">
</span><del>-webkit.org/b/161205 webgl/max-active-contexts-webglcontextlost-prevent-default.html [ Pass Timeout ]
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -1,3 +1,38 @@
</span><ins>+2016-09-02 Chris Dumez <cdumez@apple.com>
+
+ REGRESSION (r204839): [mac-wk1] LayoutTest webgl/max-active-contexts-webglcontextlost-prevent-default.html is a flaky timeout
+ https://bugs.webkit.org/show_bug.cgi?id=161205
+
+ Reviewed by Geoffrey Garen.
+
+ Fixes several issues:
+ - Add missing isReachableFromOpaqueRoots() implementation for JSWebGLRenderingContextBase.
+ It used to rely on the one from its JSCanvasRenderingContext base. However, that base
+ was dropped in r204839.
+ - Update JSWebGLRenderingContextBase::visitAdditionalChildren() to add its canvas
+ object as opaque root as well. This used to be taken care of by
+ JSCanvasRenderingContext::visitAdditionalChildren() but it got dropped in r204839.
+
+ This also refactors the code a bit for clarity.
+
+ No new tests, unskipped existing test.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSCanvasRenderingContext.h: Removed.
+ * bindings/js/JSDocumentCustom.cpp:
+ (WebCore::JSDocument::getCSSCanvasContext):
+ * bindings/js/JSHTMLCanvasElementCustom.cpp:
+ (WebCore::JSHTMLCanvasElement::getContext):
+ * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
+ (WebCore::toJSNewlyCreated):
+ (WebCore::toJS):
+ (WebCore::JSWebGLRenderingContextBaseOwner::isReachableFromOpaqueRoots):
+ (WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
+ * html/canvas/CanvasRenderingContext.h:
+ (WebCore::CanvasRenderingContext::is3d):
+ * html/canvas/WebGLRenderingContextBase.h:
+ * html/canvas/WebGLRenderingContextBase.idl:
+
</ins><span class="cx"> 2016-09-01 Mark Lam <mark.lam@apple.com>
</span><span class="cx">
</span><span class="cx"> Move some JSObject and JSArray inline functions to their respective Inlines.h files.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/WebCore.xcodeproj/project.pbxproj (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -1720,7 +1720,6 @@
</span><span class="cx">                 4634592C1AC2271000ECB71C /* PowerObserverMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4634592B1AC2271000ECB71C /* PowerObserverMac.cpp */; };
</span><span class="cx">                 463EB6221B8789E00096ED51 /* TagCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 463EB6201B8789CB0096ED51 /* TagCollection.cpp */; };
</span><span class="cx">                 463EB6231B8789E00096ED51 /* TagCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 463EB6211B8789CB0096ED51 /* TagCollection.h */; };
</span><del>-                4659D2711D6B90A50096FD86 /* JSCanvasRenderingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 4659D2701D6B909F0096FD86 /* JSCanvasRenderingContext.h */; };
</del><span class="cx">                 465A8E791C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm in Sources */ = {isa = PBXBuildFile; fileRef = 465A8E781C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm */; };
</span><span class="cx">                 4669B2871B852A0B000F905F /* JSDOMNamedFlowCollectionCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */; };
</span><span class="cx">                 4671E0651D67A59600C6B497 /* CanvasPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4671E0631D67A57B00C6B497 /* CanvasPath.cpp */; };
</span><span class="lines">@@ -1846,7 +1845,6 @@
</span><span class="cx">                 49ECEB6E1499790D00CDD3A4 /* FilterOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 49ECEB641499790D00CDD3A4 /* FilterOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 49ECEB6F1499790D00CDD3A4 /* FilterOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49ECEB651499790D00CDD3A4 /* FilterOperations.cpp */; };
</span><span class="cx">                 49ECEB701499790D00CDD3A4 /* FilterOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 49ECEB661499790D00CDD3A4 /* FilterOperations.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                49EED1431051969400099FAB /* JSCanvasRenderingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 49EED13D1051969400099FAB /* JSCanvasRenderingContext.h */; };
</del><span class="cx">                 49EED1441051969400099FAB /* JSCanvasRenderingContext2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49EED13E1051969400099FAB /* JSCanvasRenderingContext2D.cpp */; };
</span><span class="cx">                 49EED1451051969400099FAB /* JSCanvasRenderingContext2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 49EED13F1051969400099FAB /* JSCanvasRenderingContext2D.h */; };
</span><span class="cx">                 49EED1461051969400099FAB /* JSWebGLRenderingContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49EED1401051969400099FAB /* JSWebGLRenderingContext.cpp */; };
</span><span class="lines">@@ -8667,7 +8665,6 @@
</span><span class="cx">                 4634592B1AC2271000ECB71C /* PowerObserverMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PowerObserverMac.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 463EB6201B8789CB0096ED51 /* TagCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagCollection.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 463EB6211B8789CB0096ED51 /* TagCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagCollection.h; sourceTree = "<group>"; };
</span><del>-                4659D2701D6B909F0096FD86 /* JSCanvasRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext.h; sourceTree = "<group>"; };
</del><span class="cx">                 465A8E781C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RuntimeApplicationChecks.mm; sourceTree = "<group>"; };
</span><span class="cx">                 4671E0631D67A57B00C6B497 /* CanvasPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CanvasPath.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 4671E0641D67A57B00C6B497 /* CanvasPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanvasPath.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -8806,7 +8803,6 @@
</span><span class="cx">                 49ECEB641499790D00CDD3A4 /* FilterOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterOperation.h; sourceTree = "<group>"; };
</span><span class="cx">                 49ECEB651499790D00CDD3A4 /* FilterOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FilterOperations.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 49ECEB661499790D00CDD3A4 /* FilterOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterOperations.h; sourceTree = "<group>"; };
</span><del>-                49EED13D1051969400099FAB /* JSCanvasRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext.h; sourceTree = "<group>"; };
</del><span class="cx">                 49EED13E1051969400099FAB /* JSCanvasRenderingContext2D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCanvasRenderingContext2D.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 49EED13F1051969400099FAB /* JSCanvasRenderingContext2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext2D.h; sourceTree = "<group>"; };
</span><span class="cx">                 49EED1401051969400099FAB /* JSWebGLRenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGLRenderingContext.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -18772,7 +18768,6 @@
</span><span class="cx">                                 65DF323509D1DE65000BE325 /* JSCanvasPattern.cpp */,
</span><span class="cx">                                 65DF323609D1DE65000BE325 /* JSCanvasPattern.h */,
</span><span class="cx">                                 65DF323609D1DE65001BE325 /* JSCanvasProxy.h */,
</span><del>-                                49EED13D1051969400099FAB /* JSCanvasRenderingContext.h */,
</del><span class="cx">                                 49EED13E1051969400099FAB /* JSCanvasRenderingContext2D.cpp */,
</span><span class="cx">                                 49EED13F1051969400099FAB /* JSCanvasRenderingContext2D.h */,
</span><span class="cx">                                 BE61039B18A9D61200DD50D7 /* JSDataCue.cpp */,
</span><span class="lines">@@ -21001,7 +20996,6 @@
</span><span class="cx">                                 BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */,
</span><span class="cx">                                 BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */,
</span><span class="cx">                                 8931DE5A14C44C44000DC9D2 /* JSBlobCustom.cpp */,
</span><del>-                                4659D2701D6B909F0096FD86 /* JSCanvasRenderingContext.h */,
</del><span class="cx">                                 49EED14B1051971900099FAB /* JSCanvasRenderingContext2DCustom.cpp */,
</span><span class="cx">                                 7C33F3581B4A044800502CAF /* JSCharacterDataCustom.cpp */,
</span><span class="cx">                                 46A58AC41D46B3FA00432036 /* JSClientRectCustom.cpp */,
</span><span class="lines">@@ -24808,8 +24802,6 @@
</span><span class="cx">                                 65DF323A09D1DE65000BE325 /* JSCanvasGradient.h in Headers */,
</span><span class="cx">                                 65DF323C09D1DE65000BE325 /* JSCanvasPattern.h in Headers */,
</span><span class="cx">                                 65DF323C09D1DE65001BE325 /* JSCanvasProxy.h in Headers */,
</span><del>-                                49EED1431051969400099FAB /* JSCanvasRenderingContext.h in Headers */,
-                                4659D2711D6B90A50096FD86 /* JSCanvasRenderingContext.h in Headers */,
</del><span class="cx">                                 49EED1451051969400099FAB /* JSCanvasRenderingContext2D.h in Headers */,
</span><span class="cx">                                 93F9B7A10BA6032600854064 /* JSCDATASection.h in Headers */,
</span><span class="cx">                                 FDA15EA212B03EE1003A583A /* JSChannelMergerNode.h in Headers */,
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSCanvasRenderingContexth"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSCanvasRenderingContext.h (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSCanvasRenderingContext.h        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSCanvasRenderingContext.h        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015-2016 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. ``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
- * 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.
- */
-
-#pragma once
-
-#include "CanvasRenderingContext2D.h"
-#include "JSCanvasRenderingContext2D.h"
-
-#if ENABLE(WEBGL)
-#include "JSWebGL2RenderingContext.h"
-#include "JSWebGLRenderingContext.h"
-#include "WebGL2RenderingContext.h"
-#include "WebGLRenderingContext.h"
-#endif
-
-namespace WebCore {
-
-inline JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, CanvasRenderingContext& object)
-{
-#if ENABLE(WEBGL)
- if (is<WebGLRenderingContext>(object))
- return wrap(state, globalObject, downcast<WebGLRenderingContext>(object));
-#if ENABLE(WEBGL2)
- if (is<WebGL2RenderingContext>(object))
- return wrap(state, globalObject, downcast<WebGL2RenderingContext>(object));
-#endif
-#endif
- return wrap(state, globalObject, downcast<CanvasRenderingContext2D>(object));
-}
-
-inline JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, CanvasRenderingContext* object)
-{
- return object ? toJS(state, globalObject, *object) : JSC::jsNull();
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSDocumentCustomcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSDocumentCustom.cpp (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSDocumentCustom.cpp        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSDocumentCustom.cpp        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #include "Frame.h"
</span><span class="cx"> #include "FrameLoader.h"
</span><span class="cx"> #include "HTMLDocument.h"
</span><del>-#include "JSCanvasRenderingContext.h"
</del><span class="cx"> #include "JSCanvasRenderingContext2D.h"
</span><span class="cx"> #include "JSDOMConvert.h"
</span><span class="cx"> #include "JSDOMWindowCustom.h"
</span><span class="lines">@@ -165,7 +164,17 @@
</span><span class="cx"> auto height = convert<int32_t>(state, state.uncheckedArgument(3), NormalConversion);
</span><span class="cx"> if (UNLIKELY(state.hadException()))
</span><span class="cx"> return jsUndefined();
</span><del>- return toJS(&state, globalObject(), wrapped().getCSSCanvasContext(WTFMove(contextId), WTFMove(name), WTFMove(width), WTFMove(height)));
</del><ins>+
+ auto* context = wrapped().getCSSCanvasContext(WTFMove(contextId), WTFMove(name), WTFMove(width), WTFMove(height));
+ if (!context)
+ return jsNull();
+
+#if ENABLE(WEBGL)
+ if (is<WebGLRenderingContextBase>(*context))
+ return toJS(&state, globalObject(), downcast<WebGLRenderingContextBase>(*context));
+#endif
+
+ return toJS(&state, globalObject(), downcast<CanvasRenderingContext2D>(*context));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSDocument::visitAdditionalChildren(SlotVisitor& visitor)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSHTMLCanvasElementCustomcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx">
</span><span class="cx"> #include "CanvasContextAttributes.h"
</span><span class="cx"> #include "HTMLCanvasElement.h"
</span><del>-#include "JSCanvasRenderingContext.h"
</del><span class="cx"> #include "JSCanvasRenderingContext2D.h"
</span><span class="cx"> #include <bindings/ScriptObject.h>
</span><span class="cx"> #include <wtf/GetPtr.h>
</span><span class="lines">@@ -92,7 +91,13 @@
</span><span class="cx"> CanvasRenderingContext* context = canvas.getContext(contextId, attrs.get());
</span><span class="cx"> if (!context)
</span><span class="cx"> return jsNull();
</span><del>- return toJS(&state, globalObject(), *context);
</del><ins>+
+#if ENABLE(WEBGL)
+ if (is<WebGLRenderingContextBase>(*context))
+ return toJS(&state, globalObject(), downcast<WebGLRenderingContextBase>(*context));
+#endif
+
+ return toJS(&state, globalObject(), downcast<CanvasRenderingContext2D>(*context));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSValue JSHTMLCanvasElement::probablySupportsContext(ExecState& state)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorebindingsjsJSWebGLRenderingContextBaseCustomcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -65,6 +65,7 @@
</span><span class="cx"> #include "JSWebGLLoseContext.h"
</span><span class="cx"> #include "JSWebGLProgram.h"
</span><span class="cx"> #include "JSWebGLRenderbuffer.h"
</span><ins>+#include "JSWebGLRenderingContext.h"
</ins><span class="cx"> #include "JSWebGLShader.h"
</span><span class="cx"> #include "JSWebGLTexture.h"
</span><span class="cx"> #include "JSWebGLUniformLocation.h"
</span><span class="lines">@@ -107,9 +108,27 @@
</span><span class="cx"> #include "JSHTMLVideoElement.h"
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if ENABLE(WEBGL2)
+#include "JSWebGL2RenderingContext.h"
+#endif
+
</ins><span class="cx"> using namespace JSC;
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><ins>+
+JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<WebGLRenderingContextBase>&& object)
+{
+#if ENABLE(WEBGL2)
+ if (is<WebGL2RenderingContext>(object))
+ return CREATE_DOM_WRAPPER(globalObject, WebGL2RenderingContext, WTFMove(object));
+#endif
+ return CREATE_DOM_WRAPPER(globalObject, WebGLRenderingContext, WTFMove(object));
+}
+
+JSValue toJS(ExecState* state, JSDOMGlobalObject* globalObject, WebGLRenderingContextBase& object)
+{
+ return wrap(state, globalObject, object);
+}
</ins><span class="cx">
</span><span class="cx"> static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, const WebGLGetInfo& info)
</span><span class="cx"> {
</span><span class="lines">@@ -267,9 +286,17 @@
</span><span class="cx"> return jsNull();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+bool JSWebGLRenderingContextBaseOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)
+{
+ JSWebGLRenderingContextBase* jsWebGLRenderingContext = jsCast<JSWebGLRenderingContextBase*>(handle.slot()->asCell());
+ void* root = WebCore::root(jsWebGLRenderingContext->wrapped().canvas());
+ return visitor.containsOpaqueRoot(root);
+}
+
</ins><span class="cx"> void JSWebGLRenderingContextBase::visitAdditionalChildren(SlotVisitor& visitor)
</span><span class="cx"> {
</span><span class="cx"> visitor.addOpaqueRoot(&wrapped());
</span><ins>+ visitor.addOpaqueRoot(root(wrapped().canvas()));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSValue JSWebGLRenderingContextBase::getAttachedShaders(ExecState& state)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasCanvasRenderingContexth"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/CanvasRenderingContext.h (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/CanvasRenderingContext.h        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/CanvasRenderingContext.h        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> virtual bool is2d() const { return false; }
</span><span class="cx"> virtual bool isWebGL1() const { return false; }
</span><span class="cx"> virtual bool isWebGL2() const { return false; }
</span><del>- bool is3d() const { return isWebGL1() || isWebGL1(); }
</del><ins>+ bool is3d() const { return isWebGL1() || isWebGL2(); }
</ins><span class="cx"> virtual bool isAccelerated() const { return false; }
</span><span class="cx">
</span><span class="cx"> virtual void paintRenderingResultsToCanvas() {}
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasWebGLRenderingContextBaseh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.h        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -837,4 +837,6 @@
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><ins>+SPECIALIZE_TYPE_TRAITS_CANVASRENDERINGCONTEXT(WebCore::WebGLRenderingContextBase, is3d())
+
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit214SourceWebCorehtmlcanvasWebGLRenderingContextBaseidl"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl (205632 => 205633)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl        2016-09-08 12:31:07 UTC (rev 205632)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl        2016-09-08 12:33:05 UTC (rev 205633)
</span><span class="lines">@@ -39,10 +39,12 @@
</span><span class="cx"> typedef unrestricted float GLclampf;
</span><span class="cx">
</span><span class="cx"> [
</span><del>-Conditional=WEBGL,
-DoNotCheckConstants,
-JSCustomMarkFunction,
-NoInterfaceObject,
</del><ins>+ Conditional=WEBGL,
+ CustomIsReachable,
+ CustomToJSObject,
+ DoNotCheckConstants,
+ JSCustomMarkFunction,
+ NoInterfaceObject,
</ins><span class="cx"> ] interface WebGLRenderingContextBase {
</span><span class="cx">
</span><span class="cx"> // back-reference to the canvas
</span></span></pre>
</div>
</div>
</body>
</html>