| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_ui_bindings.h" | 5 #include "chrome/browser/devtools/devtools_ui_bindings.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 url_string += "&debugFrontend=true"; | 402 url_string += "&debugFrontend=true"; |
| 403 #endif // defined(DEBUG_DEVTOOLS) | 403 #endif // defined(DEBUG_DEVTOOLS) |
| 404 return GURL(url_string); | 404 return GURL(url_string); |
| 405 } | 405 } |
| 406 | 406 |
| 407 DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents) | 407 DevToolsUIBindings::DevToolsUIBindings(content::WebContents* web_contents) |
| 408 : profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())), | 408 : profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())), |
| 409 android_bridge_(DevToolsAndroidBridge::Factory::GetForProfile(profile_)), | 409 android_bridge_(DevToolsAndroidBridge::Factory::GetForProfile(profile_)), |
| 410 web_contents_(web_contents), | 410 web_contents_(web_contents), |
| 411 delegate_(new DefaultBindingsDelegate(web_contents_)), | 411 delegate_(new DefaultBindingsDelegate(web_contents_)), |
| 412 device_count_updates_enabled_(false), | |
| 413 devices_updates_enabled_(false), | 412 devices_updates_enabled_(false), |
| 414 frontend_loaded_(false), | 413 frontend_loaded_(false), |
| 415 weak_factory_(this) { | 414 weak_factory_(this) { |
| 416 g_instances.Get().push_back(this); | 415 g_instances.Get().push_back(this); |
| 417 frontend_contents_observer_.reset(new FrontendWebContentsObserver(this)); | 416 frontend_contents_observer_.reset(new FrontendWebContentsObserver(this)); |
| 418 web_contents_->GetMutableRendererPrefs()->can_accept_load_drops = false; | 417 web_contents_->GetMutableRendererPrefs()->can_accept_load_drops = false; |
| 419 | 418 |
| 420 file_helper_.reset(new DevToolsFileHelper(web_contents_, profile_)); | 419 file_helper_.reset(new DevToolsFileHelper(web_contents_, profile_)); |
| 421 file_system_indexer_ = new DevToolsFileSystemIndexer(); | 420 file_system_indexer_ = new DevToolsFileSystemIndexer(); |
| 422 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( | 421 extensions::ChromeExtensionWebContentsObserver::CreateForWebContents( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 446 delete pair.first; | 445 delete pair.first; |
| 447 | 446 |
| 448 if (agent_host_.get()) | 447 if (agent_host_.get()) |
| 449 agent_host_->DetachClient(); | 448 agent_host_->DetachClient(); |
| 450 | 449 |
| 451 for (IndexingJobsMap::const_iterator jobs_it(indexing_jobs_.begin()); | 450 for (IndexingJobsMap::const_iterator jobs_it(indexing_jobs_.begin()); |
| 452 jobs_it != indexing_jobs_.end(); ++jobs_it) { | 451 jobs_it != indexing_jobs_.end(); ++jobs_it) { |
| 453 jobs_it->second->Stop(); | 452 jobs_it->second->Stop(); |
| 454 } | 453 } |
| 455 indexing_jobs_.clear(); | 454 indexing_jobs_.clear(); |
| 456 SetDeviceCountUpdatesEnabled(false); | |
| 457 SetDevicesUpdatesEnabled(false); | 455 SetDevicesUpdatesEnabled(false); |
| 458 | 456 |
| 459 // Remove self from global list. | 457 // Remove self from global list. |
| 460 DevToolsUIBindingsList* instances = g_instances.Pointer(); | 458 DevToolsUIBindingsList* instances = g_instances.Pointer(); |
| 461 DevToolsUIBindingsList::iterator it( | 459 DevToolsUIBindingsList::iterator it( |
| 462 std::find(instances->begin(), instances->end(), this)); | 460 std::find(instances->begin(), instances->end(), this)); |
| 463 DCHECK(it != instances->end()); | 461 DCHECK(it != instances->end()); |
| 464 instances->erase(it); | 462 instances->erase(it); |
| 465 } | 463 } |
| 466 | 464 |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 } | 716 } |
| 719 | 717 |
| 720 void DevToolsUIBindings::ZoomOut() { | 718 void DevToolsUIBindings::ZoomOut() { |
| 721 ui_zoom::PageZoom::Zoom(web_contents(), content::PAGE_ZOOM_OUT); | 719 ui_zoom::PageZoom::Zoom(web_contents(), content::PAGE_ZOOM_OUT); |
| 722 } | 720 } |
| 723 | 721 |
| 724 void DevToolsUIBindings::ResetZoom() { | 722 void DevToolsUIBindings::ResetZoom() { |
| 725 ui_zoom::PageZoom::Zoom(web_contents(), content::PAGE_ZOOM_RESET); | 723 ui_zoom::PageZoom::Zoom(web_contents(), content::PAGE_ZOOM_RESET); |
| 726 } | 724 } |
| 727 | 725 |
| 728 static void InspectTarget(Profile* profile, DevToolsTargetImpl* target) { | |
| 729 if (target) | |
| 730 target->Inspect(profile); | |
| 731 } | |
| 732 | |
| 733 void DevToolsUIBindings::OpenUrlOnRemoteDeviceAndInspect( | |
| 734 const std::string& browser_id, | |
| 735 const std::string& url) { | |
| 736 if (remote_targets_handler_) { | |
| 737 remote_targets_handler_->Open(browser_id, url, | |
| 738 base::Bind(&InspectTarget, profile_)); | |
| 739 } | |
| 740 } | |
| 741 | |
| 742 void DevToolsUIBindings::SetDeviceCountUpdatesEnabled(bool enabled) { | |
| 743 if (device_count_updates_enabled_ == enabled) | |
| 744 return; | |
| 745 DevToolsAndroidBridge* adb_bridge = | |
| 746 DevToolsAndroidBridge::Factory::GetForProfile(profile_); | |
| 747 if (!adb_bridge) | |
| 748 return; | |
| 749 | |
| 750 device_count_updates_enabled_ = enabled; | |
| 751 if (enabled) | |
| 752 adb_bridge->AddDeviceCountListener(this); | |
| 753 else | |
| 754 adb_bridge->RemoveDeviceCountListener(this); | |
| 755 } | |
| 756 | |
| 757 void DevToolsUIBindings::SetDevicesUpdatesEnabled(bool enabled) { | 726 void DevToolsUIBindings::SetDevicesUpdatesEnabled(bool enabled) { |
| 758 if (devices_updates_enabled_ == enabled) | 727 if (devices_updates_enabled_ == enabled) |
| 759 return; | 728 return; |
| 760 devices_updates_enabled_ = enabled; | 729 devices_updates_enabled_ = enabled; |
| 761 if (enabled) { | 730 if (enabled) { |
| 762 remote_targets_handler_ = DevToolsTargetsUIHandler::CreateForAdb( | 731 remote_targets_handler_ = DevToolsTargetsUIHandler::CreateForAdb( |
| 763 base::Bind(&DevToolsUIBindings::DevicesUpdated, | 732 base::Bind(&DevToolsUIBindings::DevicesUpdated, |
| 764 base::Unretained(this)), | 733 base::Unretained(this)), |
| 765 profile_); | 734 profile_); |
| 766 } else { | 735 } else { |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 if (frontend_loaded_) | 1010 if (frontend_loaded_) |
| 1042 return; | 1011 return; |
| 1043 frontend_loaded_ = true; | 1012 frontend_loaded_ = true; |
| 1044 | 1013 |
| 1045 // Call delegate first - it seeds importants bit of information. | 1014 // Call delegate first - it seeds importants bit of information. |
| 1046 delegate_->OnLoadCompleted(); | 1015 delegate_->OnLoadCompleted(); |
| 1047 | 1016 |
| 1048 UpdateTheme(); | 1017 UpdateTheme(); |
| 1049 AddDevToolsExtensionsToClient(); | 1018 AddDevToolsExtensionsToClient(); |
| 1050 } | 1019 } |
| OLD | NEW |