private bool TryDeMinify(string package, int line, int column, out CallStackFrameInfo callStackFrameInfo) { AjaxMinSymbolForJavaScript javaScriptSymbol = default(AjaxMinSymbolForJavaScript); javaScriptSymbol.ScriptEndLine = line; javaScriptSymbol.ScriptStartLine = line; javaScriptSymbol.ScriptEndColumn = column; javaScriptSymbol.ScriptStartColumn = column; AjaxMinSymbolForJavaScript ajaxMinSymbolForJavaScript; if (!this.parameters.MinificationSymbolsMapForJavaScript.Search(package, javaScriptSymbol, out ajaxMinSymbolForJavaScript)) { callStackFrameInfo = null; return(false); } callStackFrameInfo = new CallStackFrameInfo { StartLine = ajaxMinSymbolForJavaScript.SourceStartLine, StartColumn = ajaxMinSymbolForJavaScript.SourceStartColumn, EndLine = ajaxMinSymbolForJavaScript.SourceEndLine, EndColumn = ajaxMinSymbolForJavaScript.SourceEndColumn, FunctionName = this.parameters.MinificationSymbolsMapForJavaScript.GetFunctionName(ajaxMinSymbolForJavaScript.FunctionNameIndex), FileName = ClientWatsonDatapointHandler.GetRelativeFilePath(this.parameters.MinificationSymbolsMapForJavaScript.GetSourceFilePathFromId(ajaxMinSymbolForJavaScript.SourceFileId)), FolderPath = this.parameters.ExchangeSourcesPath }; return(true); }
private ResultCode TryDeMinifyAndDeObfuscate(string package, int line, int column, out CallStackFrameInfo callStackFrameInfo) { AjaxMinSymbolForScriptSharp javaScriptSymbol = default(AjaxMinSymbolForScriptSharp); javaScriptSymbol.ScriptEndLine = line; javaScriptSymbol.ScriptStartLine = line; javaScriptSymbol.ScriptEndColumn = column; javaScriptSymbol.ScriptStartColumn = column; AjaxMinSymbolForScriptSharp ajaxMinSymbolForScriptSharp; if (!this.parameters.MinificationSymbolsMapForScriptSharp.Search(package, javaScriptSymbol, out ajaxMinSymbolForScriptSharp)) { callStackFrameInfo = null; return(ResultCode.FailedToDeMinify); } ScriptSharpSymbolWrapper javaScriptSymbol2 = new ScriptSharpSymbolWrapper(new ScriptSharpSymbol { ScriptStartPosition = ajaxMinSymbolForScriptSharp.SourceStartPosition, ScriptEndPosition = ajaxMinSymbolForScriptSharp.SourceEndPosition }); ScriptSharpSymbolWrapper scriptSharpSymbolWrapper; if (!this.parameters.ObfuscationSymbolsMap.Search(package, javaScriptSymbol2, out scriptSharpSymbolWrapper)) { callStackFrameInfo = null; return(ResultCode.FailedToDeObfuscate); } ScriptSharpSymbol innerSymbol = scriptSharpSymbolWrapper.InnerSymbol; callStackFrameInfo = new CallStackFrameInfo { StartLine = innerSymbol.SourceStartLine, FunctionName = this.parameters.ObfuscationSymbolsMap.GetFunctionName(innerSymbol.FunctionNameIndex), FileName = ClientWatsonDatapointHandler.GetRelativeFilePath(this.parameters.ObfuscationSymbolsMap.GetSourceFilePathFromId(innerSymbol.SourceFileId)), FolderPath = this.parameters.ExchangeSourcesPath }; return(ResultCode.Success); }
public ProcessingResult TryProcessCallStackFrame(string frame, out CallStackFrameInfo callStackFrameInfo) { List <Regex> regexList = new List <Regex> { ClientWatsonDatapointHandler.ChromeAndIEStackFrameRegex, ClientWatsonDatapointHandler.IOS7StackFrameRegex }; callStackFrameInfo = null; Match match; if (!ClientWatsonDatapointHandler.TryMatchAny(frame, regexList, out match)) { return(new ProcessingResult { Code = ResultCode.NoMatch, RawErrorFrame = frame }); } string text = match.Groups["package"].Value; int num = text.LastIndexOf('/') + 1; if (num > 0) { text = text.Substring(num, text.Length - num); } int num2 = int.Parse(match.Groups["line"].Value); int num3 = int.Parse(match.Groups["column"].Value); string text2 = match.Groups["function"].Value.TrimEnd(new char[0]); string text3; Tuple <int, int> tuple; if (this.parameters.ConsolidationSymbolsMap.HasSymbolsLoadedForScript(text)) { if (!this.parameters.ConsolidationSymbolsMap.Search(text, num2, num3, out text3, out tuple)) { return(new ProcessingResult { Code = ResultCode.FailedToDeConsolidate, Package = text, Function = text2, Line = num2, Column = num3 }); } } else { text3 = text; tuple = new Tuple <int, int>(num2, num3); } if (this.parameters.MinificationSymbolsMapForScriptSharp.HasSymbolsLoadedForScript(text3)) { ResultCode resultCode = this.TryDeMinifyAndDeObfuscate(text3, tuple.Item1, tuple.Item2, out callStackFrameInfo); if (resultCode != ResultCode.Success) { return(new ProcessingResult { Code = resultCode, SourceType = FrameSourceType.ScriptSharp, Package = text3, Function = text2, Line = tuple.Item1, Column = tuple.Item2 }); } } else if (this.parameters.MinificationSymbolsMapForJavaScript.HasSymbolsLoadedForScript(text3)) { if (!this.TryDeMinify(text3, tuple.Item1, tuple.Item2, out callStackFrameInfo)) { return(new ProcessingResult { Code = ResultCode.FailedToDeMinify, SourceType = FrameSourceType.JavaScript, Package = text3, Function = text2, Line = tuple.Item1, Column = tuple.Item2 }); } } else { callStackFrameInfo = new CallStackFrameInfo(true) { StartLine = tuple.Item1, EndLine = tuple.Item1, StartColumn = tuple.Item2, EndColumn = tuple.Item2, FunctionName = text2, FileName = text3 + ".js", FolderPath = string.Empty }; } callStackFrameInfo.PackageName = text3; return(new ProcessingResult { Code = ResultCode.Success }); }