Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(724)

Unified Diff: content/browser/renderer_host/resource_dispatcher_host.cc

Issue 7058041: Remove ResourceDispatcherHost dependency on Chrome's LoginHandler and ExternalProtocolHandler. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix deps Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/resource_dispatcher_host.cc
===================================================================
--- content/browser/renderer_host/resource_dispatcher_host.cc (revision 87739)
+++ content/browser/renderer_host/resource_dispatcher_host.cc (working copy)
@@ -23,14 +23,10 @@
#include "chrome/browser/download/download_request_limiter.h"
#include "chrome/browser/download/download_util.h"
#include "chrome/browser/download/save_file_manager.h"
-#include "chrome/browser/external_protocol/external_protocol_handler.h"
-#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/renderer_host/download_resource_handler.h"
#include "chrome/browser/renderer_host/save_file_resource_handler.h"
#include "chrome/browser/ssl/ssl_client_auth_handler.h"
#include "chrome/browser/ssl/ssl_manager.h"
-#include "chrome/browser/ui/login/login_prompt.h"
-#include "chrome/common/chrome_switches.h"
#include "content/browser/appcache/chrome_appcache_service.h"
#include "content/browser/cert_store.h"
#include "content/browser/child_process_security_policy.h"
@@ -48,12 +44,15 @@
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_view_host_notification_task.h"
+#include "content/browser/renderer_host/resource_dispatcher_host_delegate.h"
+#include "content/browser/renderer_host/resource_dispatcher_host_login_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/renderer_host/resource_queue.h"
#include "content/browser/renderer_host/resource_request_details.h"
#include "content/browser/renderer_host/sync_resource_handler.h"
#include "content/browser/worker_host/worker_service.h"
+#include "content/common/content_switches.h"
#include "content/common/notification_service.h"
#include "content/common/resource_messages.h"
#include "content/common/url_constants.h"
@@ -242,7 +241,7 @@
max_outstanding_requests_cost_per_process_(
kMaxOutstandingRequestsCostPerProcess),
filter_(NULL),
- observer_(NULL),
+ delegate_(NULL),
allow_cross_origin_auth_prompt_(false) {
resource_queue_.Initialize(resource_queue_delegates);
}
@@ -312,10 +311,8 @@
return false;
}
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableFunction(
- &ExternalProtocolHandler::LaunchUrl, url, child_id, route_id));
+ if (delegate_)
+ delegate_->HandleExternalProtocol(url, child_id, route_id);
handler->OnResponseCompleted(
request_id,
@@ -396,7 +393,7 @@
const GURL referrer = MaybeStripReferrer(request_data.referrer);
// Allow the observer to block/handle the request.
- if (observer_ && !observer_->ShouldBeginRequest(child_id, route_id,
+ if (delegate_ && !delegate_->ShouldBeginRequest(child_id, route_id,
request_data,
resource_context,
referrer)) {
@@ -495,12 +492,10 @@
// Insert a buffered event handler before the actual one.
handler = new BufferedResourceHandler(handler, this, request);
- if (observer_) {
+ if (delegate_) {
bool sub = request_data.resource_type != ResourceType::MAIN_FRAME;
- ResourceHandler* temp_handler = handler;
- observer_->RequestBeginning(
- &temp_handler, request, sub, child_id, route_id);
- handler = temp_handler;
+ handler = delegate_->RequestBeginning(
+ handler, request, sub, child_id, route_id);
}
// Make extra info and read footer (contains request ID).
@@ -716,11 +711,8 @@
prompt_for_save_location,
save_info));
- if (observer_) {
- ResourceHandler* temp_handler = handler;
- observer_->DownloadStarting(&temp_handler, child_id, route_id);
- handler = temp_handler;
- }
+ if (delegate_)
+ handler = delegate_->DownloadStarting(handler, child_id, route_id);
const net::URLRequestContext* request_context = context.request_context();
@@ -976,8 +968,8 @@
info->child_id());
// Notify interested parties that the request object is going away.
- if (info->login_handler())
- info->login_handler()->OnRequestCancelled();
+ if (info->login_delegate())
+ info->login_delegate()->OnRequestCancelled();
if (info->ssl_client_auth_handler())
info->ssl_client_auth_handler()->OnRequestCancelled();
resource_queue_.RemoveRequest(iter->first);
@@ -1039,7 +1031,7 @@
return;
}
- if (observer_ && !observer_->AcceptAuthRequest(request, auth_info)) {
+ if (delegate_ && !delegate_->AcceptAuthRequest(request, auth_info)) {
request->CancelAuth();
return;
}
@@ -1067,16 +1059,21 @@
// That would also solve the problem of the net::URLRequest being cancelled
// before we receive authentication.
ResourceDispatcherHostRequestInfo* info = InfoForRequest(request);
- DCHECK(!info->login_handler()) <<
- "OnAuthRequired called with login_handler pending";
- info->set_login_handler(CreateLoginPrompt(auth_info, request));
+ DCHECK(!info->login_delegate()) <<
+ "OnAuthRequired called with login_delegate pending";
+ if (delegate_) {
+ info->set_login_delegate(delegate_->CreateLoginDelegate(
+ auth_info, request));
+ }
+ if (!info->login_delegate())
+ request->CancelAuth();
}
void ResourceDispatcherHost::OnCertificateRequested(
net::URLRequest* request,
net::SSLCertRequestInfo* cert_request_info) {
DCHECK(request);
- if (observer_ && !observer_->AcceptSSLClientCertificateRequest(
+ if (delegate_ && !delegate_->AcceptSSLClientCertificateRequest(
request, cert_request_info)) {
request->Cancel();
return;
@@ -1229,9 +1226,9 @@
// In this case, ignore the cancel since we handle downloads in the browser.
ResourceDispatcherHostRequestInfo* info = InfoForRequest(request);
if (!from_renderer || !info->is_download()) {
- if (info->login_handler()) {
- info->login_handler()->OnRequestCancelled();
- info->set_login_handler(NULL);
+ if (info->login_delegate()) {
+ info->login_delegate()->OnRequestCancelled();
+ info->set_login_delegate(NULL);
}
if (info->ssl_client_auth_handler()) {
info->ssl_client_auth_handler()->OnRequestCancelled();
@@ -1364,8 +1361,8 @@
// TODO(cbentzel): Should we isolate this to resource handlers instead of
// adding an interface to the observer?
- if (!defer_start && observer_ && filter_) {
- defer_start = observer_->ShouldDeferStart(request,
+ if (!defer_start && delegate_ && filter_) {
+ defer_start = delegate_->ShouldDeferStart(request,
filter_->resource_context());
}

Powered by Google App Engine
This is Rietveld 408576698