<!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>[287930] trunk/Source/WebKit</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/287930">287930</a></dd>
<dt>Author</dt> <dd>jer.noble@apple.com</dd>
<dt>Date</dt> <dd>2022-01-12 10:17:13 -0800 (Wed, 12 Jan 2022)</dd>
</dl>

<h3>Log Message</h3>
<pre>[iOS] Page loading hangs for ~10s on WebProcess launch
https://bugs.webkit.org/show_bug.cgi?id=235089

Reviewed by Eric Carlson.

WebPage::setMuted() will result in calling into the current audioCaptureFactory,
which will be by default CoreAudioAudioCaptureFactory unless replaced.
CoreAudioAudioCaptureFactory will in turn call into AVAudioSession, which will block
for multiple seconds due to the WebContent process sandbox.

Change the order in which these calls occur by configuring the audioCaptureFactory
in platformInitialize(), which occurs near the top of the constructor. This requires
access to the WebPageCreationParameters passed into the constructor, modify that method
to take a WebPageCreationParameters, and modify all the platform-specific definitions of
that method.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformInitialize):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformInitialize):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitialize): Deleted.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformInitializeAccessibility):
(WebKit::WebPage::platformInitialize): Deleted.
* WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
(WebKit::WebPage::platformInitialize):
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::platformInitialize):
* WebProcess/WebPage/wpe/WebPageWPE.cpp:
(WebKit::WebPage::platformInitialize):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageCocoaWebPageCocoamm">trunk/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageWebPagecpp">trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageWebPageh">trunk/Source/WebKit/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPagegtkWebPageGtkcpp">trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPagemacWebPageMacmm">trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPageplaystationWebPagePlayStationcpp">trunk/Source/WebKit/WebProcess/WebPage/playstation/WebPagePlayStation.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPagewinWebPageWincpp">trunk/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp</a></li>
<li><a href="#trunkSourceWebKitWebProcessWebPagewpeWebPageWPEcpp">trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/ChangeLog       2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -1,3 +1,40 @@
</span><ins>+2022-01-12  Jer Noble  <jer.noble@apple.com>
+
+        [iOS] Page loading hangs for ~10s on WebProcess launch
+        https://bugs.webkit.org/show_bug.cgi?id=235089
+
+        Reviewed by Eric Carlson.
+
+        WebPage::setMuted() will result in calling into the current audioCaptureFactory,
+        which will be by default CoreAudioAudioCaptureFactory unless replaced. 
+        CoreAudioAudioCaptureFactory will in turn call into AVAudioSession, which will block
+        for multiple seconds due to the WebContent process sandbox.
+
+        Change the order in which these calls occur by configuring the audioCaptureFactory
+        in platformInitialize(), which occurs near the top of the constructor. This requires
+        access to the WebPageCreationParameters passed into the constructor, modify that method
+        to take a WebPageCreationParameters, and modify all the platform-specific definitions of
+        that method.
+
+        * WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
+        (WebKit::WebPage::platformInitialize):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_appHighlightsVisible):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+        (WebKit::WebPage::platformInitialize):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::platformInitialize): Deleted.
+        * WebProcess/WebPage/mac/WebPageMac.mm:
+        (WebKit::WebPage::platformInitializeAccessibility):
+        (WebKit::WebPage::platformInitialize): Deleted.
+        * WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
+        (WebKit::WebPage::platformInitialize):
+        * WebProcess/WebPage/win/WebPageWin.cpp:
+        (WebKit::WebPage::platformInitialize):
+        * WebProcess/WebPage/wpe/WebPageWPE.cpp:
+        (WebKit::WebPage::platformInitialize):
+
</ins><span class="cx"> 2022-01-12  Frédéric Wang  <fwang@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         Protect DocumentLoader when a reference to its members is used.
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageCocoaWebPageCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm     2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm        2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #import "LaunchServicesDatabaseManager.h"
</span><span class="cx"> #import "LoadParameters.h"
</span><span class="cx"> #import "PluginView.h"
</span><ins>+#import "UserMediaCaptureManager.h"
</ins><span class="cx"> #import "WKAccessibilityWebPageObjectBase.h"
</span><span class="cx"> #import "WebPageProxyMessages.h"
</span><span class="cx"> #import "WebPaymentCoordinator.h"
</span><span class="lines">@@ -64,6 +65,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><ins>+void WebPage::platformInitialize(const WebPageCreationParameters& parameters)
+{
+    platformInitializeAccessibility();
+
+#if ENABLE(MEDIA_STREAM)
+    if (auto* captureManager = WebProcess::singleton().supplement<UserMediaCaptureManager>())
+        captureManager->setupCaptureProcesses(parameters.shouldCaptureAudioInUIProcess, parameters.shouldCaptureAudioInGPUProcess, parameters.shouldCaptureVideoInUIProcess, parameters.shouldCaptureVideoInGPUProcess, parameters.shouldCaptureDisplayInUIProcess);
+#endif
+}
+
</ins><span class="cx"> void WebPage::platformDidReceiveLoadParameters(const LoadParameters& parameters)
</span><span class="cx"> {
</span><span class="cx"> #if HAVE(LSDATABASECONTEXT)
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp       2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp  2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -296,7 +296,6 @@
</span><span class="cx"> #include "RemoteLayerTreeTransaction.h"
</span><span class="cx"> #include "RemoteObjectRegistryMessages.h"
</span><span class="cx"> #include "TextCheckingControllerProxy.h"
</span><del>-#include "UserMediaCaptureManager.h"
</del><span class="cx"> #include "VideoFullscreenManager.h"
</span><span class="cx"> #include "WKStringCF.h"
</span><span class="cx"> #include "WebRemoteObjectRegistry.h"
</span><span class="lines">@@ -745,7 +744,7 @@
</span><span class="cx">     setOverrideViewportArguments(parameters.overrideViewportArguments);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    platformInitialize();
</del><ins>+    platformInitialize(parameters);
</ins><span class="cx"> 
</span><span class="cx">     setUseFixedLayout(parameters.useFixedLayout);
</span><span class="cx"> 
</span><span class="lines">@@ -858,11 +857,7 @@
</span><span class="cx">     if (parameters.enumeratingAllNetworkInterfacesEnabled)
</span><span class="cx">         m_page->libWebRTCProvider().enableEnumeratingAllNetworkInterfaces();
</span><span class="cx"> #endif
</span><del>-#if PLATFORM(COCOA) && ENABLE(MEDIA_STREAM)
-    if (auto* captureManager = WebProcess::singleton().supplement<UserMediaCaptureManager>())
-        captureManager->setupCaptureProcesses(parameters.shouldCaptureAudioInUIProcess, parameters.shouldCaptureAudioInGPUProcess, parameters.shouldCaptureVideoInUIProcess, parameters.shouldCaptureVideoInGPUProcess, parameters.shouldCaptureDisplayInUIProcess);
</del><span class="cx"> #endif
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     for (const auto& iterator : parameters.urlSchemeHandlers)
</span><span class="cx">         registerURLSchemeHandler(iterator.value, iterator.key);
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h    2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -927,6 +927,7 @@
</span><span class="cx">     void didEndUserTriggeredSelectionChanges();
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><ins>+    void platformInitializeAccessibility();
</ins><span class="cx">     void registerUIProcessAccessibilityTokens(const IPC::DataReference& elemenToken, const IPC::DataReference& windowToken);
</span><span class="cx">     WKAccessibilityWebPageObject* accessibilityRemoteObject();
</span><span class="cx">     NSObject *accessibilityObjectForMainFramePlugin();
</span><span class="lines">@@ -1507,7 +1508,7 @@
</span><span class="cx">     IPC::Connection* messageSenderConnection() const override;
</span><span class="cx">     uint64_t messageSenderDestinationID() const override;
</span><span class="cx"> 
</span><del>-    void platformInitialize();
</del><ins>+    void platformInitialize(const WebPageCreationParameters&);
</ins><span class="cx">     void platformReinitialize();
</span><span class="cx">     void platformDetach();
</span><span class="cx">     void getPlatformEditorState(WebCore::Frame&, EditorState&) const;
</span><span class="lines">@@ -1529,7 +1530,6 @@
</span><span class="cx">     void updateViewportSizeForCSSViewportUnits();
</span><span class="cx"> 
</span><span class="cx">     std::optional<FocusedElementInformation> focusedElementInformation();
</span><del>-    void platformInitializeAccessibility();
</del><span class="cx">     void generateSyntheticEditingCommand(SyntheticEditingCommandType);
</span><span class="cx">     void handleSyntheticClick(WebCore::Node& nodeRespondingToClick, const WebCore::FloatPoint& location, OptionSet<WebKit::WebEvent::Modifier>, WebCore::PointerID = WebCore::mousePointerID);
</span><span class="cx">     void completeSyntheticClick(WebCore::Node& nodeRespondingToClick, const WebCore::FloatPoint& location, OptionSet<WebKit::WebEvent::Modifier>, WebCore::SyntheticClickType, WebCore::PointerID = WebCore::mousePointerID);
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPagegtkWebPageGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp        2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp   2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
</del><ins>+void WebPage::platformInitialize(const WebPageCreationParameters&)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(ACCESSIBILITY)
</span><span class="cx">     // Create the accessible object (the plug) that will serve as the
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm    2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -189,11 +189,6 @@
</span><span class="cx">     return range ? plainTextForDisplay(*range) : emptyString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
-{
-    platformInitializeAccessibility();
-}
-
</del><span class="cx"> void WebPage::platformDetach()
</span><span class="cx"> {
</span><span class="cx">     [m_mockAccessibilityElement setWebPage:nullptr];
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPagemacWebPageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm 2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm    2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
</del><ins>+void WebPage::platformInitializeAccessibility()
</ins><span class="cx"> {
</span><span class="cx">     auto mockAccessibilityElement = adoptNS([[WKAccessibilityWebPageObject alloc] init]);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPageplaystationWebPagePlayStationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/playstation/WebPagePlayStation.cpp (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/playstation/WebPagePlayStation.cpp        2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/playstation/WebPagePlayStation.cpp   2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
</del><ins>+void WebPage::platformInitialize(const WebPageCreationParameters&)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPagewinWebPageWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp        2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp   2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
</del><ins>+void WebPage::platformInitialize(const WebPageCreationParameters&)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessWebPagewpeWebPageWPEcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp (287929 => 287930)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp        2022-01-12 18:15:32 UTC (rev 287929)
+++ trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp   2022-01-12 18:17:13 UTC (rev 287930)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-void WebPage::platformInitialize()
</del><ins>+void WebPage::platformInitialize(const WebPageCreationParameters&)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(ACCESSIBILITY)
</span><span class="cx">     // Create the accessible object (the plug) that will serve as the
</span></span></pre>
</div>
</div>

</body>
</html>