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

Unified Diff: Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp

Issue 14294004: Implementing console command 'debug'. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 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: Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
diff --git a/Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp b/Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
index 028da891a71cc88fca5f4afc602203540d938c71..b9e1381af474f559b1b9cfc42bae1c72713e85a1 100644
--- a/Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
+++ b/Source/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
@@ -363,6 +363,47 @@ void V8InjectedScriptHost::setFunctionVariableValueMethodCustom(const v8::Functi
v8SetReturnValue(args, debugServer.setFunctionVariableValue(functionValue, scopeIndex, variableName, newValue));
}
+static bool getFunctionLocation(const v8::FunctionCallbackInfo<v8::Value>& args, String* scriptId, int* lineNumber, int* columnNumber)
+{
+ if (args.Length() < 1)
+ return false;
+ v8::Handle<v8::Value> fn = args[0];
+ if (!fn->IsFunction())
+ return false;
+ v8::HandleScope handleScope;
+ v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(fn);
+ *lineNumber = function->GetScriptLineNumber();
+ *columnNumber = function->GetScriptColumnNumber();
+ if (*lineNumber == v8::Function::kLineOffsetNotFound || *columnNumber == v8::Function::kLineOffsetNotFound)
+ return false;
+ *scriptId = toWebCoreStringWithUndefinedOrNullCheck(function->GetScriptId());
+ return true;
+}
+
+void V8InjectedScriptHost::setBreakpointMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ String scriptId;
+ int lineNumber;
+ int columnNumber;
+ if (!getFunctionLocation(args, &scriptId, &lineNumber, &columnNumber))
+ return;
+
+ InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder());
+ host->setBreakpoint(scriptId, lineNumber, columnNumber);
+}
+
+void V8InjectedScriptHost::removeBreakpointMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& args)
+{
+ String scriptId;
+ int lineNumber;
+ int columnNumber;
+ if (!getFunctionLocation(args, &scriptId, &lineNumber, &columnNumber))
+ return;
+
+ InjectedScriptHost* host = V8InjectedScriptHost::toNative(args.Holder());
+ host->removeBreakpoint(scriptId, lineNumber, columnNumber);
+}
+
} // namespace WebCore
« no previous file with comments | « LayoutTests/inspector/debugger/debug-console-command-expected.txt ('k') | Source/core/inspector/InjectedScriptExterns.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698