| 1 | = Web Inspector Notes 2019 = |
| 2 | ''by Joseph Pecoraro'' |
| 3 | |
| 4 | * Canvas Tab |
| 5 | * shows a list of contexts visible on the page |
| 6 | * basic information (e.g. size, DOM node, attributes) |
| 7 | * each context is able to be recorded |
| 8 | * able to programmatically record context via `console.record` |
| 9 | * all actions are recorded that are performed on the canvas |
| 10 | * actions that would trigger a visual change are highlighted in green |
| 11 | * some actions are invisible (2D) |
| 12 | * path inspector shows moving operations that don't actually draw |
| 13 | * also works with 3D canvas, but more limited |
| 14 | * not a "live" replay |
| 15 | * takes snapshots whenever the content changes |
| 16 | * each action shows a backtrace for debugging |
| 17 | * able to capture a single or multiple frames |
| 18 | * click is multiple |
| 19 | * shift-click is single frame |
| 20 | * Layers tab |
| 21 | * shows rendering layers in a 3D view |
| 22 | * enabled via an experimental setting inside WebInspector |
| 23 | * previously, some layer information was listed in the DOM tree, but it wasn't visualized |
| 24 | * able to highlight layers and see where they are on the page |
| 25 | * shows compositing reasons for each layer |
| 26 | * able to pan/spin/etc the visualization |
| 27 | * the size (memory) of each layer is shown |
| 28 | * toggles for Compositing Borders and Paint Flashing have moved here from the Elements tab |
| 29 | * Network tab refresh |
| 30 | * used to be a huge table of data |
| 31 | * ~10 different columns by default |
| 32 | * reworked for visual clarity |
| 33 | * smaller set of default columns |
| 34 | * optimized for resizing and performance |
| 35 | * visualization more closely matches other developer tools for resource timing information |
| 36 | * selecting an individual visualization will show a deeper view of what happens |
| 37 | * currently missing zoom/resizing of the visualization, but it is planned |
| 38 | * specialized content views for each resource with more detailed and better organized information |
| 39 | * moved from the old resource sidebar |
| 40 | * cookies have a dedicated tab for each resource for better visualization |
| 41 | * sizes tab shows warnings |
| 42 | * resources that aren't compressed but could be compressed |
| 43 | * now shows a complete list of headers |
| 44 | * query string parameters are parsed into a list |
| 45 | * actual request/response information shown for each resource |
| 46 | * additional specialized view for JSON that shows an object tree |
| 47 | * Styles sidebar |
| 48 | * moved to a spreadsheet model |
| 49 | * conforms more to other developer tools |
| 50 | * editing keyboard shortcuts more obvious |
| 51 | * Architecture changes |
| 52 | * current functionality |
| 53 | * inspecting a WebContentProcess will jump directly to the backing WebCore::Page |
| 54 | * PSON will cause the inspector process to be destroyed |
| 55 | * Inspector frontend page tied to the Inspector backend associated with the WebCore::Page |
| 56 | * instead, connect directly to that page |
| 57 | * shift to connecting to targets instead of pages |
| 58 | * "mini" backend would be the target, which would know how to communicate with what it's inspecting (e.g. page) |
| 59 | * another page would appear as another target |
| 60 | * closing the first target would just shift the main target to any other top-level (e.g. page) targets |
| 61 | * allows multiple processes to be inspected (e.g. service worker, subframes) |
| 62 | * should mitigate any inspector backend crashes, as inspector page's backend is effectively a message handler to the actual target's backend |
| 63 | * design is similar to other developer tools |
| 64 | * allows tools that work with debugging multiple browsers to continue supporting WebKit |
| 65 | * goal is to ensure backward compatibility with backends that use the old system |
| 66 | * ability to directly connect to service workers |
| 67 | * list is shown in Safari's Develop many under "Service Workers" |