summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-07 07:47:52 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-07 07:47:52 +0000
commitcdb11b555f79840fc9f793d808af13bcaf9bd1f7 (patch)
treef4b81528e7f534fe25b7e2c60321a7324ff4b956 /chrome/common
parent61e978ad63e1963c41db50e7b9b40580391a6170 (diff)
downloadchromium_src-cdb11b555f79840fc9f793d808af13bcaf9bd1f7.zip
chromium_src-cdb11b555f79840fc9f793d808af13bcaf9bd1f7.tar.gz
chromium_src-cdb11b555f79840fc9f793d808af13bcaf9bd1f7.tar.bz2
Landing again the CL that adds security info to canceled requests (it was breaking NPAPI tests on Vista due to an erroneuous commented line).
TBR=darin Review URL: http://codereview.chromium.org/39309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11197 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r--chrome/common/render_messages_internal.h5
-rw-r--r--chrome/common/resource_dispatcher.cc5
-rw-r--r--chrome/common/resource_dispatcher.h4
-rw-r--r--chrome/common/resource_dispatcher_unittest.cc3
-rw-r--r--chrome/common/security_filter_peer.cc16
-rw-r--r--chrome/common/security_filter_peer.h9
6 files changed, 27 insertions, 15 deletions
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index d8418e8..e0fd20c 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -193,9 +193,10 @@ IPC_BEGIN_MESSAGES(View)
int /* data_len */)
// Sent when the request has been completed.
- IPC_MESSAGE_ROUTED2(ViewMsg_Resource_RequestComplete,
+ IPC_MESSAGE_ROUTED3(ViewMsg_Resource_RequestComplete,
int /* request_id */,
- URLRequestStatus /* status */)
+ URLRequestStatus /* status */,
+ std::string /* security info */)
// Request for the renderer to evaluate an xpath to a frame and execute a
// javascript: url in that frame's context. The message is completely
diff --git a/chrome/common/resource_dispatcher.cc b/chrome/common/resource_dispatcher.cc
index e9db613..76942ec 100644
--- a/chrome/common/resource_dispatcher.cc
+++ b/chrome/common/resource_dispatcher.cc
@@ -382,7 +382,8 @@ void ResourceDispatcher::OnReceivedRedirect(int request_id,
}
void ResourceDispatcher::OnRequestComplete(int request_id,
- const URLRequestStatus& status) {
+ const URLRequestStatus& status,
+ const std::string& security_info) {
PendingRequestList::iterator it = pending_requests_.find(request_id);
if (it == pending_requests_.end()) {
// this might happen for kill()ed requests on the webkit end, so perhaps
@@ -414,7 +415,7 @@ void ResourceDispatcher::OnRequestComplete(int request_id,
// The request ID will be removed from our pending list in the destructor.
// Normally, dispatching this message causes the reference-counted request to
// die immediately.
- peer->OnCompletedRequest(status);
+ peer->OnCompletedRequest(status, security_info);
webkit_glue::NotifyCacheStats();
}
diff --git a/chrome/common/resource_dispatcher.h b/chrome/common/resource_dispatcher.h
index a6b73d5..b4e7fb1 100644
--- a/chrome/common/resource_dispatcher.h
+++ b/chrome/common/resource_dispatcher.h
@@ -108,7 +108,9 @@ class ResourceDispatcher : public base::RefCounted<ResourceDispatcher> {
void OnReceivedRedirect(int request_id, const GURL& new_url);
void OnReceivedData(int request_id, base::SharedMemoryHandle data,
int data_len);
- void OnRequestComplete(int request_id, const URLRequestStatus& status);
+ void OnRequestComplete(int request_id,
+ const URLRequestStatus& status,
+ const std::string& security_info);
// Dispatch the message to one of the message response handlers.
void DispatchMessage(const IPC::Message& message);
diff --git a/chrome/common/resource_dispatcher_unittest.cc b/chrome/common/resource_dispatcher_unittest.cc
index 43628b8..e4c8792 100644
--- a/chrome/common/resource_dispatcher_unittest.cc
+++ b/chrome/common/resource_dispatcher_unittest.cc
@@ -44,7 +44,8 @@ class TestRequestCallback : public ResourceLoaderBridge::Peer {
data_.append(data, len);
}
- virtual void OnCompletedRequest(const URLRequestStatus& status) {
+ virtual void OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info) {
EXPECT_FALSE(complete_);
complete_ = true;
}
diff --git a/chrome/common/security_filter_peer.cc b/chrome/common/security_filter_peer.cc
index aef72ebb..30d6d1e 100644
--- a/chrome/common/security_filter_peer.cc
+++ b/chrome/common/security_filter_peer.cc
@@ -114,7 +114,8 @@ void SecurityFilterPeer::OnReceivedData(const char* data, int len) {
NOTREACHED();
}
-void SecurityFilterPeer::OnCompletedRequest(const URLRequestStatus& status) {
+void SecurityFilterPeer::OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info) {
NOTREACHED();
}
@@ -175,7 +176,8 @@ void BufferedPeer::OnReceivedData(const char* data, int len) {
data_.append(data, len);
}
-void BufferedPeer::OnCompletedRequest(const URLRequestStatus& status) {
+void BufferedPeer::OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info) {
// Make sure we delete ourselves at the end of this call.
scoped_ptr<BufferedPeer> this_deleter(this);
@@ -184,7 +186,7 @@ void BufferedPeer::OnCompletedRequest(const URLRequestStatus& status) {
// Pretend we failed to load the resource.
original_peer_->OnReceivedResponse(response_info_, true);
URLRequestStatus status(URLRequestStatus::CANCELED, 0);
- original_peer_->OnCompletedRequest(status);
+ original_peer_->OnCompletedRequest(status, security_info);
return;
}
@@ -192,7 +194,7 @@ void BufferedPeer::OnCompletedRequest(const URLRequestStatus& status) {
if (!data_.empty())
original_peer_->OnReceivedData(data_.data(),
static_cast<int>(data_.size()));
- original_peer_->OnCompletedRequest(status);
+ original_peer_->OnCompletedRequest(status, security_info);
}
////////////////////////////////////////////////////////////////////////////////
@@ -221,15 +223,17 @@ void ReplaceContentPeer::OnReceivedData(const char* data, int len) {
// Ignore this, we'll serve some alternate content in OnCompletedRequest.
}
-void ReplaceContentPeer::OnCompletedRequest(const URLRequestStatus& status) {
+void ReplaceContentPeer::OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info) {
webkit_glue::ResourceLoaderBridge::ResponseInfo info;
ProcessResponseInfo(info, &info, mime_type_);
+ info.security_info = security_info;
info.content_length = static_cast<int>(data_.size());
original_peer_->OnReceivedResponse(info, true);
if (!data_.empty())
original_peer_->OnReceivedData(data_.data(),
static_cast<int>(data_.size()));
- original_peer_->OnCompletedRequest(URLRequestStatus());
+ original_peer_->OnCompletedRequest(URLRequestStatus(), security_info);
// The request processing is complete, we must delete ourselves.
delete this;
diff --git a/chrome/common/security_filter_peer.h b/chrome/common/security_filter_peer.h
index ef08426..816f9da 100644
--- a/chrome/common/security_filter_peer.h
+++ b/chrome/common/security_filter_peer.h
@@ -43,7 +43,8 @@ class SecurityFilterPeer : public webkit_glue::ResourceLoaderBridge::Peer {
const webkit_glue::ResourceLoaderBridge::ResponseInfo& info,
bool content_filtered);
virtual void OnReceivedData(const char* data, int len);
- virtual void OnCompletedRequest(const URLRequestStatus& status);
+ virtual void OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info);
virtual std::string GetURLForDebugging();
protected:
@@ -71,7 +72,8 @@ class BufferedPeer : public SecurityFilterPeer {
const webkit_glue::ResourceLoaderBridge::ResponseInfo& info,
bool content_filtered);
virtual void OnReceivedData(const char* data, int len);
- virtual void OnCompletedRequest(const URLRequestStatus& status);
+ virtual void OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info);
protected:
// Invoked when the entire request has been processed before the data is sent
@@ -109,7 +111,8 @@ class ReplaceContentPeer : public SecurityFilterPeer {
const webkit_glue::ResourceLoaderBridge::ResponseInfo& info,
bool content_filtered);
void OnReceivedData(const char* data, int len);
- void OnCompletedRequest(const URLRequestStatus& status);
+ void OnCompletedRequest(const URLRequestStatus& status,
+ const std::string& security_info);
private:
webkit_glue::ResourceLoaderBridge::ResponseInfo response_info_;
std::string mime_type_;