summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-21 18:48:12 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-21 18:48:12 +0000
commited425140a40a065214916fe306fb06841e1d2f85 (patch)
tree4144d5f8c7d0e88f355610fe7e2c62d5a7ec9580 /content/browser
parent453a17823de86dc75e39d0d24d271e953c9ffedb (diff)
downloadchromium_src-ed425140a40a065214916fe306fb06841e1d2f85.zip
chromium_src-ed425140a40a065214916fe306fb06841e1d2f85.tar.gz
chromium_src-ed425140a40a065214916fe306fb06841e1d2f85.tar.bz2
Fix a regression in sending the content settings data from r85247. The content settings needs to be sent on the IO thread, doing it on the UI thread introduces a race condition.
Review URL: http://codereview.chromium.org/7163008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89868 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/renderer_host/async_resource_handler.cc15
-rw-r--r--content/browser/renderer_host/async_resource_handler.h1
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host.cc3
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host_delegate.cc8
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host_delegate.h13
-rw-r--r--content/browser/renderer_host/sync_resource_handler.cc4
6 files changed, 27 insertions, 17 deletions
diff --git a/content/browser/renderer_host/async_resource_handler.cc b/content/browser/renderer_host/async_resource_handler.cc
index 21986e8..aaaedf0 100644
--- a/content/browser/renderer_host/async_resource_handler.cc
+++ b/content/browser/renderer_host/async_resource_handler.cc
@@ -17,6 +17,7 @@
#include "content/browser/renderer_host/resource_dispatcher_host_delegate.h"
#include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
#include "content/browser/renderer_host/resource_message_filter.h"
+#include "content/browser/resource_context.h"
#include "content/common/resource_response.h"
#include "content/common/resource_messages.h"
#include "content/common/view_messages.h"
@@ -79,11 +80,9 @@ AsyncResourceHandler::AsyncResourceHandler(
ResourceMessageFilter* filter,
int routing_id,
const GURL& url,
- HostZoomMap* host_zoom_map,
ResourceDispatcherHost* resource_dispatcher_host)
: filter_(filter),
routing_id_(routing_id),
- host_zoom_map_(host_zoom_map),
rdh_(resource_dispatcher_host),
next_buffer_size_(kInitialReadBufSize) {
}
@@ -106,7 +105,7 @@ bool AsyncResourceHandler::OnRequestRedirected(int request_id,
net::URLRequest* request = rdh_->GetURLRequest(
GlobalRequestID(filter_->child_id(), request_id));
if (rdh_->delegate())
- rdh_->delegate()->OnRequestRedirected(request, response);
+ rdh_->delegate()->OnRequestRedirected(request, response, filter_);
DevToolsNetLogObserver::PopulateResponseInfo(request, response);
return filter_->Send(new ResourceMsg_ReceivedRedirect(
@@ -124,16 +123,20 @@ bool AsyncResourceHandler::OnResponseStarted(int request_id,
GlobalRequestID(filter_->child_id(), request_id));
if (rdh_->delegate())
- rdh_->delegate()->OnResponseStarted(request, response);
+ rdh_->delegate()->OnResponseStarted(request, response, filter_);
DevToolsNetLogObserver::PopulateResponseInfo(request, response);
+ const content::ResourceContext& resource_context =
+ filter_->resource_context();
+ HostZoomMap* host_zoom_map = resource_context.host_zoom_map();
+
ResourceDispatcherHostRequestInfo* info = rdh_->InfoForRequest(request);
- if (info->resource_type() == ResourceType::MAIN_FRAME && host_zoom_map_) {
+ if (info->resource_type() == ResourceType::MAIN_FRAME && host_zoom_map) {
GURL request_url(request->url());
filter_->Send(new ViewMsg_SetZoomLevelForLoadingURL(
info->route_id(),
- request_url, host_zoom_map_->GetZoomLevel(net::GetHostOrSpecFromURL(
+ request_url, host_zoom_map->GetZoomLevel(net::GetHostOrSpecFromURL(
request_url))));
}
diff --git a/content/browser/renderer_host/async_resource_handler.h b/content/browser/renderer_host/async_resource_handler.h
index ea33a19..bfef818 100644
--- a/content/browser/renderer_host/async_resource_handler.h
+++ b/content/browser/renderer_host/async_resource_handler.h
@@ -22,7 +22,6 @@ class AsyncResourceHandler : public ResourceHandler {
AsyncResourceHandler(ResourceMessageFilter* filter,
int routing_id,
const GURL& url,
- HostZoomMap* host_zoom_map,
ResourceDispatcherHost* resource_dispatcher_host);
// ResourceHandler implementation:
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
index 6c19527..2fcdca3 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc
@@ -408,8 +408,7 @@ void ResourceDispatcherHost::BeginRequest(
filter_, request_data.url, sync_result, this);
} else {
handler = new AsyncResourceHandler(
- filter_, route_id, request_data.url, resource_context.host_zoom_map(),
- this);
+ filter_, route_id, request_data.url, this);
}
// The RedirectToFileResourceHandler depends on being next in the chain.
diff --git a/content/browser/renderer_host/resource_dispatcher_host_delegate.cc b/content/browser/renderer_host/resource_dispatcher_host_delegate.cc
index 849b6a4..784dd42 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_delegate.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_delegate.cc
@@ -68,9 +68,13 @@ bool ResourceDispatcherHostDelegate::ShouldForceDownloadResource(
}
void ResourceDispatcherHostDelegate::OnResponseStarted(
- net::URLRequest* request, ResourceResponse* response) {
+ net::URLRequest* request,
+ ResourceResponse* response,
+ ResourceMessageFilter* filter) {
}
void ResourceDispatcherHostDelegate::OnRequestRedirected(
- net::URLRequest* request, ResourceResponse* response) {
+ net::URLRequest* request,
+ ResourceResponse* response,
+ ResourceMessageFilter* filter) {
}
diff --git a/content/browser/renderer_host/resource_dispatcher_host_delegate.h b/content/browser/renderer_host/resource_dispatcher_host_delegate.h
index bd25993..694d36c 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_delegate.h
+++ b/content/browser/renderer_host/resource_dispatcher_host_delegate.h
@@ -13,6 +13,7 @@
class GURL;
class ResourceDispatcherHostLoginDelegate;
class ResourceHandler;
+class ResourceMessageFilter;
struct ResourceHostMsg_Request;
struct ResourceResponse;
@@ -90,12 +91,16 @@ class ResourceDispatcherHostDelegate {
const GURL& url, const std::string& mime_type);
// Informs the delegate that a response has started.
- virtual void OnResponseStarted(net::URLRequest* request,
- ResourceResponse* response);
+ virtual void OnResponseStarted(
+ net::URLRequest* request,
+ ResourceResponse* response,
+ ResourceMessageFilter* filter);
// Informs the delegate that a request has been redirected.
- virtual void OnRequestRedirected(net::URLRequest* request,
- ResourceResponse* response);
+ virtual void OnRequestRedirected(
+ net::URLRequest* request,
+ ResourceResponse* response,
+ ResourceMessageFilter* filter);
protected:
ResourceDispatcherHostDelegate();
diff --git a/content/browser/renderer_host/sync_resource_handler.cc b/content/browser/renderer_host/sync_resource_handler.cc
index 6599e22..d0dd937 100644
--- a/content/browser/renderer_host/sync_resource_handler.cc
+++ b/content/browser/renderer_host/sync_resource_handler.cc
@@ -42,7 +42,7 @@ bool SyncResourceHandler::OnRequestRedirected(int request_id,
net::URLRequest* request = rdh_->GetURLRequest(
GlobalRequestID(filter_->child_id(), request_id));
if (rdh_->delegate())
- rdh_->delegate()->OnRequestRedirected(request, response);
+ rdh_->delegate()->OnRequestRedirected(request, response, filter_);
DevToolsNetLogObserver::PopulateResponseInfo(request, response);
// TODO(darin): It would be much better if this could live in WebCore, but
@@ -61,7 +61,7 @@ bool SyncResourceHandler::OnResponseStarted(int request_id,
net::URLRequest* request = rdh_->GetURLRequest(
GlobalRequestID(filter_->child_id(), request_id));
if (rdh_->delegate())
- rdh_->delegate()->OnResponseStarted(request, response);
+ rdh_->delegate()->OnResponseStarted(request, response, filter_);
DevToolsNetLogObserver::PopulateResponseInfo(request, response);