WebDriver/RemoteProtocol/GutenbergCDPUsage: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (→‎Events: Clarify)
(Update rankings based on non-headless Chrome test run (which passes more tests))
Line 82: Line 82:
cat gutenberg-logs | grep '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r
cat gutenberg-logs | grep '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r


14924 Input.dispatchKeyEvent
15594 Input.dispatchKeyEvent
12462 Runtime.callFunctionOn
12738 Runtime.callFunctionOn
7709 Input.dispatchMouseEvent
7324 Input.dispatchMouseEvent
3107 Runtime.releaseObject
3088 Runtime.releaseObject
1891 Page.getLayoutMetrics
1893 Page.getLayoutMetrics
1891 DOM.getContentQuads
1893 DOM.getContentQuads
1514 Runtime.executionContextCreated
1626 Runtime.executionContextCreated
1019 Runtime.evaluate
1101 Runtime.evaluate
  947 DOM.resolveNode
1091 Fetch.continueRequest
  947 DOM.describeNode
  977 DOM.resolveNode
  881 Fetch.continueRequest
  977 DOM.describeNode
676 Page.frameNavigated
  730 Page.frameNavigated
  598 Emulation.setTouchEmulationEnabled
  636 Emulation.setTouchEmulationEnabled
  598 Emulation.setDeviceMetricsOverride
  636 Emulation.setDeviceMetricsOverride
  560 Page.navigate
  595 Page.navigate
  529 Runtime.getProperties
  496 Runtime.getProperties
  238 Page.handleJavaScriptDialog
  267 Page.handleJavaScriptDialog
   81 Target.setAutoAttach
   83 Target.setAutoAttach
   81 Target.attachToTarget
   83 Target.attachToTarget
   81 Runtime.enable
   83 Runtime.enable
   81 Performance.enable
   83 Performance.enable
   81 Page.setLifecycleEventsEnabled
   83 Page.setLifecycleEventsEnabled
   81 Page.setInterceptFileChooserDialog
   83 Page.setInterceptFileChooserDialog
   81 Page.getFrameTree
   83 Page.getFrameTree
   81 Page.enable
   83 Page.enable
   81 Page.createIsolatedWorld
   83 Page.createIsolatedWorld
   81 Page.addScriptToEvaluateOnNewDocument
   83 Page.addScriptToEvaluateOnNewDocument
   81 Network.enable
   83 Network.enable
   81 Log.enable
   83 Log.enable
   79 Target.closeTarget
   81 Target.closeTarget
   78 Target.setDiscoverTargets
   80 Target.setDiscoverTargets
   77 Target.getBrowserContexts
   79 Target.getBrowserContexts
   77 Target.createTarget
   79 Target.createTarget
   28 Page.reload
   35 Page.reload
   22 Input.insertText
   23 Input.insertText
   14 Network.setCacheDisabled
   14 Network.setCacheDisabled
   12 Fetch.fulfillRequest
   12 Fetch.fulfillRequest
Line 122: Line 122:
   8 Fetch.enable
   8 Fetch.enable
   6 Fetch.disable
   6 Fetch.disable
  4 Network.emulateNetworkConditions
   4 DOM.getBoxModel
   4 DOM.getBoxModel
   3 DOM.setFileInputFiles
   3 DOM.setFileInputFiles
  2 Network.emulateNetworkConditions
</pre>
</pre>


Line 134: Line 134:
cat gutenberg-logs | grep -v '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r
cat gutenberg-logs | grep -v '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r


65119 Network.dataReceived
92569 Network.dataReceived
56977 Network.requestWillBeSent
92363 Network.requestWillBeSent
56906 Network.loadingFinished
92274 Network.loadingFinished
55864 Network.responseReceived
83137 Network.responseReceived
37106 Network.requestServedFromCache
68170 Network.requestServedFromCache
6232 Page.lifecycleEvent
24018 Network.responseReceivedExtraInfo
3367 Target.targetInfoChanged
8669 Page.lifecycleEvent
1510 Runtime.consoleAPICalled
6573 Network.requestWillBeSentExtraInfo
1346 Runtime.executionContextDestroyed
3597 Target.targetInfoChanged
893 Fetch.requestPaused
2113 Runtime.consoleAPICalled
  699 Page.navigatedWithinDocument
1456 Runtime.executionContextDestroyed
  681 Page.frameStoppedLoading
1104 Fetch.requestPaused
  678 Page.frameStartedLoading
  755 Page.navigatedWithinDocument
  674 Page.domContentEventFired
  733 Page.frameStoppedLoading
  666 Runtime.executionContextsCleared
  731 Page.frameStartedLoading
  664 Page.loadEventFired
  725 Page.loadEventFired
621 Target.targetCreated
724 Page.domContentEventFired
  238 Page.javascriptDialogOpening
  717 Runtime.executionContextsCleared
  238 Page.javascriptDialogClosed
  555 Target.targetCreated
  235 Target.targetDestroyed
  267 Page.javascriptDialogOpening
  89 Page.frameResized
  267 Page.javascriptDialogClosed
   81 Target.attachedToTarget
  241 Target.targetDestroyed
   79 Target.detachedFromTarget
177 Page.frameResized
   30 Page.frameScheduledNavigation
   83 Target.attachedToTarget
   30 Page.frameRequestedNavigation
   81 Target.detachedFromTarget
   30 Page.frameClearedScheduledNavigation
   78 Inspector.detached
   11 Network.resourceChangedPriority
  56 Network.resourceChangedPriority
  10 Page.frameAttached
  35 Page.frameScheduledNavigation
  7 Page.frameDetached
   35 Page.frameRequestedNavigation
   4 Log.entryAdded
   35 Page.frameClearedScheduledNavigation
   13 Page.frameAttached
  11 Page.frameDetached
   8 Log.entryAdded
   3 Page.windowOpen
   3 Page.windowOpen
   3 Network.loadingFailed
   3 Network.loadingFailed
</pre>
</pre>

Revision as of 20:40, 18 October 2019

Usage of CDP methods in https://github.com/WordPress/gutenberg end-to-end tests.


Methods

From https://bugzilla.mozilla.org/show_bug.cgi?id=1539202#c9:

$ DEBUG=puppeteer:* npm run test-e2e packages/e2e-tests/specs/ > gutenberg-logs 2>&1
$ cat gutenberg-logs  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq


  • DOM.getBoxModel
  • DOM.getContentQuads
  • DOM.setFileInputFiles
  • Emulation.setDeviceMetricsOverride
  • Emulation.setTouchEmulationEnabled
  • Input.dispatchKeyEvent
  • Input.dispatchMouseEvent
  • Inspector.detached
  • Log.enable
  • Log.entryAdded
  • Network.continueInterceptedRequest
  • Network.dataReceived
  • Network.emulateNetworkConditions
  • Network.enable
  • Network.loadingFailed
  • Network.loadingFinished
  • Network.requestIntercepted
  • Network.requestServedFromCache
  • Network.requestWillBeSent
  • Network.resourceChangedPriority
  • Network.responseReceived
  • Network.setCacheDisabled
  • Network.setRequestInterception
  • Page.bringToFront
  • Page.domContentEventFired
  • Page.enable
  • Page.frameAttached
  • Page.frameClearedScheduledNavigation
  • Page.frameDetached
  • Page.frameNavigated
  • Page.frameResized
  • Page.frameScheduledNavigation
  • Page.frameStartedLoading
  • Page.frameStoppedLoading
  • Page.getFrameTree
  • Page.handleJavaScriptDialog
  • Page.javascriptDialogClosed
  • Page.javascriptDialogOpening
  • Page.lifecycleEvent
  • Page.loadEventFired
  • Page.navigate
  • Page.navigatedWithinDocument
  • Page.reload
  • Page.setLifecycleEventsEnabled
  • Page.windowOpen
  • Performance.enable
  • Runtime.callFunctionOn
  • Runtime.consoleAPICalled
  • Runtime.enable
  • Runtime.evaluate
  • Runtime.executionContextCreated
  • Runtime.executionContextDestroyed
  • Runtime.executionContextsCleared
  • Runtime.getProperties
  • Runtime.releaseObject
  • Security.enable
  • Security.securityStateChanged
  • Target.setAutoAttach


Methods & Events ranked by frequency

Note that Puppeteer doesn't necessarily depend on many of the Network, Runtime, Fetch and Page items.

Methods

cat gutenberg-logs | grep '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r

15594 Input.dispatchKeyEvent
12738 Runtime.callFunctionOn
7324 Input.dispatchMouseEvent
3088 Runtime.releaseObject
1893 Page.getLayoutMetrics
1893 DOM.getContentQuads
1626 Runtime.executionContextCreated
1101 Runtime.evaluate
1091 Fetch.continueRequest
 977 DOM.resolveNode
 977 DOM.describeNode
 730 Page.frameNavigated
 636 Emulation.setTouchEmulationEnabled
 636 Emulation.setDeviceMetricsOverride
 595 Page.navigate
 496 Runtime.getProperties
 267 Page.handleJavaScriptDialog
  83 Target.setAutoAttach
  83 Target.attachToTarget
  83 Runtime.enable
  83 Performance.enable
  83 Page.setLifecycleEventsEnabled
  83 Page.setInterceptFileChooserDialog
  83 Page.getFrameTree
  83 Page.enable
  83 Page.createIsolatedWorld
  83 Page.addScriptToEvaluateOnNewDocument
  83 Network.enable
  83 Log.enable
  81 Target.closeTarget
  80 Target.setDiscoverTargets
  79 Target.getBrowserContexts
  79 Target.createTarget
  35 Page.reload
  23 Input.insertText
  14 Network.setCacheDisabled
  12 Fetch.fulfillRequest
   8 Page.bringToFront
   8 Fetch.enable
   6 Fetch.disable
   4 Network.emulateNetworkConditions
   4 DOM.getBoxModel
   3 DOM.setFileInputFiles

Events

These events are emitted during a gutenberg test run. Gutenberg tests don't explicitly listen to any CDP events.

cat gutenberg-logs | grep -v '"id":'  | grep -oE '"method":"[^"]+\.[^"]+"' | sed 's/"method":"//' | sed 's/"//' | sort | uniq -c | sort -r

92569 Network.dataReceived
92363 Network.requestWillBeSent
92274 Network.loadingFinished
83137 Network.responseReceived
68170 Network.requestServedFromCache
24018 Network.responseReceivedExtraInfo
8669 Page.lifecycleEvent
6573 Network.requestWillBeSentExtraInfo
3597 Target.targetInfoChanged
2113 Runtime.consoleAPICalled
1456 Runtime.executionContextDestroyed
1104 Fetch.requestPaused
 755 Page.navigatedWithinDocument
 733 Page.frameStoppedLoading
 731 Page.frameStartedLoading
 725 Page.loadEventFired
 724 Page.domContentEventFired
 717 Runtime.executionContextsCleared
 555 Target.targetCreated
 267 Page.javascriptDialogOpening
 267 Page.javascriptDialogClosed
 241 Target.targetDestroyed
 177 Page.frameResized
  83 Target.attachedToTarget
  81 Target.detachedFromTarget
  78 Inspector.detached
  56 Network.resourceChangedPriority
  35 Page.frameScheduledNavigation
  35 Page.frameRequestedNavigation
  35 Page.frameClearedScheduledNavigation
  13 Page.frameAttached
  11 Page.frameDetached
   8 Log.entryAdded
   3 Page.windowOpen
   3 Network.loadingFailed