Changeset 167635 in webkit
- Timestamp:
- Apr 21, 2014 5:10:38 PM (10 years ago)
- Location:
- trunk/Source
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r167634 r167635 1 2014-04-21 Dan Bernstein <mitz@apple.com> 2 3 WebCore part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process 4 https://bugs.webkit.org/show_bug.cgi?id=131939 5 6 Reviewed by David Kilzer. 7 8 * WebCore.exp.in: Exported WebCore::ResourceHandle::setDefersLoading. 9 10 * loader/ResourceLoadScheduler.cpp: 11 (WebCore::ResourceLoadScheduler::setDefersLoading): Added a no-op implementation. 12 * loader/ResourceLoadScheduler.h: Declared new virtual member function setDefersLoading. 13 14 * loader/ResourceLoader.cpp: 15 (WebCore::ResourceLoader::setDefersLoading): Added a call to the above function. 16 1 17 2014-04-21 Brent Fulgham <bfulgham@apple.com> 2 18 -
trunk/Source/WebCore/WebCore.exp.in
r167624 r167635 365 365 __ZN7WebCore14ResourceBufferD2Ev 366 366 __ZN7WebCore14ResourceHandle12firstRequestEv 367 __ZN7WebCore14ResourceHandle16setDefersLoadingEb 367 368 __ZN7WebCore14ResourceHandle20forceContentSniffingEv 368 369 __ZN7WebCore14ResourceHandle23continueWillSendRequestERKNS_15ResourceRequestE -
trunk/Source/WebCore/loader/ResourceLoadScheduler.cpp
r163725 r167635 217 217 } 218 218 219 void ResourceLoadScheduler::setDefersLoading(ResourceLoader*, bool) 220 { 221 } 222 219 223 void ResourceLoadScheduler::crossOriginRedirectReceived(ResourceLoader* resourceLoader, const URL& redirectURL) 220 224 { -
trunk/Source/WebCore/loader/ResourceLoadScheduler.h
r162063 r167635 54 54 virtual PassRefPtr<NetscapePlugInStreamLoader> schedulePluginStreamLoad(Frame*, NetscapePlugInStreamLoaderClient*, const ResourceRequest&); 55 55 virtual void remove(ResourceLoader*); 56 virtual void setDefersLoading(ResourceLoader*, bool); 56 57 virtual void crossOriginRedirectReceived(ResourceLoader*, const URL& redirectURL); 57 58 -
trunk/Source/WebCore/loader/ResourceLoader.cpp
r167207 r167635 188 188 start(); 189 189 } 190 191 platformStrategies()->loaderStrategy()->resourceLoadScheduler()->setDefersLoading(this, defers); 190 192 } 191 193 -
trunk/Source/WebKit2/ChangeLog
r167633 r167635 1 2014-04-21 Dan Bernstein <mitz@apple.com> 2 3 WebKit part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process 4 https://bugs.webkit.org/show_bug.cgi?id=131939 5 6 Reviewed by David Kilzer. 7 8 * NetworkProcess/NetworkConnectionToWebProcess.cpp: 9 (WebKit::NetworkConnectionToWebProcess::setDefersLoading): Added. Forwards the message to 10 the NetworkResourceLoader. 11 * NetworkProcess/NetworkConnectionToWebProcess.h: 12 13 * NetworkProcess/NetworkConnectionToWebProcess.messages.in: Added SetDefersLoading message. 14 15 * NetworkProcess/NetworkResourceLoader.cpp: 16 (WebKit::NetworkResourceLoader::NetworkResourceLoader): Initialize new member variable 17 m_defersLoading from the new field in the loader parameters. 18 (WebKit::NetworkResourceLoader::start): Added. Like WebCore::ResourceLoader, if loading is 19 deferred, keep the request in m_deferredRequest and bail out. 20 (WebKit::NetworkResourceLoader::setDefersLoading): Added. Similar to 21 WebCore::ResourceLoader::setDefersLoading. 22 * NetworkProcess/NetworkResourceLoader.h: 23 (WebKit::NetworkResourceLoader::defersLoading): 24 25 * Shared/Network/NetworkResourceLoadParameters.cpp: 26 (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): Initialize new field 27 defersLoading to false. 28 (WebKit::NetworkResourceLoadParameters::encode): Encode new field. 29 (WebKit::NetworkResourceLoadParameters::decode): Decode new field. 30 * Shared/Network/NetworkResourceLoadParameters.h: Added defersLoading field. 31 32 * WebProcess/Network/WebResourceLoadScheduler.cpp: 33 (WebKit::WebResourceLoadScheduler::scheduleLoad): Populate defersLoading field in the load 34 parameters. 35 (WebKit::WebResourceLoadScheduler::setDefersLoading): Send a message to the Network process. 36 * WebProcess/Network/WebResourceLoadScheduler.h: 37 1 38 2014-04-21 Anders Carlsson <andersca@apple.com> 2 39 -
trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp
r166728 r167635 142 142 } 143 143 144 void NetworkConnectionToWebProcess::setDefersLoading(ResourceLoadIdentifier identifier, bool defers) 145 { 146 RefPtr<NetworkResourceLoader> loader = m_networkResourceLoaders.get(identifier); 147 if (!loader) 148 return; 149 150 loader->setDefersLoading(defers); 151 } 152 144 153 void NetworkConnectionToWebProcess::servePendingRequests(uint32_t resourceLoadPriority) 145 154 { -
trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h
r166728 r167635 74 74 75 75 void removeLoadIdentifier(ResourceLoadIdentifier); 76 void setDefersLoading(ResourceLoadIdentifier, bool); 76 77 void crossOriginRedirectReceived(ResourceLoadIdentifier, const WebCore::URL& redirectURL); 77 78 void servePendingRequests(uint32_t resourceLoadPriority); -
trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in
r166728 r167635 28 28 PerformSynchronousLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (WebCore::ResourceError error, WebCore::ResourceResponse response, Vector<char> data) Delayed 29 29 RemoveLoadIdentifier(uint64_t resourceLoadIdentifier) 30 SetDefersLoading(uint64_t resourceLoadIdentifier, bool defers) 30 31 31 32 ServePendingRequests(uint32_t resourceLoadPriority) -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp
r166697 r167635 68 68 , m_shouldClearReferrerOnHTTPSToHTTPRedirect(parameters.shouldClearReferrerOnHTTPSToHTTPRedirect) 69 69 , m_isLoadingMainResource(parameters.isMainResource) 70 , m_defersLoading(parameters.defersLoading) 70 71 , m_sandboxExtensionsAreConsumed(false) 71 72 , m_connection(connection) … … 130 131 m_networkingContext = RemoteNetworkingContext::create(m_sessionID, m_shouldClearReferrerOnHTTPSToHTTPRedirect); 131 132 133 if (m_defersLoading) { 134 m_deferredRequest = m_request; 135 return; 136 } 137 132 138 consumeSandboxExtensions(); 133 139 134 140 // FIXME (NetworkProcess): Pass an actual value for defersLoading 135 141 m_handle = ResourceHandle::create(m_networkingContext.get(), m_request, this, false /* defersLoading */, m_contentSniffingPolicy == SniffContent); 142 } 143 144 void NetworkResourceLoader::setDefersLoading(bool defers) 145 { 146 m_defersLoading = defers; 147 if (m_handle) 148 m_handle->setDefersLoading(defers); 149 if (!defers && !m_deferredRequest.isNull()) { 150 m_request = m_deferredRequest; 151 m_deferredRequest = ResourceRequest(); 152 start(); 153 } 136 154 } 137 155 -
trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.h
r165117 r167635 81 81 void abort(); 82 82 83 void setDefersLoading(bool); 84 bool defersLoading() const { return m_defersLoading; } 85 83 86 // ResourceHandleClient methods 84 87 virtual void willSendRequestAsync(WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse) override; … … 178 181 WebCore::SessionID m_sessionID; 179 182 WebCore::ResourceRequest m_request; 183 WebCore::ResourceRequest m_deferredRequest; 180 184 WebCore::ResourceLoadPriority m_priority; 181 185 WebCore::ContentSniffingPolicy m_contentSniffingPolicy; … … 184 188 bool m_shouldClearReferrerOnHTTPSToHTTPRedirect; 185 189 bool m_isLoadingMainResource; 190 bool m_defersLoading; 186 191 187 192 Vector<RefPtr<SandboxExtension>> m_requestBodySandboxExtensions; -
trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp
r164726 r167635 49 49 , shouldClearReferrerOnHTTPSToHTTPRedirect(true) 50 50 , isMainResource(false) 51 , defersLoading(false) 51 52 { 52 53 } … … 98 99 encoder << shouldClearReferrerOnHTTPSToHTTPRedirect; 99 100 encoder << isMainResource; 101 encoder << defersLoading; 100 102 } 101 103 … … 149 151 if (!decoder.decode(result.isMainResource)) 150 152 return false; 153 if (!decoder.decode(result.defersLoading)) 154 return false; 151 155 152 156 return true; -
trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h
r164726 r167635 64 64 bool shouldClearReferrerOnHTTPSToHTTPRedirect; 65 65 bool isMainResource; 66 bool defersLoading; 66 67 }; 67 68 -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp
r166847 r167635 136 136 loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = shouldClearReferrerOnHTTPSToHTTPRedirect; 137 137 loadParameters.isMainResource = resource && resource->type() == CachedResource::MainResource; 138 loadParameters.defersLoading = resourceLoader->defersLoading(); 138 139 139 140 ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == DoNotAskClientForAnyCredentials); … … 194 195 } 195 196 197 void WebResourceLoadScheduler::setDefersLoading(ResourceLoader* resourceLoader, bool defers) 198 { 199 ResourceLoadIdentifier identifier = resourceLoader->identifier(); 200 WebProcess::shared().networkConnection()->connection()->send(Messages::NetworkConnectionToWebProcess::SetDefersLoading(identifier, defers), 0); 201 } 202 196 203 void WebResourceLoadScheduler::crossOriginRedirectReceived(ResourceLoader*, const URL&) 197 204 { -
trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h
r162139 r167635 50 50 51 51 virtual void remove(WebCore::ResourceLoader*) override; 52 virtual void setDefersLoading(WebCore::ResourceLoader*, bool) override; 52 53 virtual void crossOriginRedirectReceived(WebCore::ResourceLoader*, const WebCore::URL& redirectURL) override; 53 54
Note: See TracChangeset
for help on using the changeset viewer.