-
Notifications
You must be signed in to change notification settings - Fork 9.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flow Support (Fraggle Rock) #11313
Labels
Comments
This was referenced Sep 15, 2020
We've put together a project plan and rough design doc that's open for comments. I've also updated this issue to reflect the early phases of the plan. IMPORTANT: This next phase starts to cement terminology like |
This was referenced Oct 30, 2020
This was referenced Dec 1, 2020
This was referenced Jan 5, 2021
Closed
This was referenced Jan 14, 2021
This was referenced Oct 15, 2021
This was referenced Oct 25, 2021
This was referenced Nov 10, 2021
This was referenced Dec 16, 2021
This was referenced Dec 20, 2021
This was referenced Feb 2, 2022
2 tasks
Merged
asambstack
added a commit
to asambstack/playwright-lighthouse
that referenced
this issue
Feb 15, 2023
In the legacy lighthouse flow, a browser needs to be started with RDP enabled and lighthouse starts testing by firing CDP commands over this RDP. Lighthouse team has been working on the fraggle rock API with flow support and several changes (see: GoogleChrome/lighthouse#11313). This also includes a navigation API that can connect to existing puppeteer page instance for performing lighthouse tests. Using this navigation API in playwright lighthouse, modified the playwright object to mock puppeteer specific API.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
Lighthouse is going to slowly introduce support for running on flows, i.e. situations beyond just the initial page load. This issue collects related discussions we've had on this topic in the past, describes the rough roadmap and milestones, and links to relevant design documents as they're written.
Scope
Four core scenarios to eventually support.
Tentative Milestones
Phase 0 - Research & Design
Phase 1 - Basic End-to-End FR Structure
TransitionalGatherer
andTransitionalDriver
types that any gatherer supporting FR must use instead of default gatherer (with full access to driver andloadData
) core(fr): add fraggle rock driver #11742 core(config): remove gatherer options support #11743-pptrtest.js
suite support that runs separately from unit but can use real chrome and test puppeteer use cases core(fr): add base fraggle rock snapshot runner #11748Phase 2 - Configuration Support, Snapshot mode
.meta
that can annotate gatherers with their supported mode core(fr): add base gatherer class #11917snapshot
method to return the artifact core(fr): add base gatherer class #11917Phase 3 - Timespan mode
api.js
intogather/snapshot-runner
/gather/timespan-runner
core(fr): add basic timespan support #11944Phase 4 - Navigation mode
DevToolsLog
gathereronAny()
Trace
gatherer andtraces
shim artifactdevtoolsLogs
shim artifactPhase 5 - Audit/Artifact upgrading
Goals: Internal refactoring to make places that require a page load more explicit, remove assumptions. (e.g. #11034 #11253 etc)
Goal: Match real-world navigation mode usecases (waitFor conditions, real network monitor stuff)
This part is parallelizable and work likely distributed among the team.
Phase 6 - Transitional Compatibility Layer / Parity / DevTools compat
id
)Phase 7 - Report UI + API Hardening
i18n string check report(flow): import lhr strings #13215 (comment)tracked elsewherePhase 8 (Post CDS) - Fraggle Rock as the new normal, scope expansion, cleanup, QoS improvements
High Priority
navigate: () => myLink.click()
instead of a URLrequestedUrl
and/or backfill requestedUrl to matchBacklog
Epics
single page app navigation mode (provide SPA load metrics like navigation, not just timespan)tracked elsewhereopportunity rework to focus on kilobytes rather than wastedMsprimo prioanti-clobber mode (go through our methods that can stomp on puppeteer usage and optionally skip them)tracked elsewherethrottlingemulationblocked URL patternsrequest interceptionjavascript dialogsdisconnect should disable all settingscleanuptracked elsewhereremove legacy pathremove gather-runnerremove artifact hacks forupdate config helpers to use new FR types[ ] More consistent thumbnails (example)Tasks
Roughly priority ranked.
ensure that defaultSession can't be used to enable/disable domainsnot doingenforce any use ofnot doing*.disable
must use a dedicated sessionHighest-impact audits report(flow): top opportunities #13082tracked elsewhereartifact improvementsnot doingsplit cssusage artifact into stylesheet content and usagesplit jsusage artifact into script content and usagemobile viewport for flow reporttracked elsewherepagedependencygraph support for timespansfuck noCDP Asks
Related Issues
#1769
#3837
#11312
#11122
#6028
#1418
#2332
The text was updated successfully, but these errors were encountered: