Tools & Tricks
Jon Rojí Taboada
https://bit.ly/2WGbN9q
Frontend at Sngular - @Jnroji
https://bit.ly/2WGbN9q
DETECT, TOOLS AND TIPS, NOT FIX
Chrome DevTools
console.log()
console.log()
console.log()
console.log()
console.log()
console.log()
console.log()
console.log()
Chrome DevTools
console.log() 🔍
DevTools 🔬 🔧
Chrome DevTools
✏️ DOM & styles
▶️ Console Master
📂 Sources
✋ Debuggers & Breakpoints
🌐 Network
📈 Coverage
🧙♀️ Tools & tricks
Chrome DevTools DOM and styles
Client
Unknown behaviors
Chrome DevTools - DOM and styles
DOM
CSS
Chrome DevTools - DOM and styles
Can select and edit an HTML node and all properties
And store the element as temp1 ... tempn on console to explore it
Chrome DevTools - DOM and styles
Copy option got some great options
You can copy the css selector, in order to obtain the element. SO USEFUL for testing porpouses
Chrome DevTools - DOM and styles
Styles
Element
states modifier
Element
classes modifier
Nice when toggling classes
Chrome DevTools - DOM and styles
Styles
Class addition
If we maintain pressed for a few seconds, we can change the file where the class is added
Chrome DevTools - DOM and styles
Computed
Useful debugging for a concrete property on a big design system
Study box properties and sizes
Chrome DevTools - DOM and styles
You can create breakpoints on node modifications!
subtree modifications - stops when any child is modified
attribute modifications - stops when an attr is modified
node removal - stops if the node is removed from DOM
Chrome DevTools - DOM and styles
Event Listeners
Event Listeners show you events associated to the selected node
Deactivate Ancestors check in order to avoid info overflow
Chrome DevTools - DOM and styles
Accessibility
Can explore a11y node information
Check the role attribute in order to check what people expects from the element
Chrome DevTools - DOM and styles
Bonus!
Tired of native screenshots?
cmd + shift + P
Chrome DevTools - Performance
More tools > Animation
(cmd + shift + p)
Chrome DevTools Console
Chrome DevTools - Console
Console
$0 - References the selected HTML element
Execution context from the debugger
Chrome DevTools - Console
Console
❤️ Live expressions
JS statements that executes every 250ms
Chrome DevTools Sources
Client
Inherit code
Chrome DevTools - Sources
Sources
One of the most important and complex areas on DevTools
Show loaded files
Allow us to set breakpoints (not only on js)
Allow us to override entire files!
Blackbox scripts!
Chrome DevTools - Sources
Sources
Page
Show all the context loaded on our browser and all files
All selected files will be shown on the main window, allowing us to set breakpoints
Better to use "Search" tool
Pretty print!
Chrome DevTools - Sources
Filesystem
We can link the served content with our files, and save the edited content!
❤️ Great editing styles
Look for the green point
❤️ Awesome for local development
Chrome DevTools - Sources
Overrides
We can replace a served file with a custom and editable file!
- active Enable Local Overrides
- Select the file on network and save for override
❤️ Great for testing new solutions
Look for the purple point
❤️ Awesome for production testing
Chrome DevTools - Sources
Threads & Watch
Threads
Useful working with web workers
Can pause both threads at the same time
Watch (deprecated?) > live expressions
Show info about variables values
Chrome DevTools - Sources
Breakpoints!
JS breakpoint
Stop JS execution on the selected line or debugger
Shows info about the
hovered variable
Chrome DevTools - Sources
Breakpoints!
Pause
Next statement
Jump into/out of function
Next statement (including functions)
Chrome DevTools - Sources
Breakpoints!
Call Stack
Show us all the functions called from the breakpoint
Blackbox the libraries and frameworks!
Scope
Show us the local and global context in the moment of the execution pause so we dont need to hover all props on the source file
Console context becomes the local!
Chrome DevTools - Sources
Breakpoints!
XHR Breakpoints
Type a url fragment to stop on xhr request
The Call Stack will show where the request is initiated, allowing us to navigate there
Chrome DevTools - Sources
Breakpoints!
DOM elements Breakpoints
Select a HTML Element and select Break on >
The Call Stack will show where the modification is requested, useful using events or toggling attributes
Chrome DevTools - Sources
Breakpoints!
Event Listener Breakpoints
You can activate breakpoints for any kind of event, in order to analize where the application is listening for.
You can see the Global listeners setted too
Chrome DevTools Network
Blame Backend
Study your HUGE web
Chrome DevTools - Network
Chrome DevTools - Network
We can get request information by clicking it
Check if the request params are ok
Chrome DevTools - Network
Capture screenshots, useful for understand the critical path
Show requests with more information (files weight & more)
Preserve log, useful when quick redirections happens
Disable cache, nice for development and analysis
Chrome DevTools - Network
One of the best tools on DevTools
Allow us to limit the connection speed
Test like a 3g network or Offline (nice for PWA)
Great for look into the waterfall graph
Slow 3G is too slow...
Can be configure from dev console (cmd + shift + p)
Chrome DevTools - Network
With 3G activated, the waterfall is more visible, and with screenshots, we can detect the "prerender" requested sources
Chrome DevTools - Network
Block requests by URL or Domain
Allow us to check the web behaviour without the blocked resource
Save for overrides
Magic
Chrome DevTools - Network
Check the "Priority" column, in order to see the requests priorities
Chrome DevTools - Network
Chrome DevTools - Performance
More tools > Coverage
(cmd + shift + p)
Check unused CSS & JS
Chrome DevTools Performance
Client
50k lines of code
Chrome DevTools - Audits
Chrome DevTools - Audits
Now available for CI
https://github.com/ebidel/lighthousebot
Chrome DevTools - Performance
The worse config, the better
Check Screenshots for more info without hovering
Click on the gray circle to analyze concrete areas or behaviours, or on the arrow to force a full load
Chrome DevTools - Performance
Chrome DevTools - Performance
Discover
Analyze
Fix
Chrome DevTools - Performance
FPS
The green bars show fps during the rendering / animation
The redpoints shows bottlenecks or fps problems
CPU
Shows CPU use. Discover critical points
Screenshots will help identifying the critical points
Chrome DevTools - Performance
Performance is the art of doing less
Scripting and Rendering
426.2 ms + 279.0 ms
Check colors for info!
requestIdleCallback
requestAnimationFrame
Chrome DevTools - Performance
Select a problematic stack call, and analyze
Navigate on stack call to detect problematic points
Chrome DevTools - Performance
More tools > Rendering
(cmd + shift + p)
FPS meter 🧭
Paint flashing 🖼️
Scrolling performance issues 🧶
Chrome DevTools - Performance
Chrome has their own Task manager where we can check the consumed memory
Chrome DevTools - Performance
Chrome DevTools - Performance
More tools > Performance monitor
(cmd + shift + p)
Check a lot of params
Chrome DevTools Application
Chrome DevTools - Application
PWA info
Storage
Cache
Frames
Chrome DevTools - Application
Services workers
Manifest
Can test notifications on the fly or force updates
Shows info about the manifest and PWA configuration
Chrome DevTools - Application
Golden button for devs
(and clients)
Chrome DevTools - Application
Shows and allow to modify different storages
Modify access tokens in order to see the "renovation case"
Chrome DevTools TOO MUCH
https://bit.ly/2WGbN9q
THANK YOU
@JNROJI
https://bit.ly/2WGbN9q