diff options
-rw-r--r-- | chrome/browser/debugger/devtools_sanity_unittest.cc | 6 | ||||
-rw-r--r-- | chrome/test/data/devtools/image.html | 7 | ||||
-rw-r--r-- | chrome/test/data/devtools/image.png | bin | 0 -> 257796 bytes | |||
-rw-r--r-- | webkit/api/public/WebURLLoaderClient.h | 2 | ||||
-rw-r--r-- | webkit/api/src/ResourceHandle.cpp | 15 | ||||
-rw-r--r-- | webkit/glue/devtools/js/tests.js | 57 | ||||
-rw-r--r-- | webkit/glue/ftp_directory_listing_response_delegate.cc | 2 | ||||
-rw-r--r-- | webkit/glue/multipart_response_delegate.cc | 13 | ||||
-rw-r--r-- | webkit/glue/multipart_response_delegate_unittest.cc | 3 | ||||
-rw-r--r-- | webkit/glue/resource_fetcher.cc | 3 | ||||
-rw-r--r-- | webkit/glue/resource_fetcher.h | 3 | ||||
-rw-r--r-- | webkit/glue/webplugin_impl.cc | 4 | ||||
-rw-r--r-- | webkit/glue/webplugin_impl.h | 2 | ||||
-rw-r--r-- | webkit/glue/weburlloader_impl.cc | 5 |
14 files changed, 87 insertions, 35 deletions
diff --git a/chrome/browser/debugger/devtools_sanity_unittest.cc b/chrome/browser/debugger/devtools_sanity_unittest.cc index 8329273..e441a73 100644 --- a/chrome/browser/debugger/devtools_sanity_unittest.cc +++ b/chrome/browser/debugger/devtools_sanity_unittest.cc @@ -49,6 +49,7 @@ const wchar_t kConsoleTestPage[] = L"files/devtools/console_test_page.html"; const wchar_t kDebuggerTestPage[] = L"files/devtools/debugger_test_page.html"; const wchar_t kEvalTestPage[] = L"files/devtools/eval_test_page.html"; const wchar_t kJsPage[] = L"files/devtools/js_page.html"; +const wchar_t kResourceContentLengthTestPage[] = L"files/devtools/image.html"; const wchar_t kResourceTestPage[] = L"files/devtools/resource_test_page.html"; const wchar_t kSimplePage[] = L"files/devtools/simple_page.html"; const wchar_t kSyntaxErrorTestPage[] = @@ -270,6 +271,11 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestEnableResourcesTab) { RunTest("testEnableResourcesTab", kSimplePage); } +// Tests resources have correct sizes. +IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestResourceContentLength) { + RunTest("testResourceContentLength", kResourceContentLengthTestPage); +} + // Tests resource headers. IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, DISABLED_TestResourceHeaders) { RunTest("testResourceHeaders", kResourceTestPage); diff --git a/chrome/test/data/devtools/image.html b/chrome/test/data/devtools/image.html new file mode 100644 index 0000000..fffdaa1 --- /dev/null +++ b/chrome/test/data/devtools/image.html @@ -0,0 +1,7 @@ +<html> +<head> +</head> +<body> +<img src="image.png" alt="A screenshot" /> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/devtools/image.png b/chrome/test/data/devtools/image.png Binary files differnew file mode 100644 index 0000000..97410f3 --- /dev/null +++ b/chrome/test/data/devtools/image.png diff --git a/webkit/api/public/WebURLLoaderClient.h b/webkit/api/public/WebURLLoaderClient.h index 07f20bb..b64bbf0 100644 --- a/webkit/api/public/WebURLLoaderClient.h +++ b/webkit/api/public/WebURLLoaderClient.h @@ -53,7 +53,7 @@ namespace WebKit { virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&) = 0; // Called when a chunk of response data is received. - virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength, long long totalDataLength) = 0; + virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) = 0; // Called when the load completes successfully. virtual void didFinishLoading(WebURLLoader*) = 0; diff --git a/webkit/api/src/ResourceHandle.cpp b/webkit/api/src/ResourceHandle.cpp index 06881bf..6efbcd2 100644 --- a/webkit/api/src/ResourceHandle.cpp +++ b/webkit/api/src/ResourceHandle.cpp @@ -69,8 +69,7 @@ public: virtual void didSendData( WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent); virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&); - virtual void didReceiveData( - WebURLLoader*, const char* data, int dataLength, long long totalDataLength); + virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength); virtual void didFinishLoading(WebURLLoader*); virtual void didFail(WebURLLoader*, const WebURLError&); @@ -132,16 +131,14 @@ void ResourceHandleInternal::didReceiveResponse(WebURLLoader*, const WebURLRespo } void ResourceHandleInternal::didReceiveData( - WebURLLoader*, const char* data, int dataLength, long long totalDataLength) + WebURLLoader*, const char* data, int dataLength) { ASSERT(m_client); - // FIXME: ResourceHandleClient::didReceiveData should take a 'long long' - int lengthReceived = static_cast<int>(totalDataLength); - if (lengthReceived != totalDataLength) // overflow occurred - lengthReceived = -1; - - m_client->didReceiveData(m_owner, data, dataLength, lengthReceived); + // FIXME(yurys): it looks like lengthReceived is always the same as + // dataLength and that the latter parameter can be eliminated. + // See WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=31019 + m_client->didReceiveData(m_owner, data, dataLength, dataLength); } void ResourceHandleInternal::didFinishLoading(WebURLLoader*) diff --git a/webkit/glue/devtools/js/tests.js b/webkit/glue/devtools/js/tests.js index 4b42cc3..c5c721f 100644 --- a/webkit/glue/devtools/js/tests.js +++ b/webkit/glue/devtools/js/tests.js @@ -246,6 +246,63 @@ TestSuite.prototype.testEnableResourcesTab = function() { /** + * Tests that correct content length is reported for resources. + */ +TestSuite.prototype.testResourceContentLength = function() { + this.showPanel('resources'); + var test = this; + + var png = false; + var html = false; + this.addSniffer(WebInspector, 'updateResource', + function(identifier, payload) { + if (!payload.didLengthChange) + return; + var resource = WebInspector.resources[identifier]; + if (!resource || !resource.url) + return; + if (resource.url.search('image.html$') != -1) { + var expectedLength = 93; + test.assertTrue( + resource.contentLength <= expectedLength, + 'image.html content length is greater thatn expected.'); + if (expectedLength == resource.contentLength) { + html = true; + } + } else if (resource.url.search('image.png') != -1) { + var expectedLength = 257796; + test.assertTrue( + resource.contentLength <= expectedLength, + 'image.png content length is greater than expected.'); + if (expectedLength == resource.contentLength) { + png = true; + } + } + if (html && png) { + // Wait 1 second before releasing control to check that the content + // lengths are not updated anymore. + setTimeout(function() { + test.releaseControl(); + }, 1000); + } + }, true); + + // Make sure resource tracking is on. + WebInspector.panels.resources._enableResourceTracking(); + // Reload inspected page to update all resources. + test.evaluateInConsole_( + 'window.location.reload(true);', + function(resultText) { + test.assertEquals('undefined', resultText, + 'Unexpected result of reload().'); + }); + + // We now have some time to report results to controller. + this.takeControl(); +}; + + +/** * Tests resource headers. */ TestSuite.prototype.testResourceHeaders = function() { diff --git a/webkit/glue/ftp_directory_listing_response_delegate.cc b/webkit/glue/ftp_directory_listing_response_delegate.cc index 3ff9c0f..64f529c 100644 --- a/webkit/glue/ftp_directory_listing_response_delegate.cc +++ b/webkit/glue/ftp_directory_listing_response_delegate.cc @@ -250,7 +250,7 @@ void FtpDirectoryListingResponseDelegate::Init() { void FtpDirectoryListingResponseDelegate::SendResponseBufferToClient() { if (!response_buffer_.empty()) { client_->didReceiveData(loader_, response_buffer_.data(), - response_buffer_.length(), -1); + response_buffer_.length()); response_buffer_.clear(); } } diff --git a/webkit/glue/multipart_response_delegate.cc b/webkit/glue/multipart_response_delegate.cc index 8870de9..5d1f57d 100644 --- a/webkit/glue/multipart_response_delegate.cc +++ b/webkit/glue/multipart_response_delegate.cc @@ -81,10 +81,6 @@ void MultipartResponseDelegate::OnReceivedData(const char* data, if (stop_sending_) return; - // TODO(tc): Figure out what to use for length_received. Maybe we can just - // pass the value on from our caller. - int length_received = -1; - data_.append(data, data_len); if (first_received_data_) { // Some servers don't send a boundary token before the first chunk of @@ -132,8 +128,7 @@ void MultipartResponseDelegate::OnReceivedData(const char* data, // Send the last data chunk. client_->didReceiveData(loader_, data_.data(), - static_cast<int>(boundary_pos), - length_received); + static_cast<int>(boundary_pos)); } size_t boundary_end_pos = boundary_pos + boundary_.length(); if (boundary_end_pos < data_.length() && '-' == data_[boundary_end_pos]) { @@ -159,13 +154,9 @@ void MultipartResponseDelegate::OnCompletedRequest() { // If we have any pending data and we're not in a header, go ahead and send // it to WebCore. if (!processing_headers_ && !data_.empty()) { - // TODO(tc): Figure out what to use for length_received. Maybe we can just - // pass the value on from our caller. - int length_received = -1; client_->didReceiveData(loader_, data_.data(), - static_cast<int>(data_.length()), - length_received); + static_cast<int>(data_.length())); } } diff --git a/webkit/glue/multipart_response_delegate_unittest.cc b/webkit/glue/multipart_response_delegate_unittest.cc index df47529..b2196040 100644 --- a/webkit/glue/multipart_response_delegate_unittest.cc +++ b/webkit/glue/multipart_response_delegate_unittest.cc @@ -68,8 +68,7 @@ class MockWebURLLoaderClient : public WebURLLoaderClient { data_.clear(); } virtual void didReceiveData(WebURLLoader* loader, - const char* data, int data_length, - long long length_received) { + const char* data, int data_length) { ++received_data_; data_.append(data, data_length); } diff --git a/webkit/glue/resource_fetcher.cc b/webkit/glue/resource_fetcher.cc index 06bfd09..ccd007f 100644 --- a/webkit/glue/resource_fetcher.cc +++ b/webkit/glue/resource_fetcher.cc @@ -73,8 +73,7 @@ void ResourceFetcher::didReceiveResponse( } void ResourceFetcher::didReceiveData( - WebURLLoader* loader, const char* data, int data_length, - long long total_data_length) { + WebURLLoader* loader, const char* data, int data_length) { DCHECK(!completed_); DCHECK(data_length > 0); diff --git a/webkit/glue/resource_fetcher.h b/webkit/glue/resource_fetcher.h index 62c5bc5..53a030f 100644 --- a/webkit/glue/resource_fetcher.h +++ b/webkit/glue/resource_fetcher.h @@ -61,8 +61,7 @@ class ResourceFetcher : public WebKit::WebURLLoaderClient { virtual void didReceiveResponse( WebKit::WebURLLoader* loader, const WebKit::WebURLResponse& response); virtual void didReceiveData( - WebKit::WebURLLoader* loader, const char* data, int data_length, - long long total_data_length); + WebKit::WebURLLoader* loader, const char* data, int data_length); virtual void didFinishLoading(WebKit::WebURLLoader* loader); virtual void didFail( WebKit::WebURLLoader* loader, const WebKit::WebURLError& error); diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc index 2e02340..8314b93 100644 --- a/webkit/glue/webplugin_impl.cc +++ b/webkit/glue/webplugin_impl.cc @@ -97,7 +97,7 @@ class MultiPartResponseClient : public WebURLLoaderClient { // Receives individual part data from a multipart response. virtual void didReceiveData( - WebURLLoader*, const char* data, int data_size, long long) { + WebURLLoader*, const char* data, int data_size) { // TODO(ananta) // We should defer further loads on multipart resources on the same lines // as regular resources requested by plugins to prevent reentrancy. @@ -713,7 +713,7 @@ void WebPluginImpl::didReceiveResponse(WebURLLoader* loader, void WebPluginImpl::didReceiveData(WebURLLoader* loader, const char *buffer, - int length, long long) { + int length) { WebPluginResourceClient* client = GetClientFromLoader(loader); if (!client) return; diff --git a/webkit/glue/webplugin_impl.h b/webkit/glue/webplugin_impl.h index c5a77f9..c691920 100644 --- a/webkit/glue/webplugin_impl.h +++ b/webkit/glue/webplugin_impl.h @@ -169,7 +169,7 @@ class WebPluginImpl : public WebPlugin, virtual void didReceiveResponse(WebKit::WebURLLoader* loader, const WebKit::WebURLResponse& response); virtual void didReceiveData(WebKit::WebURLLoader* loader, const char *buffer, - int length, long long total_length); + int length); virtual void didFinishLoading(WebKit::WebURLLoader* loader); virtual void didFail(WebKit::WebURLLoader* loader, const WebKit::WebURLError&); diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc index cc30f42..7f53df5 100644 --- a/webkit/glue/weburlloader_impl.cc +++ b/webkit/glue/weburlloader_impl.cc @@ -233,7 +233,6 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context>, scoped_ptr<ResourceLoaderBridge> bridge_; scoped_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_; scoped_ptr<MultipartResponseDelegate> multipart_delegate_; - int64 expected_content_length_; }; WebURLLoaderImpl::Context::Context(WebURLLoaderImpl* loader) @@ -432,8 +431,6 @@ void WebURLLoaderImpl::Context::OnReceivedResponse( PopulateURLResponse(request_.url(), info, &response); response.setIsContentFiltered(content_filtered); - expected_content_length_ = response.expectedContentLength(); - if (info.mime_type == "text/vnd.chromium.ftp-dir") response.setMIMEType(WebString::fromUTF8("text/html")); @@ -478,7 +475,7 @@ void WebURLLoaderImpl::Context::OnReceivedData(const char* data, int len) { // client_->didReceiveData and client_->didReceiveResponse. multipart_delegate_->OnReceivedData(data, len); } else { - client_->didReceiveData(loader_, data, len, expected_content_length_); + client_->didReceiveData(loader_, data, len); } } |