Index: content/browser/renderer_host/resource_dispatcher_host_request_info.cc |
=================================================================== |
--- content/browser/renderer_host/resource_dispatcher_host_request_info.cc (revision 124423) |
+++ content/browser/renderer_host/resource_dispatcher_host_request_info.cc (working copy) |
@@ -6,10 +6,13 @@ |
#include "content/browser/renderer_host/resource_handler.h" |
#include "content/browser/ssl/ssl_client_auth_handler.h" |
+#include "content/browser/worker_host/worker_service_impl.h" |
#include "content/public/browser/resource_dispatcher_host_login_delegate.h" |
#include "net/url_request/url_request.h" |
#include "webkit/blob/blob_data.h" |
+using content::WorkerServiceImpl; |
+ |
ResourceDispatcherHostRequestInfo::ResourceDispatcherHostRequestInfo( |
ResourceHandler* handler, |
content::ProcessType process_type, |
@@ -29,30 +32,30 @@ |
bool has_user_gesture, |
WebKit::WebReferrerPolicy referrer_policy, |
content::ResourceContext* context) |
- : resource_handler_(handler), |
+ : ResourceRequestInfo(context, |
+ child_id, |
+ route_id, |
+ origin_pid, |
+ request_id, |
+ is_main_frame, |
+ frame_id, |
+ parent_is_main_frame, |
+ parent_frame_id, |
+ resource_type, |
+ referrer_policy, |
+ upload_size), |
+ resource_handler_(handler), |
cross_site_handler_(NULL), |
process_type_(process_type), |
- child_id_(child_id), |
- route_id_(route_id), |
- origin_pid_(origin_pid), |
- request_id_(request_id), |
- is_main_frame_(is_main_frame), |
- frame_id_(frame_id), |
- parent_is_main_frame_(parent_is_main_frame), |
- parent_frame_id_(parent_frame_id), |
pending_data_count_(0), |
is_download_(is_download), |
allow_download_(allow_download), |
has_user_gesture_(has_user_gesture), |
pause_count_(0), |
- resource_type_(resource_type), |
transition_type_(transition_type), |
- upload_size_(upload_size), |
last_upload_position_(0), |
waiting_for_upload_progress_ack_(false), |
memory_cost_(0), |
- referrer_policy_(referrer_policy), |
- context_(context), |
is_paused_(false), |
called_on_response_started_(false), |
has_started_reading_(false), |
@@ -60,9 +63,30 @@ |
} |
ResourceDispatcherHostRequestInfo::~ResourceDispatcherHostRequestInfo() { |
- resource_handler_->OnRequestClosed(); |
+ if (resource_handler_) |
+ resource_handler_->OnRequestClosed(); |
} |
+bool ResourceDispatcherHostRequestInfo::GetAssociatedRenderView( |
+ int* render_process_id, |
+ int* render_view_id) const { |
+ // If the request is from the worker process, find a tab that owns the worker. |
+ if (process_type_ == content::PROCESS_TYPE_WORKER) { |
+ // Need to display some related UI for this network request - pick an |
+ // arbitrary parent to do so. |
+ if (!WorkerServiceImpl::GetInstance()->GetRendererForWorker( |
+ child_id_, render_process_id, render_view_id)) { |
+ *render_process_id = -1; |
+ *render_view_id = -1; |
+ return false; |
+ } |
+ } else { |
+ *render_process_id = child_id_; |
+ *render_view_id = route_id_; |
+ } |
+ return true; |
+} |
+ |
void ResourceDispatcherHostRequestInfo::set_resource_handler( |
ResourceHandler* resource_handler) { |
resource_handler_ = resource_handler; |