diff options
Diffstat (limited to 'content/browser/devtools')
3 files changed, 29 insertions, 22 deletions
diff --git a/content/browser/devtools/devtools_http_handler_impl.cc b/content/browser/devtools/devtools_http_handler_impl.cc index 97e5b7f..b0d866e 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); } diff --git a/content/browser/devtools/devtools_http_handler_impl.h b/content/browser/devtools/devtools_http_handler_impl.h index 987dedb..0276c3f 100644 --- a/content/browser/devtools/devtools_http_handler_impl.h +++ b/content/browser/devtools/devtools_http_handler_impl.h @@ -16,6 +16,7 @@ #include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_http_handler.h" #include "content/public/browser/devtools_http_handler_delegate.h" +#include "content/public/browser/devtools_manager_delegate.h" #include "net/http/http_status_code.h" #include "net/server/http_server.h" @@ -80,7 +81,7 @@ class DevToolsHttpHandlerImpl void OnTargetListReceived( int connection_id, const std::string& host, - const DevToolsHttpHandlerDelegate::TargetList& targets); + const DevToolsManagerDelegate::TargetList& targets); DevToolsTarget* GetTarget(const std::string& id); diff --git a/content/browser/devtools/devtools_http_handler_unittest.cc b/content/browser/devtools/devtools_http_handler_unittest.cc index 16c820c..c0e6589 100644 --- a/content/browser/devtools/devtools_http_handler_unittest.cc +++ b/content/browser/devtools/devtools_http_handler_unittest.cc @@ -86,18 +86,6 @@ class DummyDelegate : public DevToolsHttpHandlerDelegate { return base::FilePath(); } - virtual std::string GetPageThumbnailData(const GURL& url) OVERRIDE { - return std::string(); - } - - virtual scoped_ptr<DevToolsTarget> CreateNewTarget(const GURL& url) OVERRIDE { - return scoped_ptr<DevToolsTarget>(); - } - - virtual void EnumerateTargets(TargetCallback callback) OVERRIDE { - callback.Run(TargetList()); - } - virtual scoped_ptr<net::StreamListenSocket> CreateSocketForTethering( net::StreamListenSocket::Delegate* delegate, std::string* name) OVERRIDE { |