Changeset 174889 in webkit
- Timestamp:
- Oct 20, 2014 10:17:32 AM (10 years ago)
- Location:
- trunk/Source
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r174888 r174889 1 2014-10-19 Antti Koivisto <antti@apple.com> 2 3 Avoid unnecessary NSURLResponse construction for QuickLook on iOS 4 https://bugs.webkit.org/show_bug.cgi?id=137876 5 6 Reviewed by Andy Estes. 7 8 QuickLook specific code path creates NSURLResponse in the web process for every response. 9 It is rarely needed so this is unnecessary work. 10 11 * WebCore.exp.in: 12 * platform/network/ios/QuickLook.h: 13 * platform/network/ios/QuickLook.mm: 14 (WebCore::isMainResourceLoader): 15 (WebCore::QuickLookHandle::shouldCreateForMIMEType): 16 17 Separate function for testing if QuickLookHandle is needed. 18 19 (WebCore::QuickLookHandle::create): 20 21 Switch the interface to take ResourceResponse. 22 1 23 2014-10-20 Andy Estes <aestes@apple.com> 2 24 -
trunk/Source/WebCore/WebCore.exp.in
r174791 r174889 3335 3335 __ZN7WebCore15QuickLookHandle14didReceiveDataEPK8__CFData 3336 3336 __ZN7WebCore15QuickLookHandle16didFinishLoadingEv 3337 __ZN7WebCore15QuickLookHandle6createEPNS_14ResourceLoaderEP13NSURLResponse 3337 __ZN7WebCore15QuickLookHandle23shouldCreateForMIMETypeERKN3WTF6StringE 3338 __ZN7WebCore15QuickLookHandle6createERNS_14ResourceLoaderERKNS_16ResourceResponseE 3338 3339 __ZN7WebCore15QuickLookHandle7didFailEv 3339 3340 __ZN7WebCore15QuickLookHandleD1Ev -
trunk/Source/WebCore/platform/network/ios/QuickLook.h
r172862 r174889 55 55 class ResourceHandle; 56 56 class ResourceLoader; 57 class ResourceResponse; 57 58 class SynchronousResourceHandleCFURLConnectionDelegate; 58 59 … … 83 84 WTF_MAKE_NONCOPYABLE(QuickLookHandle); 84 85 public: 86 WEBCORE_EXPORT static bool shouldCreateForMIMEType(const String&); 87 85 88 static std::unique_ptr<QuickLookHandle> create(ResourceHandle*, NSURLConnection *, NSURLResponse *, id delegate); 86 89 #if USE(CFNETWORK) 87 90 static std::unique_ptr<QuickLookHandle> create(ResourceHandle*, SynchronousResourceHandleCFURLConnectionDelegate*, CFURLResponseRef); 88 91 #endif 89 WEBCORE_EXPORT static std::unique_ptr<QuickLookHandle> create(ResourceLoader*, NSURLResponse *); 92 // FIXME: Use of ResourceLoader here is a platform violation. 93 WEBCORE_EXPORT static std::unique_ptr<QuickLookHandle> create(ResourceLoader&, const ResourceResponse&); 94 90 95 WEBCORE_EXPORT ~QuickLookHandle(); 91 96 -
trunk/Source/WebCore/platform/network/ios/QuickLook.mm
r173710 r174889 489 489 #endif 490 490 491 static inline bool isMainResourceLoader(ResourceLoader* loader) 492 { 493 return loader->documentLoader()->mainResourceLoader() == loader; 494 } 495 496 std::unique_ptr<QuickLookHandle> QuickLookHandle::create(ResourceLoader* loader, NSURLResponse *response) 497 { 498 ASSERT_ARG(loader, loader); 499 if (!isMainResourceLoader(loader) || ![WebCore::QLPreviewGetSupportedMIMETypesSet() containsObject:[response MIMEType]]) 500 return nullptr; 501 502 RetainPtr<WebResourceLoaderQuickLookDelegate> delegate = adoptNS([[WebResourceLoaderQuickLookDelegate alloc] initWithResourceLoader:loader]); 503 std::unique_ptr<QuickLookHandle> quickLookHandle(new QuickLookHandle([loader->originalRequest().nsURLRequest(DoNotUpdateHTTPBody) URL], nil, response, delegate.get())); 491 bool QuickLookHandle::shouldCreateForMIMEType(const String& mimeType) 492 { 493 return [WebCore::QLPreviewGetSupportedMIMETypesSet() containsObject:mimeType]; 494 } 495 496 std::unique_ptr<QuickLookHandle> QuickLookHandle::create(ResourceLoader& loader, const ResourceResponse& response) 497 { 498 ASSERT(shouldCreateForMIMEType(response.mimeType())); 499 500 RetainPtr<WebResourceLoaderQuickLookDelegate> delegate = adoptNS([[WebResourceLoaderQuickLookDelegate alloc] initWithResourceLoader:&loader]); 501 std::unique_ptr<QuickLookHandle> quickLookHandle(new QuickLookHandle([loader.originalRequest().nsURLRequest(DoNotUpdateHTTPBody) URL], nil, response.nsURLResponse(), delegate.get())); 504 502 [delegate setQuickLookHandle:quickLookHandle.get()]; 505 loader ->didCreateQuickLookHandle(*quickLookHandle);503 loader.didCreateQuickLookHandle(*quickLookHandle); 506 504 return WTF::move(quickLookHandle); 507 505 } -
trunk/Source/WebKit2/ChangeLog
r174885 r174889 1 2014-10-19 Antti Koivisto <antti@apple.com> 2 3 Avoid unnecessary NSURLResponse construction for QuickLook on iOS 4 https://bugs.webkit.org/show_bug.cgi?id=137876 5 6 Reviewed by Andy Estes. 7 8 * WebProcess/Network/WebResourceLoader.cpp: 9 (WebKit::WebResourceLoader::didReceiveResponse): 10 11 Switch to the modified QuickLookHandle interface that does not need NSURLResponse. 12 1 13 2014-10-16 Andy Estes <aestes@apple.com> 2 14 -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp
r173516 r174889 113 113 return; 114 114 115 bool shoudCallCoreLoaderDidReceiveResponse = true; 115 116 #if USE(QUICK_LOOK) 116 117 // Refrain from calling didReceiveResponse if QuickLook will convert this response, since the MIME type of the 117 118 // converted resource isn't yet known. WebResourceLoaderQuickLookDelegate will later call didReceiveResponse upon 118 119 // receiving the converted data. 119 m_coreLoader->documentLoader()->setQuickLookHandle(QuickLookHandle::create(resourceLoader(), response.nsURLResponse())); 120 if (!m_coreLoader->documentLoader()->quickLookHandle()) 121 #endif 120 bool isMainLoad = m_coreLoader->documentLoader()->mainResourceLoader() == m_coreLoader; 121 if (isMainLoad && QuickLookHandle::shouldCreateForMIMEType(response.mimeType())) { 122 m_coreLoader->documentLoader()->setQuickLookHandle(QuickLookHandle::create(*m_coreLoader, response)); 123 shoudCallCoreLoaderDidReceiveResponse = false; 124 } 125 #endif 126 if (shoudCallCoreLoaderDidReceiveResponse) 122 127 m_coreLoader->didReceiveResponse(response); 123 128
Note: See TracChangeset
for help on using the changeset viewer.