Title: [197606] trunk/Source
- Revision
- 197606
- Author
- [email protected]
- Date
- 2016-03-04 19:30:19 -0800 (Fri, 04 Mar 2016)
Log Message
Fix file mime-types when using NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=155058
Patch by Alex Christensen <[email protected]> on 2016-03-04
Reviewed by Andy Estes.
Source/WebCore:
This fixes platform/mac/fast/loader/file-url-mimetypes-3.html
and platform/mac/fast/loader/file-url-mimetypes.html.
* platform/network/mac/WebCoreURLResponse.h:
Source/WebKit2:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::NetworkDataTask):
Call adjustMIMETypeIfNecessary like we do in connection didReceiveResponse in
WebCoreResourceHandleAsOperationQueueDelegate.mm.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Don't content sniff file urls. This check is analogous to ResourceHandle::shouldContentSniffURL.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (197605 => 197606)
--- trunk/Source/WebCore/ChangeLog 2016-03-05 01:35:12 UTC (rev 197605)
+++ trunk/Source/WebCore/ChangeLog 2016-03-05 03:30:19 UTC (rev 197606)
@@ -1,3 +1,15 @@
+2016-03-04 Alex Christensen <[email protected]>
+
+ Fix file mime-types when using NetworkSession
+ https://bugs.webkit.org/show_bug.cgi?id=155058
+
+ Reviewed by Andy Estes.
+
+ This fixes platform/mac/fast/loader/file-url-mimetypes-3.html
+ and platform/mac/fast/loader/file-url-mimetypes.html.
+
+ * platform/network/mac/WebCoreURLResponse.h:
+
2016-03-04 Sam Weinig <[email protected]>
[WebKit2] Add WebKit2 equivalent of -[WebView _insertNewlineInQuotedContent]
Modified: trunk/Source/WebCore/platform/network/mac/WebCoreURLResponse.h (197605 => 197606)
--- trunk/Source/WebCore/platform/network/mac/WebCoreURLResponse.h 2016-03-05 01:35:12 UTC (rev 197605)
+++ trunk/Source/WebCore/platform/network/mac/WebCoreURLResponse.h 2016-03-05 03:30:19 UTC (rev 197606)
@@ -43,5 +43,5 @@
#endif // __OBJC__
namespace WebCore {
-void adjustMIMETypeIfNecessary(CFURLResponseRef);
+WEBCORE_EXPORT void adjustMIMETypeIfNecessary(CFURLResponseRef);
}
Modified: trunk/Source/WebKit2/ChangeLog (197605 => 197606)
--- trunk/Source/WebKit2/ChangeLog 2016-03-05 01:35:12 UTC (rev 197605)
+++ trunk/Source/WebKit2/ChangeLog 2016-03-05 03:30:19 UTC (rev 197606)
@@ -1,3 +1,18 @@
+2016-03-04 Alex Christensen <[email protected]>
+
+ Fix file mime-types when using NetworkSession
+ https://bugs.webkit.org/show_bug.cgi?id=155058
+
+ Reviewed by Andy Estes.
+
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+ (WebKit::NetworkDataTask::NetworkDataTask):
+ Call adjustMIMETypeIfNecessary like we do in connection didReceiveResponse in
+ WebCoreResourceHandleAsOperationQueueDelegate.mm.
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
+ Don't content sniff file urls. This check is analogous to ResourceHandle::shouldContentSniffURL.
+
2016-03-04 Sam Weinig <[email protected]>
[WebKit2] Add WebKit2 equivalent of -[WebView _insertNewlineInQuotedContent]
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (197605 => 197606)
--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2016-03-05 01:35:12 UTC (rev 197605)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2016-03-05 03:30:19 UTC (rev 197606)
@@ -97,7 +97,7 @@
#endif
NSURLRequest *nsRequest = request.nsURLRequest(WebCore::UpdateHTTPBody);
- if (shouldContentSniff == WebCore::DoNotSniffContent) {
+ if (shouldContentSniff == WebCore::DoNotSniffContent || url.protocolIs("file")) {
NSMutableURLRequest *mutableRequest = [[nsRequest mutableCopy] autorelease];
[mutableRequest _setProperty:@(NO) forKey:(NSString *)_kCFURLConnectionPropertyShouldSniff];
nsRequest = mutableRequest;
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm (197605 => 197606)
--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2016-03-05 01:35:12 UTC (rev 197605)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2016-03-05 03:30:19 UTC (rev 197606)
@@ -46,6 +46,7 @@
#import <WebCore/ResourceResponse.h>
#import <WebCore/SharedBuffer.h>
#import <WebCore/URL.h>
+#import <WebCore/WebCoreURLResponse.h>
#import <wtf/MainThread.h>
#import <wtf/NeverDestroyed.h>
@@ -166,6 +167,12 @@
auto storedCredentials = session.configuration.URLCredentialStorage ? WebCore::StoredCredentials::AllowStoredCredentials : WebCore::StoredCredentials::DoNotAllowStoredCredentials;
if (auto* networkDataTask = _session->dataTaskForIdentifier(dataTask.taskIdentifier, storedCredentials)) {
ASSERT(isMainThread());
+
+ // Avoid MIME type sniffing if the response comes back as 304 Not Modified.
+ int statusCode = [response respondsToSelector:@selector(statusCode)] ? [(id)response statusCode] : 0;
+ if (statusCode != 304)
+ WebCore::adjustMIMETypeIfNecessary(response._CFURLResponse);
+
WebCore::ResourceResponse resourceResponse(response);
copyTimingData([dataTask _timingData], resourceResponse.resourceLoadTiming());
auto completionHandlerCopy = Block_copy(completionHandler);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes