| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #include "chrome/browser/renderer_host/buffered_resource_handler.h" | 5 #include "chrome/browser/renderer_host/buffered_resource_handler.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/histogram.h" | 9 #include "base/histogram.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 ResourceDispatcherHost::InfoForRequest(request_); | 395 ResourceDispatcherHost::InfoForRequest(request_); |
| 396 host_->PauseRequest(info->child_id(), info->request_id(), true); | 396 host_->PauseRequest(info->child_id(), info->request_id(), true); |
| 397 | 397 |
| 398 // Schedule plugin loading on the file thread. | 398 // Schedule plugin loading on the file thread. |
| 399 // Note: it's possible that the only reference to this object is the task. If | 399 // Note: it's possible that the only reference to this object is the task. If |
| 400 // If the task executes on the file thread, and before it returns, the task it | 400 // If the task executes on the file thread, and before it returns, the task it |
| 401 // posts to the IO thread runs, then this object will get destructed on the | 401 // posts to the IO thread runs, then this object will get destructed on the |
| 402 // file thread. This breaks assumptions in other message handlers (i.e. when | 402 // file thread. This breaks assumptions in other message handlers (i.e. when |
| 403 // unregistering with NotificationService in the destructor). | 403 // unregistering with NotificationService in the destructor). |
| 404 AddRef(); | 404 AddRef(); |
| 405 ChromeThread::GetMessageLoop(ChromeThread::FILE)->PostTask(FROM_HERE, | 405 ChromeThread::PostTask( |
| 406 ChromeThread::FILE, FROM_HERE, |
| 406 NewRunnableFunction(&BufferedResourceHandler::LoadPlugins, | 407 NewRunnableFunction(&BufferedResourceHandler::LoadPlugins, |
| 407 this, host_->ui_loop())); | 408 this, host_->ui_loop())); |
| 408 return true; | 409 return true; |
| 409 } | 410 } |
| 410 | 411 |
| 411 // This test mirrors the decision that WebKit makes in | 412 // This test mirrors the decision that WebKit makes in |
| 412 // WebFrameLoaderClient::dispatchDecidePolicyForMIMEType. | 413 // WebFrameLoaderClient::dispatchDecidePolicyForMIMEType. |
| 413 bool BufferedResourceHandler::ShouldDownload(bool* need_plugin_list) { | 414 bool BufferedResourceHandler::ShouldDownload(bool* need_plugin_list) { |
| 414 if (need_plugin_list) | 415 if (need_plugin_list) |
| 415 *need_plugin_list = false; | 416 *need_plugin_list = false; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 wait_for_plugins_ = false; | 493 wait_for_plugins_ = false; |
| 493 if (request_) { | 494 if (request_) { |
| 494 ResourceDispatcherHostRequestInfo* info = | 495 ResourceDispatcherHostRequestInfo* info = |
| 495 ResourceDispatcherHost::InfoForRequest(request_); | 496 ResourceDispatcherHost::InfoForRequest(request_); |
| 496 host_->PauseRequest(info->child_id(), info->request_id(), false); | 497 host_->PauseRequest(info->child_id(), info->request_id(), false); |
| 497 if (!CompleteResponseStarted(info->request_id(), false)) | 498 if (!CompleteResponseStarted(info->request_id(), false)) |
| 498 host_->CancelRequest(info->child_id(), info->request_id(), false); | 499 host_->CancelRequest(info->child_id(), info->request_id(), false); |
| 499 } | 500 } |
| 500 Release(); | 501 Release(); |
| 501 } | 502 } |
| OLD | NEW |