Changeset 159833 in webkit
- Timestamp:
- Nov 27, 2013 8:34:08 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r159832 r159833 1 2013-11-27 Sam Weinig <sam@webkit.org> 2 3 Give the PageClient a chance to handle geolocation permission requests if the UIClient doesn't handle it 4 https://bugs.webkit.org/show_bug.cgi?id=124955 5 6 Reviewed by Dan Bernstein. 7 8 Use the new PageClient function to remove the need for WKContentView to take over the WKPageUIClient. 9 10 * UIProcess/API/ios/PageClientImplIOS.h: 11 * UIProcess/API/ios/PageClientImplIOS.mm: 12 (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest): 13 * UIProcess/API/ios/WKContentView.mm: 14 (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): 15 (-[WKContentView _commonInitWithProcessGroup:browsingContextGroup:]): 16 * UIProcess/API/ios/WKContentViewInternal.h: 17 * UIProcess/PageClient.h: 18 (WebKit::PageClient::decidePolicyForGeolocationPermissionRequest): 19 * UIProcess/WebPageProxy.cpp: 20 (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): 21 1 22 2013-11-27 Sam Weinig <sam@webkit.org> 2 23 -
trunk/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h
r159724 r159833 58 58 virtual void preferencesDidChange() OVERRIDE; 59 59 virtual void toolTipChanged(const String&, const String&) OVERRIDE; 60 virtual bool decidePolicyForGeolocationPermissionRequest(WebFrameProxy&, WebSecurityOrigin&, GeolocationPermissionRequestProxy&) OVERRIDE; 60 61 virtual void didChangeContentSize(const WebCore::IntSize&) OVERRIDE; 61 62 virtual void setCursor(const WebCore::Cursor&) OVERRIDE; -
trunk/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm
r159724 r159833 145 145 } 146 146 147 bool PageClientImpl::decidePolicyForGeolocationPermissionRequest(WebFrameProxy& frame, WebSecurityOrigin& origin, GeolocationPermissionRequestProxy& request) 148 { 149 [m_view _decidePolicyForGeolocationRequestFromOrigin:origin frame:frame request:request]; 150 return true; 151 } 152 147 153 void PageClientImpl::didChangeContentSize(const IntSize& contentsSize) 148 154 { -
trunk/Source/WebKit2/UIProcess/API/ios/WKContentView.mm
r159724 r159833 34 34 #import "WKBrowsingContextGroupPrivate.h" 35 35 #import "WKGeolocationProviderIOS.h" 36 #import "WKInteractionView.h" 36 37 #import "WKProcessGroupPrivate.h" 37 #import "WKInteractionView.h"38 38 #import "WebContext.h" 39 #import "WebFrameProxy.h" 39 40 #import "WebPageGroup.h" 40 41 #import "WebSystemInterface.h" … … 148 149 } 149 150 150 static void decidePolicyForGeolocationPermissionRequest(WKPageRef page, WKFrameRef frame, WKSecurityOriginRef origin, WKGeolocationPermissionRequestRef permissionRequest, const void* clientInfo) 151 { 152 WKContentView *view = reinterpret_cast<WKContentView *>(const_cast<void*>(clientInfo)); 153 ASSERT([view isKindOfClass:[WKContentView class]]); 154 155 [[view->_processGroup _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:origin frame:frame request:permissionRequest window:[view window]]; 151 - (void)_decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin&)origin frame:(WebFrameProxy&)frame request:(GeolocationPermissionRequestProxy&)permissionRequest 152 { 153 [[_processGroup _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:toAPI(&origin) frame:toAPI(&frame) request:toAPI(&permissionRequest) window:[self window]]; 156 154 } 157 155 … … 175 173 _page->setUseFixedLayout(true); 176 174 177 WKPageUIClient pageUIClient = {178 kWKPageUIClientCurrentVersion,179 self,180 0, // createNewPage_deprecatedForUseWithV0181 0, // showPage182 0, // closeOtherPage183 0, // takeFocus184 0, // focus185 0, // unfocus186 0, // runJavaScriptAlert187 0, // runJavaScriptConfirm188 0, // runJavaScriptPrompt189 0, // setStatusText190 0, // mouseDidMoveOverElement_deprecatedForUseWithV0191 0, // missingPluginButtonClicked192 0, // didNotHandleKeyEvent193 0, // didNotHandleWheelEvent194 0, // toolbarsAreVisible195 0, // setToolbarsAreVisible196 0, // menuBarIsVisible197 0, // setMenuBarIsVisible198 0, // statusBarIsVisible199 0, // setStatusBarIsVisible200 0, // isResizable201 0, // setIsResizable202 0, // getWindowFrameOtherPage203 0, // setWindowFrameOtherPage204 0, // runBeforeUnloadConfirmPanel205 0, // didDraw206 0, // pageDidScroll207 0, // exceededDatabaseQuota208 0, // runOpenPanel209 decidePolicyForGeolocationPermissionRequest,210 0, // headerHeight211 0, // footerHeight212 0, // drawHeader213 0, // drawFooter214 0, // printFrame215 0, // runModal216 0, // didCompleteRubberBandForMainFrame217 0, // saveDataToFileInDownloadsFolder218 0, // shouldInterruptJavaScript219 0, // createOtherPage220 0, // mouseDidMoveOverElement221 0, // decidePolicyForNotificationPermissionRequest222 0, // unavailablePluginButtonClicked223 0, // showColorPicker224 0, // hideColorPicker225 0, // unavailablePluginButtonClicked226 };227 WKPageSetPageUIClient(toAPI(_page.get()), &pageUIClient);228 229 175 _browsingContextController = adoptNS([[WKBrowsingContextController alloc] _initWithPageRef:toAPI(_page.get())]); 230 176 [_browsingContextController setLoadDelegateInternal:self]; -
trunk/Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h
r159724 r159833 38 38 namespace WebKit { 39 39 class DrawingAreaProxy; 40 class GeolocationPermissionRequestProxy; 40 41 class LayerTreeContext; 42 class WebFrameProxy; 43 class WebSecurityOrigin; 41 44 } 42 45 … … 61 64 - (void)_didChangeViewportArguments:(const WebCore::ViewportArguments&)viewportArguments; 62 65 66 - (void)_decidePolicyForGeolocationRequestFromOrigin:(WebKit::WebSecurityOrigin&)origin frame:(WebKit::WebFrameProxy&)frame request:(WebKit::GeolocationPermissionRequestProxy&)permissionRequest; 67 63 68 @end -
trunk/Source/WebKit2/UIProcess/PageClient.h
r159724 r159833 121 121 virtual void toolTipChanged(const String&, const String&) = 0; 122 122 123 virtual bool decidePolicyForGeolocationPermissionRequest(WebFrameProxy&, WebSecurityOrigin&, GeolocationPermissionRequestProxy&) 124 { 125 return false; 126 } 127 123 128 #if USE(TILED_BACKING_STORE) 124 129 virtual void pageDidRequestScroll(const WebCore::IntPoint&) = 0; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r159765 r159833 3932 3932 RefPtr<GeolocationPermissionRequestProxy> request = m_geolocationPermissionRequestManager.createRequest(geolocationID); 3933 3933 3934 if (!m_uiClient.decidePolicyForGeolocationPermissionRequest(this, frame, origin.get(), request.get())) 3935 request->deny(); 3934 if (m_uiClient.decidePolicyForGeolocationPermissionRequest(this, frame, origin.get(), request.get())) 3935 return; 3936 3937 if (m_pageClient->decidePolicyForGeolocationPermissionRequest(*frame, *origin, *request)) 3938 return; 3939 3940 request->deny(); 3936 3941 } 3937 3942
Note: See TracChangeset
for help on using the changeset viewer.