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 |