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

Side by Side Diff: content/child/resource_dispatcher.h

Issue 1366883002: [Reland] Post loading tasks on the appropriate WebFrameScheduler's queue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #ifndef CONTENT_CHILD_RESOURCE_DISPATCHER_H_ 7 #ifndef CONTENT_CHILD_RESOURCE_DISPATCHER_H_
8 #define CONTENT_CHILD_RESOURCE_DISPATCHER_H_ 8 #define CONTENT_CHILD_RESOURCE_DISPATCHER_H_
9 9
10 #include <deque> 10 #include <deque>
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 main_thread_task_runner_ = main_thread_task_runner; 129 main_thread_task_runner_ = main_thread_task_runner;
130 } 130 }
131 131
132 private: 132 private:
133 friend class ResourceDispatcherTest; 133 friend class ResourceDispatcherTest;
134 134
135 typedef std::deque<IPC::Message*> MessageQueue; 135 typedef std::deque<IPC::Message*> MessageQueue;
136 struct PendingRequestInfo { 136 struct PendingRequestInfo {
137 PendingRequestInfo(); 137 PendingRequestInfo();
138 138
139 PendingRequestInfo(RequestPeer* peer, 139 PendingRequestInfo(
140 ResourceType resource_type, 140 RequestPeer* peer,
141 int origin_pid, 141 ResourceType resource_type,
142 const GURL& frame_origin, 142 int origin_pid,
143 const GURL& request_url, 143 const GURL& frame_origin,
144 bool download_to_file); 144 const GURL& request_url,
145 bool download_to_file,
146 scoped_refptr<base::SingleThreadTaskRunner> loading_task_queue);
145 147
146 ~PendingRequestInfo(); 148 ~PendingRequestInfo();
147 149
148 RequestPeer* peer; 150 RequestPeer* peer;
149 ThreadedDataProvider* threaded_data_provider; 151 ThreadedDataProvider* threaded_data_provider;
150 ResourceType resource_type; 152 ResourceType resource_type;
151 // The PID of the original process which issued this request. This gets 153 // The PID of the original process which issued this request. This gets
152 // non-zero only for a request proxied by another renderer, particularly 154 // non-zero only for a request proxied by another renderer, particularly
153 // requests from plugins. 155 // requests from plugins.
154 int origin_pid; 156 int origin_pid;
155 MessageQueue deferred_message_queue; 157 MessageQueue deferred_message_queue;
156 bool is_deferred; 158 bool is_deferred;
157 // Original requested url. 159 // Original requested url.
158 GURL url; 160 GURL url;
159 // The security origin of the frame that initiates this request. 161 // The security origin of the frame that initiates this request.
160 GURL frame_origin; 162 GURL frame_origin;
161 // The url of the latest response even in case of redirection. 163 // The url of the latest response even in case of redirection.
162 GURL response_url; 164 GURL response_url;
163 bool download_to_file; 165 bool download_to_file;
164 linked_ptr<IPC::Message> pending_redirect_message; 166 linked_ptr<IPC::Message> pending_redirect_message;
165 base::TimeTicks request_start; 167 base::TimeTicks request_start;
166 base::TimeTicks response_start; 168 base::TimeTicks response_start;
167 base::TimeTicks completion_time; 169 base::TimeTicks completion_time;
168 linked_ptr<base::SharedMemory> buffer; 170 linked_ptr<base::SharedMemory> buffer;
169 scoped_refptr<SharedMemoryReceivedDataFactory> received_data_factory; 171 scoped_refptr<SharedMemoryReceivedDataFactory> received_data_factory;
170 linked_ptr<SiteIsolationResponseMetaData> site_isolation_metadata; 172 linked_ptr<SiteIsolationResponseMetaData> site_isolation_metadata;
171 int buffer_size; 173 int buffer_size;
174 scoped_refptr<base::SingleThreadTaskRunner> loading_task_queue;
172 }; 175 };
173 typedef base::hash_map<int, PendingRequestInfo> PendingRequestList; 176 typedef base::hash_map<int, PendingRequestInfo> PendingRequestList;
174 177
175 // Helper to lookup the info based on the request_id. 178 // Helper to lookup the info based on the request_id.
176 // May return NULL if the request as been canceled from the client side. 179 // May return NULL if the request as been canceled from the client side.
177 PendingRequestInfo* GetPendingRequestInfo(int request_id); 180 PendingRequestInfo* GetPendingRequestInfo(int request_id);
178 181
179 // Follows redirect, if any, for the given request. 182 // Follows redirect, if any, for the given request.
180 void FollowPendingRedirect(int request_id, PendingRequestInfo& request_info); 183 void FollowPendingRedirect(int request_id, PendingRequestInfo& request_info);
181 184
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; 254 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
252 255
253 base::WeakPtrFactory<ResourceDispatcher> weak_factory_; 256 base::WeakPtrFactory<ResourceDispatcher> weak_factory_;
254 257
255 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcher); 258 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcher);
256 }; 259 };
257 260
258 } // namespace content 261 } // namespace content
259 262
260 #endif // CONTENT_CHILD_RESOURCE_DISPATCHER_H_ 263 #endif // CONTENT_CHILD_RESOURCE_DISPATCHER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698