<!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>[171329] 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/171329">171329</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2014-07-21 17:58:40 -0700 (Mon, 21 Jul 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>REGRESSION (<a href="http://trac.webkit.org/projects/webkit/changeset/170361">r170361</a>): In landscape with UI hidden, fixed position elements at top of screen are too low
https://bugs.webkit.org/show_bug.cgi?id=135141
<rdar://problem/17627525>
Reviewed by Benjamin Poulain.
We can't use the WKWebView's UIScrollView contentInsets to determine the unobscured rect
in MobileSafari, because contentInsets can't be changed dynamically while scrolling.
To get around this, MobileSafari sets obscured insets instead (but also sets a fixed
contentInset).
So if the client calls _setObscuredInsets:, always use _obscuredInsets to compute the
content insets.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _computedContentInset]):
(-[WKWebView _setObscuredInsets:]):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (171328 => 171329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-07-22 00:58:11 UTC (rev 171328)
+++ trunk/Source/WebKit2/ChangeLog        2014-07-22 00:58:40 UTC (rev 171329)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2014-07-21 Simon Fraser <simon.fraser@apple.com>
+
+ REGRESSION (r170361): In landscape with UI hidden, fixed position elements at top of screen are too low
+ https://bugs.webkit.org/show_bug.cgi?id=135141
+ <rdar://problem/17627525>
+
+ Reviewed by Benjamin Poulain.
+
+ We can't use the WKWebView's UIScrollView contentInsets to determine the unobscured rect
+ in MobileSafari, because contentInsets can't be changed dynamically while scrolling.
+ To get around this, MobileSafari sets obscured insets instead (but also sets a fixed
+ contentInset).
+
+ So if the client calls _setObscuredInsets:, always use _obscuredInsets to compute the
+ content insets.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _computedContentInset]):
+ (-[WKWebView _setObscuredInsets:]):
+
</ins><span class="cx"> 2014-07-21 Oliver Hunt <oliver@apple.com>
</span><span class="cx">
</span><span class="cx"> Remove global cookie workaround from sandbox profiles
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (171328 => 171329)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-07-22 00:58:11 UTC (rev 171328)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-07-22 00:58:40 UTC (rev 171329)
</span><span class="lines">@@ -168,7 +168,8 @@
</span><span class="cx"> CGFloat _viewportMetaTagWidth;
</span><span class="cx">
</span><span class="cx"> UIEdgeInsets _obscuredInsets;
</span><del>- bool _isChangingObscuredInsetsInteractively;
</del><ins>+ BOOL _haveSetObscuredInsets;
+ BOOL _isChangingObscuredInsetsInteractively;
</ins><span class="cx">
</span><span class="cx"> UIInterfaceOrientation _interfaceOrientationOverride;
</span><span class="cx"> BOOL _overridesInterfaceOrientation;
</span><span class="lines">@@ -740,7 +741,7 @@
</span><span class="cx">
</span><span class="cx"> - (UIEdgeInsets)_computedContentInset
</span><span class="cx"> {
</span><del>- if (!UIEdgeInsetsEqualToEdgeInsets(_obscuredInsets, UIEdgeInsetsZero))
</del><ins>+ if (_haveSetObscuredInsets)
</ins><span class="cx"> return _obscuredInsets;
</span><span class="cx">
</span><span class="cx"> return [_scrollView contentInset];
</span><span class="lines">@@ -2076,6 +2077,8 @@
</span><span class="cx"> ASSERT(obscuredInsets.left >= 0);
</span><span class="cx"> ASSERT(obscuredInsets.bottom >= 0);
</span><span class="cx"> ASSERT(obscuredInsets.right >= 0);
</span><ins>+
+ _haveSetObscuredInsets = YES;
</ins><span class="cx">
</span><span class="cx"> if (UIEdgeInsetsEqualToEdgeInsets(_obscuredInsets, obscuredInsets))
</span><span class="cx"> return;
</span></span></pre>
</div>
</div>
</body>
</html>