<!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>[203295] trunk/Source/WebKit2</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/203295">203295</a></dd>
<dt>Author</dt> <dd>dino@apple.com</dd>
<dt>Date</dt> <dd>2016-07-15 13:42:22 -0700 (Fri, 15 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Full screen ePub embedded video is playing on 1/4 screen, cut off
https://bugs.webkit.org/show_bug.cgi?id=159737
&lt;rdar://problem/26259404&gt;

Patch by Jer Noble &lt;jer.noble@apple.com&gt; on 2016-07-15
Reviewed by Tim Horton.

Set the fixedLayoutSize to CGSizeZero when disabling fixed layout due to the
WebView not supporting arbitrary layout modes, and reset to the saved value
when the view does begin supporting arbitrary layout modes.

* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setFixedLayoutSize):
(WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebViewImplh">trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebViewImplmm">trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (203294 => 203295)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-07-15 20:19:29 UTC (rev 203294)
+++ trunk/Source/WebKit2/ChangeLog        2016-07-15 20:42:22 UTC (rev 203295)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2016-07-15  Jer Noble  &lt;jer.noble@apple.com&gt;
+
+        Full screen ePub embedded video is playing on 1/4 screen, cut off
+        https://bugs.webkit.org/show_bug.cgi?id=159737
+        &lt;rdar://problem/26259404&gt;
+
+        Reviewed by Tim Horton.
+
+        Set the fixedLayoutSize to CGSizeZero when disabling fixed layout due to the 
+        WebView not supporting arbitrary layout modes, and reset to the saved value
+        when the view does begin supporting arbitrary layout modes.
+
+        * UIProcess/Cocoa/WebViewImpl.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::setFixedLayoutSize):
+        (WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes):
+
</ins><span class="cx"> 2016-07-14  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r203248.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebViewImplh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h (203294 => 203295)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h        2016-07-15 20:19:29 UTC (rev 203294)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h        2016-07-15 20:42:22 UTC (rev 203295)
</span><span class="lines">@@ -559,6 +559,7 @@
</span><span class="cx">     RetainPtr&lt;WKViewLayoutStrategy&gt; m_layoutStrategy;
</span><span class="cx">     WKLayoutMode m_lastRequestedLayoutMode { kWKLayoutModeViewSize };
</span><span class="cx">     CGFloat m_lastRequestedViewScale { 1 };
</span><ins>+    CGSize m_lastRequestedFixedLayoutSize { 0, 0 };
</ins><span class="cx"> 
</span><span class="cx">     bool m_inSecureInputState { false };
</span><span class="cx">     RetainPtr&lt;WKEditorUndoTargetObjC&gt; m_undoTarget;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebViewImplmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm (203294 => 203295)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm        2016-07-15 20:19:29 UTC (rev 203294)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm        2016-07-15 20:42:22 UTC (rev 203295)
</span><span class="lines">@@ -750,7 +750,10 @@
</span><span class="cx"> 
</span><span class="cx"> void WebViewImpl::setFixedLayoutSize(CGSize fixedLayoutSize)
</span><span class="cx"> {
</span><del>-    m_page-&gt;setFixedLayoutSize(WebCore::expandedIntSize(WebCore::FloatSize(fixedLayoutSize)));
</del><ins>+    m_lastRequestedFixedLayoutSize = fixedLayoutSize;
+
+    if (supportsArbitraryLayoutModes())
+        m_page-&gt;setFixedLayoutSize(WebCore::expandedIntSize(WebCore::FloatSize(fixedLayoutSize)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> CGSize WebViewImpl::fixedLayoutSize() const
</span><span class="lines">@@ -1001,16 +1004,20 @@
</span><span class="cx">     if (!supportsArbitraryLayoutModes()) {
</span><span class="cx">         WKLayoutMode oldRequestedLayoutMode = m_lastRequestedLayoutMode;
</span><span class="cx">         CGFloat oldRequestedViewScale = m_lastRequestedViewScale;
</span><ins>+        CGSize oldRequestedFixedLayoutSize = m_lastRequestedFixedLayoutSize;
</ins><span class="cx">         setViewScale(1);
</span><span class="cx">         setLayoutMode(kWKLayoutModeViewSize);
</span><ins>+        setFixedLayoutSize(CGSizeZero);
</ins><span class="cx"> 
</span><span class="cx">         // The 'last requested' parameters will have been overwritten by setting them above, but we don't
</span><span class="cx">         // want this to count as a request (only changes from the client count), so reset them.
</span><span class="cx">         m_lastRequestedLayoutMode = oldRequestedLayoutMode;
</span><span class="cx">         m_lastRequestedViewScale = oldRequestedViewScale;
</span><ins>+        m_lastRequestedFixedLayoutSize = oldRequestedFixedLayoutSize;
</ins><span class="cx">     } else if (m_lastRequestedLayoutMode != [m_layoutStrategy layoutMode]) {
</span><span class="cx">         setViewScale(m_lastRequestedViewScale);
</span><span class="cx">         setLayoutMode(m_lastRequestedLayoutMode);
</span><ins>+        setFixedLayoutSize(m_lastRequestedFixedLayoutSize);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>