<!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>[185749] 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/185749">185749</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2015-06-19 09:53:49 -0700 (Fri, 19 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process
https://bugs.webkit.org/show_bug.cgi?id=146124
rdar://problem/21449395

Reviewed by Geoffrey Garen.

Add a HangDetectionDisabler RAII object and use it for JavaScript panels.

* Shared/HangDetectionDisabler.h: Added.
(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):
* Shared/mac/HangDetectionDisablerMac.mm: Added.
(WebKit::clientsMayIgnoreEvents):
(WebKit::setClientsMayIgnoreEvents):
(WebKit::HangDetectionDisabler::HangDetectionDisabler):
(WebKit::HangDetectionDisabler::~HangDetectionDisabler):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformspicgCoreGraphicsSPIh">trunk/Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2SharedHangDetectionDisablerh">trunk/Source/WebKit2/Shared/HangDetectionDisabler.h</a></li>
<li><a href="#trunkSourceWebKit2SharedmacHangDetectionDisablerMacmm">trunk/Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185748 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-19 16:05:54 UTC (rev 185748)
+++ trunk/Source/WebCore/ChangeLog        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-06-19  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process
+        https://bugs.webkit.org/show_bug.cgi?id=146124
+        rdar://problem/21449395
+
+        Reviewed by Geoffrey Garen.
+
+        * platform/spi/cg/CoreGraphicsSPI.h:
+
</ins><span class="cx"> 2015-06-19  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove unnecessary svn:executable flags
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspicgCoreGraphicsSPIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h (185748 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h        2015-06-19 16:05:54 UTC (rev 185748)
+++ trunk/Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -179,6 +179,8 @@
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> CGSConnectionID CGSMainConnectionID(void);
</span><span class="cx"> CFArrayRef CGSHWCaptureWindowList(CGSConnectionID cid, CGSWindowIDList windowList, CGSWindowCount windowCount, CGSWindowCaptureOptions options);
</span><ins>+CGError CGSSetConnectionProperty(CGSConnectionID, CGSConnectionID ownerCid, CFStringRef key, CFTypeRef value);
+CGError CGSCopyConnectionProperty(CGSConnectionID, CGSConnectionID ownerCid, CFStringRef key, CFTypeRef *value);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> WTF_EXTERN_C_END
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185748 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-19 16:05:54 UTC (rev 185748)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -1,3 +1,28 @@
</span><ins>+2015-06-19  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process
+        https://bugs.webkit.org/show_bug.cgi?id=146124
+        rdar://problem/21449395
+
+        Reviewed by Geoffrey Garen.
+
+        Add a HangDetectionDisabler RAII object and use it for JavaScript panels.
+
+        * Shared/HangDetectionDisabler.h: Added.
+        (WebKit::HangDetectionDisabler::HangDetectionDisabler):
+        (WebKit::HangDetectionDisabler::~HangDetectionDisabler):
+        * Shared/mac/HangDetectionDisablerMac.mm: Added.
+        (WebKit::clientsMayIgnoreEvents):
+        (WebKit::setClientsMayIgnoreEvents):
+        (WebKit::HangDetectionDisabler::HangDetectionDisabler):
+        (WebKit::HangDetectionDisabler::~HangDetectionDisabler):
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
+        (WebKit::WebChromeClient::runJavaScriptAlert):
+        (WebKit::WebChromeClient::runJavaScriptConfirm):
+        (WebKit::WebChromeClient::runJavaScriptPrompt):
+
</ins><span class="cx"> 2015-06-19  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fixed the build for platforms that don’t have SafariServices.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedHangDetectionDisablerh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Shared/HangDetectionDisabler.h (0 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/HangDetectionDisabler.h                                (rev 0)
+++ trunk/Source/WebKit2/Shared/HangDetectionDisabler.h        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+/*
+ * Copyright (C) 2015 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. AND ITS CONTRIBUTORS ``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 ITS 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.
+ */
+
+#ifndef HangDetectionDisabler_h
+#define HangDetectionDisabler_h
+
+namespace WebKit {
+
+class HangDetectionDisabler {
+public:
+    HangDetectionDisabler();
+    ~HangDetectionDisabler();
+
+private:
+#if PLATFORM(MAC)
+    bool m_clientsMayIgnoreEvents;
+#endif
+};
+
+#if !PLATFORM(MAC)
+inline HangDetectionDisabler::HangDetectionDisabler()
+{
+}
+
+inline HangDetectionDisabler::~HangDetectionDisabler()
+{
+}
+#endif
+
+}
+
+#endif // HangDetectionDisabler_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2SharedmacHangDetectionDisablerMacmm"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm (0 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm                                (rev 0)
+++ trunk/Source/WebKit2/Shared/mac/HangDetectionDisablerMac.mm        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2015 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. AND ITS CONTRIBUTORS ``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 ITS 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.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;HangDetectionDisabler.h&quot;
+
+#if PLATFORM(MAC)
+
+#include &lt;WebCore/CoreGraphicsSPI.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+namespace WebKit {
+
+static const auto clientsMayIgnoreEventsKey = CFSTR(&quot;ClientMayIgnoreEvents&quot;);
+
+static bool clientsMayIgnoreEvents()
+{
+    CFTypeRef valuePtr;
+    if (CGSCopyConnectionProperty(CGSMainConnectionID(), CGSMainConnectionID(), clientsMayIgnoreEventsKey, &amp;valuePtr) != kCGErrorSuccess)
+        return false;
+
+    auto value = adoptCF(valuePtr);
+
+    if (!value || CFGetTypeID(value.get()) != CFBooleanGetTypeID())
+        return false;
+
+    return value == kCFBooleanTrue;
+}
+
+static void setClientsMayIgnoreEvents(bool clientsMayIgnoreEvents)
+{
+    if (CGSSetConnectionProperty(CGSMainConnectionID(), CGSMainConnectionID(), clientsMayIgnoreEventsKey, clientsMayIgnoreEvents ? kCFBooleanTrue : kCFBooleanFalse) != kCGErrorSuccess)
+        ASSERT_NOT_REACHED();
+}
+
+HangDetectionDisabler::HangDetectionDisabler()
+    : m_clientsMayIgnoreEvents(clientsMayIgnoreEvents())
+{
+    setClientsMayIgnoreEvents(true);
+}
+
+HangDetectionDisabler::~HangDetectionDisabler()
+{
+    setClientsMayIgnoreEvents(m_clientsMayIgnoreEvents);
+}
+
+}
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (185748 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-06-19 16:05:54 UTC (rev 185748)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -438,6 +438,8 @@
</span><span class="cx">                 1AC7537C183A9FDB0072CB15 /* PageLoadState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC7537A183A9FDB0072CB15 /* PageLoadState.h */; };
</span><span class="cx">                 1AC7537F183BE50F0072CB15 /* DataReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC7537D183BE50F0072CB15 /* DataReference.cpp */; };
</span><span class="cx">                 1AC75380183BE50F0072CB15 /* DataReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC7537E183BE50F0072CB15 /* DataReference.h */; };
</span><ins>+                1AC75A1B1B3368270056745B /* HangDetectionDisabler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC75A1A1B3368270056745B /* HangDetectionDisabler.h */; };
+                1AC75A1E1B33695E0056745B /* HangDetectionDisablerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AC75A1C1B33695E0056745B /* HangDetectionDisablerMac.mm */; };
</ins><span class="cx">                 1AC86FF3130B46D3002C1257 /* WKPluginSiteDataManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC86FF1130B46D3002C1257 /* WKPluginSiteDataManager.cpp */; };
</span><span class="cx">                 1AC86FF4130B46D3002C1257 /* WKPluginSiteDataManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC86FF2130B46D3002C1257 /* WKPluginSiteDataManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 1ACC87BA1981C341003D1AF4 /* WKNavigationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACC87B91981C341003D1AF4 /* WKNavigationPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -2563,6 +2565,8 @@
</span><span class="cx">                 1AC7537A183A9FDB0072CB15 /* PageLoadState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageLoadState.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AC7537D183BE50F0072CB15 /* DataReference.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataReference.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AC7537E183BE50F0072CB15 /* DataReference.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataReference.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                1AC75A1A1B3368270056745B /* HangDetectionDisabler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HangDetectionDisabler.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                1AC75A1C1B33695E0056745B /* HangDetectionDisablerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = HangDetectionDisablerMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 1AC86FF1130B46D3002C1257 /* WKPluginSiteDataManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKPluginSiteDataManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AC86FF2130B46D3002C1257 /* WKPluginSiteDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPluginSiteDataManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1ACC87B91981C341003D1AF4 /* WKNavigationPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4699,6 +4703,7 @@
</span><span class="cx">                                 BCE81D8A1319F7EF00241910 /* FontInfo.cpp */,
</span><span class="cx">                                 BCE81D8B1319F7EF00241910 /* FontInfo.h */,
</span><span class="cx">                                 762B7481120BBA0100819339 /* FontSmoothingLevel.h */,
</span><ins>+                                1AC75A1A1B3368270056745B /* HangDetectionDisabler.h */,
</ins><span class="cx">                                 F638954F133BEF38008941D5 /* HTTPCookieAcceptPolicy.h */,
</span><span class="cx">                                 BCCF6B2312C93E7A008F9C35 /* ImageOptions.h */,
</span><span class="cx">                                 C58CDF2B1887609F00871536 /* InteractionInformationAtPosition.cpp */,
</span><span class="lines">@@ -6448,6 +6453,7 @@
</span><span class="cx">                                 CDC3830D1721242D008A2FC3 /* CookieStorageShim.mm */,
</span><span class="cx">                                 CDC382F9172116D3008A2FC3 /* CookieStorageShimLibrary.cpp */,
</span><span class="cx">                                 CDC3830B172121CE008A2FC3 /* CookieStorageShimLibrary.h */,
</span><ins>+                                1AC75A1C1B33695E0056745B /* HangDetectionDisablerMac.mm */,
</ins><span class="cx">                                 5163EA431ACC74AE0012D1E4 /* NativeContextMenuItem.mm */,
</span><span class="cx">                                 C02BFF1D1251502E009CCBEA /* NativeWebKeyboardEventMac.mm */,
</span><span class="cx">                                 31EA25D0134F78B2005B1452 /* NativeWebMouseEventMac.mm */,
</span><span class="lines">@@ -7996,6 +8002,7 @@
</span><span class="cx">                                 BC032DD110F4389F0058C15A /* WebPageProxy.h in Headers */,
</span><span class="cx">                                 BCBD3915125BB1A800D2C29F /* WebPageProxyMessages.h in Headers */,
</span><span class="cx">                                 512127C41908239A00DAF35C /* WebPasteboardOverrides.h in Headers */,
</span><ins>+                                1AC75A1B1B3368270056745B /* HangDetectionDisabler.h in Headers */,
</ins><span class="cx">                                 7C4694D11A51E36800AD5845 /* WebPasteboardProxy.h in Headers */,
</span><span class="cx">                                 7C4694CA1A4B4EA100AD5845 /* WebPasteboardProxyMessages.h in Headers */,
</span><span class="cx">                                 1A3E736111CC2659007BD539 /* WebPlatformStrategies.h in Headers */,
</span><span class="lines">@@ -10032,6 +10039,7 @@
</span><span class="cx">                                 37948408150C4B9700E52CE9 /* WKRenderLayer.cpp in Sources */,
</span><span class="cx">                                 37608822150414F700FC82C7 /* WKRenderObject.cpp in Sources */,
</span><span class="cx">                                 3336763A130C99DC006C9DE2 /* WKResourceCacheManager.cpp in Sources */,
</span><ins>+                                1AC75A1E1B33695E0056745B /* HangDetectionDisablerMac.mm in Sources */,
</ins><span class="cx">                                 1A7E377818E4A4FE003D0FFF /* WKScriptMessage.mm in Sources */,
</span><span class="cx">                                 0FCB4E5518BBE044000FCFC9 /* WKScrollView.mm in Sources */,
</span><span class="cx">                                 F634445C12A885E9000612D8 /* WKSecurityOrigin.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (185748 => 185749)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2015-06-19 16:05:54 UTC (rev 185748)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2015-06-19 16:53:49 UTC (rev 185749)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;DrawingArea.h&quot;
</span><ins>+#include &quot;HangDetectionDisabler.h&quot;
</ins><span class="cx"> #include &quot;InjectedBundleNavigationAction.h&quot;
</span><span class="cx"> #include &quot;InjectedBundleNodeHandle.h&quot;
</span><span class="cx"> #include &quot;LayerTreeHost.h&quot;
</span><span class="lines">@@ -334,6 +335,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool shouldClose = false;
</span><span class="cx"> 
</span><ins>+    HangDetectionDisabler hangDetectionDisabler;
+
</ins><span class="cx">     unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx">     if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx">         syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><span class="lines">@@ -371,6 +374,8 @@
</span><span class="cx">     // Notify the bundle client.
</span><span class="cx">     m_page-&gt;injectedBundleUIClient().willRunJavaScriptAlert(m_page, alertText, webFrame);
</span><span class="cx"> 
</span><ins>+    HangDetectionDisabler hangDetectionDisabler;
+
</ins><span class="cx">     unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx">     if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx">         syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><span class="lines">@@ -385,6 +390,8 @@
</span><span class="cx">     // Notify the bundle client.
</span><span class="cx">     m_page-&gt;injectedBundleUIClient().willRunJavaScriptConfirm(m_page, message, webFrame);
</span><span class="cx"> 
</span><ins>+    HangDetectionDisabler hangDetectionDisabler;
+
</ins><span class="cx">     unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx">     if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx">         syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><span class="lines">@@ -403,6 +410,8 @@
</span><span class="cx">     // Notify the bundle client.
</span><span class="cx">     m_page-&gt;injectedBundleUIClient().willRunJavaScriptPrompt(m_page, message, defaultValue, webFrame);
</span><span class="cx"> 
</span><ins>+    HangDetectionDisabler hangDetectionDisabler;
+
</ins><span class="cx">     unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx">     if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx">         syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span></span></pre>
</div>
</div>

</body>
</html>