OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_window.h" | 5 #include "chrome/browser/devtools/devtools_window.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 #include "content/public/browser/browser_thread.h" | 48 #include "content/public/browser/browser_thread.h" |
49 #include "content/public/browser/child_process_security_policy.h" | 49 #include "content/public/browser/child_process_security_policy.h" |
50 #include "content/public/browser/devtools_agent_host.h" | 50 #include "content/public/browser/devtools_agent_host.h" |
51 #include "content/public/browser/devtools_client_host.h" | 51 #include "content/public/browser/devtools_client_host.h" |
52 #include "content/public/browser/devtools_manager.h" | 52 #include "content/public/browser/devtools_manager.h" |
53 #include "content/public/browser/favicon_status.h" | 53 #include "content/public/browser/favicon_status.h" |
54 #include "content/public/browser/load_notification_details.h" | 54 #include "content/public/browser/load_notification_details.h" |
55 #include "content/public/browser/navigation_controller.h" | 55 #include "content/public/browser/navigation_controller.h" |
56 #include "content/public/browser/navigation_entry.h" | 56 #include "content/public/browser/navigation_entry.h" |
57 #include "content/public/browser/notification_source.h" | 57 #include "content/public/browser/notification_source.h" |
| 58 #include "content/public/browser/power_profiler_service.h" |
58 #include "content/public/browser/render_process_host.h" | 59 #include "content/public/browser/render_process_host.h" |
59 #include "content/public/browser/render_view_host.h" | 60 #include "content/public/browser/render_view_host.h" |
60 #include "content/public/browser/user_metrics.h" | 61 #include "content/public/browser/user_metrics.h" |
61 #include "content/public/browser/web_contents.h" | 62 #include "content/public/browser/web_contents.h" |
62 #include "content/public/browser/web_contents_observer.h" | 63 #include "content/public/browser/web_contents_observer.h" |
63 #include "content/public/browser/web_contents_view.h" | 64 #include "content/public/browser/web_contents_view.h" |
64 #include "content/public/common/bindings_policy.h" | 65 #include "content/public/common/bindings_policy.h" |
65 #include "content/public/common/content_client.h" | 66 #include "content/public/common/content_client.h" |
66 #include "content/public/common/page_transition_types.h" | 67 #include "content/public/common/page_transition_types.h" |
67 #include "content/public/common/url_constants.h" | 68 #include "content/public/common/url_constants.h" |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 frontend_contents_observer_.reset(new FrontendWebContentsObserver(this)); | 678 frontend_contents_observer_.reset(new FrontendWebContentsObserver(this)); |
678 | 679 |
679 web_contents_->GetController().LoadURL(url, content::Referrer(), | 680 web_contents_->GetController().LoadURL(url, content::Referrer(), |
680 content::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()); | 681 content::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()); |
681 | 682 |
682 frontend_host_.reset(content::DevToolsClientHost::CreateDevToolsFrontendHost( | 683 frontend_host_.reset(content::DevToolsClientHost::CreateDevToolsFrontendHost( |
683 web_contents_, this)); | 684 web_contents_, this)); |
684 file_helper_.reset(new DevToolsFileHelper(web_contents_, profile)); | 685 file_helper_.reset(new DevToolsFileHelper(web_contents_, profile)); |
685 file_system_indexer_ = new DevToolsFileSystemIndexer(); | 686 file_system_indexer_ = new DevToolsFileSystemIndexer(); |
686 extensions::ExtensionWebContentsObserver::CreateForWebContents(web_contents_); | 687 extensions::ExtensionWebContentsObserver::CreateForWebContents(web_contents_); |
687 | 688 power_profiler_host_ = new DevToolsPowerProfilerHost( |
| 689 weak_factory_.GetWeakPtr()); |
688 g_instances.Get().push_back(this); | 690 g_instances.Get().push_back(this); |
689 | 691 |
690 // Wipe out page icon so that the default application icon is used. | 692 // Wipe out page icon so that the default application icon is used. |
691 content::NavigationEntry* entry = | 693 content::NavigationEntry* entry = |
692 web_contents_->GetController().GetActiveEntry(); | 694 web_contents_->GetController().GetActiveEntry(); |
693 entry->GetFavicon().image = gfx::Image(); | 695 entry->GetFavicon().image = gfx::Image(); |
694 entry->GetFavicon().valid = true; | 696 entry->GetFavicon().valid = true; |
695 | 697 |
696 // Register on-load actions. | 698 // Register on-load actions. |
697 registrar_.Add( | 699 registrar_.Add( |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1227 return; | 1229 return; |
1228 } | 1230 } |
1229 file_system_indexer_->SearchInPath(file_system_path, | 1231 file_system_indexer_->SearchInPath(file_system_path, |
1230 query, | 1232 query, |
1231 Bind(&DevToolsWindow::SearchCompleted, | 1233 Bind(&DevToolsWindow::SearchCompleted, |
1232 weak_factory_.GetWeakPtr(), | 1234 weak_factory_.GetWeakPtr(), |
1233 request_id, | 1235 request_id, |
1234 file_system_path)); | 1236 file_system_path)); |
1235 } | 1237 } |
1236 | 1238 |
| 1239 void DevToolsWindow::QueryPowerProfilerServiceStatus() { |
| 1240 bool is_supported = true; |
| 1241 if (!content::PowerProfilerService::GetInstance()->IsAvailable()) |
| 1242 is_supported = false; |
| 1243 // To tell front-end, not implemented yet |
| 1244 } |
| 1245 |
| 1246 void DevToolsWindow::StartPowerProfiling() { |
| 1247 power_profiler_host_->Register(); |
| 1248 } |
| 1249 |
| 1250 void DevToolsWindow::StopPowerProfiling() { |
| 1251 power_profiler_host_->Unregister(); |
| 1252 } |
| 1253 |
| 1254 void DevToolsWindow::SetPowerProfilingResolution(unsigned resolution) { |
| 1255 DCHECK(resolution >= 0 && |
| 1256 resolution < static_cast<unsigned>( |
| 1257 content::PowerProfilerObserver::TYPE_COUNT)); |
| 1258 power_profiler_host_->SetResolution( |
| 1259 static_cast<content::PowerProfilerObserver::Resolution>(resolution)); |
| 1260 } |
| 1261 |
1237 void DevToolsWindow::FileSavedAs(const std::string& url) { | 1262 void DevToolsWindow::FileSavedAs(const std::string& url) { |
1238 StringValue url_value(url); | 1263 StringValue url_value(url); |
1239 CallClientFunction("InspectorFrontendAPI.savedURL", &url_value, NULL, NULL); | 1264 CallClientFunction("InspectorFrontendAPI.savedURL", &url_value, NULL, NULL); |
1240 } | 1265 } |
1241 | 1266 |
1242 void DevToolsWindow::CanceledFileSaveAs(const std::string& url) { | 1267 void DevToolsWindow::CanceledFileSaveAs(const std::string& url) { |
1243 StringValue url_value(url); | 1268 StringValue url_value(url); |
1244 CallClientFunction("InspectorFrontendAPI.canceledSaveURL", | 1269 CallClientFunction("InspectorFrontendAPI.canceledSaveURL", |
1245 &url_value, NULL, NULL); | 1270 &url_value, NULL, NULL); |
1246 } | 1271 } |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1324 void DevToolsWindow::ShowDevToolsConfirmInfoBar( | 1349 void DevToolsWindow::ShowDevToolsConfirmInfoBar( |
1325 const base::string16& message, | 1350 const base::string16& message, |
1326 const InfoBarCallback& callback) { | 1351 const InfoBarCallback& callback) { |
1327 DevToolsConfirmInfoBarDelegate::Create( | 1352 DevToolsConfirmInfoBarDelegate::Create( |
1328 IsDocked() ? | 1353 IsDocked() ? |
1329 InfoBarService::FromWebContents(GetInspectedWebContents()) : | 1354 InfoBarService::FromWebContents(GetInspectedWebContents()) : |
1330 InfoBarService::FromWebContents(web_contents_), | 1355 InfoBarService::FromWebContents(web_contents_), |
1331 callback, message); | 1356 callback, message); |
1332 } | 1357 } |
1333 | 1358 |
| 1359 void DevToolsWindow::SendPowerEvent(const std::string& message) { |
| 1360 // To tell front-end, not implemented yet |
| 1361 } |
| 1362 |
1334 void DevToolsWindow::CreateDevToolsBrowser() { | 1363 void DevToolsWindow::CreateDevToolsBrowser() { |
1335 std::string wp_key = GetDevToolsWindowPlacementPrefKey(); | 1364 std::string wp_key = GetDevToolsWindowPlacementPrefKey(); |
1336 PrefService* prefs = profile_->GetPrefs(); | 1365 PrefService* prefs = profile_->GetPrefs(); |
1337 const DictionaryValue* wp_pref = prefs->GetDictionary(wp_key.c_str()); | 1366 const DictionaryValue* wp_pref = prefs->GetDictionary(wp_key.c_str()); |
1338 if (!wp_pref || wp_pref->empty()) { | 1367 if (!wp_pref || wp_pref->empty()) { |
1339 DictionaryPrefUpdate update(prefs, wp_key.c_str()); | 1368 DictionaryPrefUpdate update(prefs, wp_key.c_str()); |
1340 DictionaryValue* defaults = update.Get(); | 1369 DictionaryValue* defaults = update.Get(); |
1341 defaults->SetInteger("left", 100); | 1370 defaults->SetInteger("left", 100); |
1342 defaults->SetInteger("top", 100); | 1371 defaults->SetInteger("top", 100); |
1343 defaults->SetInteger("right", 740); | 1372 defaults->SetInteger("right", 740); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1537 return inspected_contents_observer_ ? | 1566 return inspected_contents_observer_ ? |
1538 inspected_contents_observer_->web_contents() : NULL; | 1567 inspected_contents_observer_->web_contents() : NULL; |
1539 } | 1568 } |
1540 | 1569 |
1541 void DevToolsWindow::DocumentOnLoadCompletedInMainFrame() { | 1570 void DevToolsWindow::DocumentOnLoadCompletedInMainFrame() { |
1542 is_loaded_ = true; | 1571 is_loaded_ = true; |
1543 UpdateTheme(); | 1572 UpdateTheme(); |
1544 DoAction(); | 1573 DoAction(); |
1545 AddDevToolsExtensionsToClient(); | 1574 AddDevToolsExtensionsToClient(); |
1546 } | 1575 } |
OLD | NEW |