summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/debugger/devtools_sanity_unittest.cc6
-rw-r--r--chrome/test/data/devtools/image.html7
-rw-r--r--chrome/test/data/devtools/image.pngbin0 -> 257796 bytes
-rw-r--r--webkit/api/public/WebURLLoaderClient.h2
-rw-r--r--webkit/api/src/ResourceHandle.cpp15
-rw-r--r--webkit/glue/devtools/js/tests.js57
-rw-r--r--webkit/glue/ftp_directory_listing_response_delegate.cc2
-rw-r--r--webkit/glue/multipart_response_delegate.cc13
-rw-r--r--webkit/glue/multipart_response_delegate_unittest.cc3
-rw-r--r--webkit/glue/resource_fetcher.cc3
-rw-r--r--webkit/glue/resource_fetcher.h3
-rw-r--r--webkit/glue/webplugin_impl.cc4
-rw-r--r--webkit/glue/webplugin_impl.h2
-rw-r--r--webkit/glue/weburlloader_impl.cc5
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
new file mode 100644
index 0000000..97410f3
--- /dev/null
+++ b/chrome/test/data/devtools/image.png
Binary files differ
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);
}
}