Title: [259729] trunk/Source/WebKit
- Revision
- 259729
- Author
- [email protected]
- Date
- 2020-04-08 10:51:12 -0700 (Wed, 08 Apr 2020)
Log Message
[iOS] WebPageProxy::didCommitLoadForFrame should not crash with null or empty `mimeType` parameter
<https://webkit.org/b/209994>
<rdar://problem/60068700>
Reviewed by Chris Dumez.
* UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
- Extract logic for `representationClass` since
-[WKWebViewContentProviderRegistry providerForMIMEType:] may
return nil.
* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry providerForMIMEType:]):
- Add early return if `mimeType` is null or empty as those are
not valid keys for `_contentProviderForMIMEType`.
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
- Add UNUSED_PARAM() for when -Wno-unused-parameter is removed
in place of GCC_WARN_UNUSED_VARIABLE=YES.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (259728 => 259729)
--- trunk/Source/WebKit/ChangeLog 2020-04-08 17:41:34 UTC (rev 259728)
+++ trunk/Source/WebKit/ChangeLog 2020-04-08 17:51:12 UTC (rev 259729)
@@ -1,3 +1,25 @@
+2020-04-08 David Kilzer <[email protected]>
+
+ [iOS] WebPageProxy::didCommitLoadForFrame should not crash with null or empty `mimeType` parameter
+ <https://webkit.org/b/209994>
+ <rdar://problem/60068700>
+
+ Reviewed by Chris Dumez.
+
+ * UIProcess/API/ios/WKWebViewIOS.mm:
+ (-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
+ - Extract logic for `representationClass` since
+ -[WKWebViewContentProviderRegistry providerForMIMEType:] may
+ return nil.
+ * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
+ (-[WKWebViewContentProviderRegistry providerForMIMEType:]):
+ - Add early return if `mimeType` is null or empty as those are
+ not valid keys for `_contentProviderForMIMEType`.
+ * UIProcess/mac/PageClientImplMac.mm:
+ (WebKit::PageClientImpl::didCommitLoadForMainFrame):
+ - Add UNUSED_PARAM() for when -Wno-unused-parameter is removed
+ in place of GCC_WARN_UNUSED_VARIABLE=YES.
+
2020-04-08 Brian Burg <[email protected]>
REGRESSION(r253346): some Automation commands targeted at an iframe do not return
Modified: trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm (259728 => 259729)
--- trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2020-04-08 17:41:34 UTC (rev 259728)
+++ trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2020-04-08 17:51:12 UTC (rev 259729)
@@ -374,12 +374,14 @@
- (void)_setHasCustomContentView:(BOOL)pageHasCustomContentView loadedMIMEType:(const WTF::String&)mimeType
{
- if (pageHasCustomContentView) {
+ Class representationClass = nil;
+ if (pageHasCustomContentView)
+ representationClass = [[_configuration _contentProviderRegistry] providerForMIMEType:mimeType];
+
+ if (pageHasCustomContentView && representationClass) {
[_customContentView removeFromSuperview];
[_customContentFixedOverlayView removeFromSuperview];
- Class representationClass = [[_configuration _contentProviderRegistry] providerForMIMEType:mimeType];
- ASSERT(representationClass);
_customContentView = adoptNS([[representationClass alloc] web_initWithFrame:self.bounds webView:self mimeType:mimeType]);
_customContentFixedOverlayView = adoptNS([[UIView alloc] initWithFrame:self.bounds]);
[_customContentFixedOverlayView layer].name = @"CustomContentFixedOverlay";
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm (259728 => 259729)
--- trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm 2020-04-08 17:41:34 UTC (rev 259728)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm 2020-04-08 17:51:12 UTC (rev 259729)
@@ -86,6 +86,9 @@
- (Class <WKWebViewContentProvider>)providerForMIMEType:(const String&)mimeType
{
+ if (mimeType.isEmpty())
+ return nil;
+
const auto& representation = _contentProviderForMIMEType.find(mimeType);
if (representation == _contentProviderForMIMEType.end())
Modified: trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm (259728 => 259729)
--- trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2020-04-08 17:41:34 UTC (rev 259728)
+++ trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm 2020-04-08 17:51:12 UTC (rev 259729)
@@ -279,6 +279,8 @@
void PageClientImpl::didCommitLoadForMainFrame(const String& mimeType, bool useCustomContentProvider)
{
+ UNUSED_PARAM(mimeType);
+ UNUSED_PARAM(useCustomContentProvider);
m_impl->updateSupportsArbitraryLayoutModes();
m_impl->dismissContentRelativeChildWindowsWithAnimation(true);
m_impl->clearPromisedDragImage();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes