Exemplo n.º 1
0
        public virtual void Register(ChromeProtocolSession session)
        {
            this.IsEnable = false;
            this.session  = session;

            session.RegisterCommandHandler <EnableCommand>(EnableCommand);
            session.RegisterCommandHandler <DisableCommand>(DisableCommand);
        }
Exemplo n.º 2
0
        public virtual void Register(ChromeProtocolSession session)
        {
            this.IsEnable = false;

            this.session = session;

            session.RegisterCommandHandler <EnableCommand>(EnableCommand);
            session.RegisterCommandHandler <DisableCommand>(DisableCommand);

            session.RegisterCommandHandler <GetHeapUsageCommand>(GetHeapUsageCommand);

            session.RegisterCommandHandler <EvaluateCommand>(EvaluateCommand);

            session.RegisterCommandHandler <GetPropertiesCommand>(GetPropertiesCommand);
        }
Exemplo n.º 3
0
        public virtual void Register(ChromeProtocolSession session)
        {
            this.Session = session;

            session.RegisterCommandHandler <DisableCommand>(this.DisableCommand);
            session.RegisterCommandHandler <EnableCommand>(this.EnableCommand);

            session.RegisterCommandHandler <GetScriptSourceCommand>(GetScriptSource);
            session.RegisterCommandHandler <GetPossibleBreakpointsCommand>(this.GetPossibleBreakpointsCommand);

            session.RegisterCommandHandler <SetBreakpointsActiveCommand>(this.SetBreakpointsActiveCommand);
            session.RegisterCommandHandler <SetBreakpointByUrlCommand>(this.SetBreakpointByUrlCommand);
            session.RegisterCommandHandler <RemoveBreakpointCommand>(this.RemoveBreakpointCommand);

            session.RegisterCommandHandler <ResumeCommand>(this.ResumeCommand);
            session.RegisterCommandHandler <PauseCommand>(this.PauseCommand);
            session.RegisterCommandHandler <ContinueToLocationCommand>(this.ContinueToLocationCommand);
            session.RegisterCommandHandler <StepOverCommand>(this.StepOverCommand);
        }
        private static Task BreakOn(string scriptUrl, string breakPointName, ChromeProtocolSession session, object context, CancellationToken cancellationToken)
        {
            var debugger = session.GetService <DebuggerHandler>();

            if (debugger.IsEnable)
            {
                var runtimeHanlder = session.GetService <RuntimeHandler>();
                var script         = debugger.ScriptsByUrl[scriptUrl];
                var breakPoint     = script.BreakableScriptPoint[breakPointName];

                if (debugger.BreakOn == BreakableScriptPoint.Any || // any breakpoint, mainly set on pause
                    debugger.BreakOn == breakPoint || // a specific breakpoint, mainly set by run to location
                    breakPoint.IsBreakPointSet)    // an activated breakpoint
                {
                    debugger.BreakOn = null;

                    // a break point may have its own context,
                    // if required, register it
                    IDisposable localObjectContext = null;
                    if (context != null)
                    {
                        localObjectContext = runtimeHanlder.AllocateLocalObject(breakPoint.GetContextId(script), context);
                    }

                    var task = breakPoint.GetBreakPointTask(cancellationToken);

                    // do not forget to remove out context when we're done with the breakpoint
                    if (localObjectContext != null)
                    {
                        task.ContinueWith((_) => localObjectContext.Dispose());
                    }

                    return(task);
                }
            }

            return(Task.CompletedTask);
        }