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 e5d96c9705e72ac0415e6a10fa869546483ab8ce..91ac597981ec89e46b91ea80f830c2832fa9d7ea 100644 |
--- a/chrome/browser/devtools/devtools_targets_ui.cc |
+++ b/chrome/browser/devtools/devtools_targets_ui.cc |
@@ -279,6 +279,8 @@ class AdbTargetsUIHandler |
virtual void DeviceListChanged( |
const DevToolsAndroidBridge::RemoteDevices& devices) OVERRIDE; |
+ DevToolsAndroidBridge* GetAndroidBridge(); |
+ |
Profile* profile_; |
typedef std::map<std::string, |
@@ -290,15 +292,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); |
} |
@@ -315,15 +315,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( |
@@ -331,6 +340,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) { |
@@ -381,7 +391,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; |
@@ -390,7 +400,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. |
@@ -408,6 +418,10 @@ void AdbTargetsUIHandler::DeviceListChanged( |
SendSerializedTargets(device_list); |
} |
+DevToolsAndroidBridge* AdbTargetsUIHandler::GetAndroidBridge() { |
+ return DevToolsAndroidBridge::Factory::GetForProfile(profile_); |
+} |
+ |
} // namespace |
// DevToolsTargetsUIHandler --------------------------------------------------- |