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

Unified Diff: plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java

Issue 7235005: Add intermediate VmResourceRef for inaccurate source lookup (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: clean Created 9 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 side-by-side diff with in-line comments
Download patch
Index: plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java
diff --git a/plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java b/plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java
index a0dc1a1ea4cd5afa8904cc682fdc76e78ce84a7c..15f688f8a51668bbb511af439ab34092ad09188b 100644
--- a/plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java
+++ b/plugins/org.chromium.debug.core/src/org/chromium/debug/core/model/ChromiumLineBreakpoint.java
@@ -13,9 +13,11 @@ import org.chromium.debug.core.sourcemap.SourcePositionMap;
import org.chromium.debug.core.sourcemap.SourcePositionMap.TranslateDirection;
import org.chromium.debug.core.util.ChromiumDebugPluginUtil;
import org.chromium.sdk.Breakpoint;
+import org.chromium.sdk.Breakpoint.Target;
import org.chromium.sdk.JavascriptVm;
-import org.chromium.sdk.SyncCallback;
import org.chromium.sdk.JavascriptVm.BreakpointCallback;
+import org.chromium.sdk.RelayOk;
+import org.chromium.sdk.SyncCallback;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
@@ -121,14 +123,16 @@ public class ChromiumLineBreakpoint extends LineBreakpoint {
void failure(String errorMessage);
}
- public static void createOnRemote(WrappedBreakpoint uiBreakpoint,
- VmResourceId scriptId, ConnectedTargetData connectedTargetData,
+ public static RelayOk createOnRemote(final WrappedBreakpoint uiBreakpoint,
+ VmResourceRef vmResourceRef, final ConnectedTargetData connectedTargetData,
final CreateOnRemoveCallback createOnRemoveCallback,
SyncCallback syncCallback) throws CoreException {
- JavascriptVm javascriptVm = connectedTargetData.getJavascriptVm();
+ final JavascriptVm javascriptVm = connectedTargetData.getJavascriptVm();
// ILineBreakpoint lines are 1-based while V8 lines are 0-based
final int line = (uiBreakpoint.getInner().getLineNumber() - 1);
+ final int column = 0;
+
BreakpointCallback callback = new BreakpointCallback() {
public void success(Breakpoint sdkBreakpoint) {
createOnRemoveCallback.success(sdkBreakpoint);
@@ -138,13 +142,42 @@ public class ChromiumLineBreakpoint extends LineBreakpoint {
}
};
- SourcePositionMap map = connectedTargetData.getSourcePositionMap();
- SourcePosition vmPosition =
- map.translatePosition(scriptId, line, 0,TranslateDirection.USER_TO_VM);
+ class SdkParams {
+ SdkParams(Target target, int line, int column) {
+ this.target = target;
+ this.line = line;
+ this.column = column;
+ }
+
+ final Breakpoint.Target target;
+ final int line;
+ final int column;
+ }
+
+ SdkParams sdkParams = vmResourceRef.accept(new VmResourceRef.Visitor<SdkParams>() {
+ @Override
+ public SdkParams visitResourceId(VmResourceId resourceId) {
+ SourcePositionMap map = connectedTargetData.getSourcePositionMap();
+ SourcePosition vmPosition =
+ map.translatePosition(resourceId, line, column,TranslateDirection.USER_TO_VM);
+ final int vmLine = vmPosition.getLine();
+ final int vmColumn = vmPosition.getColumn();
+ final Breakpoint.Target target;
+ VmResourceId vmSideVmResourceId = vmPosition.getId();
+ if (vmSideVmResourceId.getId() == null) {
+ target = new Breakpoint.Target.ScriptName(vmSideVmResourceId.getName());
+ } else {
+ target = new Breakpoint.Target.ScriptId(vmSideVmResourceId.getId());
+ }
+
+ return new SdkParams(target, vmLine, vmColumn);
+ }
+ });
- javascriptVm.setBreakpoint(vmPosition.getId().getTargetForBreakpoint(),
- vmPosition.getLine(),
- vmPosition.getColumn(),
+ return javascriptVm.setBreakpoint(
+ sdkParams.target,
+ sdkParams.line,
+ sdkParams.column,
uiBreakpoint.getInner().isEnabled(),
uiBreakpoint.getCondition(),
uiBreakpoint.getIgnoreCount(),

Powered by Google App Engine
This is Rietveld 408576698