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

Side by Side Diff: dart/editor/tools/plugins/com.google.dart.tools.debug.core/src/com/google/dart/tools/debug/core/mobile/MobileLaunchConfigurationDelegate.java

Issue 337623003: Version 1.5.0-dev.4.11 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014, the Dart project authors. 2 * Copyright (c) 2014, the Dart project authors.
3 * 3 *
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except
5 * in compliance with the License. You may obtain a copy of the License at 5 * in compliance with the License. You may obtain a copy of the License at
6 * 6 *
7 * http://www.eclipse.org/legal/epl-v10.html 7 * http://www.eclipse.org/legal/epl-v10.html
8 * 8 *
9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License 9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express
11 * or implied. See the License for the specific language governing permissions a nd limitations under 11 * or implied. See the License for the specific language governing permissions a nd limitations under
12 * the License. 12 * the License.
13 */ 13 */
14 package com.google.dart.tools.debug.core.mobile; 14 package com.google.dart.tools.debug.core.mobile;
15 15
16 import com.google.dart.engine.utilities.instrumentation.InstrumentationBuilder; 16 import com.google.dart.engine.utilities.instrumentation.InstrumentationBuilder;
17 import com.google.dart.tools.core.mobile.AndroidDebugBridge; 17 import com.google.dart.tools.core.mobile.AndroidDebugBridge;
18 import com.google.dart.tools.core.mobile.AndroidDevice; 18 import com.google.dart.tools.core.mobile.AndroidDevice;
19 import com.google.dart.tools.core.mobile.MobileUrlConnectionException;
19 import com.google.dart.tools.debug.core.DartDebugCorePlugin; 20 import com.google.dart.tools.debug.core.DartDebugCorePlugin;
20 import com.google.dart.tools.debug.core.DartLaunchConfigWrapper; 21 import com.google.dart.tools.debug.core.DartLaunchConfigWrapper;
21 import com.google.dart.tools.debug.core.DartLaunchConfigurationDelegate; 22 import com.google.dart.tools.debug.core.DartLaunchConfigurationDelegate;
22 import com.google.dart.tools.debug.core.DebugUIHelper; 23 import com.google.dart.tools.debug.core.DebugUIHelper;
23 import com.google.dart.tools.debug.core.pubserve.PubCallback; 24 import com.google.dart.tools.debug.core.pubserve.PubCallback;
24 import com.google.dart.tools.debug.core.pubserve.PubResult; 25 import com.google.dart.tools.debug.core.pubserve.PubResult;
25 import com.google.dart.tools.debug.core.pubserve.PubServeManager; 26 import com.google.dart.tools.debug.core.pubserve.PubServeManager;
26 import com.google.dart.tools.debug.core.pubserve.PubServeResourceResolver; 27 import com.google.dart.tools.debug.core.pubserve.PubServeResourceResolver;
27 import com.google.dart.tools.debug.core.util.BrowserManager; 28 import com.google.dart.tools.debug.core.util.BrowserManager;
28 import com.google.dart.tools.debug.core.util.IRemoteConnectionDelegate; 29 import com.google.dart.tools.debug.core.util.IRemoteConnectionDelegate;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 if (result.isError()) { 100 if (result.isError()) {
100 DebugUIHelper.getHelper().showError( 101 DebugUIHelper.getHelper().showError(
101 "Launch Error", 102 "Launch Error",
102 "Pub serve communication error: " + result.getErrorMessage()); 103 "Pub serve communication error: " + result.getErrorMessage());
103 return; 104 return;
104 } 105 }
105 106
106 try { 107 try {
107 String launchUrl = result.getResult(); 108 String launchUrl = result.getResult();
108 launchOnMobile(launchUrl, true, new NullProgressMonitor()); 109 launchOnMobile(launchUrl, true, new NullProgressMonitor());
110 } catch (MobileUrlConnectionException e) {
111 // DartDebugCorePlugin.logError(e);
112 DebugUIHelper.getHelper().showError("Dartium Launch Error", e);
109 } catch (CoreException e) { 113 } catch (CoreException e) {
110 DartDebugCorePlugin.logError(e); 114 DartDebugCorePlugin.logError(e);
111 DebugUIHelper.getHelper().showError("Dartium Launch Error", e.getMessage ()); 115 DebugUIHelper.getHelper().showError("Dartium Launch Error", e);
112 } 116 }
113 } 117 }
114 118
115 }; 119 };
116 120
117 private DartLaunchConfigWrapper wrapper; 121 private DartLaunchConfigWrapper wrapper;
118 122
119 private static final int REMOTE_DEBUG_PORT = 9224; 123 private static final int REMOTE_DEBUG_PORT = 9224;
120 124
121 @Override 125 @Override
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 DartDebugCorePlugin.PLUGIN_ID, 227 DartDebugCorePlugin.PLUGIN_ID,
224 "No devices detected.\n\nConnect device, enable USB debugging and try again.")); 228 "No devices detected.\n\nConnect device, enable USB debugging and try again."));
225 } 229 }
226 if (device.getDeviceId() == null) { 230 if (device.getDeviceId() == null) {
227 throw new CoreException(new Status( 231 throw new CoreException(new Status(
228 IStatus.ERROR, 232 IStatus.ERROR,
229 DartDebugCorePlugin.PLUGIN_ID, 233 DartDebugCorePlugin.PLUGIN_ID,
230 "Unauthorized device detected.\n\nAuthorize device and try again.")); 234 "Unauthorized device detected.\n\nAuthorize device and try again."));
231 } 235 }
232 236
237 if (!devBridge.isHtmlPageAccessible(device, launchUrl).isOK()) {
238 // pub serve is always localhost over USB while old dev server is always o ver wifi
239 boolean localhostOverUsb = usePubServe;
240 throw new MobileUrlConnectionException(launchUrl, localhostOverUsb);
241 }
242
233 if (wrapper.getInstallContentShell()) { 243 if (wrapper.getInstallContentShell()) {
234 if (!devBridge.installContentShellApk(device.getDeviceId())) { 244 if (!devBridge.installContentShellApk(device)) {
235 throw new CoreException(new Status( 245 throw new CoreException(new Status(
236 IStatus.ERROR, 246 IStatus.ERROR,
237 DartDebugCorePlugin.PLUGIN_ID, 247 DartDebugCorePlugin.PLUGIN_ID,
238 "Failed to install content shell on mobile")); 248 "Failed to install content shell on mobile"));
239 } 249 }
240 } 250 }
241 devBridge.launchContentShell(device.getDeviceId(), launchUrl); 251 devBridge.launchContentShell(device.getDeviceId(), launchUrl);
242 252
243 // check if remote connection is alive 253 // check if remote connection is alive
244 if (!isRemoteConnected()) { 254 if (!isRemoteConnected()) {
245 devBridge.setupPortForwarding(Integer.toString(REMOTE_DEBUG_PORT)); 255 devBridge.setupPortForwarding(Integer.toString(REMOTE_DEBUG_PORT));
246 // TODO(keertip): check if host needs to be the ip for wifi connections 256 // wait for content shell to open to get the tabs to connect
257 try {
258 Thread.sleep(500);
259 } catch (InterruptedException e) {
260
261 }
247 performRemoteConnection("localhost", REMOTE_DEBUG_PORT, monitor, usePubSer ve); 262 performRemoteConnection("localhost", REMOTE_DEBUG_PORT, monitor, usePubSer ve);
248 } 263 }
249 } 264 }
250 265
251 private String getUrlFromResourceServer(IResource resource) throws IOException , CoreException, 266 private String getUrlFromResourceServer(IResource resource) throws IOException , CoreException,
252 URISyntaxException { 267 URISyntaxException {
253 268
254 ResourceServer server = ResourceServerManager.getServer(); 269 ResourceServer server = ResourceServerManager.getServer();
255 String resPath = resource.getFullPath().toPortableString(); 270 String resPath = resource.getFullPath().toPortableString();
256 String localAddress = server.getLocalAddress(); 271 String localAddress = server.getLocalAddress();
(...skipping 21 matching lines...) Expand all
278 return true; 293 return true;
279 } 294 }
280 } catch (DebugException e) { 295 } catch (DebugException e) {
281 296
282 } 297 }
283 } 298 }
284 return false; 299 return false;
285 } 300 }
286 301
287 } 302 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698