<!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>[176753] trunk/Source</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/176753">176753</a></dd>
<dt>Author</dt> <dd>timothy_horton@apple.com</dd>
<dt>Date</dt> <dd>2014-12-03 13:53:36 -0800 (Wed, 03 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
&lt;rdar://problem/19052381&gt;

Reviewed by Anders Carlsson.

Make sure that keyboard input, Quick Look, etc. are blocked in preview popovers
and WKThumbnailViews. Also block the fake mouseMove events that originate in
the Web process upon scrolling, because we were missing those despite blocking
ordinary mouseMove events.

* page/ChromeClient.h:
(WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
Allow ChromeClient to disable the dispatch of &quot;fake&quot; mouseMove events
that happens during scrolling.

* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
Rename _ignoresNonWheelMouseEvents to _ignoresNonWheelEvents, because it will
apply not only to mouse events but also key events, Quick Look events, menu
preparation events, swipe events, etc.

Add _ignoresAllEvents, which means the same thing as _ignoresNonWheelEvents
with the addition of ignoring scrollWheel events.

(-[WKView scrollWheel:]):
(-[WKView swipeWithEvent:]):
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
Adjust to the new name.

(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
(-[WKView quickLookWithEvent:]):
(-[WKView prepareForMenu:withEvent:]):
(-[WKView willOpenMenu:withEvent:]):
(-[WKView didCloseMenu:withEvent:]):
Block all of these events as well as those we were previously blocking.

(-[WKView _setIgnoresAllEvents:]):
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _setIgnoresNonWheelEvents:]):
(-[WKView _ignoresNonWheelEvents]):
(-[WKView _ignoresAllEvents]):
* UIProcess/API/mac/WKViewInternal.h:
Adjust to the new names and the addition of ignoresAllEvents.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKPagePreviewViewController loadView]):
Adjust to the new name.

(-[WKActionMenuController prepareForMenu:withEvent:]):
Move bailing from prepareForMenu: up to WKView.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _ignoresNonWheelMouseEvents]): Deleted.
(-[WKWebView _setIgnoresNonWheelMouseEvents:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Adjust to the new name (without &quot;mouse&quot; in it).

* UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView _viewWasUnparented]):
(-[_WKThumbnailView _viewWasParented]):
Explicitly tell WKView to disable event handling while thumbnailed,
instead of having WKView special-case thumbnail views internally.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
* UIProcess/WebPageProxy.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldDispatchFakeMouseMoveEvents):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::shouldDispatchFakeMouseMoveEvents):
(WebKit::WebPage::setShouldDispatchFakeMouseMoveEvents):
* WebProcess/WebPage/WebPage.messages.in:
Plumb shouldDispatchFakeMouseMoveEvents from the UI process to the Web process
and through to WebKit2's ChromeClient implementation.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepageChromeClienth">trunk/Source/WebCore/page/ChromeClient.h</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKViewPrivateh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoa_WKThumbnailViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewInternalh">trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWKActionMenuControllermm">trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPageh">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagemessagesin">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebCore/ChangeLog        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-12-03  Tim Horton  &lt;timothy_horton@apple.com&gt;
+
+        Keyboard input should be disabled in the preview popover
+        https://bugs.webkit.org/show_bug.cgi?id=139219
+        &lt;rdar://problem/19052381&gt;
+
+        Reviewed by Anders Carlsson.
+
+        * page/ChromeClient.h:
+        (WebCore::ChromeClient::shouldDispatchFakeMouseMoveEvents):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
+        Allow ChromeClient to disable the dispatch of &quot;fake&quot; mouseMove events
+        that happens during scrolling.
+
</ins><span class="cx"> 2014-12-03  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove genericFamily enum from FontDescription
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ChromeClient.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ChromeClient.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebCore/page/ChromeClient.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -446,6 +446,8 @@
</span><span class="cx">     virtual bool hasRelevantSelectionServices(bool /* isTextOnly */) const { return false; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    virtual bool shouldDispatchFakeMouseMoveEvents() const { return true; }
+
</ins><span class="cx"> protected:
</span><span class="cx">     virtual ~ChromeClient() { }
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -2904,6 +2904,11 @@
</span><span class="cx">     if (!m_frame.settings().deviceSupportsMouse())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    if (Page* page = m_frame.page()) {
+        if (!page-&gt;chrome().client().shouldDispatchFakeMouseMoveEvents())
+            return;
+    }
+
</ins><span class="cx">     // If the content has ever taken longer than fakeMouseMoveShortInterval we
</span><span class="cx">     // reschedule the timer and use a longer time. This will cause the content
</span><span class="cx">     // to receive these moves only after the user is done scrolling, reducing
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/ChangeLog        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2014-12-03  Tim Horton  &lt;timothy_horton@apple.com&gt;
+
+        Keyboard input should be disabled in the preview popover
+        https://bugs.webkit.org/show_bug.cgi?id=139219
+        &lt;rdar://problem/19052381&gt;
+
+        Reviewed by Anders Carlsson.
+
+        Make sure that keyboard input, Quick Look, etc. are blocked in preview popovers
+        and WKThumbnailViews. Also block the fake mouseMove events that originate in
+        the Web process upon scrolling, because we were missing those despite blocking
+        ordinary mouseMove events.
+
+        * UIProcess/API/Cocoa/WKViewPrivate.h:
+        * UIProcess/API/mac/WKView.mm:
+        Rename _ignoresNonWheelMouseEvents to _ignoresNonWheelEvents, because it will
+        apply not only to mouse events but also key events, Quick Look events, menu
+        preparation events, swipe events, etc.
+
+        Add _ignoresAllEvents, which means the same thing as _ignoresNonWheelEvents
+        with the addition of ignoring scrollWheel events.
+
+        (-[WKView scrollWheel:]):
+        (-[WKView swipeWithEvent:]):
+        (-[WKView mouseMoved:]):
+        (-[WKView mouseDown:]):
+        (-[WKView mouseUp:]):
+        (-[WKView mouseDragged:]):
+        Adjust to the new name.
+
+        (-[WKView performKeyEquivalent:]):
+        (-[WKView keyUp:]):
+        (-[WKView keyDown:]):
+        (-[WKView flagsChanged:]):
+        (-[WKView quickLookWithEvent:]):
+        (-[WKView prepareForMenu:withEvent:]):
+        (-[WKView willOpenMenu:withEvent:]):
+        (-[WKView didCloseMenu:withEvent:]):
+        Block all of these events as well as those we were previously blocking.
+
+        (-[WKView _setIgnoresAllEvents:]):
+        (-[WKView _setIgnoresNonWheelMouseEvents:]):
+        (-[WKView _setIgnoresNonWheelEvents:]):
+        (-[WKView _ignoresNonWheelEvents]):
+        (-[WKView _ignoresAllEvents]):
+        * UIProcess/API/mac/WKViewInternal.h:
+        Adjust to the new names and the addition of ignoresAllEvents.
+
+        * UIProcess/mac/WKActionMenuController.mm:
+        (-[WKPagePreviewViewController loadView]):
+        Adjust to the new name.
+
+        (-[WKActionMenuController prepareForMenu:withEvent:]):
+        Move bailing from prepareForMenu: up to WKView.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _ignoresNonWheelEvents]):
+        (-[WKWebView _setIgnoresNonWheelEvents:]):
+        (-[WKWebView _ignoresNonWheelMouseEvents]): Deleted.
+        (-[WKWebView _setIgnoresNonWheelMouseEvents:]): Deleted.
+        * UIProcess/API/Cocoa/WKWebViewInternal.h:
+        Adjust to the new name (without &quot;mouse&quot; in it).
+
+        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
+        (-[_WKThumbnailView _viewWasUnparented]):
+        (-[_WKThumbnailView _viewWasParented]):
+        Explicitly tell WKView to disable event handling while thumbnailed,
+        instead of having WKView special-case thumbnail views internally.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::shouldDispatchFakeMouseMoveEvents):
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage):
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::shouldDispatchFakeMouseMoveEvents):
+        (WebKit::WebPage::setShouldDispatchFakeMouseMoveEvents):
+        * WebProcess/WebPage/WebPage.messages.in:
+        Plumb shouldDispatchFakeMouseMoveEvents from the UI process to the Web process
+        and through to WebKit2's ChromeClient implementation.
+
</ins><span class="cx"> 2014-12-03  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove ENABLE_UI_PROCESS_STORAGE define, it's always 1.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKViewPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -81,7 +81,8 @@
</span><span class="cx"> @property (readonly, getter=isUsingUISideCompositing) BOOL usingUISideCompositing;
</span><span class="cx"> @property (readwrite) BOOL allowsMagnification;
</span><span class="cx"> @property (readwrite) double magnification;
</span><del>-@property (readwrite, setter=_setIgnoresNonWheelMouseEvents:) BOOL _ignoresNonWheelMouseEvents;
</del><ins>+@property (readwrite, setter=_setIgnoresNonWheelEvents:) BOOL _ignoresNonWheelEvents;
+@property (readwrite, setter=_setIgnoresAllEvents:) BOOL _ignoresAllEvents;
</ins><span class="cx"> @property (readwrite) BOOL allowsBackForwardNavigationGestures;
</span><span class="cx"> @property (nonatomic, setter=_setTopContentInset:) CGFloat _topContentInset;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -1583,14 +1583,14 @@
</span><span class="cx">     [_wkView setMagnification:magnification centeredAtPoint:NSPointFromCGPoint(point)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (BOOL)_ignoresNonWheelMouseEvents
</del><ins>+- (BOOL)_ignoresNonWheelEvents
</ins><span class="cx"> {
</span><del>-    return [_wkView _ignoresNonWheelMouseEvents];
</del><ins>+    return [_wkView _ignoresNonWheelEvents];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)_setIgnoresNonWheelMouseEvents:(BOOL)ignoresNonWheelMouseEvents
</del><ins>+- (void)_setIgnoresNonWheelEvents:(BOOL)ignoresNonWheelEvents
</ins><span class="cx"> {
</span><del>-    [_wkView _setIgnoresNonWheelMouseEvents:ignoresNonWheelMouseEvents];
</del><ins>+    [_wkView _setIgnoresNonWheelEvents:ignoresNonWheelEvents];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> 
</span><span class="cx"> @property (nonatomic, readonly) UIEdgeInsets _computedContentInset;
</span><span class="cx"> #else
</span><del>-@property (nonatomic, setter=_setIgnoresNonWheelMouseEvents:) BOOL _ignoresNonWheelMouseEvents;
</del><ins>+@property (nonatomic, setter=_setIgnoresNonWheelEvents:) BOOL _ignoresNonWheelEvents;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoa_WKThumbnailViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKThumbnailView.mm        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -80,6 +80,7 @@
</span><span class="cx"> - (void)_viewWasUnparented
</span><span class="cx"> {
</span><span class="cx">     [_wkView _setThumbnailView:nil];
</span><ins>+    [_wkView _setIgnoresAllEvents:NO];
</ins><span class="cx"> 
</span><span class="cx">     self.layer.contents = nil;
</span><span class="cx">     _lastSnapshotScale = NAN;
</span><span class="lines">@@ -97,6 +98,7 @@
</span><span class="cx"> 
</span><span class="cx">     [self _requestSnapshotIfNeeded];
</span><span class="cx">     [_wkView _setThumbnailView:self];
</span><ins>+    [_wkView _setIgnoresAllEvents:YES];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_requestSnapshotIfNeeded
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -247,7 +247,8 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;ViewGestureController&gt; _gestureController;
</span><span class="cx">     BOOL _allowsMagnification;
</span><del>-    BOOL _ignoresNonWheelMouseEvents;
</del><ins>+    BOOL _ignoresNonWheelEvents;
+    BOOL _ignoresAllEvents;
</ins><span class="cx">     BOOL _allowsBackForwardNavigationGestures;
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;CALayer&gt; _rootLayer;
</span><span class="lines">@@ -1104,29 +1105,6 @@
</span><span class="cx"> 
</span><span class="cx"> // Events
</span><span class="cx"> 
</span><del>-- (BOOL)_shouldIgnoreMouseEvents
-{
-    // FIXME: This check is surprisingly specific. Are there any other cases where we need to block mouse events?
-    // Do we actually need to in thumbnail view? And if we do, what about non-mouse events?
-#if WK_API_ENABLED
-    if (_data-&gt;_thumbnailView)
-        return YES;
-#endif
-
-    // -scrollWheel: uses -_shouldIgnoreWheelEvents, so for all other event types it is correct to use this.
-    return _data-&gt;_ignoresNonWheelMouseEvents;
-}
-
-- (BOOL)_shouldIgnoreWheelEvents
-{
-#if WK_API_ENABLED
-    if (_data-&gt;_thumbnailView)
-        return YES;
-#endif
-
-    return NO;
-}
-
</del><span class="cx"> // Override this so that AppKit will send us arrow keys as key down events so we can
</span><span class="cx"> // support them via the key bindings mechanism.
</span><span class="cx"> - (BOOL)_wantsKeyDownForEvent:(NSEvent *)event
</span><span class="lines">@@ -1149,7 +1127,7 @@
</span><span class="cx"> #define NATIVE_MOUSE_EVENT_HANDLER(Selector) \
</span><span class="cx">     - (void)Selector:(NSEvent *)theEvent \
</span><span class="cx">     { \
</span><del>-        if (self._shouldIgnoreMouseEvents) \
</del><ins>+        if (_data-&gt;_ignoresNonWheelEvents) \
</ins><span class="cx">             return; \
</span><span class="cx">         if (NSTextInputContext *context = [self inputContext]) { \
</span><span class="cx">             [context handleEvent:theEvent completionHandler:^(BOOL handled) { \
</span><span class="lines">@@ -1169,7 +1147,7 @@
</span><span class="cx"> #define NATIVE_MOUSE_EVENT_HANDLER(Selector) \
</span><span class="cx">     - (void)Selector:(NSEvent *)theEvent \
</span><span class="cx">     { \
</span><del>-        if (self._shouldIgnoreMouseEvents) \
</del><ins>+        if (_data-&gt;_ignoresNonWheelEvents) \
</ins><span class="cx">             return; \
</span><span class="cx">         if ([[self inputContext] handleEvent:theEvent]) { \
</span><span class="cx">             LOG(TextInput, &quot;%s was handled by text input context&quot;, String(#Selector).substring(0, String(#Selector).find(&quot;Internal&quot;)).ascii().data()); \
</span><span class="lines">@@ -1206,7 +1184,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)scrollWheel:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if ([self _shouldIgnoreWheelEvents])
</del><ins>+    if (_data-&gt;_ignoresAllEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Work around &lt;rdar://problem/19086993&gt; by always clearing the active text indicator on scroll.
</span><span class="lines">@@ -1224,7 +1202,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)swipeWithEvent:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if (self._shouldIgnoreMouseEvents)
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!_data-&gt;_allowsBackForwardNavigationGestures) {
</span><span class="lines">@@ -1242,7 +1220,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)mouseMoved:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if (self._shouldIgnoreMouseEvents)
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // When a view is first responder, it gets mouse moved events even when the mouse is outside its visible rect.
</span><span class="lines">@@ -1254,7 +1232,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)mouseDown:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if (self._shouldIgnoreMouseEvents)
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     [self _setMouseDownEvent:event];
</span><span class="lines">@@ -1270,7 +1248,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)mouseUp:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if (self._shouldIgnoreMouseEvents)
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     [self _setMouseDownEvent:nil];
</span><span class="lines">@@ -1279,7 +1257,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)mouseDragged:(NSEvent *)event
</span><span class="cx"> {
</span><del>-    if (self._shouldIgnoreMouseEvents)
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (_data-&gt;_ignoringMouseDraggedEvents)
</span><span class="lines">@@ -2182,6 +2160,9 @@
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)performKeyEquivalent:(NSEvent *)event
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
+        return NO;
+
</ins><span class="cx">     // There's a chance that responding to this event will run a nested event loop, and
</span><span class="cx">     // fetching a new event might release the old one. Retaining and then autoreleasing
</span><span class="cx">     // the current event prevents that from causing a problem inside WebKit or AppKit code.
</span><span class="lines">@@ -2219,6 +2200,9 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)keyUp:(NSEvent *)theEvent
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
+        return;
+
</ins><span class="cx">     LOG(TextInput, &quot;keyUp:%p %@&quot;, theEvent, theEvent);
</span><span class="cx">     // We don't interpret the keyUp event, as this breaks key bindings (see &lt;https://bugs.webkit.org/show_bug.cgi?id=130100&gt;).
</span><span class="cx">     _data-&gt;_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(theEvent, false, Vector&lt;KeypressCommand&gt;()));
</span><span class="lines">@@ -2226,6 +2210,9 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)keyDown:(NSEvent *)theEvent
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
+        return;
+
</ins><span class="cx">     LOG(TextInput, &quot;keyDown:%p %@%s&quot;, theEvent, theEvent, (theEvent == _data-&gt;_keyDownEventBeingResent) ? &quot; (re-sent)&quot; : &quot;&quot;);
</span><span class="cx"> 
</span><span class="cx">     // There's a chance that responding to this event will run a nested event loop, and
</span><span class="lines">@@ -2261,6 +2248,9 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)flagsChanged:(NSEvent *)theEvent
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
+        return;
+
</ins><span class="cx">     LOG(TextInput, &quot;flagsChanged:%p %@&quot;, theEvent, theEvent);
</span><span class="cx"> 
</span><span class="cx">     // There's a chance that responding to this event will run a nested event loop, and
</span><span class="lines">@@ -2833,6 +2823,9 @@
</span><span class="cx"> #if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080
</span><span class="cx"> - (void)quickLookWithEvent:(NSEvent *)event
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents)
+        return;
+
</ins><span class="cx">     NSPoint locationInViewCoordinates = [self convertPoint:[event locationInWindow] fromView:nil];
</span><span class="cx">     _data-&gt;_page-&gt;performDictionaryLookupAtLocation(FloatPoint(locationInViewCoordinates.x, locationInViewCoordinates.y));
</span><span class="cx"> }
</span><span class="lines">@@ -3698,16 +3691,31 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)prepareForMenu:(NSMenu *)menu withEvent:(NSEvent *)event
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents) {
+        [menu cancelTracking];
+        return;
+    }
+
</ins><span class="cx">     [_data-&gt;_actionMenuController prepareForMenu:menu withEvent:event];
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)willOpenMenu:(NSMenu *)menu withEvent:(NSEvent *)event
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents) {
+        [menu cancelTracking];
+        return;
+    }
+
</ins><span class="cx">     [_data-&gt;_actionMenuController willOpenMenu:menu withEvent:event];
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)didCloseMenu:(NSMenu *)menu withEvent:(NSEvent *)event
</span><span class="cx"> {
</span><ins>+    if (_data-&gt;_ignoresNonWheelEvents) {
+        [menu cancelTracking];
+        return;
+    }
+
</ins><span class="cx">     [_data-&gt;_actionMenuController didCloseMenu:menu withEvent:event];
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4010,16 +4018,37 @@
</span><span class="cx">     return _data-&gt;_allowsBackForwardNavigationGestures;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (void)_setIgnoresAllEvents:(BOOL)ignoresAllEvents
+{
+    _data-&gt;_ignoresAllEvents = ignoresAllEvents;
+    [self _setIgnoresNonWheelEvents:ignoresAllEvents];
+}
+
+// Forward _setIgnoresNonWheelMouseEvents to _setIgnoresNonWheelEvents to avoid breaking existing clients.
</ins><span class="cx"> - (void)_setIgnoresNonWheelMouseEvents:(BOOL)ignoresNonWheelMouseEvents
</span><span class="cx"> {
</span><del>-    _data-&gt;_ignoresNonWheelMouseEvents = ignoresNonWheelMouseEvents;
</del><ins>+    [self _setIgnoresNonWheelEvents:ignoresNonWheelMouseEvents];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (BOOL)_ignoresNonWheelMouseEvents
</del><ins>+- (void)_setIgnoresNonWheelEvents:(BOOL)ignoresNonWheelEvents
</ins><span class="cx"> {
</span><del>-    return _data-&gt;_ignoresNonWheelMouseEvents;
</del><ins>+    if (_data-&gt;_ignoresNonWheelEvents == ignoresNonWheelEvents)
+        return;
+
+    _data-&gt;_ignoresNonWheelEvents = ignoresNonWheelEvents;
+    _data-&gt;_page-&gt;setShouldDispatchFakeMouseMoveEvents(!ignoresNonWheelEvents);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (BOOL)_ignoresNonWheelEvents
+{
+    return _data-&gt;_ignoresNonWheelEvents;
+}
+
+- (BOOL)_ignoresAllEvents
+{
+    return _data-&gt;_ignoresAllEvents;
+}
+
</ins><span class="cx"> - (void)_dispatchSetTopContentInset
</span><span class="cx"> {
</span><span class="cx">     if (!_data-&gt;_didScheduleSetTopContentInset)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -110,8 +110,6 @@
</span><span class="cx"> - (void)_setSuppressVisibilityUpdates:(BOOL)suppressVisibilityUpdates;
</span><span class="cx"> - (BOOL)_suppressVisibilityUpdates;
</span><span class="cx"> 
</span><del>-- (BOOL)_shouldIgnoreMouseEvents;
-
</del><span class="cx"> - (void)_didFirstVisuallyNonEmptyLayoutForMainFrame;
</span><span class="cx"> - (void)_didFinishLoadForMainFrame;
</span><span class="cx"> - (void)_didSameDocumentNavigationForMainFrame:(WebKit::SameDocumentNavigationType)type;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -5342,4 +5342,9 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+void WebPageProxy::setShouldDispatchFakeMouseMoveEvents(bool shouldDispatchFakeMouseMoveEvents)
+{
+    m_process-&gt;send(Messages::WebPage::SetShouldDispatchFakeMouseMoveEvents(shouldDispatchFakeMouseMoveEvents), m_pageID);
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -947,6 +947,8 @@
</span><span class="cx"> #endif
</span><span class="cx">     void getGuessesForWord(const String&amp; word, const String&amp; context, Vector&lt;String&gt;&amp; guesses);
</span><span class="cx"> 
</span><ins>+    void setShouldDispatchFakeMouseMoveEvents(bool);
+
</ins><span class="cx"> private:
</span><span class="cx">     WebPageProxy(PageClient&amp;, WebProcessProxy&amp;, uint64_t pageID, const WebPageConfiguration&amp;);
</span><span class="cx">     void platformInitialize();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWKActionMenuControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">     _previewView = [_delegate pagePreviewViewController:self viewForPreviewingURL:_url.get() initialFrameSize:defaultFrame.size];
</span><span class="cx">     if (!_previewView) {
</span><span class="cx">         RetainPtr&lt;WKWebView&gt; webView = adoptNS([[WKWebView alloc] initWithFrame:defaultFrame]);
</span><del>-        [webView _setIgnoresNonWheelMouseEvents:YES];
</del><ins>+        [webView _setIgnoresNonWheelEvents:YES];
</ins><span class="cx">         if (_url) {
</span><span class="cx">             NSURLRequest *request = [NSURLRequest requestWithURL:_url.get()];
</span><span class="cx">             [webView loadRequest:request];
</span><span class="lines">@@ -253,11 +253,6 @@
</span><span class="cx">     if (menu != _wkView.actionMenu)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (_wkView._shouldIgnoreMouseEvents) {
-        [menu cancelTracking];
-        return;
-    }
-
</del><span class="cx">     [self dismissActionMenuPopovers];
</span><span class="cx"> 
</span><span class="cx">     _eventLocationInView = [_wkView convertPoint:event.locationInWindow fromView:nil];
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -1080,7 +1080,11 @@
</span><span class="cx"> {
</span><span class="cx">     return (isTextOnly &amp;&amp; WebProcess::shared().hasSelectionServices()) || WebProcess::shared().hasRichContentServices();
</span><span class="cx"> }
</span><del>-
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+bool WebChromeClient::shouldDispatchFakeMouseMoveEvents() const
+{
+    return m_page-&gt;shouldDispatchFakeMouseMoveEvents();
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -309,6 +309,8 @@
</span><span class="cx">     virtual bool hasRelevantSelectionServices(bool isTextOnly) const override;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    virtual bool shouldDispatchFakeMouseMoveEvents() const override;
+
</ins><span class="cx">     String m_cachedToolTip;
</span><span class="cx">     mutable RefPtr&lt;WebFrame&gt; m_cachedFrameSetLargestFrame;
</span><span class="cx">     mutable bool m_cachedMainFrameHasHorizontalScrollbar;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -334,6 +334,7 @@
</span><span class="cx">     , m_systemWebGLPolicy(WebGLAllowCreation)
</span><span class="cx"> #endif
</span><span class="cx">     , m_mainFrameProgressCompleted(false)
</span><ins>+    , m_shouldDispatchFakeMouseMoveEvents(true)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_pageID);
</span><span class="cx">     // FIXME: This is a non-ideal location for this Setting and
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -861,6 +861,8 @@
</span><span class="cx">     void didChangeScrollOffsetForFrame(WebCore::Frame*);
</span><span class="cx"> 
</span><span class="cx">     void setMainFrameProgressCompleted(bool completed) { m_mainFrameProgressCompleted = completed; }
</span><ins>+    bool shouldDispatchFakeMouseMoveEvents() const { return m_shouldDispatchFakeMouseMoveEvents; }
+
</ins><span class="cx"> private:
</span><span class="cx">     WebPage(uint64_t pageID, const WebPageCreationParameters&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -1082,6 +1084,8 @@
</span><span class="cx">     void dataDetectorsDidHideUI(WebCore::PageOverlay::PageOverlayID);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    void setShouldDispatchFakeMouseMoveEvents(bool dispatch) { m_shouldDispatchFakeMouseMoveEvents = dispatch; }
+
</ins><span class="cx">     uint64_t m_pageID;
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;WebCore::Page&gt; m_page;
</span><span class="lines">@@ -1326,6 +1330,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool m_mainFrameProgressCompleted;
</span><ins>+    bool m_shouldDispatchFakeMouseMoveEvents;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (176752 => 176753)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-12-03 21:45:34 UTC (rev 176752)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2014-12-03 21:53:36 UTC (rev 176753)
</span><span class="lines">@@ -410,4 +410,6 @@
</span><span class="cx">     DataDetectorsDidChangeUI(WebCore::PageOverlay::PageOverlayID pageOverlay)
</span><span class="cx">     DataDetectorsDidHideUI(WebCore::PageOverlay::PageOverlayID pageOverlay)
</span><span class="cx"> #endif
</span><ins>+
+    SetShouldDispatchFakeMouseMoveEvents(bool shouldDispatchFakeMouseMoveEvents)
</ins><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>