<!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>[211643] 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/211643">211643</a></dd>
<dt>Author</dt> <dd>wenson_hsieh@apple.com</dd>
<dt>Date</dt> <dd>2017-02-03 12:07:49 -0800 (Fri, 03 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>WKActionSheet should dismiss with animation when done with the sheet
https://bugs.webkit.org/show_bug.cgi?id=167804
&lt;rdar://problem/30334861&gt;

Reviewed by Tim Horton.

Currently, we do not dismiss the action menu when -doneWithSheet is invoked. While this is okay when the menu is
dismissed via tap (since it will be dismissed as default behavior by the popover controller) we need to manually
dismiss it if we are trying to programmatically dismiss the action sheet/menu.

* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet doneWithSheet]):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView resignFirstResponder]):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKActionSheetmm">trunk/Source/WebKit2/UIProcess/ios/WKActionSheet.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm">trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (211642 => 211643)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-02-03 20:00:53 UTC (rev 211642)
+++ trunk/Source/WebKit2/ChangeLog        2017-02-03 20:07:49 UTC (rev 211643)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2017-02-03  Wenson Hsieh  &lt;wenson_hsieh@apple.com&gt;
+
+        WKActionSheet should dismiss with animation when done with the sheet
+        https://bugs.webkit.org/show_bug.cgi?id=167804
+        &lt;rdar://problem/30334861&gt;
+
+        Reviewed by Tim Horton.
+
+        Currently, we do not dismiss the action menu when -doneWithSheet is invoked. While this is okay when the menu is
+        dismissed via tap (since it will be dismissed as default behavior by the popover controller) we need to manually
+        dismiss it if we are trying to programmatically dismiss the action sheet/menu.
+
+        * UIProcess/ios/WKActionSheet.mm:
+        (-[WKActionSheet presentSheetFromRect:]):
+        (-[WKActionSheet doneWithSheet]):
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView setupInteraction]):
+        (-[WKContentView resignFirstResponder]):
+
</ins><span class="cx"> 2017-02-03  Olivier Blin  &lt;olivier.blin@softathome.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Doc generation failure in WebKitSecurityOrigin
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKActionSheetmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKActionSheet.mm (211642 => 211643)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKActionSheet.mm        2017-02-03 20:00:53 UTC (rev 211642)
+++ trunk/Source/WebKit2/UIProcess/ios/WKActionSheet.mm        2017-02-03 20:07:49 UTC (rev 211643)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx">     BOOL _isRotating;
</span><span class="cx">     BOOL _readyToPresentAfterRotation;
</span><span class="cx"> 
</span><ins>+    RetainPtr&lt;UIViewController&gt; _currentPresentingViewController;
</ins><span class="cx">     RetainPtr&lt;UIViewController&gt; _presentedViewControllerWhileRotating;
</span><span class="cx">     RetainPtr&lt;id &lt;UIPopoverPresentationControllerDelegate&gt;&gt; _popoverPresentationControllerDelegateWhileRotating;
</span><span class="cx"> }
</span><span class="lines">@@ -99,8 +100,8 @@
</span><span class="cx">     if (_popoverPresentationControllerDelegateWhileRotating)
</span><span class="cx">         presentationController.delegate = _popoverPresentationControllerDelegateWhileRotating.get();
</span><span class="cx"> 
</span><del>-    UIViewController *presentingViewController = [UIViewController _viewControllerForFullScreenPresentationFromView:view];
-    [presentingViewController presentViewController:presentedViewController animated:YES completion:NULL];
</del><ins>+    _currentPresentingViewController = [UIViewController _viewControllerForFullScreenPresentationFromView:view];
+    [_currentPresentingViewController presentViewController:presentedViewController animated:YES completion:nil];
</ins><span class="cx"> 
</span><span class="cx">     return YES;
</span><span class="cx"> }
</span><span class="lines">@@ -107,6 +108,10 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)doneWithSheet
</span><span class="cx"> {
</span><ins>+    if (_currentPresentingViewController)
+        [_currentPresentingViewController dismissViewControllerAnimated:YES completion:nil];
+
+    _currentPresentingViewController = nil;
</ins><span class="cx">     _presentedViewControllerWhileRotating = nil;
</span><span class="cx">     _popoverPresentationControllerDelegateWhileRotating = nil;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (211642 => 211643)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2017-02-03 20:00:53 UTC (rev 211642)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2017-02-03 20:07:49 UTC (rev 211643)
</span><span class="lines">@@ -582,7 +582,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATA_INTERACTION)
</span><span class="cx">     _dataInteractionGestureRecognizer = adoptNS([[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(_dataInteractionGestureRecognizer:)]);
</span><del>-    [_dataInteractionGestureRecognizer setDelay:0.25];
</del><ins>+    [_dataInteractionGestureRecognizer setDelay:0.5];
</ins><span class="cx">     [_dataInteractionGestureRecognizer setDelegate:self];
</span><span class="cx">     [_dataInteractionGestureRecognizer _setRequiresQuietImpulse:YES];
</span><span class="cx">     [self addGestureRecognizer:_dataInteractionGestureRecognizer.get()];
</span><span class="lines">@@ -850,9 +850,6 @@
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)resignFirstResponder
</span><span class="cx"> {
</span><del>-#if ENABLE(DATA_INTERACTION)
-    _dataInteractionState.shouldHandleLongPressAction = NO;
-#endif
</del><span class="cx">     // FIXME: Maybe we should call resignFirstResponder on the superclass
</span><span class="cx">     // and do nothing if the return value is NO.
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>