Changeset 201596 in webkit
- Timestamp:
- Jun 2, 2016, 1:45:14 AM (10 years ago)
- Location:
- trunk/Source
- Files:
-
- 32 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/css/CSSFontFaceSource.cpp (modified) (1 diff)
-
WebCore/css/CSSFontSelector.cpp (modified) (3 diffs)
-
WebCore/css/CSSFontSelector.h (modified) (1 diff)
-
WebCore/loader/DocumentLoader.cpp (modified) (1 diff)
-
WebCore/loader/DocumentLoader.h (modified) (1 diff)
-
WebCore/loader/LoaderStrategy.h (modified) (1 diff)
-
WebCore/loader/NetscapePlugInStreamLoader.cpp (modified) (2 diffs)
-
WebCore/loader/NetscapePlugInStreamLoader.h (modified) (2 diffs)
-
WebCore/loader/ResourceLoader.cpp (modified) (3 diffs)
-
WebCore/loader/ResourceLoader.h (modified) (6 diffs)
-
WebCore/loader/SubresourceLoader.cpp (modified) (4 diffs)
-
WebCore/loader/SubresourceLoader.h (modified) (3 diffs)
-
WebCore/loader/appcache/ApplicationCacheHost.cpp (modified) (2 diffs)
-
WebCore/loader/appcache/ApplicationCacheHost.h (modified) (1 diff)
-
WebCore/loader/cache/CachedResource.cpp (modified) (3 diffs)
-
WebCore/loader/cache/CachedResourceLoader.cpp (modified) (2 diffs)
-
WebCore/loader/cache/CachedResourceLoader.h (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/WebCoreSupport/WebResourceLoadScheduler.cpp (modified) (2 diffs)
-
WebKit/WebCoreSupport/WebResourceLoadScheduler.h (modified) (2 diffs)
-
WebKit/mac/ChangeLog (modified) (1 diff)
-
WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm (modified) (1 diff)
-
WebKit/mac/Plugins/WebNetscapePluginStream.mm (modified) (1 diff)
-
WebKit/win/ChangeLog (modified) (1 diff)
-
WebKit/win/Plugins/PluginStream.cpp (modified) (1 diff)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/WebProcess/Network/WebLoaderStrategy.cpp (modified) (10 diffs)
-
WebKit2/WebProcess/Network/WebLoaderStrategy.h (modified) (2 diffs)
-
WebKit2/WebProcess/Network/WebResourceLoader.cpp (modified) (1 diff)
-
WebKit2/WebProcess/Network/WebResourceLoader.h (modified) (2 diffs)
-
WebKit2/WebProcess/Plugins/PluginView.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r201595 r201596 1 2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 Use more references in ResourceLoader related code 4 https://bugs.webkit.org/show_bug.cgi?id=158222 5 6 Reviewed by Darin Adler. 7 8 No change of behavior. 9 10 * css/CSSFontFaceSource.cpp: 11 (WebCore::CSSFontFaceSource::load): 12 * css/CSSFontSelector.cpp: 13 (WebCore::CSSFontSelector::clearDocument): 14 (WebCore::CSSFontSelector::beginLoadingFontSoon): 15 (WebCore::CSSFontSelector::beginLoadTimerFired): 16 * css/CSSFontSelector.h: 17 * loader/DocumentLoader.cpp: 18 (WebCore::DocumentLoader::scheduleArchiveLoad): 19 * loader/DocumentLoader.h: 20 * loader/LoaderStrategy.h: 21 * loader/NetscapePlugInStreamLoader.cpp: 22 (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): 23 (WebCore::NetscapePlugInStreamLoader::create): 24 * loader/NetscapePlugInStreamLoader.h: 25 * loader/ResourceLoader.cpp: 26 (WebCore::ResourceLoader::ResourceLoader): 27 (WebCore::ResourceLoader::start): 28 * loader/ResourceLoader.h: 29 * loader/SubresourceLoader.cpp: 30 (WebCore::SubresourceLoader::RequestCountTracker::RequestCountTracker): 31 (WebCore::SubresourceLoader::SubresourceLoader): 32 (WebCore::SubresourceLoader::create): 33 (WebCore::SubresourceLoader::didReceiveResponse): 34 (WebCore::SubresourceLoader::notifyDone): 35 * loader/SubresourceLoader.h: 36 * loader/appcache/ApplicationCacheHost.cpp: 37 (WebCore::ApplicationCacheHost::maybeLoadResource): 38 * loader/appcache/ApplicationCacheHost.h: 39 * loader/cache/CachedResource.cpp: 40 (WebCore::CachedResource::load): 41 * loader/cache/CachedResourceLoader.cpp: 42 (WebCore::CachedResourceLoader::incrementRequestCount): 43 (WebCore::CachedResourceLoader::decrementRequestCount): 44 * loader/cache/CachedResourceLoader.h: 45 1 46 2016-06-02 Carlos Garcia Campos <cgarcia@igalia.com> 2 47 -
trunk/Source/WebCore/css/CSSFontFaceSource.cpp
r201570 r201596 125 125 setStatus(Status::Loading); 126 126 127 fontSelector.beginLoadingFontSoon(m_font.get()); 127 ASSERT(m_font); 128 fontSelector.beginLoadingFontSoon(*m_font); 128 129 } 129 130 -
trunk/Source/WebCore/css/CSSFontSelector.cpp
r201570 r201596 263 263 for (auto& fontHandle : m_fontsToBeginLoading) { 264 264 // Balances incrementRequestCount() in beginLoadingFontSoon(). 265 cachedResourceLoader.decrementRequestCount( fontHandle.get());265 cachedResourceLoader.decrementRequestCount(*fontHandle); 266 266 } 267 267 m_fontsToBeginLoading.clear(); … … 274 274 } 275 275 276 void CSSFontSelector::beginLoadingFontSoon(CachedFont *font)276 void CSSFontSelector::beginLoadingFontSoon(CachedFont& font) 277 277 { 278 278 if (!m_document) 279 279 return; 280 280 281 m_fontsToBeginLoading.append( font);281 m_fontsToBeginLoading.append(&font); 282 282 // Increment the request count now, in order to prevent didFinishLoad from being dispatched 283 283 // after this font has been requested but before it began loading. Balanced by … … 299 299 fontHandle->beginLoadIfNeeded(cachedResourceLoader); 300 300 // Balances incrementRequestCount() in beginLoadingFontSoon(). 301 cachedResourceLoader.decrementRequestCount( fontHandle.get());301 cachedResourceLoader.decrementRequestCount(*fontHandle); 302 302 } 303 303 // Ensure that if the request count reaches zero, the frame loader will know about it. -
trunk/Source/WebCore/css/CSSFontSelector.h
r201570 r201596 79 79 Document* document() const { return m_document; } 80 80 81 void beginLoadingFontSoon(CachedFont *);81 void beginLoadingFontSoon(CachedFont&); 82 82 83 83 FontFaceSet& fontFaceSet(); -
trunk/Source/WebCore/loader/DocumentLoader.cpp
r201594 r201596 1233 1233 1234 1234 #if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML) 1235 bool DocumentLoader::scheduleArchiveLoad(ResourceLoader *loader, const ResourceRequest& request)1235 bool DocumentLoader::scheduleArchiveLoad(ResourceLoader& loader, const ResourceRequest& request) 1236 1236 { 1237 1237 if (ArchiveResource* resource = archiveResourceForURL(request.url())) { 1238 scheduleSubstituteResourceLoad( *loader, *resource);1238 scheduleSubstituteResourceLoad(loader, *resource); 1239 1239 return true; 1240 1240 } -
trunk/Source/WebCore/loader/DocumentLoader.h
r198177 r201596 161 161 WEBCORE_EXPORT SharedBuffer* parsedArchiveData() const; 162 162 163 WEBCORE_EXPORT bool scheduleArchiveLoad(ResourceLoader *, const ResourceRequest&);163 WEBCORE_EXPORT bool scheduleArchiveLoad(ResourceLoader&, const ResourceRequest&); 164 164 #endif 165 165 void scheduleSubstituteResourceLoad(ResourceLoader&, SubstituteResource&); -
trunk/Source/WebCore/loader/LoaderStrategy.h
r192995 r201596 49 49 class WEBCORE_EXPORT LoaderStrategy { 50 50 public: 51 virtual RefPtr<SubresourceLoader> loadResource(Frame *, CachedResource*, const ResourceRequest&, const ResourceLoaderOptions&) = 0;51 virtual RefPtr<SubresourceLoader> loadResource(Frame&, CachedResource&, const ResourceRequest&, const ResourceLoaderOptions&) = 0; 52 52 virtual void loadResourceSynchronously(NetworkingContext*, unsigned long identifier, const ResourceRequest&, StoredCredentials, ClientCredentialPolicy, ResourceError&, ResourceResponse&, Vector<char>& data) = 0; 53 53 -
trunk/Source/WebCore/loader/NetscapePlugInStreamLoader.cpp
r200895 r201596 43 43 // FIXME: Skip Content Security Policy check when associated plugin element is in a user agent shadow tree. 44 44 // See <https://bugs.webkit.org/show_bug.cgi?id=146663>. 45 NetscapePlugInStreamLoader::NetscapePlugInStreamLoader(Frame * frame, NetscapePlugInStreamLoaderClient*client)45 NetscapePlugInStreamLoader::NetscapePlugInStreamLoader(Frame& frame, NetscapePlugInStreamLoaderClient& client) 46 46 : ResourceLoader(frame, ResourceLoaderOptions(SendCallbacks, SniffContent, DoNotBufferData, AllowStoredCredentials, AskClientForAllCredentials, ClientRequestedCredentials, SkipSecurityCheck, UseDefaultOriginRestrictionsForType, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching)) 47 , m_client( client)47 , m_client(&client) 48 48 { 49 49 #if ENABLE(CONTENT_EXTENSIONS) … … 56 56 } 57 57 58 PassRefPtr<NetscapePlugInStreamLoader> NetscapePlugInStreamLoader::create(Frame* frame, NetscapePlugInStreamLoaderClient*client, const ResourceRequest& request)58 RefPtr<NetscapePlugInStreamLoader> NetscapePlugInStreamLoader::create(Frame& frame, NetscapePlugInStreamLoaderClient& client, const ResourceRequest& request) 59 59 { 60 RefPtr<NetscapePlugInStreamLoader>loader(adoptRef(new NetscapePlugInStreamLoader(frame, client)));60 auto loader(adoptRef(new NetscapePlugInStreamLoader(frame, client))); 61 61 if (!loader->init(request)) 62 62 return nullptr; 63 63 64 return loader .release();64 return loader; 65 65 } 66 66 -
trunk/Source/WebCore/loader/NetscapePlugInStreamLoader.h
r197563 r201596 52 52 class NetscapePlugInStreamLoader final : public ResourceLoader { 53 53 public: 54 WEBCORE_EXPORT static PassRefPtr<NetscapePlugInStreamLoader> create(Frame*, NetscapePlugInStreamLoaderClient*, const ResourceRequest&);54 WEBCORE_EXPORT static RefPtr<NetscapePlugInStreamLoader> create(Frame&, NetscapePlugInStreamLoaderClient&, const ResourceRequest&); 55 55 virtual ~NetscapePlugInStreamLoader(); 56 56 … … 69 69 void releaseResources() override; 70 70 71 NetscapePlugInStreamLoader(Frame *, NetscapePlugInStreamLoaderClient*);71 NetscapePlugInStreamLoader(Frame&, NetscapePlugInStreamLoaderClient&); 72 72 73 73 void willCancel(const ResourceError&) override; -
trunk/Source/WebCore/loader/ResourceLoader.cpp
r201333 r201596 54 54 55 55 #if ENABLE(CONTENT_EXTENSIONS) 56 #include "ResourceLoadInfo.h"57 56 #include "UserContentController.h" 58 57 #endif … … 60 59 namespace WebCore { 61 60 62 ResourceLoader::ResourceLoader(Frame* frame, ResourceLoaderOptions options) 63 : m_frame(frame) 64 , m_documentLoader(frame->loader().activeDocumentLoader()) 65 , m_identifier(0) 66 , m_reachedTerminalState(false) 67 , m_notifiedLoadComplete(false) 68 , m_cancellationStatus(NotCancelled) 69 , m_defersLoading(options.defersLoadingPolicy() == DefersLoadingPolicy::AllowDefersLoading && frame->page()->defersLoading()) 61 ResourceLoader::ResourceLoader(Frame& frame, ResourceLoaderOptions options) 62 : m_frame(&frame) 63 , m_documentLoader(frame.loader().activeDocumentLoader()) 64 , m_defersLoading(options.defersLoadingPolicy() == DefersLoadingPolicy::AllowDefersLoading && frame.page()->defersLoading()) 70 65 , m_options(options) 71 , m_isQuickLookResource(false)72 #if ENABLE(CONTENT_EXTENSIONS)73 , m_resourceType(ResourceType::Invalid)74 #endif75 66 { 76 67 } … … 196 187 197 188 #if ENABLE(WEB_ARCHIVE) || ENABLE(MHTML) 198 if (m_documentLoader->scheduleArchiveLoad( this, m_request))199 return; 200 #endif 201 202 if (m_documentLoader->applicationCacheHost()->maybeLoadResource( this, m_request, m_request.url()))189 if (m_documentLoader->scheduleArchiveLoad(*this, m_request)) 190 return; 191 #endif 192 193 if (m_documentLoader->applicationCacheHost()->maybeLoadResource(*this, m_request, m_request.url())) 203 194 return; 204 195 -
trunk/Source/WebCore/loader/ResourceLoader.h
r200461 r201596 37 37 #include <wtf/Forward.h> 38 38 39 #if ENABLE(CONTENT_EXTENSIONS) 40 #include "ResourceLoadInfo.h" 41 #endif 42 39 43 namespace WTF { 40 44 class SchedulePair; … … 51 55 #if USE(QUICK_LOOK) 52 56 class QuickLookHandle; 53 #endif54 55 #if ENABLE(CONTENT_EXTENSIONS)56 enum class ResourceType : uint16_t;57 57 #endif 58 58 … … 94 94 95 95 virtual void releaseResources(); 96 const ResourceResponse& response() const ;96 const ResourceResponse& response() const { return m_response; } 97 97 98 98 SharedBuffer* resourceData() const { return m_resourceData.get(); } … … 150 150 151 151 protected: 152 ResourceLoader(Frame *, ResourceLoaderOptions);152 ResourceLoader(Frame&, ResourceLoaderOptions); 153 153 154 154 void didFinishLoadingOnePart(double finishTime); … … 215 215 RefPtr<SharedBuffer> m_resourceData; 216 216 217 unsigned long m_identifier ;218 219 bool m_reachedTerminalState ;220 bool m_notifiedLoadComplete ;217 unsigned long m_identifier { 0 }; 218 219 bool m_reachedTerminalState { false }; 220 bool m_notifiedLoadComplete { false }; 221 221 222 222 enum CancellationStatus { … … 226 226 FinishedCancel 227 227 }; 228 CancellationStatus m_cancellationStatus ;228 CancellationStatus m_cancellationStatus { NotCancelled }; 229 229 230 230 bool m_defersLoading; 231 231 ResourceRequest m_deferredRequest; 232 232 ResourceLoaderOptions m_options; 233 bool m_isQuickLookResource ;233 bool m_isQuickLookResource { false }; 234 234 235 235 #if ENABLE(CONTENT_EXTENSIONS) 236 236 protected: 237 ResourceType m_resourceType ;237 ResourceType m_resourceType { ResourceType::Invalid }; 238 238 #endif 239 239 }; 240 240 241 inline const ResourceResponse& ResourceLoader::response() const242 {243 return m_response;244 241 } 245 242 246 } 247 248 #endif 243 #endif -
trunk/Source/WebCore/loader/SubresourceLoader.cpp
r201556 r201596 62 62 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, subresourceLoaderCounter, ("SubresourceLoader")); 63 63 64 SubresourceLoader::RequestCountTracker::RequestCountTracker(CachedResourceLoader& cachedResourceLoader, CachedResource*resource)64 SubresourceLoader::RequestCountTracker::RequestCountTracker(CachedResourceLoader& cachedResourceLoader, const CachedResource& resource) 65 65 : m_cachedResourceLoader(cachedResourceLoader) 66 66 , m_resource(resource) … … 74 74 } 75 75 76 SubresourceLoader::SubresourceLoader(Frame * frame, CachedResource*resource, const ResourceLoaderOptions& options)76 SubresourceLoader::SubresourceLoader(Frame& frame, CachedResource& resource, const ResourceLoaderOptions& options) 77 77 : ResourceLoader(frame, options) 78 , m_resource( resource)78 , m_resource(&resource) 79 79 , m_loadingMultipartContent(false) 80 80 , m_state(Uninitialized) 81 , m_requestCountTracker(InPlace, frame ->document()->cachedResourceLoader(), resource)81 , m_requestCountTracker(InPlace, frame.document()->cachedResourceLoader(), resource) 82 82 { 83 83 #ifndef NDEBUG … … 85 85 #endif 86 86 #if ENABLE(CONTENT_EXTENSIONS) 87 m_resourceType = toResourceType(resource ->type());87 m_resourceType = toResourceType(resource.type()); 88 88 #endif 89 89 } … … 98 98 } 99 99 100 RefPtr<SubresourceLoader> SubresourceLoader::create(Frame * frame, CachedResource*resource, const ResourceRequest& request, const ResourceLoaderOptions& options)100 RefPtr<SubresourceLoader> SubresourceLoader::create(Frame& frame, CachedResource& resource, const ResourceRequest& request, const ResourceLoaderOptions& options) 101 101 { 102 102 RefPtr<SubresourceLoader> subloader(adoptRef(new SubresourceLoader(frame, resource, options))); -
trunk/Source/WebCore/loader/SubresourceLoader.h
r201556 r201596 45 45 class SubresourceLoader final : public ResourceLoader { 46 46 public: 47 WEBCORE_EXPORT static RefPtr<SubresourceLoader> create(Frame *, CachedResource*, const ResourceRequest&, const ResourceLoaderOptions&);47 WEBCORE_EXPORT static RefPtr<SubresourceLoader> create(Frame&, CachedResource&, const ResourceRequest&, const ResourceLoaderOptions&); 48 48 49 49 virtual ~SubresourceLoader(); … … 61 61 62 62 private: 63 SubresourceLoader(Frame *, CachedResource*, const ResourceLoaderOptions&);63 SubresourceLoader(Frame&, CachedResource&, const ResourceLoaderOptions&); 64 64 65 65 bool init(const ResourceRequest&) override; … … 113 113 #endif 114 114 public: 115 RequestCountTracker(CachedResourceLoader&, CachedResource*);115 RequestCountTracker(CachedResourceLoader&, const CachedResource&); 116 116 ~RequestCountTracker(); 117 117 private: 118 118 CachedResourceLoader& m_cachedResourceLoader; 119 CachedResource*m_resource;119 const CachedResource& m_resource; 120 120 }; 121 121 -
trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.cpp
r198177 r201596 167 167 } 168 168 169 bool ApplicationCacheHost::maybeLoadResource(ResourceLoader *loader, const ResourceRequest& request, const URL& originalURL)169 bool ApplicationCacheHost::maybeLoadResource(ResourceLoader& loader, const ResourceRequest& request, const URL& originalURL) 170 170 { 171 171 if (!isApplicationCacheEnabled() && !isApplicationCacheBlockedForRequest(request)) … … 179 179 return false; 180 180 181 m_documentLoader.scheduleSubstituteResourceLoad( *loader, *resource);181 m_documentLoader.scheduleSubstituteResourceLoad(loader, *resource); 182 182 return true; 183 183 } -
trunk/Source/WebCore/loader/appcache/ApplicationCacheHost.h
r191369 r201596 125 125 void failedLoadingMainResource(); 126 126 127 WEBCORE_EXPORT bool maybeLoadResource(ResourceLoader *, const ResourceRequest&, const URL& originalURL);127 WEBCORE_EXPORT bool maybeLoadResource(ResourceLoader&, const ResourceRequest&, const URL& originalURL); 128 128 WEBCORE_EXPORT bool maybeLoadFallbackForRedirect(ResourceLoader*, ResourceRequest&, const ResourceResponse&); 129 129 WEBCORE_EXPORT bool maybeLoadFallbackForResponse(ResourceLoader*, const ResourceResponse&); -
trunk/Source/WebCore/loader/cache/CachedResource.cpp
r201324 r201596 216 216 return; 217 217 } 218 Frame& frame = *cachedResourceLoader.frame(); 218 219 219 220 // Prevent new loads if we are in the PageCache or being added to the PageCache. 220 if ( cachedResourceLoader.frame()->page() && cachedResourceLoader.frame()->page()->inPageCache()) {221 if (frame.page() && frame.page()->inPageCache()) { 221 222 failBeforeStarting(); 222 223 return; 223 224 } 224 225 225 FrameLoader& frameLoader = cachedResourceLoader.frame()->loader();226 FrameLoader& frameLoader = frame.loader(); 226 227 if (options.securityCheck() == DoSecurityCheck && (frameLoader.state() == FrameStateProvisional || !frameLoader.activeDocumentLoader() || frameLoader.activeDocumentLoader()->isStopping())) { 227 228 failBeforeStarting(); … … 237 238 // NSURLReponse for the main document. To make safeQLURLForDocumentURLAndResourceURL() 238 239 // work, we need to use the QL URL not the original URL. 239 const URL& documentURL = cachedResourceLoader.frame() ? cachedResourceLoader.frame()->loader().documentLoader()->response().url() : cachedResourceLoader.document()->url();240 const URL& documentURL = frameLoader.documentLoader()->response().url(); 240 241 m_resourceRequest.setURL(safeQLURLForDocumentURLAndResourceURL(documentURL, url())); 241 242 } … … 281 282 } 282 283 283 m_loader = platformStrategies()->loaderStrategy()->loadResource( cachedResourceLoader.frame(),this, request, options);284 m_loader = platformStrategies()->loaderStrategy()->loadResource(frame, *this, request, options); 284 285 if (!m_loader) { 285 286 failBeforeStarting(); -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r201565 r201596 1013 1013 } 1014 1014 1015 void CachedResourceLoader::incrementRequestCount(const CachedResource * res)1016 { 1017 if (res ->ignoreForRequestCount())1015 void CachedResourceLoader::incrementRequestCount(const CachedResource& resource) 1016 { 1017 if (resource.ignoreForRequestCount()) 1018 1018 return; 1019 1019 … … 1021 1021 } 1022 1022 1023 void CachedResourceLoader::decrementRequestCount(const CachedResource * res)1024 { 1025 if (res ->ignoreForRequestCount())1023 void CachedResourceLoader::decrementRequestCount(const CachedResource& resource) 1024 { 1025 if (resource.ignoreForRequestCount()) 1026 1026 return; 1027 1027 -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.h
r201018 r201596 123 123 WEBCORE_EXPORT void garbageCollectDocumentResources(); 124 124 125 void incrementRequestCount(const CachedResource *);126 void decrementRequestCount(const CachedResource *);125 void incrementRequestCount(const CachedResource&); 126 void decrementRequestCount(const CachedResource&); 127 127 int requestCount() const { return m_requestCount; } 128 128 -
trunk/Source/WebKit/ChangeLog
r201493 r201596 1 2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 Use more references in ResourceLoader related code 4 https://bugs.webkit.org/show_bug.cgi?id=158222 5 6 Reviewed by Darin Adler. 7 8 * WebCoreSupport/WebResourceLoadScheduler.cpp: 9 (WebResourceLoadScheduler::loadResource): 10 * WebCoreSupport/WebResourceLoadScheduler.h: 11 1 12 2016-05-28 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/Source/WebKit/WebCoreSupport/WebResourceLoadScheduler.cpp
r197628 r201596 93 93 } 94 94 95 RefPtr<SubresourceLoader> WebResourceLoadScheduler::loadResource(Frame * frame, CachedResource*resource, const ResourceRequest& request, const ResourceLoaderOptions& options)95 RefPtr<SubresourceLoader> WebResourceLoadScheduler::loadResource(Frame& frame, CachedResource& resource, const ResourceRequest& request, const ResourceLoaderOptions& options) 96 96 { 97 97 RefPtr<SubresourceLoader> loader = SubresourceLoader::create(frame, resource, request, options); … … 115 115 } 116 116 117 RefPtr<NetscapePlugInStreamLoader> WebResourceLoadScheduler::schedulePluginStreamLoad(Frame * frame, NetscapePlugInStreamLoaderClient*client, const ResourceRequest& request)117 RefPtr<NetscapePlugInStreamLoader> WebResourceLoadScheduler::schedulePluginStreamLoad(Frame& frame, NetscapePlugInStreamLoaderClient& client, const ResourceRequest& request) 118 118 { 119 119 RefPtr<NetscapePlugInStreamLoader> loader = NetscapePlugInStreamLoader::create(frame, client, request); -
trunk/Source/WebKit/WebCoreSupport/WebResourceLoadScheduler.h
r192995 r201596 46 46 WebResourceLoadScheduler(); 47 47 48 RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame *, WebCore::CachedResource*, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override;48 RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame&, WebCore::CachedResource&, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override; 49 49 void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>&) override; 50 50 void remove(WebCore::ResourceLoader*) override; … … 61 61 void setSerialLoadingEnabled(bool b) { m_isSerialLoadingEnabled = b; } 62 62 63 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame *, WebCore::NetscapePlugInStreamLoaderClient*, const WebCore::ResourceRequest&);63 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame&, WebCore::NetscapePlugInStreamLoaderClient&, const WebCore::ResourceRequest&); 64 64 65 65 protected: -
trunk/Source/WebKit/mac/ChangeLog
r201588 r201596 1 2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 Add WebIDL special operation support: serializer 4 https://bugs.webkit.org/show_bug.cgi?id=156293 5 6 Reviewed by Darin Adler. 7 8 * Plugins/Hosted/HostedNetscapePluginStream.mm: 9 (WebKit::HostedNetscapePluginStream::start): 10 * Plugins/WebNetscapePluginStream.mm: 11 (WebNetscapePluginStream::start): 12 1 13 2016-05-31 Darin Adler <darin@apple.com> 2 14 -
trunk/Source/WebKit/mac/Plugins/Hosted/HostedNetscapePluginStream.mm
r194496 r201596 224 224 ASSERT(!m_loader); 225 225 226 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad( core([m_instance->pluginView() webFrame]),this, m_request.get());226 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(*core([m_instance->pluginView() webFrame]), *this, m_request.get()); 227 227 } 228 228 -
trunk/Source/WebKit/mac/Plugins/WebNetscapePluginStream.mm
r194987 r201596 291 291 ASSERT(!m_loader); 292 292 293 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad( core([m_pluginView.get() webFrame]),this, m_request.get());293 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(*core([m_pluginView.get() webFrame]), *this, m_request.get()); 294 294 } 295 295 -
trunk/Source/WebKit/win/ChangeLog
r201546 r201596 1 2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 Use more references in ResourceLoader related code 4 https://bugs.webkit.org/show_bug.cgi?id=158222 5 6 Reviewed by Darin Adler. 7 8 * Plugins/PluginStream.cpp: 9 (WebCore::PluginStream::start): 10 1 11 2016-06-01 Per Arne Vollan <pvollan@apple.com> 2 12 -
trunk/Source/WebKit/win/Plugins/PluginStream.cpp
r195743 r201596 97 97 { 98 98 ASSERT(!m_loadManually); 99 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(m_frame, this, m_resourceRequest); 99 ASSERT(m_frame); 100 m_loader = webResourceLoadScheduler().schedulePluginStreamLoad(*m_frame, *this, m_resourceRequest); 100 101 } 101 102 -
trunk/Source/WebKit2/ChangeLog
r201593 r201596 1 2016-06-02 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 3 Use more references in ResourceLoader related code 4 https://bugs.webkit.org/show_bug.cgi?id=158222 5 6 Reviewed by Darin Adler. 7 8 * WebProcess/Network/WebLoaderStrategy.cpp: 9 (WebKit::WebLoaderStrategy::loadResource): 10 (WebKit::WebLoaderStrategy::schedulePluginStreamLoad): 11 (WebKit::WebLoaderStrategy::scheduleLoad): 12 (WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad): 13 (WebKit::WebLoaderStrategy::startLocalLoad): 14 (WebKit::WebLoaderStrategy::networkProcessCrashed): 15 * WebProcess/Network/WebLoaderStrategy.h: 16 * WebProcess/Network/WebResourceLoader.cpp: 17 (WebKit::WebResourceLoader::create): 18 (WebKit::WebResourceLoader::WebResourceLoader): 19 * WebProcess/Network/WebResourceLoader.h: 20 * WebProcess/Plugins/PluginView.cpp: 21 (WebKit::PluginView::Stream::start): 22 1 23 2016-06-01 Yongjun Zhang <yongjun_zhang@apple.com> 2 24 -
trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp
r201255 r201596 72 72 } 73 73 74 RefPtr<SubresourceLoader> WebLoaderStrategy::loadResource(Frame * frame, CachedResource*resource, const ResourceRequest& request, const ResourceLoaderOptions& options)74 RefPtr<SubresourceLoader> WebLoaderStrategy::loadResource(Frame& frame, CachedResource& resource, const ResourceRequest& request, const ResourceLoaderOptions& options) 75 75 { 76 76 RefPtr<SubresourceLoader> loader = SubresourceLoader::create(frame, resource, request, options); 77 77 if (loader) 78 scheduleLoad( loader.get(), resource, frame->document()->referrerPolicy() == ReferrerPolicy::Default);78 scheduleLoad(*loader, &resource, frame.document()->referrerPolicy() == ReferrerPolicy::Default); 79 79 return loader; 80 80 } 81 81 82 RefPtr<NetscapePlugInStreamLoader> WebLoaderStrategy::schedulePluginStreamLoad(Frame * frame, NetscapePlugInStreamLoaderClient*client, const ResourceRequest& request)82 RefPtr<NetscapePlugInStreamLoader> WebLoaderStrategy::schedulePluginStreamLoad(Frame& frame, NetscapePlugInStreamLoaderClient& client, const ResourceRequest& request) 83 83 { 84 84 RefPtr<NetscapePlugInStreamLoader> loader = NetscapePlugInStreamLoader::create(frame, client, request); 85 85 if (loader) 86 scheduleLoad( loader.get(), 0, frame->document()->referrerPolicy() == ReferrerPolicy::Default);86 scheduleLoad(*loader, 0, frame.document()->referrerPolicy() == ReferrerPolicy::Default); 87 87 return loader; 88 88 } … … 129 129 } 130 130 131 void WebLoaderStrategy::scheduleLoad(ResourceLoader* resourceLoader, CachedResource* resource, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 132 { 133 ASSERT(resourceLoader); 134 135 ResourceLoadIdentifier identifier = resourceLoader->identifier(); 131 void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResource* resource, bool shouldClearReferrerOnHTTPSToHTTPRedirect) 132 { 133 ResourceLoadIdentifier identifier = resourceLoader.identifier(); 136 134 ASSERT(identifier); 137 135 … … 139 137 // If the DocumentLoader schedules this as an archive resource load, 140 138 // then we should remember the ResourceLoader in our records but not schedule it in the NetworkProcess. 141 if (resourceLoader ->documentLoader()->scheduleArchiveLoad(resourceLoader, resourceLoader->request())) {142 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as an archive resource.", resourceLoader ->url().string().utf8().data());139 if (resourceLoader.documentLoader()->scheduleArchiveLoad(resourceLoader, resourceLoader.request())) { 140 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as an archive resource.", resourceLoader.url().string().utf8().data()); 143 141 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader)); 144 142 return; … … 146 144 #endif 147 145 148 if (resourceLoader ->documentLoader()->applicationCacheHost()->maybeLoadResource(resourceLoader, resourceLoader->request(), resourceLoader->request().url())) {149 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded from application cache.", resourceLoader ->url().string().utf8().data());146 if (resourceLoader.documentLoader()->applicationCacheHost()->maybeLoadResource(resourceLoader, resourceLoader.request(), resourceLoader.request().url())) { 147 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded from application cache.", resourceLoader.url().string().utf8().data()); 150 148 m_webResourceLoaders.set(identifier, WebResourceLoader::create(resourceLoader)); 151 149 return; 152 150 } 153 151 154 if (resourceLoader ->request().url().protocolIsData()) {155 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded as data.", resourceLoader ->url().string().utf8().data());156 startLocalLoad( *resourceLoader);152 if (resourceLoader.request().url().protocolIsData()) { 153 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be loaded as data.", resourceLoader.url().string().utf8().data()); 154 startLocalLoad(resourceLoader); 157 155 return; 158 156 } 159 157 160 158 #if USE(QUICK_LOOK) 161 if (resourceLoader ->request().url().protocolIs(QLPreviewProtocol())) {162 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a QuickLook resource.", resourceLoader ->url().string().utf8().data());163 startLocalLoad( *resourceLoader);159 if (resourceLoader.request().url().protocolIs(QLPreviewProtocol())) { 160 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a QuickLook resource.", resourceLoader.url().string().utf8().data()); 161 startLocalLoad(resourceLoader); 164 162 return; 165 163 } … … 169 167 // For apps that call g_resource_load in a web extension. 170 168 // https://blogs.gnome.org/alexl/2012/01/26/resources-in-glib/ 171 if (resourceLoader ->request().url().protocolIs("resource")) {172 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a GResource.", resourceLoader ->url().string().utf8().data());173 startLocalLoad( *resourceLoader);174 return; 175 } 176 #endif 177 178 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be scheduled with the NetworkProcess with priority %d", resourceLoader ->url().string().latin1().data(), static_cast<int>(resourceLoader->request().priority()));179 180 ContentSniffingPolicy contentSniffingPolicy = resourceLoader ->shouldSniffContent() ? SniffContent : DoNotSniffContent;181 StoredCredentials allowStoredCredentials = resourceLoader ->shouldUseCredentialStorage() ? AllowStoredCredentials : DoNotAllowStoredCredentials;169 if (resourceLoader.request().url().protocolIs("resource")) { 170 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be handled as a GResource.", resourceLoader.url().string().utf8().data()); 171 startLocalLoad(resourceLoader); 172 return; 173 } 174 #endif 175 176 LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be scheduled with the NetworkProcess with priority %d", resourceLoader.url().string().latin1().data(), static_cast<int>(resourceLoader.request().priority())); 177 178 ContentSniffingPolicy contentSniffingPolicy = resourceLoader.shouldSniffContent() ? SniffContent : DoNotSniffContent; 179 StoredCredentials allowStoredCredentials = resourceLoader.shouldUseCredentialStorage() ? AllowStoredCredentials : DoNotAllowStoredCredentials; 182 180 183 181 // FIXME: Some entities in WebCore use WebCore's "EmptyFrameLoaderClient" instead of having a proper WebFrameLoaderClient. 184 182 // EmptyFrameLoaderClient shouldn't exist and everything should be using a WebFrameLoaderClient, 185 183 // but in the meantime we have to make sure not to mis-cast. 186 WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(resourceLoader ->frameLoader()->client());184 WebFrameLoaderClient* webFrameLoaderClient = toWebFrameLoaderClient(resourceLoader.frameLoader()->client()); 187 185 WebFrame* webFrame = webFrameLoaderClient ? webFrameLoaderClient->webFrame() : 0; 188 186 WebPage* webPage = webFrame ? webFrame->page() : 0; … … 193 191 loadParameters.webFrameID = webFrame ? webFrame->frameID() : 0; 194 192 loadParameters.sessionID = webPage ? webPage->sessionID() : SessionID::defaultSessionID(); 195 loadParameters.request = resourceLoader ->request();193 loadParameters.request = resourceLoader.request(); 196 194 loadParameters.contentSniffingPolicy = contentSniffingPolicy; 197 195 loadParameters.allowStoredCredentials = allowStoredCredentials; 198 196 // If there is no WebFrame then this resource cannot be authenticated with the client. 199 loadParameters.clientCredentialPolicy = (webFrame && webPage && resourceLoader ->isAllowedToAskUserForCredentials()) ? AskClientForAllCredentials : DoNotAskClientForAnyCredentials;197 loadParameters.clientCredentialPolicy = (webFrame && webPage && resourceLoader.isAllowedToAskUserForCredentials()) ? AskClientForAllCredentials : DoNotAskClientForAnyCredentials; 200 198 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = shouldClearReferrerOnHTTPSToHTTPRedirect; 201 loadParameters.defersLoading = resourceLoader ->defersLoading();202 loadParameters.needsCertificateInfo = resourceLoader ->shouldIncludeCertificateInfo();199 loadParameters.defersLoading = resourceLoader.defersLoading(); 200 loadParameters.needsCertificateInfo = resourceLoader.shouldIncludeCertificateInfo(); 203 201 loadParameters.maximumBufferingTime = maximumBufferingTime(resource); 204 202 … … 206 204 207 205 if (!WebProcess::singleton().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::ScheduleResourceLoad(loadParameters), 0)) { 208 WEBLOADERSTRATEGY_LOG_ALWAYS_ERROR("WebLoaderStrategy::scheduleLoad: Unable to schedule resource with the NetworkProcess with priority = %d, pageID = %llu, frameID = %llu", static_cast<int>(resourceLoader ->request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID));206 WEBLOADERSTRATEGY_LOG_ALWAYS_ERROR("WebLoaderStrategy::scheduleLoad: Unable to schedule resource with the NetworkProcess with priority = %d, pageID = %llu, frameID = %llu", static_cast<int>(resourceLoader.request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID)); 209 207 // We probably failed to schedule this load with the NetworkProcess because it had crashed. 210 208 // This load will never succeed so we will schedule it to fail asynchronously. … … 214 212 215 213 auto webResourceLoader = WebResourceLoader::create(resourceLoader); 216 WEBLOADERSTRATEGY_LOG_ALWAYS("WebLoaderStrategy::scheduleLoad: Resource will be scheduled with the NetworkProcess with priority = %d, pageID = %llu, frameID = %llu, WebResourceLoader = %p", static_cast<int>(resourceLoader ->request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID), webResourceLoader.ptr());214 WEBLOADERSTRATEGY_LOG_ALWAYS("WebLoaderStrategy::scheduleLoad: Resource will be scheduled with the NetworkProcess with priority = %d, pageID = %llu, frameID = %llu, WebResourceLoader = %p", static_cast<int>(resourceLoader.request().priority()), static_cast<unsigned long long>(loadParameters.webPageID), static_cast<unsigned long long>(loadParameters.webFrameID), webResourceLoader.ptr()); 217 215 m_webResourceLoaders.set(identifier, WTFMove(webResourceLoader)); 218 216 } 219 217 220 void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader *resourceLoader)221 { 222 m_internallyFailedResourceLoaders.add( resourceLoader);218 void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) 219 { 220 m_internallyFailedResourceLoaders.add(&resourceLoader); 223 221 m_internallyFailedLoadTimer.startOneShot(0); 224 222 } … … 236 234 { 237 235 resourceLoader.start(); 238 m_webResourceLoaders.set(resourceLoader.identifier(), WebResourceLoader::create( &resourceLoader));236 m_webResourceLoaders.set(resourceLoader.identifier(), WebResourceLoader::create(resourceLoader)); 239 237 } 240 238 … … 297 295 void WebLoaderStrategy::networkProcessCrashed() 298 296 { 299 HashMap<unsigned long, RefPtr<WebResourceLoader>>::iterator end = m_webResourceLoaders.end(); 300 for (HashMap<unsigned long, RefPtr<WebResourceLoader>>::iterator i = m_webResourceLoaders.begin(); i != end; ++i) 301 scheduleInternallyFailedLoad(i->value.get()->resourceLoader()); 297 for (auto& loader : m_webResourceLoaders) 298 scheduleInternallyFailedLoad(*loader.value->resourceLoader()); 302 299 303 300 m_webResourceLoaders.clear(); -
trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.h
r193468 r201596 44 44 ~WebLoaderStrategy() override; 45 45 46 RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame *, WebCore::CachedResource*, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override;46 RefPtr<WebCore::SubresourceLoader> loadResource(WebCore::Frame&, WebCore::CachedResource&, const WebCore::ResourceRequest&, const WebCore::ResourceLoaderOptions&) override; 47 47 void loadResourceSynchronously(WebCore::NetworkingContext*, unsigned long resourceLoadIdentifier, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ClientCredentialPolicy, WebCore::ResourceError&, WebCore::ResourceResponse&, Vector<char>& data) override; 48 48 … … 59 59 60 60 WebResourceLoader* webResourceLoaderForIdentifier(ResourceLoadIdentifier identifier) const { return m_webResourceLoaders.get(identifier); } 61 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame *, WebCore::NetscapePlugInStreamLoaderClient*, const WebCore::ResourceRequest&);61 RefPtr<WebCore::NetscapePlugInStreamLoader> schedulePluginStreamLoad(WebCore::Frame&, WebCore::NetscapePlugInStreamLoaderClient&, const WebCore::ResourceRequest&); 62 62 63 63 void networkProcessCrashed(); 64 64 65 65 private: 66 void scheduleLoad(WebCore::ResourceLoader *, WebCore::CachedResource*, bool shouldClearReferrerOnHTTPSToHTTPRedirect);67 void scheduleInternallyFailedLoad(WebCore::ResourceLoader *);66 void scheduleLoad(WebCore::ResourceLoader&, WebCore::CachedResource*, bool shouldClearReferrerOnHTTPSToHTTPRedirect); 67 void scheduleInternallyFailedLoad(WebCore::ResourceLoader&); 68 68 void internallyFailedLoadTimerFired(); 69 69 void startLocalLoad(WebCore::ResourceLoader&); -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.cpp
r199669 r201596 47 47 namespace WebKit { 48 48 49 Ref<WebResourceLoader> WebResourceLoader::create( PassRefPtr<ResourceLoader>coreLoader)50 { 51 return adoptRef(*new WebResourceLoader( coreLoader));52 } 53 54 WebResourceLoader::WebResourceLoader( PassRefPtr<WebCore::ResourceLoader>coreLoader)55 : m_coreLoader( coreLoader)49 Ref<WebResourceLoader> WebResourceLoader::create(Ref<ResourceLoader>&& coreLoader) 50 { 51 return adoptRef(*new WebResourceLoader(WTFMove(coreLoader))); 52 } 53 54 WebResourceLoader::WebResourceLoader(Ref<WebCore::ResourceLoader>&& coreLoader) 55 : m_coreLoader(WTFMove(coreLoader)) 56 56 { 57 57 } -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoader.h
r197728 r201596 57 57 class WebResourceLoader : public RefCounted<WebResourceLoader>, public IPC::MessageSender { 58 58 public: 59 static Ref<WebResourceLoader> create( PassRefPtr<WebCore::ResourceLoader>);59 static Ref<WebResourceLoader> create(Ref<WebCore::ResourceLoader>&&); 60 60 61 61 ~WebResourceLoader(); … … 70 70 71 71 private: 72 WebResourceLoader( PassRefPtr<WebCore::ResourceLoader>);72 WebResourceLoader(Ref<WebCore::ResourceLoader>&&); 73 73 74 74 // IPC::MessageSender -
trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
r201588 r201596 161 161 ASSERT(frame); 162 162 163 m_loader = WebProcess::singleton().webLoaderStrategy().schedulePluginStreamLoad( frame,this, m_request);163 m_loader = WebProcess::singleton().webLoaderStrategy().schedulePluginStreamLoad(*frame, *this, m_request); 164 164 } 165 165
Note:
See TracChangeset
for help on using the changeset viewer.