Changeset 76087 in webkit
- Timestamp:
- Jan 18, 2011 5:37:05 PM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r76086 r76087 1 2011-01-18 Brady Eidson <beidson@apple.com> 2 3 Reviewed by Maciej Stachowiak. 4 5 <rdar://problem/8752200> and https://bugs.webkit.org/show_bug.cgi?id=52664 6 Need WebKit2 API to asynchronously get the resource data for a URL 7 8 Rename WKFrameGetMainResourceDataFunction to WKFrameGetResourceDataFunction, and add 9 new API to get a resource by URL: 10 * UIProcess/API/C/WKFrame.cpp: 11 (WKFrameGetMainResourceData): 12 (WKFrameGetResourceData): 13 (callGetResourceDataBlockAndDispose): 14 (WKFrameGetMainResourceData_b): 15 (WKFrameGetResourceData_b): 16 * UIProcess/API/C/WKFrame.h: 17 18 Implement the new API in the UIProcess side: 19 * UIProcess/WebFrameProxy.cpp: 20 (WebKit::WebFrameProxy::getResourceData): 21 * UIProcess/WebFrameProxy.h: 22 * UIProcess/WebPageProxy.cpp: 23 (WebKit::WebPageProxy::getResourceDataFromFrame): 24 * UIProcess/WebPageProxy.h: 25 26 Have the WebProcess get the data and call back to the UIProcess: 27 * WebProcess/WebPage/WebPage.cpp: 28 (WebKit::WebPage::getResourceDataFromFrame): 29 * WebProcess/WebPage/WebPage.h: 30 * WebProcess/WebPage/WebPage.messages.in: 31 1 32 2011-01-18 Anders Carlsson <andersca@apple.com> 2 33 -
trunk/Source/WebKit2/UIProcess/API/C/WKFrame.cpp
r74571 r76087 126 126 } 127 127 128 void WKFrameGetMainResourceData(WKFrameRef frameRef, WKFrameGet MainResourceDataFunction callback, void* context)128 void WKFrameGetMainResourceData(WKFrameRef frameRef, WKFrameGetResourceDataFunction callback, void* context) 129 129 { 130 130 toImpl(frameRef)->getMainResourceData(DataCallback::create(context, callback)); 131 131 } 132 132 133 void WKFrameGetResourceData(WKFrameRef frameRef, WKURLRef resourceURL, WKFrameGetResourceDataFunction callback, void* context) 134 { 135 toImpl(frameRef)->getResourceData(toImpl(resourceURL), DataCallback::create(context, callback)); 136 } 137 133 138 #ifdef __BLOCKS__ 134 static void callGet MainResourceDataBlockAndDispose(WKDataRef data, WKErrorRef error, void* context)139 static void callGetResourceDataBlockAndDispose(WKDataRef data, WKErrorRef error, void* context) 135 140 { 136 WKFrameGet MainResourceDataBlock block = (WKFrameGetMainResourceDataBlock)context;141 WKFrameGetResourceDataBlock block = (WKFrameGetResourceDataBlock)context; 137 142 block(data, error); 138 143 Block_release(block); 139 144 } 140 145 141 void WKFrameGetMainResourceData_b(WKFrameRef frameRef, WKFrameGet MainResourceDataBlock block)146 void WKFrameGetMainResourceData_b(WKFrameRef frameRef, WKFrameGetResourceDataBlock block) 142 147 { 143 WKFrameGetMainResourceData(frameRef, callGetMainResourceDataBlockAndDispose, Block_copy(block)); 148 WKFrameGetMainResourceData(frameRef, callGetResourceDataBlockAndDispose, Block_copy(block)); 149 } 150 151 void WKFrameGetResourceData_b(WKFrameRef frameRef, WKURLRef resourceURL, WKFrameGetResourceDataBlock block) 152 { 153 WKFrameGetResourceData(frameRef, resourceURL, callGetResourceDataBlockAndDispose, Block_copy(block)); 144 154 } 145 155 #endif -
trunk/Source/WebKit2/UIProcess/API/C/WKFrame.h
r74571 r76087 69 69 WK_EXPORT bool WKFrameIsFrameSet(WKFrameRef frame); 70 70 71 typedef void (*WKFrameGetMainResourceDataFunction)(WKDataRef data, WKErrorRef error, void* functionContext); 72 WK_EXPORT void WKFrameGetMainResourceData(WKFrameRef frame, WKFrameGetMainResourceDataFunction function, void* functionContext); 71 typedef void (*WKFrameGetResourceDataFunction)(WKDataRef data, WKErrorRef error, void* functionContext); 72 WK_EXPORT void WKFrameGetMainResourceData(WKFrameRef frame, WKFrameGetResourceDataFunction function, void* functionContext); 73 WK_EXPORT void WKFrameGetResourceData(WKFrameRef frame, WKURLRef resourceURL, WKFrameGetResourceDataFunction function, void* functionContext); 73 74 #ifdef __BLOCKS__ 74 typedef void (^WKFrameGetMainResourceDataBlock)(WKDataRef data, WKErrorRef error); 75 WK_EXPORT void WKFrameGetMainResourceData_b(WKFrameRef frame, WKFrameGetMainResourceDataBlock block); 75 typedef void (^WKFrameGetResourceDataBlock)(WKDataRef data, WKErrorRef error); 76 WK_EXPORT void WKFrameGetMainResourceData_b(WKFrameRef frame, WKFrameGetResourceDataBlock block); 77 WK_EXPORT void WKFrameGetResourceData_b(WKFrameRef frame, WKURLRef resourceURL, WKFrameGetResourceDataBlock block); 76 78 #endif 77 79 -
trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp
r76040 r76087 303 303 } 304 304 305 void WebFrameProxy::getResourceData(WebURL* resourceURL, PassRefPtr<DataCallback> callback) 306 { 307 if (!m_page) { 308 callback->invalidate(); 309 return; 310 } 311 312 m_page->getResourceDataFromFrame(this, resourceURL, callback); 313 } 314 305 315 } // namespace WebKit -
trunk/Source/WebKit2/UIProcess/WebFrameProxy.h
r74571 r76087 108 108 void getWebArchive(PassRefPtr<DataCallback>); 109 109 void getMainResourceData(PassRefPtr<DataCallback>); 110 void getResourceData(WebURL*, PassRefPtr<DataCallback>); 110 111 111 112 void didStartProvisionalLoad(const String& url); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r76065 r76087 966 966 } 967 967 968 void WebPageProxy::getResourceDataFromFrame(WebFrameProxy* frame, WebURL* resourceURL, PassRefPtr<DataCallback> prpCallback) 969 { 970 RefPtr<DataCallback> callback = prpCallback; 971 uint64_t callbackID = callback->callbackID(); 972 m_dataCallbacks.set(callbackID, callback.get()); 973 process()->send(Messages::WebPage::GetResourceDataFromFrame(frame->frameID(), resourceURL->string(), callbackID), m_pageID); 974 } 975 968 976 void WebPageProxy::getWebArchiveOfFrame(WebFrameProxy* frame, PassRefPtr<DataCallback> prpCallback) 969 977 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r76069 r76087 267 267 void getContentsAsString(PassRefPtr<StringCallback>); 268 268 void getMainResourceDataOfFrame(WebFrameProxy*, PassRefPtr<DataCallback>); 269 void getResourceDataFromFrame(WebFrameProxy*, WebURL*, PassRefPtr<DataCallback>); 269 270 void getRenderTreeExternalRepresentation(PassRefPtr<StringCallback>); 270 271 void getSelectionOrContentsAsString(PassRefPtr<StringCallback>); -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r76046 r76087 1135 1135 } 1136 1136 1137 void WebPage::getResourceDataFromFrame(uint64_t frameID, const String& resourceURL, uint64_t callbackID) 1138 { 1139 CoreIPC::DataReference dataReference; 1140 1141 RefPtr<SharedBuffer> buffer; 1142 if (WebFrame* frame = WebProcess::shared().webFrame(frameID)) { 1143 if (DocumentLoader* loader = frame->coreFrame()->loader()->documentLoader()) { 1144 if (RefPtr<ArchiveResource> subresource = loader->subresource(KURL(KURL(), resourceURL))) { 1145 if (buffer = subresource->data()) 1146 dataReference = CoreIPC::DataReference(reinterpret_cast<const uint8_t*>(buffer->data()), buffer->size()); 1147 } 1148 } 1149 } 1150 1151 send(Messages::WebPageProxy::DataCallback(dataReference, callbackID)); 1152 } 1153 1137 1154 void WebPage::getWebArchiveOfFrame(uint64_t frameID, uint64_t callbackID) 1138 1155 { -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r75979 r76087 365 365 void getContentsAsString(uint64_t callbackID); 366 366 void getMainResourceDataOfFrame(uint64_t frameID, uint64_t callbackID); 367 void getResourceDataFromFrame(uint64_t frameID, const String& resourceURL, uint64_t callbackID); 367 368 void getRenderTreeExternalRepresentation(uint64_t callbackID); 368 369 void getSelectionOrContentsAsString(uint64_t callbackID); -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
r75979 r76087 57 57 GetContentsAsString(uint64_t callbackID) 58 58 GetMainResourceDataOfFrame(uint64_t frameID, uint64_t callbackID) 59 GetResourceDataFromFrame(uint64_t frameID, WTF::String resourceURL, uint64_t callbackID) 59 60 GetRenderTreeExternalRepresentation(uint64_t callbackID) 60 61 GetSelectionOrContentsAsString(uint64_t callbackID)
Note: See TracChangeset
for help on using the changeset viewer.