15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/browser/loader/resource_request_info_impl.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "content/browser/loader/global_routing_id.h" 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "content/browser/loader/resource_message_filter.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/net/url_request_user_data.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/global_request_id.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "content/public/common/process_type.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ---------------------------------------------------------------------------- 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ResourceRequestInfo 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const ResourceRequestInfo* ResourceRequestInfo::ForRequest( 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const net::URLRequest* request) { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ResourceRequestInfoImpl::ForRequest(request); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void ResourceRequestInfo::AllocateForTesting(net::URLRequest* request, 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ResourceType resource_type, 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ResourceContext* context, 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) int render_process_id, 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) int render_view_id, 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) int render_frame_id, 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bool is_async) { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ResourceRequestInfoImpl* info = 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new ResourceRequestInfoImpl( 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PROCESS_TYPE_RENDERER, // process_type 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) render_process_id, // child_id 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) render_view_id, // route_id 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, // origin_pid 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0, // request_id 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) render_frame_id, // render_frame_id 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) resource_type == RESOURCE_TYPE_MAIN_FRAME, // is_main_frame 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false, // parent_is_main_frame 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 0, // parent_render_frame_id 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) resource_type, // resource_type 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ui::PAGE_TRANSITION_LINK, // transition_type 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) false, // should_replace_current_entry 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false, // is_download 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) false, // is_stream 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) true, // allow_download 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false, // has_user_gesture 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) false, // enable load timing 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebReferrerPolicyDefault, // referrer_policy 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebPageVisibilityStateVisible, // visibility_state 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) context, // context 5568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) base::WeakPtr<ResourceMessageFilter>(), // filter 564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) is_async); // is_async 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) info->AssociateWithRequest(request); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)bool ResourceRequestInfo::GetRenderFrameForRequest( 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const net::URLRequest* request, 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* render_process_id, 645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int* render_frame_id) { 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestUserData* user_data = static_cast<URLRequestUserData*>( 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) request->GetUserData(URLRequestUserData::kUserDataKey)); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!user_data) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *render_process_id = user_data->render_process_id(); 705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *render_frame_id = user_data->render_frame_id(); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ---------------------------------------------------------------------------- 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ResourceRequestInfoImpl 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ResourceRequestInfoImpl* ResourceRequestInfoImpl::ForRequest( 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) net::URLRequest* request) { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return static_cast<ResourceRequestInfoImpl*>(request->GetUserData(NULL)); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const ResourceRequestInfoImpl* ResourceRequestInfoImpl::ForRequest( 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const net::URLRequest* request) { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ForRequest(const_cast<net::URLRequest*>(request)); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ResourceRequestInfoImpl::ResourceRequestInfoImpl( 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int process_type, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int child_id, 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int route_id, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int origin_pid, 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int request_id, 95a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int render_frame_id, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_main_frame, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool parent_is_main_frame, 98a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int parent_render_frame_id, 995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ResourceType resource_type, 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ui::PageTransition transition_type, 101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool should_replace_current_entry, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_download, 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_stream, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool allow_download, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool has_user_gesture, 1066e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) bool enable_load_timing, 107f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebReferrerPolicy referrer_policy, 1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebPageVisibilityState visibility_state, 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ResourceContext* context, 11068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) base::WeakPtr<ResourceMessageFilter> filter, 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool is_async) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : cross_site_handler_(NULL), 113f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) detachable_handler_(NULL), 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) process_type_(process_type), 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) child_id_(child_id), 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) route_id_(route_id), 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) origin_pid_(origin_pid), 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) request_id_(request_id), 119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) render_frame_id_(render_frame_id), 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is_main_frame_(is_main_frame), 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) parent_is_main_frame_(parent_is_main_frame), 122a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) parent_render_frame_id_(parent_render_frame_id), 123f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_replace_current_entry_(should_replace_current_entry), 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) is_download_(is_download), 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) is_stream_(is_stream), 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) allow_download_(allow_download), 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) has_user_gesture_(has_user_gesture), 1286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) enable_load_timing_(enable_load_timing), 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) was_ignored_by_handler_(false), 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) resource_type_(resource_type), 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) transition_type_(transition_type), 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) memory_cost_(0), 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) referrer_policy_(referrer_policy), 1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) visibility_state_(visibility_state), 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) context_(context), 13668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) filter_(filter), 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) is_async_(is_async) { 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ResourceRequestInfoImpl::~ResourceRequestInfoImpl() { 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ResourceContext* ResourceRequestInfoImpl::GetContext() const { 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return context_; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ResourceRequestInfoImpl::GetChildID() const { 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return child_id_; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ResourceRequestInfoImpl::GetRouteID() const { 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return route_id_; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ResourceRequestInfoImpl::GetOriginPID() const { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return origin_pid_; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ResourceRequestInfoImpl::GetRequestID() const { 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return request_id_; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)int ResourceRequestInfoImpl::GetRenderFrameID() const { 164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return render_frame_id_; 165a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ResourceRequestInfoImpl::IsMainFrame() const { 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return is_main_frame_; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ResourceRequestInfoImpl::ParentIsMainFrame() const { 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return parent_is_main_frame_; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int ResourceRequestInfoImpl::GetParentRenderFrameID() const { 176a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return parent_render_frame_id_; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)ResourceType ResourceRequestInfoImpl::GetResourceType() const { 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return resource_type_; 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)int ResourceRequestInfoImpl::GetProcessType() const { 1845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return process_type_; 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 187f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)blink::WebReferrerPolicy ResourceRequestInfoImpl::GetReferrerPolicy() const { 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return referrer_policy_; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)blink::WebPageVisibilityState 1925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)ResourceRequestInfoImpl::GetVisibilityState() const { 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return visibility_state_; 1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciui::PageTransition ResourceRequestInfoImpl::GetPageTransition() const { 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return transition_type_; 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ResourceRequestInfoImpl::HasUserGesture() const { 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return has_user_gesture_; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ResourceRequestInfoImpl::WasIgnoredByHandler() const { 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return was_ignored_by_handler_; 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)bool ResourceRequestInfoImpl::GetAssociatedRenderFrame( 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* render_process_id, 2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int* render_frame_id) const { 2115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (process_type_ == PROCESS_TYPE_PLUGIN) { 21258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *render_process_id = origin_pid_; 2135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *render_frame_id = render_frame_id_; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *render_process_id = child_id_; 2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) *render_frame_id = render_frame_id_; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ResourceRequestInfoImpl::IsAsync() const { 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return is_async_; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool ResourceRequestInfoImpl::IsDownload() const { 226f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return is_download_; 227f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 228f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ResourceRequestInfoImpl::AssociateWithRequest(net::URLRequest* request) { 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) request->SetUserData(NULL, this); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int render_process_id; 2325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int render_frame_id; 2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) if (GetAssociatedRenderFrame(&render_process_id, &render_frame_id)) { 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) request->SetUserData( 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestUserData::kUserDataKey, 2365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) new URLRequestUserData(render_process_id, render_frame_id)); 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GlobalRequestID ResourceRequestInfoImpl::GetGlobalRequestID() const { 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GlobalRequestID(child_id_, request_id_); 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)GlobalRoutingID ResourceRequestInfoImpl::GetGlobalRoutingID() const { 245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return GlobalRoutingID(child_id_, route_id_); 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 24868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)void ResourceRequestInfoImpl::UpdateForTransfer( 24968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) int child_id, 25068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) int route_id, 25168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) int origin_pid, 25268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) int request_id, 253a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int parent_render_frame_id, 25468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) base::WeakPtr<ResourceMessageFilter> filter) { 25568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) child_id_ = child_id; 25668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) route_id_ = route_id; 25768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) origin_pid_ = origin_pid; 25868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) request_id_ = request_id; 259a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) parent_render_frame_id_ = parent_render_frame_id; 26068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) filter_ = filter; 26168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} 26268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 264