OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" | 7 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 } | 252 } |
253 | 253 |
254 void ResourceDispatcherHost::OnShutdown() { | 254 void ResourceDispatcherHost::OnShutdown() { |
255 DCHECK(MessageLoop::current() == io_loop_); | 255 DCHECK(MessageLoop::current() == io_loop_); |
256 is_shutdown_ = true; | 256 is_shutdown_ = true; |
257 STLDeleteValues(&pending_requests_); | 257 STLDeleteValues(&pending_requests_); |
258 // Make sure we shutdown the timer now, otherwise by the time our destructor | 258 // Make sure we shutdown the timer now, otherwise by the time our destructor |
259 // runs if the timer is still running the Task is deleted twice (once by | 259 // runs if the timer is still running the Task is deleted twice (once by |
260 // the MessageLoop and the second time by RepeatingTimer). | 260 // the MessageLoop and the second time by RepeatingTimer). |
261 update_load_states_timer_.Stop(); | 261 update_load_states_timer_.Stop(); |
| 262 // Let the WebKit thread know the IO thread is going away soon and that it |
| 263 // should prepare for its own shutdown soon after. |
| 264 webkit_thread_->Shutdown(); |
262 } | 265 } |
263 | 266 |
264 bool ResourceDispatcherHost::HandleExternalProtocol(int request_id, | 267 bool ResourceDispatcherHost::HandleExternalProtocol(int request_id, |
265 int process_id, | 268 int process_id, |
266 int route_id, | 269 int route_id, |
267 const GURL& url, | 270 const GURL& url, |
268 ResourceType::Type type, | 271 ResourceType::Type type, |
269 ResourceHandler* handler) { | 272 ResourceHandler* handler) { |
270 if (!ResourceType::IsFrame(type) || URLRequest::IsHandledURL(url)) | 273 if (!ResourceType::IsFrame(type) || URLRequest::IsHandledURL(url)) |
271 return false; | 274 return false; |
(...skipping 1344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1616 case ViewHostMsg_UploadProgress_ACK::ID: | 1619 case ViewHostMsg_UploadProgress_ACK::ID: |
1617 case ViewHostMsg_SyncLoad::ID: | 1620 case ViewHostMsg_SyncLoad::ID: |
1618 return true; | 1621 return true; |
1619 | 1622 |
1620 default: | 1623 default: |
1621 break; | 1624 break; |
1622 } | 1625 } |
1623 | 1626 |
1624 return false; | 1627 return false; |
1625 } | 1628 } |
OLD | NEW |