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 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 DCHECK(android_bridge_.get()); | 311 DCHECK(android_bridge_.get()); |
312 android_bridge_->AddDeviceListListener(this); | 312 android_bridge_->AddDeviceListListener(this); |
313 } | 313 } |
314 | 314 |
315 AdbTargetsUIHandler::~AdbTargetsUIHandler() { | 315 AdbTargetsUIHandler::~AdbTargetsUIHandler() { |
316 android_bridge_->RemoveDeviceListListener(this); | 316 android_bridge_->RemoveDeviceListListener(this); |
317 } | 317 } |
318 | 318 |
319 static void CallOnTarget( | 319 static void CallOnTarget( |
320 const DevToolsTargetsUIHandler::TargetCallback& callback, | 320 const DevToolsTargetsUIHandler::TargetCallback& callback, |
321 DevToolsAndroidBridge::RemotePage* page) { | 321 scoped_refptr<DevToolsAndroidBridge> bridge, |
322 scoped_ptr<DevToolsAndroidBridge::RemotePage> my_page(page); | 322 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { |
323 callback.Run(my_page ? my_page->GetTarget() : NULL); | 323 callback.Run(page.get() ? bridge->CreatePageTarget(page) : nullptr); |
324 } | 324 } |
325 | 325 |
326 void AdbTargetsUIHandler::Open( | 326 void AdbTargetsUIHandler::Open( |
327 const std::string& browser_id, | 327 const std::string& browser_id, |
328 const std::string& url, | 328 const std::string& url, |
329 const DevToolsTargetsUIHandler::TargetCallback& callback) { | 329 const DevToolsTargetsUIHandler::TargetCallback& callback) { |
330 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); | 330 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
331 if (it == remote_browsers_.end()) | 331 if (it == remote_browsers_.end()) |
332 return; | 332 return; |
333 | 333 |
334 android_bridge_->OpenRemotePage(it->second, url, | 334 android_bridge_->OpenRemotePage( |
335 base::Bind(&CallOnTarget, callback)); | 335 it->second, |
| 336 url, |
| 337 base::Bind(&CallOnTarget, callback, android_bridge_)); |
336 } | 338 } |
337 | 339 |
338 scoped_refptr<content::DevToolsAgentHost> | 340 scoped_refptr<content::DevToolsAgentHost> |
339 AdbTargetsUIHandler::GetBrowserAgentHost( | 341 AdbTargetsUIHandler::GetBrowserAgentHost( |
340 const std::string& browser_id) { | 342 const std::string& browser_id) { |
341 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); | 343 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
342 if (it == remote_browsers_.end()) | 344 if (it == remote_browsers_.end()) |
343 return NULL; | 345 return NULL; |
344 | 346 |
345 return android_bridge_->GetBrowserAgentHost(it->second); | 347 return android_bridge_->GetBrowserAgentHost(it->second); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 chrome::VersionInfo version_info; | 389 chrome::VersionInfo version_info; |
388 base::Version local_version(version_info.Version()); | 390 base::Version local_version(version_info.Version()); |
389 | 391 |
390 browser_data->SetBoolean(kCompatibleVersion, | 392 browser_data->SetBoolean(kCompatibleVersion, |
391 (!remote_version.IsValid()) || (!local_version.IsValid()) || | 393 (!remote_version.IsValid()) || (!local_version.IsValid()) || |
392 remote_version.components()[0] <= local_version.components()[0]); | 394 remote_version.components()[0] <= local_version.components()[0]); |
393 | 395 |
394 base::ListValue* page_list = new base::ListValue(); | 396 base::ListValue* page_list = new base::ListValue(); |
395 remote_browsers_[browser_id] = browser; | 397 remote_browsers_[browser_id] = browser; |
396 browser_data->Set(kAdbPagesList, page_list); | 398 browser_data->Set(kAdbPagesList, page_list); |
397 std::vector<DevToolsAndroidBridge::RemotePage*> pages = | 399 for (const auto& page : browser->pages()) { |
398 android_bridge_->CreatePages(browser); | 400 DevToolsTargetImpl* target = android_bridge_->CreatePageTarget(page); |
399 for (std::vector<DevToolsAndroidBridge::RemotePage*>::iterator it = | |
400 pages.begin(); it != pages.end(); ++it) { | |
401 DevToolsAndroidBridge::RemotePage* page = *it; | |
402 DevToolsTargetImpl* target = page->GetTarget(); | |
403 base::DictionaryValue* target_data = Serialize(*target); | 401 base::DictionaryValue* target_data = Serialize(*target); |
404 target_data->SetBoolean( | 402 target_data->SetBoolean( |
405 kAdbAttachedForeignField, | 403 kAdbAttachedForeignField, |
406 target->IsAttached() && | 404 target->IsAttached() && |
407 !android_bridge_->HasDevToolsWindow(target->GetId())); | 405 !android_bridge_->HasDevToolsWindow(target->GetId())); |
408 // Pass the screen size in the target object to make sure that | 406 // Pass the screen size in the target object to make sure that |
409 // the caching logic does not prevent the target item from updating | 407 // the caching logic does not prevent the target item from updating |
410 // when the screen size changes. | 408 // when the screen size changes. |
411 gfx::Size screen_size = device->screen_size(); | 409 gfx::Size screen_size = device->screen_size(); |
412 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); | 410 target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 device_status_dict->SetString(kPortForwardingBrowserId, | 529 device_status_dict->SetString(kPortForwardingBrowserId, |
532 SerializeBrowserId(sit->first)); | 530 SerializeBrowserId(sit->first)); |
533 | 531 |
534 std::string device_id = base::StringPrintf( | 532 std::string device_id = base::StringPrintf( |
535 kAdbDeviceIdFormat, | 533 kAdbDeviceIdFormat, |
536 sit->first->serial().c_str()); | 534 sit->first->serial().c_str()); |
537 result.Set(device_id, device_status_dict); | 535 result.Set(device_id, device_status_dict); |
538 } | 536 } |
539 callback_.Run(result); | 537 callback_.Run(result); |
540 } | 538 } |
OLD | NEW |