<!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>[164094] 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/164094">164094</a></dd>
<dt>Author</dt> <dd>mitz@apple.com</dd>
<dt>Date</dt> <dd>2014-02-13 22:04:27 -0800 (Thu, 13 Feb 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Cocoa] Expose the bundle form client
https://bugs.webkit.org/show_bug.cgi?id=128792

Reviewed by Anders Carlsson.

* WebKit2.xcodeproj/project.pbxproj: Added new file.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didFocusTextField): Implemented this WKBundlePageFormClient callback by calling the form
delegate.
(setUpFormClient): Added. Initializes the form client with the above function.
(-[WKWebProcessPlugInBrowserContextController _formDelegate]): Added this getter.
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added. Initializes or
clears the form client.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
Declared _formDelegate property.</pre>

<h3>Modified Paths</h3>
<ul>
<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="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKWebProcessPlugInBrowserContextControllermm">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKWebProcessPlugInBrowserContextControllerPrivateh">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPICocoaWKWebProcessPlugInFormDelegatePrivateh">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (164093 => 164094)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-02-14 06:03:34 UTC (rev 164093)
+++ trunk/Source/WebKit2/ChangeLog        2014-02-14 06:04:27 UTC (rev 164094)
</span><span class="lines">@@ -1,5 +1,24 @@
</span><span class="cx"> 2014-02-13  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        [Cocoa] Expose the bundle form client
+        https://bugs.webkit.org/show_bug.cgi?id=128792
+
+        Reviewed by Anders Carlsson.
+
+        * WebKit2.xcodeproj/project.pbxproj: Added new file.
+        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added.
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+        (didFocusTextField): Implemented this WKBundlePageFormClient callback by calling the form
+        delegate.
+        (setUpFormClient): Added. Initializes the form client with the above function.
+        (-[WKWebProcessPlugInBrowserContextController _formDelegate]): Added this getter.
+        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added. Initializes or
+        clears the form client.
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
+        Declared _formDelegate property.
+
+2014-02-13  Dan Bernstein  &lt;mitz@apple.com&gt;
+
</ins><span class="cx">         [Cocoa] Add a way to get the page from a frame in the injected bundle
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=128791
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (164093 => 164094)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-02-14 06:03:34 UTC (rev 164093)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-02-14 06:04:27 UTC (rev 164094)
</span><span class="lines">@@ -598,6 +598,7 @@
</span><span class="cx">                 37948404150C350600E52CE9 /* WebRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 37948402150C350600E52CE9 /* WebRenderLayer.h */; };
</span><span class="cx">                 37948408150C4B9700E52CE9 /* WKRenderLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */; };
</span><span class="cx">                 37948409150C4B9700E52CE9 /* WKRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 37948407150C4B9600E52CE9 /* WKRenderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                3795789C18AD4F1900B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 37C4C08618149C5B003688B9 /* WKBackForwardListItem.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37C4C08418149C5B003688B9 /* WKBackForwardListItem.mm */; };
</span><span class="cx">                 37C4C08718149C5B003688B9 /* WKBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C4C08518149C5B003688B9 /* WKBackForwardListItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
</span><span class="cx">                 37C4C08918149F23003688B9 /* WKBackForwardListItemInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C4C08818149F23003688B9 /* WKBackForwardListItemInternal.h */; };
</span><span class="lines">@@ -2308,6 +2309,7 @@
</span><span class="cx">                 37948402150C350600E52CE9 /* WebRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebRenderLayer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRenderLayer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 37948407150C4B9600E52CE9 /* WKRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRenderLayer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInFormDelegatePrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 37C4C08418149C5B003688B9 /* WKBackForwardListItem.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKBackForwardListItem.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 37C4C08518149C5B003688B9 /* WKBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBackForwardListItem.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 37C4C08818149F23003688B9 /* WKBackForwardListItemInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBackForwardListItemInternal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4108,6 +4110,7 @@
</span><span class="cx">                 1F0181681858DC1500F92884 /* Cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */,
</ins><span class="cx">                                 1F0181691858DC1500F92884 /* WKWebProcessPlugInFrame.h */,
</span><span class="cx">                                 1F01816A1858DC1500F92884 /* WKWebProcessPlugInFrame.mm */,
</span><span class="cx">                                 1F01816B1858DC1500F92884 /* WKWebProcessPlugInFrameInternal.h */,
</span><span class="lines">@@ -6795,6 +6798,7 @@
</span><span class="cx">                                 BC5C75C814954DA600BC4775 /* WKConnectionInternal.h in Headers */,
</span><span class="cx">                                 BC4A6297147313A0006C681A /* WKConnectionRef.h in Headers */,
</span><span class="cx">                                 BCB9E24B1120E15C00A137E0 /* WKContext.h in Headers */,
</span><ins>+                                3795789C18AD4F1900B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h in Headers */,
</ins><span class="cx">                                 51A555F6128C6C47009ABCEC /* WKContextMenuItem.h in Headers */,
</span><span class="cx">                                 51A55601128C6D92009ABCEC /* WKContextMenuItemTypes.h in Headers */,
</span><span class="cx">                                 1A15841A189044F50017616C /* WKProcessClass.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPICocoaWKWebProcessPlugInFormDelegatePrivateh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h (0 => 164094)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h                                (rev 0)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h        2014-02-14 06:04:27 UTC (rev 164094)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+/*
+ * Copyright (C) 2014 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.
+ */
+
+#import &lt;WebKit2/WKFoundation.h&gt;
+
+#if WK_API_ENABLED
+
+#import &lt;WebKit2/WKWebProcessPlugInBrowserContextController.h&gt;
+#import &lt;WebKit2/WKWebProcessPlugInFrame.h&gt;
+#import &lt;WebKit2/WKWebProcessPlugInNodeHandle.h&gt;
+
+@protocol WKWebProcessPlugInFormDelegatePrivate &lt;NSObject&gt;
+
+@optional
+
+- (void)_webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController *)controller didFocusTextField:(WKWebProcessPlugInNodeHandle *)textField inFrame:(WKWebProcessPlugInFrame *)frame;
+
+@end
+
+#endif // WK_API_ENABLED
</ins></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKWebProcessPlugInBrowserContextControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (164093 => 164094)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm        2014-02-14 06:03:34 UTC (rev 164093)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm        2014-02-14 06:04:27 UTC (rev 164094)
</span><span class="lines">@@ -42,7 +42,9 @@
</span><span class="cx"> #import &quot;WKURLRequestNS.h&quot;
</span><span class="cx"> #import &quot;WKWebProcessPluginFrameInternal.h&quot;
</span><span class="cx"> #import &quot;WKWebProcessPlugInInternal.h&quot;
</span><ins>+#import &quot;WKWebProcessPlugInFormDelegatePrivate.h&quot;
</ins><span class="cx"> #import &quot;WKWebProcessPlugInLoadDelegate.h&quot;
</span><ins>+#import &quot;WKWebProcessPlugInNodeHandleInternal.h&quot;
</ins><span class="cx"> #import &quot;WKWebProcessPlugInPageGroupInternal.h&quot;
</span><span class="cx"> #import &quot;WKWebProcessPlugInScriptWorldInternal.h&quot;
</span><span class="cx"> #import &quot;WeakObjCPtr.h&quot;
</span><span class="lines">@@ -57,6 +59,7 @@
</span><span class="cx"> @implementation WKWebProcessPlugInBrowserContextController {
</span><span class="cx">     API::ObjectStorage&lt;WebPage&gt; _page;
</span><span class="cx">     WeakObjCPtr&lt;id &lt;WKWebProcessPlugInLoadDelegate&gt;&gt; _loadDelegate;
</span><ins>+    WeakObjCPtr&lt;id &lt;WKWebProcessPlugInFormDelegatePrivate&gt;&gt; _formDelegate;
</ins><span class="cx">     
</span><span class="cx">     RetainPtr&lt;WKRemoteObjectRegistry&gt; _remoteObjectRegistry;
</span><span class="cx"> }
</span><span class="lines">@@ -203,6 +206,27 @@
</span><span class="cx">     page.initializeInjectedBundleResourceLoadClient(&amp;client.base);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static void didFocusTextField(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandleRef, WKBundleFrameRef frameRef, const void* clientInfo)
+{
+    WKWebProcessPlugInBrowserContextController *controller = (WKWebProcessPlugInBrowserContextController *)clientInfo;
+    auto formDelegate = controller-&gt;_formDelegate.get();
+
+    if ([formDelegate respondsToSelector:@selector(_webProcessPlugInBrowserContextController:didFocusTextField:inFrame:)])
+        [formDelegate _webProcessPlugInBrowserContextController:controller didFocusTextField:wrapper(*toImpl(htmlInputElementHandleRef)) inFrame:wrapper(*toImpl(frameRef))];
+}
+
+static void setUpFormClient(WKWebProcessPlugInBrowserContextController *contextController, WebPage&amp; page)
+{
+    WKBundlePageFormClientV2 client;
+    memset(&amp;client, 0, sizeof(client));
+
+    client.base.version = 2;
+    client.base.clientInfo = contextController;
+    client.didFocusTextField = didFocusTextField;
+
+    page.initializeInjectedBundleFormClient(&amp;client.base);
+}
+
</ins><span class="cx"> - (id &lt;WKWebProcessPlugInLoadDelegate&gt;)loadDelegate
</span><span class="cx"> {
</span><span class="cx">     return _loadDelegate.getAutoreleased();
</span><span class="lines">@@ -300,6 +324,21 @@
</span><span class="cx">     return _remoteObjectRegistry.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (id &lt;WKWebProcessPlugInFormDelegatePrivate&gt;)_formDelegate
+{
+    return _formDelegate.getAutoreleased();
+}
+
+- (void)_setFormDelegate:(id &lt;WKWebProcessPlugInFormDelegatePrivate&gt;)formDelegate
+{
+    _formDelegate = formDelegate;
+
+    if (formDelegate)
+        setUpFormClient(self, *_page);
+    else
+        _page-&gt;initializeInjectedBundleFormClient(nullptr);
+}
+
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> #endif // WK_API_ENABLED
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKWebProcessPlugInBrowserContextControllerPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h (164093 => 164094)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h        2014-02-14 06:03:34 UTC (rev 164093)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h        2014-02-14 06:04:27 UTC (rev 164094)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> 
</span><span class="cx"> @class WKBrowsingContextHandle;
</span><span class="cx"> @class WKRemoteObjectRegistry;
</span><ins>+@protocol WKWebProcessPlugInFormDelegatePrivate;
</ins><span class="cx"> 
</span><span class="cx"> @interface WKWebProcessPlugInBrowserContextController (Private)
</span><span class="cx"> 
</span><span class="lines">@@ -40,6 +41,8 @@
</span><span class="cx"> 
</span><span class="cx"> @property (nonatomic, readonly) WKRemoteObjectRegistry *remoteObjectRegistry;
</span><span class="cx"> 
</span><ins>+@property (weak, setter=_setFormDelegate:) id &lt;WKWebProcessPlugInFormDelegatePrivate&gt; _formDelegate;
+
</ins><span class="cx"> + (instancetype)lookUpBrowsingContextFromHandle:(WKBrowsingContextHandle *)handle;
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre>
</div>
</div>

</body>
</html>