Changeset 164094 in webkit
- Timestamp:
- Feb 13, 2014, 10:04:27 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r164093 r164094 1 2014-02-13 Dan Bernstein <mitz@apple.com> 2 3 [Cocoa] Expose the bundle form client 4 https://bugs.webkit.org/show_bug.cgi?id=128792 5 6 Reviewed by Anders Carlsson. 7 8 * WebKit2.xcodeproj/project.pbxproj: Added new file. 9 * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added. 10 * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: 11 (didFocusTextField): Implemented this WKBundlePageFormClient callback by calling the form 12 delegate. 13 (setUpFormClient): Added. Initializes the form client with the above function. 14 (-[WKWebProcessPlugInBrowserContextController _formDelegate]): Added this getter. 15 (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added. Initializes or 16 clears the form client. 17 * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h: 18 Declared _formDelegate property. 19 1 20 2014-02-13 Dan Bernstein <mitz@apple.com> 2 21 -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r164054 r164094 599 599 37948408150C4B9700E52CE9 /* WKRenderLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */; }; 600 600 37948409150C4B9700E52CE9 /* WKRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 37948407150C4B9600E52CE9 /* WKRenderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; 601 3795789C18AD4F1900B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 601 602 37C4C08618149C5B003688B9 /* WKBackForwardListItem.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37C4C08418149C5B003688B9 /* WKBackForwardListItem.mm */; }; 602 603 37C4C08718149C5B003688B9 /* WKBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C4C08518149C5B003688B9 /* WKBackForwardListItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; … … 2309 2310 37948406150C4B9600E52CE9 /* WKRenderLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRenderLayer.cpp; sourceTree = "<group>"; }; 2310 2311 37948407150C4B9600E52CE9 /* WKRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRenderLayer.h; sourceTree = "<group>"; }; 2312 3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInFormDelegatePrivate.h; sourceTree = "<group>"; }; 2311 2313 37C4C08418149C5B003688B9 /* WKBackForwardListItem.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKBackForwardListItem.mm; sourceTree = "<group>"; }; 2312 2314 37C4C08518149C5B003688B9 /* WKBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBackForwardListItem.h; sourceTree = "<group>"; }; … … 4109 4111 isa = PBXGroup; 4110 4112 children = ( 4113 3795789B18AD4F1100B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h */, 4111 4114 1F0181691858DC1500F92884 /* WKWebProcessPlugInFrame.h */, 4112 4115 1F01816A1858DC1500F92884 /* WKWebProcessPlugInFrame.mm */, … … 6796 6799 BC4A6297147313A0006C681A /* WKConnectionRef.h in Headers */, 6797 6800 BCB9E24B1120E15C00A137E0 /* WKContext.h in Headers */, 6801 3795789C18AD4F1900B9ED2E /* WKWebProcessPlugInFormDelegatePrivate.h in Headers */, 6798 6802 51A555F6128C6C47009ABCEC /* WKContextMenuItem.h in Headers */, 6799 6803 51A55601128C6D92009ABCEC /* WKContextMenuItemTypes.h in Headers */, -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
r163448 r164094 43 43 #import "WKWebProcessPluginFrameInternal.h" 44 44 #import "WKWebProcessPlugInInternal.h" 45 #import "WKWebProcessPlugInFormDelegatePrivate.h" 45 46 #import "WKWebProcessPlugInLoadDelegate.h" 47 #import "WKWebProcessPlugInNodeHandleInternal.h" 46 48 #import "WKWebProcessPlugInPageGroupInternal.h" 47 49 #import "WKWebProcessPlugInScriptWorldInternal.h" … … 58 60 API::ObjectStorage<WebPage> _page; 59 61 WeakObjCPtr<id <WKWebProcessPlugInLoadDelegate>> _loadDelegate; 62 WeakObjCPtr<id <WKWebProcessPlugInFormDelegatePrivate>> _formDelegate; 60 63 61 64 RetainPtr<WKRemoteObjectRegistry> _remoteObjectRegistry; … … 204 207 } 205 208 209 static void didFocusTextField(WKBundlePageRef page, WKBundleNodeHandleRef htmlInputElementHandleRef, WKBundleFrameRef frameRef, const void* clientInfo) 210 { 211 WKWebProcessPlugInBrowserContextController *controller = (WKWebProcessPlugInBrowserContextController *)clientInfo; 212 auto formDelegate = controller->_formDelegate.get(); 213 214 if ([formDelegate respondsToSelector:@selector(_webProcessPlugInBrowserContextController:didFocusTextField:inFrame:)]) 215 [formDelegate _webProcessPlugInBrowserContextController:controller didFocusTextField:wrapper(*toImpl(htmlInputElementHandleRef)) inFrame:wrapper(*toImpl(frameRef))]; 216 } 217 218 static void setUpFormClient(WKWebProcessPlugInBrowserContextController *contextController, WebPage& page) 219 { 220 WKBundlePageFormClientV2 client; 221 memset(&client, 0, sizeof(client)); 222 223 client.base.version = 2; 224 client.base.clientInfo = contextController; 225 client.didFocusTextField = didFocusTextField; 226 227 page.initializeInjectedBundleFormClient(&client.base); 228 } 229 206 230 - (id <WKWebProcessPlugInLoadDelegate>)loadDelegate 207 231 { … … 301 325 } 302 326 327 - (id <WKWebProcessPlugInFormDelegatePrivate>)_formDelegate 328 { 329 return _formDelegate.getAutoreleased(); 330 } 331 332 - (void)_setFormDelegate:(id <WKWebProcessPlugInFormDelegatePrivate>)formDelegate 333 { 334 _formDelegate = formDelegate; 335 336 if (formDelegate) 337 setUpFormClient(self, *_page); 338 else 339 _page->initializeInjectedBundleFormClient(nullptr); 340 } 341 303 342 @end 304 343 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h
r160787 r164094 32 32 @class WKBrowsingContextHandle; 33 33 @class WKRemoteObjectRegistry; 34 @protocol WKWebProcessPlugInFormDelegatePrivate; 34 35 35 36 @interface WKWebProcessPlugInBrowserContextController (Private) … … 41 42 @property (nonatomic, readonly) WKRemoteObjectRegistry *remoteObjectRegistry; 42 43 44 @property (weak, setter=_setFormDelegate:) id <WKWebProcessPlugInFormDelegatePrivate> _formDelegate; 45 43 46 + (instancetype)lookUpBrowsingContextFromHandle:(WKBrowsingContextHandle *)handle; 44 47
Note:
See TracChangeset
for help on using the changeset viewer.