| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/devtools/devtools_targets_ui.h" | 5 #include "chrome/browser/devtools/devtools_targets_ui.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 244 |
| 245 for (auto& it : targets_) { | 245 for (auto& it : targets_) { |
| 246 scoped_refptr<DevToolsAgentHost> host = it.second; | 246 scoped_refptr<DevToolsAgentHost> host = it.second; |
| 247 base::DictionaryValue* descriptor = id_to_descriptor[host->GetId()]; | 247 base::DictionaryValue* descriptor = id_to_descriptor[host->GetId()]; |
| 248 DCHECK(descriptor); | 248 DCHECK(descriptor); |
| 249 std::string parent_id = host->GetParentId(); | 249 std::string parent_id = host->GetParentId(); |
| 250 if (parent_id.empty() || id_to_descriptor.count(parent_id) == 0) { | 250 if (parent_id.empty() || id_to_descriptor.count(parent_id) == 0) { |
| 251 list_value.Append(base::WrapUnique(descriptor)); | 251 list_value.Append(base::WrapUnique(descriptor)); |
| 252 } else { | 252 } else { |
| 253 base::DictionaryValue* parent = id_to_descriptor[parent_id]; | 253 base::DictionaryValue* parent = id_to_descriptor[parent_id]; |
| 254 base::ListValue* guests = NULL; | 254 base::ListValue* guests_weak = NULL; |
| 255 if (!parent->GetList(kGuestList, &guests)) { | 255 if (!parent->GetList(kGuestList, &guests_weak)) { |
| 256 guests = new base::ListValue(); | 256 auto guests = base::MakeUnique<base::ListValue>(); |
| 257 parent->Set(kGuestList, guests); | 257 guests_weak = guests.get(); |
| 258 parent->Set(kGuestList, std::move(guests)); |
| 258 } | 259 } |
| 259 guests->Append(base::WrapUnique(descriptor)); | 260 guests_weak->Append(base::WrapUnique(descriptor)); |
| 260 } | 261 } |
| 261 } | 262 } |
| 262 | 263 |
| 263 SendSerializedTargets(list_value); | 264 SendSerializedTargets(list_value); |
| 264 } | 265 } |
| 265 | 266 |
| 266 // AdbTargetsUIHandler -------------------------------------------------------- | 267 // AdbTargetsUIHandler -------------------------------------------------------- |
| 267 | 268 |
| 268 class AdbTargetsUIHandler | 269 class AdbTargetsUIHandler |
| 269 : public DevToolsTargetsUIHandler, | 270 : public DevToolsTargetsUIHandler, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 DevToolsAndroidBridge::RemoteDevice* device = dit->get(); | 338 DevToolsAndroidBridge::RemoteDevice* device = dit->get(); |
| 338 std::unique_ptr<base::DictionaryValue> device_data( | 339 std::unique_ptr<base::DictionaryValue> device_data( |
| 339 new base::DictionaryValue()); | 340 new base::DictionaryValue()); |
| 340 device_data->SetString(kAdbModelField, device->model()); | 341 device_data->SetString(kAdbModelField, device->model()); |
| 341 device_data->SetString(kAdbSerialField, device->serial()); | 342 device_data->SetString(kAdbSerialField, device->serial()); |
| 342 device_data->SetBoolean(kAdbConnectedField, device->is_connected()); | 343 device_data->SetBoolean(kAdbConnectedField, device->is_connected()); |
| 343 std::string device_id = base::StringPrintf( | 344 std::string device_id = base::StringPrintf( |
| 344 kAdbDeviceIdFormat, | 345 kAdbDeviceIdFormat, |
| 345 device->serial().c_str()); | 346 device->serial().c_str()); |
| 346 device_data->SetString(kTargetIdField, device_id); | 347 device_data->SetString(kTargetIdField, device_id); |
| 347 base::ListValue* browser_list = new base::ListValue(); | 348 auto browser_list = base::MakeUnique<base::ListValue>(); |
| 348 device_data->Set(kAdbBrowsersList, browser_list); | |
| 349 | 349 |
| 350 DevToolsAndroidBridge::RemoteBrowsers& browsers = device->browsers(); | 350 DevToolsAndroidBridge::RemoteBrowsers& browsers = device->browsers(); |
| 351 for (DevToolsAndroidBridge::RemoteBrowsers::iterator bit = | 351 for (DevToolsAndroidBridge::RemoteBrowsers::iterator bit = |
| 352 browsers.begin(); bit != browsers.end(); ++bit) { | 352 browsers.begin(); bit != browsers.end(); ++bit) { |
| 353 DevToolsAndroidBridge::RemoteBrowser* browser = bit->get(); | 353 DevToolsAndroidBridge::RemoteBrowser* browser = bit->get(); |
| 354 std::unique_ptr<base::DictionaryValue> browser_data( | 354 std::unique_ptr<base::DictionaryValue> browser_data( |
| 355 new base::DictionaryValue()); | 355 new base::DictionaryValue()); |
| 356 browser_data->SetString(kAdbBrowserNameField, browser->display_name()); | 356 browser_data->SetString(kAdbBrowserNameField, browser->display_name()); |
| 357 browser_data->SetString(kAdbBrowserUserField, browser->user()); | 357 browser_data->SetString(kAdbBrowserUserField, browser->user()); |
| 358 browser_data->SetString(kAdbBrowserVersionField, browser->version()); | 358 browser_data->SetString(kAdbBrowserVersionField, browser->version()); |
| 359 DevToolsAndroidBridge::RemoteBrowser::ParsedVersion parsed = | 359 DevToolsAndroidBridge::RemoteBrowser::ParsedVersion parsed = |
| 360 browser->GetParsedVersion(); | 360 browser->GetParsedVersion(); |
| 361 browser_data->SetInteger( | 361 browser_data->SetInteger( |
| 362 kAdbBrowserChromeVersionField, | 362 kAdbBrowserChromeVersionField, |
| 363 browser->IsChrome() && !parsed.empty() ? parsed[0] : 0); | 363 browser->IsChrome() && !parsed.empty() ? parsed[0] : 0); |
| 364 std::string browser_id = browser->GetId(); | 364 std::string browser_id = browser->GetId(); |
| 365 browser_data->SetString(kTargetIdField, browser_id); | 365 browser_data->SetString(kTargetIdField, browser_id); |
| 366 browser_data->SetString(kTargetSourceField, source_id()); | 366 browser_data->SetString(kTargetSourceField, source_id()); |
| 367 | 367 |
| 368 base::ListValue* page_list = new base::ListValue(); | 368 auto page_list = base::MakeUnique<base::ListValue>(); |
| 369 remote_browsers_[browser_id] = browser; | 369 remote_browsers_[browser_id] = browser; |
| 370 browser_data->Set(kAdbPagesList, page_list); | |
| 371 for (const auto& page : browser->pages()) { | 370 for (const auto& page : browser->pages()) { |
| 372 scoped_refptr<DevToolsAgentHost> host = page->CreateTarget(); | 371 scoped_refptr<DevToolsAgentHost> host = page->CreateTarget(); |
| 373 std::unique_ptr<base::DictionaryValue> target_data = Serialize(host); | 372 std::unique_ptr<base::DictionaryValue> target_data = Serialize(host); |
| 374 // Pass the screen size in the target object to make sure that | 373 // Pass the screen size in the target object to make sure that |
| 375 // the caching logic does not prevent the target item from updating | 374 // the caching logic does not prevent the target item from updating |
| 376 // when the screen size changes. | 375 // when the screen size changes. |
| 377 gfx::Size screen_size = device->screen_size(); | 376 gfx::Size screen_size = device->screen_size(); |
| 378 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); | 377 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); |
| 379 target_data->SetInteger(kAdbScreenHeightField, screen_size.height()); | 378 target_data->SetInteger(kAdbScreenHeightField, screen_size.height()); |
| 380 targets_[host->GetId()] = host; | 379 targets_[host->GetId()] = host; |
| 381 page_list->Append(std::move(target_data)); | 380 page_list->Append(std::move(target_data)); |
| 382 } | 381 } |
| 382 browser_data->Set(kAdbPagesList, std::move(page_list)); |
| 383 browser_list->Append(std::move(browser_data)); | 383 browser_list->Append(std::move(browser_data)); |
| 384 } | 384 } |
| 385 | 385 |
| 386 device_data->Set(kAdbBrowsersList, std::move(browser_list)); |
| 386 device_list.Append(std::move(device_data)); | 387 device_list.Append(std::move(device_data)); |
| 387 } | 388 } |
| 388 SendSerializedTargets(device_list); | 389 SendSerializedTargets(device_list); |
| 389 } | 390 } |
| 390 | 391 |
| 391 } // namespace | 392 } // namespace |
| 392 | 393 |
| 393 // DevToolsTargetsUIHandler --------------------------------------------------- | 394 // DevToolsTargetsUIHandler --------------------------------------------------- |
| 394 | 395 |
| 395 DevToolsTargetsUIHandler::DevToolsTargetsUIHandler( | 396 DevToolsTargetsUIHandler::DevToolsTargetsUIHandler( |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 DevToolsAndroidBridge::Factory::GetForProfile(profile_); | 476 DevToolsAndroidBridge::Factory::GetForProfile(profile_); |
| 476 if (android_bridge) | 477 if (android_bridge) |
| 477 android_bridge->RemovePortForwardingListener(this); | 478 android_bridge->RemovePortForwardingListener(this); |
| 478 } | 479 } |
| 479 | 480 |
| 480 void PortForwardingStatusSerializer::PortStatusChanged( | 481 void PortForwardingStatusSerializer::PortStatusChanged( |
| 481 const ForwardingStatus& status) { | 482 const ForwardingStatus& status) { |
| 482 base::DictionaryValue result; | 483 base::DictionaryValue result; |
| 483 for (ForwardingStatus::const_iterator sit = status.begin(); | 484 for (ForwardingStatus::const_iterator sit = status.begin(); |
| 484 sit != status.end(); ++sit) { | 485 sit != status.end(); ++sit) { |
| 485 base::DictionaryValue* port_status_dict = new base::DictionaryValue(); | 486 auto port_status_dict = base::MakeUnique<base::DictionaryValue>(); |
| 486 const PortStatusMap& port_status_map = sit->second; | 487 const PortStatusMap& port_status_map = sit->second; |
| 487 for (PortStatusMap::const_iterator it = port_status_map.begin(); | 488 for (PortStatusMap::const_iterator it = port_status_map.begin(); |
| 488 it != port_status_map.end(); ++it) { | 489 it != port_status_map.end(); ++it) { |
| 489 port_status_dict->SetInteger(base::IntToString(it->first), it->second); | 490 port_status_dict->SetInteger(base::IntToString(it->first), it->second); |
| 490 } | 491 } |
| 491 | 492 |
| 492 base::DictionaryValue* device_status_dict = new base::DictionaryValue(); | 493 auto device_status_dict = base::MakeUnique<base::DictionaryValue>(); |
| 493 device_status_dict->Set(kPortForwardingPorts, port_status_dict); | 494 device_status_dict->Set(kPortForwardingPorts, std::move(port_status_dict)); |
| 494 device_status_dict->SetString(kPortForwardingBrowserId, | 495 device_status_dict->SetString(kPortForwardingBrowserId, |
| 495 sit->first->GetId()); | 496 sit->first->GetId()); |
| 496 | 497 |
| 497 std::string device_id = base::StringPrintf( | 498 std::string device_id = base::StringPrintf( |
| 498 kAdbDeviceIdFormat, | 499 kAdbDeviceIdFormat, |
| 499 sit->first->serial().c_str()); | 500 sit->first->serial().c_str()); |
| 500 result.Set(device_id, device_status_dict); | 501 result.Set(device_id, std::move(device_status_dict)); |
| 501 } | 502 } |
| 502 callback_.Run(result); | 503 callback_.Run(result); |
| 503 } | 504 } |
| OLD | NEW |