Chromium Code Reviews| 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 "base/memory/weak_ptr.h" | 7 #include "base/memory/weak_ptr.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 298 } | 298 } |
| 299 | 299 |
| 300 AdbTargetsUIHandler::~AdbTargetsUIHandler() { | 300 AdbTargetsUIHandler::~AdbTargetsUIHandler() { |
| 301 DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); | 301 DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| 302 if (android_bridge) | 302 if (android_bridge) |
| 303 android_bridge->RemoveDeviceListListener(this); | 303 android_bridge->RemoveDeviceListListener(this); |
| 304 } | 304 } |
| 305 | 305 |
| 306 static void CallOnTarget( | 306 static void CallOnTarget( |
| 307 const DevToolsTargetsUIHandler::TargetCallback& callback, | 307 const DevToolsTargetsUIHandler::TargetCallback& callback, |
| 308 DevToolsAndroidBridge::RemotePage* page) { | 308 scoped_refptr<DevToolsAndroidBridge> bridge, |
| 309 scoped_ptr<DevToolsAndroidBridge::RemotePage> my_page(page); | 309 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { |
| 310 callback.Run(my_page ? my_page->GetTarget() : NULL); | 310 callback.Run(page.get() ? bridge->CreatePageTarget(page) : NULL); |
| 311 } | 311 } |
| 312 | 312 |
| 313 void AdbTargetsUIHandler::Open( | 313 void AdbTargetsUIHandler::Open( |
| 314 const std::string& browser_id, | 314 const std::string& browser_id, |
| 315 const std::string& url, | 315 const std::string& url, |
| 316 const DevToolsTargetsUIHandler::TargetCallback& callback) { | 316 const DevToolsTargetsUIHandler::TargetCallback& callback) { |
| 317 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); | 317 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
| 318 if (it == remote_browsers_.end()) | 318 if (it == remote_browsers_.end()) |
| 319 return; | 319 return; |
| 320 | 320 |
| 321 DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); | 321 scoped_refptr<DevToolsAndroidBridge> android_bridge = GetAndroidBridge(); |
|
dgozman
2014/09/30 09:23:48
scoped_refptr<DevToolsAndroidBridge> android_bridg
vkuzkokov
2014/10/01 09:05:17
Done.
| |
| 322 if (android_bridge) | 322 if (android_bridge.get()) { |
| 323 android_bridge->Open(it->second, url, base::Bind(&CallOnTarget, callback)); | 323 android_bridge->Open(it->second, url, |
| 324 base::Bind(&CallOnTarget, callback, android_bridge)); | |
| 325 } | |
| 324 } | 326 } |
| 325 | 327 |
| 326 scoped_refptr<content::DevToolsAgentHost> | 328 scoped_refptr<content::DevToolsAgentHost> |
| 327 AdbTargetsUIHandler::GetBrowserAgentHost( | 329 AdbTargetsUIHandler::GetBrowserAgentHost( |
| 328 const std::string& browser_id) { | 330 const std::string& browser_id) { |
| 329 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); | 331 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
| 330 if (it == remote_browsers_.end()) | 332 if (it == remote_browsers_.end()) |
| 331 return NULL; | 333 return NULL; |
| 332 | 334 |
| 333 DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); | 335 DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 383 chrome::VersionInfo version_info; | 385 chrome::VersionInfo version_info; |
| 384 base::Version local_version(version_info.Version()); | 386 base::Version local_version(version_info.Version()); |
| 385 | 387 |
| 386 browser_data->SetBoolean(kCompatibleVersion, | 388 browser_data->SetBoolean(kCompatibleVersion, |
| 387 (!remote_version.IsValid()) || (!local_version.IsValid()) || | 389 (!remote_version.IsValid()) || (!local_version.IsValid()) || |
| 388 remote_version.components()[0] <= local_version.components()[0]); | 390 remote_version.components()[0] <= local_version.components()[0]); |
| 389 | 391 |
| 390 base::ListValue* page_list = new base::ListValue(); | 392 base::ListValue* page_list = new base::ListValue(); |
| 391 remote_browsers_[browser_id] = browser; | 393 remote_browsers_[browser_id] = browser; |
| 392 browser_data->Set(kAdbPagesList, page_list); | 394 browser_data->Set(kAdbPagesList, page_list); |
| 393 std::vector<DevToolsAndroidBridge::RemotePage*> pages = | 395 const DevToolsAndroidBridge::RemotePages& pages = browser->pages(); |
| 394 android_bridge->CreatePages(browser); | 396 for (DevToolsAndroidBridge::RemotePages::const_iterator it = |
| 395 for (std::vector<DevToolsAndroidBridge::RemotePage*>::iterator it = | |
| 396 pages.begin(); it != pages.end(); ++it) { | 397 pages.begin(); it != pages.end(); ++it) { |
| 397 DevToolsAndroidBridge::RemotePage* page = *it; | 398 DevToolsTargetImpl* target = android_bridge->CreatePageTarget(*it); |
| 398 DevToolsTargetImpl* target = page->GetTarget(); | |
| 399 base::DictionaryValue* target_data = Serialize(*target); | 399 base::DictionaryValue* target_data = Serialize(*target); |
| 400 target_data->SetBoolean( | 400 target_data->SetBoolean( |
| 401 kAdbAttachedForeignField, | 401 kAdbAttachedForeignField, |
| 402 target->IsAttached() && | 402 target->IsAttached() && |
| 403 !android_bridge->HasDevToolsWindow(target->GetId())); | 403 !android_bridge->HasDevToolsWindow(target->GetId())); |
| 404 // Pass the screen size in the target object to make sure that | 404 // Pass the screen size in the target object to make sure that |
| 405 // the caching logic does not prevent the target item from updating | 405 // the caching logic does not prevent the target item from updating |
| 406 // when the screen size changes. | 406 // when the screen size changes. |
| 407 gfx::Size screen_size = device->screen_size(); | 407 gfx::Size screen_size = device->screen_size(); |
| 408 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); | 408 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 526 base::StringPrintf("%d", it->first), it->second); | 526 base::StringPrintf("%d", it->first), it->second); |
| 527 } | 527 } |
| 528 | 528 |
| 529 std::string device_id = base::StringPrintf( | 529 std::string device_id = base::StringPrintf( |
| 530 kAdbDeviceIdFormat, | 530 kAdbDeviceIdFormat, |
| 531 sit->first.c_str()); | 531 sit->first.c_str()); |
| 532 result.Set(device_id, device_status_dict); | 532 result.Set(device_id, device_status_dict); |
| 533 } | 533 } |
| 534 callback_.Run(result); | 534 callback_.Run(result); |
| 535 } | 535 } |
| OLD | NEW |