Title: [170958] trunk/Source/WebKit2
- Revision
- 170958
- Author
- psola...@apple.com
- Date
- 2014-07-09 23:14:35 -0700 (Wed, 09 Jul 2014)
Log Message
Buffer CSS and JS resources in network process before sending over to web process
https://bugs.webkit.org/show_bug.cgi?id=134560
<rdar://problem/16737186>
Reviewed by Antti Koivisto.
For CSS and JS resources, ask the network process to buffer the entire resource instead of
sending it to web process in chunks since the web process can't do anything with a partial
css or js file.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):
* Shared/Network/NetworkResourceLoadParameters.h:
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (170957 => 170958)
--- trunk/Source/WebKit2/ChangeLog 2014-07-10 06:08:58 UTC (rev 170957)
+++ trunk/Source/WebKit2/ChangeLog 2014-07-10 06:14:35 UTC (rev 170958)
@@ -1,3 +1,25 @@
+2014-07-09 Pratik Solanki <psola...@apple.com>
+
+ Buffer CSS and JS resources in network process before sending over to web process
+ https://bugs.webkit.org/show_bug.cgi?id=134560
+ <rdar://problem/16737186>
+
+ Reviewed by Antti Koivisto.
+
+ For CSS and JS resources, ask the network process to buffer the entire resource instead of
+ sending it to web process in chunks since the web process can't do anything with a partial
+ css or js file.
+
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::NetworkResourceLoader):
+ * Shared/Network/NetworkResourceLoadParameters.cpp:
+ (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
+ (WebKit::NetworkResourceLoadParameters::encode):
+ (WebKit::NetworkResourceLoadParameters::decode):
+ * Shared/Network/NetworkResourceLoadParameters.h:
+ * WebProcess/Network/WebResourceLoadScheduler.cpp:
+ (WebKit::WebResourceLoadScheduler::scheduleLoad):
+
2014-07-09 Benjamin Poulain <bpoul...@apple.com>
[iOS][WK2] Disable text quantization while actively changing the page's scale factor
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp (170957 => 170958)
--- trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp 2014-07-10 06:08:58 UTC (rev 170957)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp 2014-07-10 06:14:35 UTC (rev 170958)
@@ -99,10 +99,12 @@
ASSERT(RunLoop::isMain());
- if (reply) {
+ if (reply || parameters.shouldBufferResource)
+ m_bufferedData = WebCore::SharedBuffer::create();
+
+ if (reply)
m_networkLoaderClient = std::make_unique<SynchronousNetworkLoaderClient>(m_request, reply);
- m_bufferedData = WebCore::SharedBuffer::create();
- } else
+ else
m_networkLoaderClient = std::make_unique<AsynchronousNetworkLoaderClient>();
}
Modified: trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp (170957 => 170958)
--- trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp 2014-07-10 06:08:58 UTC (rev 170957)
+++ trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp 2014-07-10 06:14:35 UTC (rev 170958)
@@ -48,6 +48,7 @@
, shouldClearReferrerOnHTTPSToHTTPRedirect(true)
, isMainResource(false)
, defersLoading(false)
+ , shouldBufferResource(false)
{
}
@@ -96,6 +97,7 @@
encoder << shouldClearReferrerOnHTTPSToHTTPRedirect;
encoder << isMainResource;
encoder << defersLoading;
+ encoder << shouldBufferResource;
}
bool NetworkResourceLoadParameters::decode(IPC::ArgumentDecoder& decoder, NetworkResourceLoadParameters& result)
@@ -148,6 +150,8 @@
return false;
if (!decoder.decode(result.defersLoading))
return false;
+ if (!decoder.decode(result.shouldBufferResource))
+ return false;
return true;
}
Modified: trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h (170957 => 170958)
--- trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h 2014-07-10 06:08:58 UTC (rev 170957)
+++ trunk/Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h 2014-07-10 06:14:35 UTC (rev 170958)
@@ -64,6 +64,7 @@
bool shouldClearReferrerOnHTTPSToHTTPRedirect;
bool isMainResource;
bool defersLoading;
+ bool shouldBufferResource;
};
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp (170957 => 170958)
--- trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp 2014-07-10 06:08:58 UTC (rev 170957)
+++ trunk/Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp 2014-07-10 06:14:35 UTC (rev 170958)
@@ -136,6 +136,7 @@
loadParameters.shouldClearReferrerOnHTTPSToHTTPRedirect = shouldClearReferrerOnHTTPSToHTTPRedirect;
loadParameters.isMainResource = resource && resource->type() == CachedResource::MainResource;
loadParameters.defersLoading = resourceLoader->defersLoading();
+ loadParameters.shouldBufferResource = resource && (resource->type() == CachedResource::CSSStyleSheet || resource->type() == CachedResource::Script);
ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == DoNotAskClientForAnyCredentials);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes