| Index: chrome/browser/devtools/devtools_targets_ui.cc
|
| diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc
|
| index 9e3b8359ce54c124fc29e4604fec4c87592d4116..eab1321ada830b4775084942347e83f4053577dd 100644
|
| --- a/chrome/browser/devtools/devtools_targets_ui.cc
|
| +++ b/chrome/browser/devtools/devtools_targets_ui.cc
|
| @@ -96,14 +96,17 @@ class RenderViewHostTargetsUIHandler
|
| const content::NotificationDetails& details) OVERRIDE;
|
|
|
| void UpdateTargets();
|
| + void OnTargetsReceived(const DevToolsTargetImpl::List& targets);
|
|
|
| content::NotificationRegistrar notification_registrar_;
|
| scoped_ptr<CancelableTimer> timer_;
|
| + base::WeakPtrFactory<RenderViewHostTargetsUIHandler> weak_factory_;
|
| };
|
|
|
| RenderViewHostTargetsUIHandler::RenderViewHostTargetsUIHandler(
|
| const Callback& callback)
|
| - : DevToolsTargetsUIHandler(kTargetSourceRenderer, callback) {
|
| + : DevToolsTargetsUIHandler(kTargetSourceRenderer, callback),
|
| + weak_factory_(this) {
|
| notification_registrar_.Add(this,
|
| content::NOTIFICATION_WEB_CONTENTS_CONNECTED,
|
| content::NotificationService::AllSources());
|
| @@ -133,15 +136,19 @@ void RenderViewHostTargetsUIHandler::Observe(
|
| }
|
|
|
| void RenderViewHostTargetsUIHandler::UpdateTargets() {
|
| + DevToolsTargetImpl::EnumerateRenderViewHostTargets(
|
| + base::Bind(&RenderViewHostTargetsUIHandler::OnTargetsReceived,
|
| + weak_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void RenderViewHostTargetsUIHandler::OnTargetsReceived(
|
| + const DevToolsTargetImpl::List& targets) {
|
| base::ListValue list_value;
|
|
|
| std::map<std::string, base::DictionaryValue*> id_to_descriptor;
|
|
|
| - DevToolsTargetImpl::List targets =
|
| - DevToolsTargetImpl::EnumerateRenderViewHostTargets();
|
| -
|
| STLDeleteValues(&targets_);
|
| - for (DevToolsTargetImpl::List::iterator it = targets.begin();
|
| + for (DevToolsTargetImpl::List::const_iterator it = targets.begin();
|
| it != targets.end(); ++it) {
|
| DevToolsTargetImpl* target = *it;
|
| targets_[target->GetId()] = target;
|
|
|