Chrome Developer Tools API 🔎 panel tries to gather every bit of useful information from the usage of certain native functions that are prone to human errors, or are difficult to spot intuitively.
To assess Web Application implementation correctness and expedite issues discovery. See examples.
Gather callstack that is used to call every wrapped function:
Aggregate information about currently scheduled timeouts and intervals.
Gather details about which terminators are cancelling those scheduled setters:
setTimeout, setInterval, requestAnimationFrame, requestIdleCallback.Allow to initiate a debugging session by redirecting the code flow to a debugger breakpoint right before the callback invocation.
Allow to bypass (skip) setter's callback, or terminator invocation function.
Measure callback's execution self-time.
Count calls per second (CPS) where applicable.
Detect incorrect timeout argument passed to setTimeout, setInterval, requestIdleCallback, scheduler.postTask.
Detect terminator function invocation with a handler that is non-positive integer, or of non-existent/elapsed setter.
Detect timeouts cleared with clearInterval, or intervals cleared with clearTimeout.
Detect eval function usage in runtime, as well as setTimeout and setInterval when called with a string callback instead of a function.
off, cause the fact of wrapping it, excludes the access to local scope variables from the eval script, and as a result, may break the application if it does depend on it.Monitor Worker's methods and event handlers metrics.
self.close() in worker global context (only terminate() in top context)addEventListener.removeEventListener.Monitor scheduler.yield and scheduler.postTask.
Monitor mounted video and audio media elements in DOM.
controls, preservesPitch...Prevent the system from going to Sleep state due to user inactivity for a better observational experience. By default - off.
evalsetTimeoutclearTimeoutsetIntervalclearIntervalrequestAnimationFramecancelAnimationFramerequestIdleCallbackcancelIdleCallbackWorkerconstructorterminateonmessageonerrorpostMessageaddEventListenerremoveEventListenerschedulerpostTaskyield[!NOTE] While measuring performance of your code – consider disabling this extension as it may affect the results.
make, jq, zip, tree, python3Here is a short list to help you get started, for a full set of make commands refer to ./Makefile:
make clean install # install dependencies
make dev # build in development mode and watch for changes
make prod # build in production mode and make extension.chrome.zip