Chromium Code Reviews| Index: chrome/browser/devtools/devtools_targets_ui.cc |
| diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc |
| index 786ebcbc7a5da9c814975ae0796f900b1237f5af..02de1a235e5a2323ddcd8a6d23b9b934be46d707 100644 |
| --- a/chrome/browser/devtools/devtools_targets_ui.cc |
| +++ b/chrome/browser/devtools/devtools_targets_ui.cc |
| @@ -292,6 +292,8 @@ class AdbTargetsUIHandler |
| virtual void DeviceListChanged( |
| const DevToolsAndroidBridge::RemoteDevices& devices) OVERRIDE; |
| + DevToolsAndroidBridge* GetAndroidBridge(); |
| + |
| Profile* profile_; |
| typedef std::map<std::string, |
| @@ -303,15 +305,13 @@ AdbTargetsUIHandler::AdbTargetsUIHandler(const Callback& callback, |
| Profile* profile) |
| : DevToolsTargetsUIHandler(kTargetSourceRemote, callback), |
| profile_(profile) { |
| - DevToolsAndroidBridge* android_bridge = |
| - DevToolsAndroidBridge::Factory::GetForProfile(profile_); |
| + DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| if (android_bridge) |
| android_bridge->AddDeviceListListener(this); |
| } |
| AdbTargetsUIHandler::~AdbTargetsUIHandler() { |
| - DevToolsAndroidBridge* android_bridge = |
| - DevToolsAndroidBridge::Factory::GetForProfile(profile_); |
| + DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| if (android_bridge) |
| android_bridge->RemoveDeviceListListener(this); |
| } |
| @@ -328,15 +328,24 @@ void AdbTargetsUIHandler::Open( |
| const std::string& url, |
| const DevToolsTargetsUIHandler::TargetCallback& callback) { |
| RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
| - if (it != remote_browsers_.end()) |
| - it->second->Open(url, base::Bind(&CallOnTarget, callback)); |
| + if (it == remote_browsers_.end()) |
| + return; |
| + |
| + DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| + if (android_bridge) |
| + android_bridge->Open(it->second, url, base::Bind(&CallOnTarget, callback)); |
| } |
| scoped_refptr<content::DevToolsAgentHost> |
| AdbTargetsUIHandler::GetBrowserAgentHost( |
| const std::string& browser_id) { |
| RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); |
| - return it != remote_browsers_.end() ? it->second->GetAgentHost() : NULL; |
| + if (it == remote_browsers_.end()) |
| + return NULL; |
| + |
| + DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| + return android_bridge ? android_bridge->GetBrowserAgentHost(it->second) |
| + : NULL; |
| } |
| void AdbTargetsUIHandler::DeviceListChanged( |
| @@ -344,6 +353,7 @@ void AdbTargetsUIHandler::DeviceListChanged( |
| remote_browsers_.clear(); |
| STLDeleteValues(&targets_); |
| + DevToolsAndroidBridge* android_bridge = GetAndroidBridge(); |
| base::ListValue device_list; |
| for (DevToolsAndroidBridge::RemoteDevices::const_iterator dit = |
| devices.begin(); dit != devices.end(); ++dit) { |
| @@ -389,7 +399,7 @@ void AdbTargetsUIHandler::DeviceListChanged( |
| remote_browsers_[browser_id] = browser; |
| browser_data->Set(kAdbPagesList, page_list); |
| std::vector<DevToolsAndroidBridge::RemotePage*> pages = |
| - browser->CreatePages(); |
| + android_bridge->CreatePages(browser); |
| for (std::vector<DevToolsAndroidBridge::RemotePage*>::iterator it = |
| pages.begin(); it != pages.end(); ++it) { |
| DevToolsAndroidBridge::RemotePage* page = *it; |
| @@ -398,7 +408,7 @@ void AdbTargetsUIHandler::DeviceListChanged( |
| target_data->SetBoolean( |
| kAdbAttachedForeignField, |
| target->IsAttached() && |
| - !DevToolsAndroidBridge::HasDevToolsWindow(target->GetId())); |
| + !android_bridge->HasDevToolsWindow(target->GetId())); |
| // Pass the screen size in the target object to make sure that |
| // the caching logic does not prevent the target item from updating |
| // when the screen size changes. |
| @@ -416,6 +426,10 @@ void AdbTargetsUIHandler::DeviceListChanged( |
| SendSerializedTargets(device_list); |
| } |
| +DevToolsAndroidBridge* AdbTargetsUIHandler::GetAndroidBridge() { |
| + return DevToolsAndroidBridge::Factory::GetForProfile(profile_); |
|
dgozman
2014/10/02 12:19:34
Why don't you just get it once and save to |androi
vkuzkokov
2014/10/02 13:07:46
Done.
|
| +} |
| + |
| } // namespace |
| // DevToolsTargetsUIHandler --------------------------------------------------- |