diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-22 17:28:43 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-22 17:28:43 +0000 |
commit | 38e0898607eea03649b7b07e9cf890af7dc33ac7 (patch) | |
tree | 6ac95fd496661a6e0718c349bba089144e0fef09 /chrome/browser/renderer_host/resource_request_details.cc | |
parent | 2a9662e31f18f77b856487b7266c70ccede557e0 (diff) | |
download | chromium_src-38e0898607eea03649b7b07e9cf890af7dc33ac7.zip chromium_src-38e0898607eea03649b7b07e9cf890af7dc33ac7.tar.gz chromium_src-38e0898607eea03649b7b07e9cf890af7dc33ac7.tar.bz2 |
FBTF: More dtor deinlining. (Can almost see the end!)
BUG=none
TEST=compiles
Review URL: http://codereview.chromium.org/3962004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63527 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/resource_request_details.cc')
-rw-r--r-- | chrome/browser/renderer_host/resource_request_details.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/resource_request_details.cc b/chrome/browser/renderer_host/resource_request_details.cc new file mode 100644 index 0000000..20a255d --- /dev/null +++ b/chrome/browser/renderer_host/resource_request_details.cc @@ -0,0 +1,54 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/renderer_host/resource_request_details.h" + + +ResourceRequestDetails::ResourceRequestDetails(const URLRequest* request, + int cert_id) + : url_(request->url()), + original_url_(request->original_url()), + method_(request->method()), + referrer_(request->referrer()), + has_upload_(request->has_upload()), + load_flags_(request->load_flags()), + status_(request->status()), + ssl_cert_id_(cert_id), + ssl_cert_status_(request->ssl_info().cert_status) { + const ResourceDispatcherHostRequestInfo* info = + ResourceDispatcherHost::InfoForRequest(request); + DCHECK(info); + resource_type_ = info->resource_type(); + frame_origin_ = info->frame_origin(); + main_frame_origin_ = info->main_frame_origin(); + + // If request is from the worker process on behalf of a renderer, use + // the renderer process id, since it consumes the notification response + // such as ssl state etc. + const WorkerProcessHost::WorkerInstance* worker_instance = + WorkerService::GetInstance()->FindWorkerInstance(info->child_id()); + if (worker_instance) { + DCHECK(!worker_instance->worker_document_set()->IsEmpty()); + const WorkerDocumentSet::DocumentInfoSet& parents = + worker_instance->worker_document_set()->documents(); + // TODO(atwilson): need to notify all associated renderers in the case + // of ssl state change (http://crbug.com/25357). For now, just notify + // the first one (works for dedicated workers and shared workers with + // a single process). + origin_child_id_ = parents.begin()->renderer_id(); + } else { + origin_child_id_ = info->child_id(); + } +} + +ResourceRequestDetails::~ResourceRequestDetails() {} + +ResourceRedirectDetails::ResourceRedirectDetails(const URLRequest* request, + int cert_id, + const GURL& new_url) + : ResourceRequestDetails(request, cert_id), + new_url_(new_url) { +} + +ResourceRedirectDetails::~ResourceRedirectDetails() {} |