| Index: content/browser/devtools/devtools_http_handler_impl.cc
|
| diff --git a/content/browser/devtools/devtools_http_handler_impl.cc b/content/browser/devtools/devtools_http_handler_impl.cc
|
| index 97e5b7f7e7cbbc0e561a8549f8460b020b3b645a..b0d866e3b3d28b3b2f4e7a757538bd68cf4fe95b 100644
|
| --- a/content/browser/devtools/devtools_http_handler_impl.cc
|
| +++ b/content/browser/devtools/devtools_http_handler_impl.cc
|
| @@ -18,6 +18,7 @@
|
| #include "base/threading/thread.h"
|
| #include "base/values.h"
|
| #include "content/browser/devtools/devtools_browser_target.h"
|
| +#include "content/browser/devtools/devtools_manager.h"
|
| #include "content/browser/devtools/devtools_protocol.h"
|
| #include "content/browser/devtools/devtools_protocol_constants.h"
|
| #include "content/browser/devtools/devtools_system_info_handler.h"
|
| @@ -522,9 +523,16 @@ void DevToolsHttpHandlerImpl::OnJsonRequestUI(
|
| if (command == "list") {
|
| std::string host = info.headers["host"];
|
| AddRef(); // Balanced in OnTargetListReceived.
|
| - delegate_->EnumerateTargets(
|
| - base::Bind(&DevToolsHttpHandlerImpl::OnTargetListReceived,
|
| - this, connection_id, host));
|
| + DevToolsManagerDelegate* manager_delegate =
|
| + DevToolsManager::GetInstance()->delegate();
|
| + if (manager_delegate) {
|
| + manager_delegate->EnumerateTargets(
|
| + base::Bind(&DevToolsHttpHandlerImpl::OnTargetListReceived,
|
| + this, connection_id, host));
|
| + } else {
|
| + DevToolsManagerDelegate::TargetList empty_list;
|
| + OnTargetListReceived(connection_id, host, empty_list);
|
| + }
|
| return;
|
| }
|
|
|
| @@ -533,7 +541,11 @@ void DevToolsHttpHandlerImpl::OnJsonRequestUI(
|
| query, net::UnescapeRule::URL_SPECIAL_CHARS));
|
| if (!url.is_valid())
|
| url = GURL(url::kAboutBlankURL);
|
| - scoped_ptr<DevToolsTarget> target(delegate_->CreateNewTarget(url));
|
| + scoped_ptr<DevToolsTarget> target;
|
| + DevToolsManagerDelegate* manager_delegate =
|
| + DevToolsManager::GetInstance()->delegate();
|
| + if (manager_delegate)
|
| + target = manager_delegate->CreateNewTarget(url);
|
| if (!target) {
|
| SendJson(connection_id,
|
| net::HTTP_INTERNAL_SERVER_ERROR,
|
| @@ -594,13 +606,13 @@ void DevToolsHttpHandlerImpl::OnJsonRequestUI(
|
| void DevToolsHttpHandlerImpl::OnTargetListReceived(
|
| int connection_id,
|
| const std::string& host,
|
| - const DevToolsHttpHandlerDelegate::TargetList& targets) {
|
| - DevToolsHttpHandlerDelegate::TargetList sorted_targets = targets;
|
| + const DevToolsManagerDelegate::TargetList& targets) {
|
| + DevToolsManagerDelegate::TargetList sorted_targets = targets;
|
| std::sort(sorted_targets.begin(), sorted_targets.end(), TimeComparator);
|
|
|
| STLDeleteValues(&target_map_);
|
| base::ListValue list_value;
|
| - for (DevToolsHttpHandlerDelegate::TargetList::const_iterator it =
|
| + for (DevToolsManagerDelegate::TargetList::const_iterator it =
|
| sorted_targets.begin(); it != sorted_targets.end(); ++it) {
|
| DevToolsTarget* target = *it;
|
| target_map_[target->GetId()] = target;
|
| @@ -619,7 +631,10 @@ DevToolsTarget* DevToolsHttpHandlerImpl::GetTarget(const std::string& id) {
|
|
|
| void DevToolsHttpHandlerImpl::OnThumbnailRequestUI(
|
| int connection_id, const GURL& page_url) {
|
| - std::string data = delegate_->GetPageThumbnailData(page_url);
|
| + DevToolsManagerDelegate* manager_delegate =
|
| + DevToolsManager::GetInstance()->delegate();
|
| + std::string data =
|
| + manager_delegate ? manager_delegate->GetPageThumbnailData(page_url) : "";
|
| if (!data.empty())
|
| Send200(connection_id, data, "image/png");
|
| else
|
| @@ -864,7 +879,10 @@ base::DictionaryValue* DevToolsHttpHandlerImpl::SerializeTarget(
|
| if (favicon_url.is_valid())
|
| dictionary->SetString(kTargetFaviconUrlField, favicon_url.spec());
|
|
|
| - if (!delegate_->GetPageThumbnailData(url).empty()) {
|
| + DevToolsManagerDelegate* manager_delegate =
|
| + DevToolsManager::GetInstance()->delegate();
|
| + if (manager_delegate &&
|
| + !manager_delegate->GetPageThumbnailData(url).empty()) {
|
| dictionary->SetString(kTargetThumbnailUrlField,
|
| std::string(kThumbUrlPrefix) + id);
|
| }
|
|
|