Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: chrome/browser/devtools/devtools_targets_ui.cc

Issue 912863002: [DevTools] Remote JSON requests from javascript (Chromium side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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"
11 #include "base/version.h" 11 #include "base/version.h"
12 #include "chrome/browser/devtools/device/devtools_android_bridge.h" 12 #include "chrome/browser/devtools/device/devtools_android_bridge.h"
13 #include "chrome/browser/devtools/devtools_target_impl.h" 13 #include "chrome/browser/devtools/devtools_target_impl.h"
14 #include "chrome/common/chrome_version_info.h" 14 #include "chrome/common/chrome_version_info.h"
15 #include "content/public/browser/browser_child_process_observer.h" 15 #include "content/public/browser/browser_child_process_observer.h"
16 #include "content/public/browser/browser_thread.h" 16 #include "content/public/browser/browser_thread.h"
17 #include "content/public/browser/child_process_data.h" 17 #include "content/public/browser/child_process_data.h"
18 #include "content/public/browser/notification_observer.h" 18 #include "content/public/browser/notification_observer.h"
19 #include "content/public/browser/notification_registrar.h" 19 #include "content/public/browser/notification_registrar.h"
20 #include "content/public/browser/notification_service.h" 20 #include "content/public/browser/notification_service.h"
21 #include "content/public/browser/notification_source.h" 21 #include "content/public/browser/notification_source.h"
22 #include "content/public/browser/notification_types.h" 22 #include "content/public/browser/notification_types.h"
23 #include "content/public/browser/worker_service.h" 23 #include "content/public/browser/worker_service.h"
24 #include "content/public/browser/worker_service_observer.h" 24 #include "content/public/browser/worker_service_observer.h"
25 #include "content/public/common/process_type.h" 25 #include "content/public/common/process_type.h"
26 #include "net/base/escape.h" 26 #include "net/base/escape.h"
27 #include "net/base/net_errors.h"
27 28
28 using content::BrowserThread; 29 using content::BrowserThread;
29 30
30 namespace { 31 namespace {
31 32
32 const char kTargetSourceField[] = "source"; 33 const char kTargetSourceField[] = "source";
33 const char kTargetSourceLocal[] = "local"; 34 const char kTargetSourceLocal[] = "local";
34 const char kTargetSourceRemote[] = "remote"; 35 const char kTargetSourceRemote[] = "remote";
35 36
36 const char kTargetIdField[] = "id"; 37 const char kTargetIdField[] = "id";
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 AdbTargetsUIHandler(const Callback& callback, Profile* profile); 280 AdbTargetsUIHandler(const Callback& callback, Profile* profile);
280 ~AdbTargetsUIHandler() override; 281 ~AdbTargetsUIHandler() override;
281 282
282 void Open(const std::string& browser_id, 283 void Open(const std::string& browser_id,
283 const std::string& url, 284 const std::string& url,
284 const DevToolsTargetsUIHandler::TargetCallback&) override; 285 const DevToolsTargetsUIHandler::TargetCallback&) override;
285 286
286 scoped_refptr<content::DevToolsAgentHost> GetBrowserAgentHost( 287 scoped_refptr<content::DevToolsAgentHost> GetBrowserAgentHost(
287 const std::string& browser_id) override; 288 const std::string& browser_id) override;
288 289
290 void SendJsonRequest(const std::string& browser_id,
291 const std::string& url,
292 const JsonCallback& callback) override;
293
289 private: 294 private:
290 // DevToolsAndroidBridge::Listener overrides. 295 // DevToolsAndroidBridge::Listener overrides.
291 void DeviceListChanged( 296 void DeviceListChanged(
292 const DevToolsAndroidBridge::RemoteDevices& devices) override; 297 const DevToolsAndroidBridge::RemoteDevices& devices) override;
293 298
294 DevToolsAndroidBridge* GetAndroidBridge(); 299 DevToolsAndroidBridge* GetAndroidBridge();
295 300
296 Profile* const profile_; 301 Profile* const profile_;
297 DevToolsAndroidBridge* const android_bridge_; 302 DevToolsAndroidBridge* const android_bridge_;
298 303
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 scoped_refptr<content::DevToolsAgentHost> 344 scoped_refptr<content::DevToolsAgentHost>
340 AdbTargetsUIHandler::GetBrowserAgentHost( 345 AdbTargetsUIHandler::GetBrowserAgentHost(
341 const std::string& browser_id) { 346 const std::string& browser_id) {
342 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); 347 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id);
343 if (it == remote_browsers_.end()) 348 if (it == remote_browsers_.end())
344 return NULL; 349 return NULL;
345 350
346 return android_bridge_->GetBrowserAgentHost(it->second); 351 return android_bridge_->GetBrowserAgentHost(it->second);
347 } 352 }
348 353
354 void AdbTargetsUIHandler::SendJsonRequest(const std::string& browser_id,
355 const std::string& url,
356 const JsonCallback& callback) {
357 RemoteBrowsers::iterator it = remote_browsers_.find(browser_id);
358 if (it == remote_browsers_.end()) {
359 callback.Run(net::ERR_FAILED, std::string());
360 } else {
361 android_bridge_->SendJsonRequest(it->second, url, callback);
362 }
363 }
364
349 void AdbTargetsUIHandler::DeviceListChanged( 365 void AdbTargetsUIHandler::DeviceListChanged(
350 const DevToolsAndroidBridge::RemoteDevices& devices) { 366 const DevToolsAndroidBridge::RemoteDevices& devices) {
351 remote_browsers_.clear(); 367 remote_browsers_.clear();
352 STLDeleteValues(&targets_); 368 STLDeleteValues(&targets_);
353 369
354 base::ListValue device_list; 370 base::ListValue device_list;
355 for (DevToolsAndroidBridge::RemoteDevices::const_iterator dit = 371 for (DevToolsAndroidBridge::RemoteDevices::const_iterator dit =
356 devices.begin(); dit != devices.end(); ++dit) { 372 devices.begin(); dit != devices.end(); ++dit) {
357 DevToolsAndroidBridge::RemoteDevice* device = dit->get(); 373 DevToolsAndroidBridge::RemoteDevice* device = dit->get();
358 base::DictionaryValue* device_data = new base::DictionaryValue(); 374 base::DictionaryValue* device_data = new base::DictionaryValue();
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 const std::string& url, 469 const std::string& url,
454 const TargetCallback& callback) { 470 const TargetCallback& callback) {
455 callback.Run(NULL); 471 callback.Run(NULL);
456 } 472 }
457 473
458 scoped_refptr<content::DevToolsAgentHost> 474 scoped_refptr<content::DevToolsAgentHost>
459 DevToolsTargetsUIHandler::GetBrowserAgentHost(const std::string& browser_id) { 475 DevToolsTargetsUIHandler::GetBrowserAgentHost(const std::string& browser_id) {
460 return NULL; 476 return NULL;
461 } 477 }
462 478
479 void DevToolsTargetsUIHandler::SendJsonRequest(const std::string& browser_id,
480 const std::string& url,
481 const JsonCallback& callback) {
482 callback.Run(net::ERR_FAILED, std::string());
483 }
484
463 base::DictionaryValue* DevToolsTargetsUIHandler::Serialize( 485 base::DictionaryValue* DevToolsTargetsUIHandler::Serialize(
464 const DevToolsTargetImpl& target) { 486 const DevToolsTargetImpl& target) {
465 base::DictionaryValue* target_data = new base::DictionaryValue(); 487 base::DictionaryValue* target_data = new base::DictionaryValue();
466 target_data->SetString(kTargetSourceField, source_id_); 488 target_data->SetString(kTargetSourceField, source_id_);
467 target_data->SetString(kTargetIdField, target.GetId()); 489 target_data->SetString(kTargetIdField, target.GetId());
468 target_data->SetString(kTargetTypeField, target.GetType()); 490 target_data->SetString(kTargetTypeField, target.GetType());
469 target_data->SetBoolean(kAttachedField, target.IsAttached()); 491 target_data->SetBoolean(kAttachedField, target.IsAttached());
470 target_data->SetString(kUrlField, target.GetURL().spec()); 492 target_data->SetString(kUrlField, target.GetURL().spec());
471 target_data->SetString(kNameField, net::EscapeForHTML(target.GetTitle())); 493 target_data->SetString(kNameField, net::EscapeForHTML(target.GetTitle()));
472 target_data->SetString(kFaviconUrlField, target.GetFaviconURL().spec()); 494 target_data->SetString(kFaviconUrlField, target.GetFaviconURL().spec());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 device_status_dict->SetString(kPortForwardingBrowserId, 541 device_status_dict->SetString(kPortForwardingBrowserId,
520 SerializeBrowserId(sit->first)); 542 SerializeBrowserId(sit->first));
521 543
522 std::string device_id = base::StringPrintf( 544 std::string device_id = base::StringPrintf(
523 kAdbDeviceIdFormat, 545 kAdbDeviceIdFormat,
524 sit->first->serial().c_str()); 546 sit->first->serial().c_str());
525 result.Set(device_id, device_status_dict); 547 result.Set(device_id, device_status_dict);
526 } 548 }
527 callback_.Run(result); 549 callback_.Run(result);
528 } 550 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698