<!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  &lt;cdumez@apple.com&gt;
+
+        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  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         ASSERTION FAILED: !flow-&gt;layer() &amp;&amp; !flow-&gt;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  &lt;cdumez@apple.com&gt;
+
+        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  &lt;mark.lam@apple.com&gt;
</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 = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 463EB6201B8789CB0096ED51 /* TagCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagCollection.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 463EB6211B8789CB0096ED51 /* TagCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagCollection.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                4659D2701D6B909F0096FD86 /* JSCanvasRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 465A8E781C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RuntimeApplicationChecks.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4671E0631D67A57B00C6B497 /* CanvasPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CanvasPath.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4671E0641D67A57B00C6B497 /* CanvasPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanvasPath.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</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 = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 49ECEB651499790D00CDD3A4 /* FilterOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FilterOperations.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 49ECEB661499790D00CDD3A4 /* FilterOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterOperations.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                49EED13D1051969400099FAB /* JSCanvasRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 49EED13E1051969400099FAB /* JSCanvasRenderingContext2D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCanvasRenderingContext2D.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 49EED13F1051969400099FAB /* JSCanvasRenderingContext2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCanvasRenderingContext2D.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 49EED1401051969400099FAB /* JSWebGLRenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGLRenderingContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</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 &quot;CanvasRenderingContext2D.h&quot;
-#include &quot;JSCanvasRenderingContext2D.h&quot;
-
-#if ENABLE(WEBGL)
-#include &quot;JSWebGL2RenderingContext.h&quot;
-#include &quot;JSWebGLRenderingContext.h&quot;
-#include &quot;WebGL2RenderingContext.h&quot;
-#include &quot;WebGLRenderingContext.h&quot;
-#endif
-
-namespace WebCore {
-
-inline JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, CanvasRenderingContext&amp; object)
-{
-#if ENABLE(WEBGL)
-    if (is&lt;WebGLRenderingContext&gt;(object))
-        return wrap(state, globalObject, downcast&lt;WebGLRenderingContext&gt;(object));
-#if ENABLE(WEBGL2)
-    if (is&lt;WebGL2RenderingContext&gt;(object))
-        return wrap(state, globalObject, downcast&lt;WebGL2RenderingContext&gt;(object));
-#endif
-#endif
-    return wrap(state, globalObject, downcast&lt;CanvasRenderingContext2D&gt;(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 &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;FrameLoader.h&quot;
</span><span class="cx"> #include &quot;HTMLDocument.h&quot;
</span><del>-#include &quot;JSCanvasRenderingContext.h&quot;
</del><span class="cx"> #include &quot;JSCanvasRenderingContext2D.h&quot;
</span><span class="cx"> #include &quot;JSDOMConvert.h&quot;
</span><span class="cx"> #include &quot;JSDOMWindowCustom.h&quot;
</span><span class="lines">@@ -165,7 +164,17 @@
</span><span class="cx">     auto height = convert&lt;int32_t&gt;(state, state.uncheckedArgument(3), NormalConversion);
</span><span class="cx">     if (UNLIKELY(state.hadException()))
</span><span class="cx">         return jsUndefined();
</span><del>-    return toJS(&amp;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&lt;WebGLRenderingContextBase&gt;(*context))
+        return toJS(&amp;state, globalObject(), downcast&lt;WebGLRenderingContextBase&gt;(*context));
+#endif
+
+    return toJS(&amp;state, globalObject(), downcast&lt;CanvasRenderingContext2D&gt;(*context));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JSDocument::visitAdditionalChildren(SlotVisitor&amp; 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 &quot;CanvasContextAttributes.h&quot;
</span><span class="cx"> #include &quot;HTMLCanvasElement.h&quot;
</span><del>-#include &quot;JSCanvasRenderingContext.h&quot;
</del><span class="cx"> #include &quot;JSCanvasRenderingContext2D.h&quot;
</span><span class="cx"> #include &lt;bindings/ScriptObject.h&gt;
</span><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</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(&amp;state, globalObject(), *context);
</del><ins>+
+#if ENABLE(WEBGL)
+    if (is&lt;WebGLRenderingContextBase&gt;(*context))
+        return toJS(&amp;state, globalObject(), downcast&lt;WebGLRenderingContextBase&gt;(*context));
+#endif
+
+    return toJS(&amp;state, globalObject(), downcast&lt;CanvasRenderingContext2D&gt;(*context));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSHTMLCanvasElement::probablySupportsContext(ExecState&amp; 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 &quot;JSWebGLLoseContext.h&quot;
</span><span class="cx"> #include &quot;JSWebGLProgram.h&quot;
</span><span class="cx"> #include &quot;JSWebGLRenderbuffer.h&quot;
</span><ins>+#include &quot;JSWebGLRenderingContext.h&quot;
</ins><span class="cx"> #include &quot;JSWebGLShader.h&quot;
</span><span class="cx"> #include &quot;JSWebGLTexture.h&quot;
</span><span class="cx"> #include &quot;JSWebGLUniformLocation.h&quot;
</span><span class="lines">@@ -107,9 +108,27 @@
</span><span class="cx"> #include &quot;JSHTMLVideoElement.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if ENABLE(WEBGL2)
+#include &quot;JSWebGL2RenderingContext.h&quot;
+#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&lt;WebGLRenderingContextBase&gt;&amp;&amp; object)
+{
+#if ENABLE(WEBGL2)
+    if (is&lt;WebGL2RenderingContext&gt;(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&amp; object)
+{
+    return wrap(state, globalObject, object);
+}
</ins><span class="cx">     
</span><span class="cx"> static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, const WebGLGetInfo&amp; 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&lt;JSC::Unknown&gt; handle, void*, SlotVisitor&amp; visitor)
+{
+    JSWebGLRenderingContextBase* jsWebGLRenderingContext = jsCast&lt;JSWebGLRenderingContextBase*&gt;(handle.slot()-&gt;asCell());
+    void* root = WebCore::root(jsWebGLRenderingContext-&gt;wrapped().canvas());
+    return visitor.containsOpaqueRoot(root);
+}
+
</ins><span class="cx"> void JSWebGLRenderingContextBase::visitAdditionalChildren(SlotVisitor&amp; visitor)
</span><span class="cx"> {
</span><span class="cx">     visitor.addOpaqueRoot(&amp;wrapped());
</span><ins>+    visitor.addOpaqueRoot(root(wrapped().canvas()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSWebGLRenderingContextBase::getAttachedShaders(ExecState&amp; 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>