GoogleChrome/lighthouse 23172
Automated auditing, performance metrics, and best practices for the web.
GoogleChrome/lighthouse-ci 4562
Automate running Lighthouse for every commit, viewing the changes, and preventing regressions
GoogleChrome/chrome-launcher 811
Launch Google Chrome with ease from node.
jpeg-js/jpeg-js 468
A pure javascript JPEG encoder and decoder for node.js
A blessed Chrome Trace parser.
'cuz there are still a zillion pages to check in 2020
patrickhulce/destiny-gun-damage 3
Calculator and database for destiny gun damage.
Cool project that does cool things over the Yelp dataset.
Web application to assist with grading homeworks and assessing code style.
patrickhulce/electron-performance-examples 1
Collection of electron performance examples.
issue commentGoogleChrome/lighthouse
WPT started getting a lot of PROTOCOL_TIMEOUT errors
I've been unsuccessful at securing the crash ID of this case, and this time around in that VM the chrome log is very unhelpful without any signs of a crash despite the Lighthouse logs indicating there was one :/ Here are the logs of what I discovered so far. Unclear what the next steps would be to try and get a crash ID to file upstream at this point (perhaps whip out the linux debugging tools and get raw crash details?) It's crippling our test suite though, so I'll definitely look into it more next week 👍
<details> <summary>Chrome Logs During Crash Run</summary>
DevTools listening on ws://127.0.0.1:34061/devtools/browser/df0a6073-9f8f-4ca7-8a50-c7e3649c01e1
[30807:30857:0730/184916.908570:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[30807:30857:0730/184916.908624:ERROR:bus.cc(393)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[30856:30872:0730/184916.927314:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2021' log
[30856:30872:0730/184916.927401:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2022' log
[30856:30872:0730/184916.927416:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2023' log
[30856:30872:0730/184916.927429:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2021' log
[30856:30872:0730/184916.927441:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2022' log
[30856:30872:0730/184916.927453:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2023' log
[30856:30872:0730/184916.927465:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Aviator' log
[30856:30872:0730/184916.927487:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Icarus' log
[30856:30872:0730/184916.927499:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Pilot' log
[30856:30872:0730/184916.927510:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Rocketeer' log
[30856:30872:0730/184916.927523:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Skydiver' log
[30856:30872:0730/184916.927535:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2021' Log
[30856:30872:0730/184916.927546:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2022' Log
[30856:30872:0730/184916.927557:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2023' Log
[30856:30872:0730/184916.927568:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Log Server
[30856:30872:0730/184916.927580:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2021 Log
[30856:30872:0730/184916.927591:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2022 Log
[30856:30872:0730/184916.927603:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2023 Log
[30856:30872:0730/184916.927619:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2021 Log
[30856:30872:0730/184916.927630:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2022 Log
[30856:30872:0730/184916.927642:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2023 Log
[30856:30872:0730/184916.927653:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Sectigo 'Sabre' CT log
[30856:30872:0730/184916.927668:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Sectigo 'Mammoth' CT log
[30856:30872:0730/184916.927680:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2021' log
[30856:30872:0730/184916.927692:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2022' log
[30856:30872:0730/184916.927703:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2023' log
[30856:30872:0730/184916.927714:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia CT2021
[30856:30872:0730/184916.927725:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2022
[30856:30872:0730/184916.927737:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2023
[30856:30872:0730/184916.927748:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec 'Sirius' log
[30856:30872:0730/184916.927760:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: StartCom log
[30856:30872:0730/184916.927772:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: WoSign log
[30856:30872:0730/184916.927784:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2021
[30856:30872:0730/184916.927796:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Izenpe log
[30856:30872:0730/184916.927809:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Log Server 2
[30856:30872:0730/184916.927822:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: CNNIC CT log
[30856:30872:0730/184916.927834:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Venafi log
[30856:30872:0730/184916.927847:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec 'Vega' log
[30856:30872:0730/184916.927860:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Certly.IO log
[30856:30872:0730/184916.927872:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec log
[30856:30872:0730/184916.932246:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2021' log
[30856:30872:0730/184916.932285:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2022' log
[30856:30872:0730/184916.932302:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Argon2023' log
[30856:30872:0730/184916.932316:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2021' log
[30856:30872:0730/184916.932329:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2022' log
[30856:30872:0730/184916.932350:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Xenon2023' log
[30856:30872:0730/184916.932364:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Aviator' log
[30856:30872:0730/184916.932378:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Icarus' log
[30856:30872:0730/184916.932390:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Pilot' log
[30856:30872:0730/184916.932403:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Rocketeer' log
[30856:30872:0730/184916.932416:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Google 'Skydiver' log
[30856:30872:0730/184916.932430:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2021' Log
[30856:30872:0730/184916.932444:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2022' Log
[30856:30872:0730/184916.932458:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Cloudflare 'Nimbus2023' Log
[30856:30872:0730/184916.932471:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Log Server
[30856:30872:0730/184916.932484:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2021 Log
[30856:30872:0730/184916.932497:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2022 Log
[30856:30872:0730/184916.932539:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Yeti2023 Log
[30856:30872:0730/184916.932555:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2021 Log
[30856:30872:0730/184916.932568:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2022 Log
[30856:30872:0730/184916.932583:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Nessie2023 Log
[30856:30872:0730/184916.932596:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Sectigo 'Sabre' CT log
[30856:30872:0730/184916.932610:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Sectigo 'Mammoth' CT log
[30856:30872:0730/184916.932623:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2021' log
[30856:30872:0730/184916.932636:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2022' log
[30856:30872:0730/184916.932649:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Let's Encrypt 'Oak2023' log
[30856:30872:0730/184916.932663:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia CT2021
[30856:30872:0730/184916.932676:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2022
[30856:30872:0730/184916.932689:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2023
[30856:30872:0730/184916.932702:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec 'Sirius' log
[30856:30872:0730/184916.932716:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: StartCom log
[30856:30872:0730/184916.932729:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: WoSign log
[30856:30872:0730/184916.932742:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Trust Asia Log2021
[30856:30872:0730/184916.932756:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Izenpe log
[30856:30872:0730/184916.932768:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: DigiCert Log Server 2
[30856:30872:0730/184916.932780:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: CNNIC CT log
[30856:30872:0730/184916.932793:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Venafi log
[30856:30872:0730/184916.932805:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec 'Vega' log
[30856:30872:0730/184916.932817:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Certly.IO log
[30856:30872:0730/184916.932830:VERBOSE1:multi_log_ct_verifier.cc(62)] Adding CT log: Symantec log
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
[30855:30855:0730/184916.953997:VERBOSE1:vaapi_wrapper.cc(607)] InitializeVaDriver_Locked(): vaInitialize failed: unknown libva error
[30877:1:0730/184916.954992:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: renderer.
[30876:1:0730/184916.956309:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: renderer.
[30876:1:0730/184916.959408:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30855:30855:0730/184916.960606:VERBOSE1:gpu_init.cc(463)] Quit GPU process launch to fallback to SwiftShader cleanly on Linux
[30877:1:0730/184916.961284:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30807:30807:0730/184916.966358:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(412)] MutablePO2TS::OnWebDataServiceRequestDone. Result type: 5
[30807:30807:0730/184916.966395:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(472)] MutablePO2TS::LoadAllCredentialsIntoMemory; 0 Credential(s).
[30807:30807:0730/184916.966421:VERBOSE1:account_reconcilor.cc(376)] AccountReconcilor::OnEndBatchOfRefreshTokenStateChanges. Reconcilor state: 0
[30807:30807:0730/184916.966468:VERBOSE1:account_reconcilor.cc(453)] AccountReconcilor::StartReconcile: token service *not* ready yet.
[30855:30855:0730/184916.967096:ERROR:viz_main_impl.cc(162)] Exiting GPU process due to errors during initialization
[30807:30807:0730/184916.970188:VERBOSE1:gaia_cookie_manager_service.cc(1052)] GaiaCookieManagerService::ListAccounts
[30807:30807:0730/184916.970247:VERBOSE2:gaia_auth_fetcher.cc(337)] Gaia fetcher URL: https://accounts.google.com/ListAccounts?gpsia=1&source=ChromiumBrowser&json=standard
[30807:30807:0730/184916.970255:VERBOSE2:gaia_auth_fetcher.cc(338)] Gaia fetcher headers: Origin: https://www.google.com
[30807:30807:0730/184916.970261:VERBOSE2:gaia_auth_fetcher.cc(339)] Gaia fetcher body:
[30856:30872:0730/184916.970881:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://accounts.google.com/ListAccounts?gpsia=1&source=ChromiumBrowser&json=standard
[30856:30872:0730/184916.975356:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.976845:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.977511:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.977560:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.977624:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.977648:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184916.978441:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30877:1:0730/184916.979228:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184916.981601:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184916.982669:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30877:1:0730/184916.982953:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30807:30896:0730/184916.989748:VERBOSE1:bus.cc(884)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s
string "org.freedesktop.UPower"
[30807:30896:0730/184916.990502:VERBOSE1:bus.cc(681)] Filter function already exists: 1 with associated data: 0x32ce003a9990
[30807:30896:0730/184916.990531:VERBOSE1:bus.cc(884)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s
string "org.freedesktop.UPower"
[30807:30896:0730/184916.990847:ERROR:object_proxy.cc(622)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[30807:30896:0730/184916.990866:WARNING:property.cc(144)] DaemonVersion: GetAndBlock: failed.
[30877:1:0730/184916.992877:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30877:1:0730/184916.994253:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30877:1:0730/184916.994357:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30877:1:0730/184916.995670:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30807:30896:0730/184916.998757:ERROR:object_proxy.cc(622)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[30807:30896:0730/184916.999040:ERROR:object_proxy.cc(622)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[30856:30872:0730/184917.000892:VERBOSE1:tls_handshaker.cc(106)] TlsClient: Continuing handshake
[30856:30872:0730/184917.001392:VERBOSE1:tls_client_handshaker.cc(463)] Client: handshake finished
[30807:30840:0730/184917.002930:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=5, frame_id=1]
[30877:1:0730/184917.003907:VERBOSE1:document.cc(3712)] Document::DispatchUnloadEvents() URL = <null>
[30877:1:0730/184917.004051:VERBOSE1:document.cc(3792)] Actually dispatching an UnloadEvent: URL = <null>
[30807:30840:0730/184917.008195:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=5, frame_id=1]
[30897:30897:0730/184917.010183:WARNING:vaapi_wrapper.cc(588)] VAAPI video acceleration not available for swiftshader
[30897:30897:0730/184917.010318:ERROR:gpu_init.cc(441)] Passthrough is not supported, GL is swiftshader
[30877:1:0730/184917.011330:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: 0x10e4e54c2348
URL:
context_type: WEB_PAGE
effective extension id: (none)
effective context type: WEB_PAGE
[30877:1:0730/184917.012108:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: (nil)
URL:
context_type: UNSPECIFIED
effective extension id: (none)
effective context type: UNSPECIFIED
[30877:1:0730/184917.012273:VERBOSE1:dispatcher.cc(434)] Num tracked contexts: 1
[30877:1:0730/184917.014194:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30897:30897:0730/184917.017762:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: gpu-process.
[30807:30807:0730/184917.020809:VERBOSE1:gaia_cookie_manager_service.cc(890)] ListAccounts successful
[30807:30807:0730/184917.020842:VERBOSE1:gaia_cookie_manager_service.cc(1088)] GaiaCookieManagerService::HandleNextRequest
[30807:30807:0730/184917.020875:VERBOSE1:gaia_cookie_manager_service.cc(1104)] GaiaCookieManagerService::HandleNextRequest: no more
[30807:30807:0730/184917.020910:VERBOSE1:account_reconcilor.cc(592)] AccountReconcilor::OnAccountsInCookieUpdated: CookieJar 0 accounts, Reconcilor's state is 1, Error was
[30807:30807:0730/184917.020925:VERBOSE1:account_reconcilor.cc(721)] AccountReconcilor::LoadValidAccountsFromTokenService: Chrome 0 accounts
[30807:30807:0730/184917.020949:VERBOSE1:account_reconcilor.cc(800)] AccountReconcilor::CalculateIfMultiloginReconcileIsDone: Error was
[30807:30807:0730/184917.020976:VERBOSE1:account_reconcilor.cc(751)] AccountReconcilor::StartReconcileIfChromeAccountsChanged
[30877:8:0730/184917.030930:ERROR:command_buffer_proxy_impl.cc(126)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[30897:30897:0730/184917.039738:VERBOSE1:gles2_cmd_decoder.cc(3835)] GL_OES_packed_depth_stencil supported.
[30897:30897:0730/184917.040397:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[30876:1:0730/184917.777346:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184917.777488:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184917.777646:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184917.778296:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184917.782681:VERBOSE1:document.cc(3712)] Document::DispatchUnloadEvents() URL = <null>
[30876:1:0730/184917.782824:VERBOSE1:document.cc(3792)] Actually dispatching an UnloadEvent: URL = <null>
[30807:30840:0730/184917.784235:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=6, frame_id=1]
[30876:1:0730/184917.788641:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: 0x10e4e54c2348
URL:
context_type: WEB_PAGE
effective extension id: (none)
effective context type: WEB_PAGE
[30876:1:0730/184917.789740:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: (nil)
URL:
context_type: UNSPECIFIED
effective extension id: (none)
effective context type: UNSPECIFIED
[30876:1:0730/184917.790493:VERBOSE1:dispatcher.cc(434)] Num tracked contexts: 1
[30924:1:0730/184917.788291:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: renderer.
[30807:30840:0730/184917.793701:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=6, frame_id=1]
[30876:1:0730/184917.793792:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30924:1:0730/184917.793637:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30924:1:0730/184917.806812:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30924:1:0730/184917.806958:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184917.816721:VERBOSE1:document.cc(3712)] Document::DispatchUnloadEvents() URL = "about:blank"
[30876:1:0730/184917.816917:VERBOSE1:document.cc(3792)] Actually dispatching an UnloadEvent: URL = "about:blank"
[30876:1:0730/184917.817584:VERBOSE1:dispatcher.cc(614)] Num tracked contexts: 0
[30876:1:0730/184917.819430:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: 0x10e4e54c2348
URL:
context_type: WEB_PAGE
effective extension id: (none)
effective context type: WEB_PAGE
[30876:1:0730/184917.819513:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: (nil)
URL:
context_type: UNSPECIFIED
effective extension id: (none)
effective context type: UNSPECIFIED
[30876:1:0730/184917.819595:VERBOSE1:dispatcher.cc(434)] Num tracked contexts: 1
[30876:1:0730/184917.821499:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30876:1:0730/184917.821582:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30807:30840:0730/184917.822677:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=6, frame_id=1]
[30876:1:0730/184918.849681:VERBOSE1:document.cc(3712)] Document::DispatchUnloadEvents() URL = "about:blank"
[30876:1:0730/184918.849863:VERBOSE1:document.cc(3792)] Actually dispatching an UnloadEvent: URL = "about:blank"
[30876:1:0730/184918.850185:VERBOSE2:thread_state.cc(470)] [state:0x5609579a23f0] ScheduleGCIfNeeded
[30876:1:0730/184918.850445:VERBOSE1:dispatcher.cc(614)] Num tracked contexts: 0
[30876:1:0730/184918.852274:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: 0x10e4e54c2348
URL:
context_type: WEB_PAGE
effective extension id: (none)
effective context type: WEB_PAGE
[30876:1:0730/184918.852355:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: (nil)
URL:
context_type: UNSPECIFIED
effective extension id: (none)
effective context type: UNSPECIFIED
[30876:1:0730/184918.852438:VERBOSE1:dispatcher.cc(434)] Num tracked contexts: 1
[30876:1:0730/184918.855136:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30876:1:0730/184918.855226:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30807:30840:0730/184918.856066:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=6, frame_id=1]
[30948:1:0730/184918.923164:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: utility.
[30897:30912:0730/184918.949477:VERBOSE1:video_capture_oracle.cc(96)] Capture size auto-throttling is now enabled.
[30897:30912:0730/184918.949863:VERBOSE1:capture_resolution_chooser.cc(205)] Recomputed snapped frame sizes: 19x11 <--> 179x101 <--> 339x191 <--> 500x281
[30897:30912:0730/184918.949928:VERBOSE1:capture_resolution_chooser.cc(157)] Recomputed capture size from 640x360 to 500x281 (100% of ideal size)
[30897:30912:0730/184918.950077:VERBOSE1:capture_resolution_chooser.cc(205)] Recomputed snapped frame sizes: 28x50 <--> 78x140 <--> 129x230 <--> 179x320 <--> 230x410 <--> 281x500
[30897:30912:0730/184918.950131:VERBOSE1:capture_resolution_chooser.cc(157)] Recomputed capture size from 500x281 to 281x500 (100% of ideal size)
[30897:30912:0730/184918.950185:VERBOSE2:video_capture_oracle.cc(452)] Now proposing a capture size of 281x500
[30807:30807:0730/184918.962532:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(326)] MutablePO2TS::RefreshTokenIsAvailable
[30807:30807:0730/184918.962915:VERBOSE2:browser_switcher_service.cc(374)] Done parsing external SiteList for sitelist rules. Applying rules to future navigations.
[30807:30807:0730/184918.962964:VERBOSE2:browser_switcher_service.cc(388)] Done parsing external SiteList for greylist rules. Applying rules to future navigations.
[30856:30872:0730/184918.964150:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://www.webpagetest.org/
[30876:1:0730/184919.561547:VERBOSE1:document.cc(3712)] Document::DispatchUnloadEvents() URL = "about:blank"
[30876:1:0730/184919.562364:VERBOSE1:document.cc(3792)] Actually dispatching an UnloadEvent: URL = "about:blank"
[30876:1:0730/184919.565753:VERBOSE1:dispatcher.cc(614)] Num tracked contexts: 0
[30876:1:0730/184919.592853:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: 0x10e4e54c2348
URL:
context_type: WEB_PAGE
effective extension id: (none)
effective context type: WEB_PAGE
[30876:1:0730/184919.592957:VERBOSE1:script_context.cc(189)] Created context:
extension id: (none)
frame: (nil)
URL:
context_type: UNSPECIFIED
effective extension id: (none)
effective context type: UNSPECIFIED
[30876:1:0730/184919.593745:VERBOSE1:dispatcher.cc(434)] Num tracked contexts: 1
[30807:30840:0730/184919.606442:VERBOSE1:media_stream_manager.cc(705)] RFAOSF::Core() [process_id=6, frame_id=1]
[30876:1:0730/184919.610187:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30876:1:0730/184919.614422:VERBOSE1:script_context.cc(196)] Destroyed context for extension
extension id:
effective extension id:
[30856:30872:0730/184919.661556:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://www.webpagetest.org/pagestyle2.css?v=138
[30856:30872:0730/184919.663517:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://www.webpagetest.org/images/wpt-logo.svg
[30856:30872:0730/184920.270870:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://www.webpagetest.org/js/site.js?v=40
[30856:30872:0730/184920.293730:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://www.webpagetest.org/js/test.js?v=47
</details>
<details> <summary>Lighthouse Logs During Crash Run</summary>
xvfb-run --auto-servernum lighthouse https://www.webpagetest.org --chrome-flags="--user-data-dir=/tmp/protocol_timeout --enable-logging=stderr --v=2" --verbose --throttling-method=devtools --chrome-ignore-default-flags
LH:ChromeLauncher:verbose created /tmp/protocol_timeout +0ms
LH:ChromeLauncher:verbose Launching with command:
LH:ChromeLauncher:verbose "/usr/bin/google-chrome-stable" --remote-debugging-port=36693 --user-data-dir=/tmp/protocol_timeout --user-data-dir=/tmp/protocol_timeout --enable-logging=stderr --v=2 about:blank +3ms
LH:ChromeLauncher:verbose Chrome running with pid 4290 on port 36693. +3ms
LH:ChromeLauncher Waiting for browser. +0ms
LH:ChromeLauncher Waiting for browser... +0ms
LH:ChromeLauncher Waiting for browser..... +510ms
LH:ChromeLauncher Waiting for browser.....✓ +1ms
LH:status:verbose Create config +1ms
LH:status:verbose Requiring gatherers +2ms
LH:statusEnd:verbose Requiring gatherers +57ms
LH:status:verbose Requiring audits +0ms
LH:statusEnd:verbose Requiring audits +442ms
LH:config:warn IFrameElements gatherer requested, however no audit requires it. +22ms
LH:config:warn FormElements gatherer requested, however no audit requires it. +0ms
LH:statusEnd:verbose Create config +45ms
LH:status:verbose Runner setup +0ms
LH:listen for event =>:verbose Page.frameNavigated +1ms
LH:listen for event =>:verbose Runtime.executionContextDestroyed +0ms
LH:listen for event =>:verbose Target.attachedToTarget +0ms
LH:listen for event =>:verbose Page.frameNavigated +0ms
LH:status Connecting to browser +0ms
LH:statusEnd:verbose Connecting to browser +32ms
LH:status Resetting state with about:blank +3ms
LH:listen for event =>:verbose Page.frameNavigated +1ms
LH:Driver:verbose Page.enable +1ms
LH:method => browser:verbose Page.enable +0ms
LH:method <= browser OK:verbose Page.enable {} +9ms
LH:Driver:verbose Network.enable +0ms
LH:method => browser:verbose Network.enable +0ms
LH:method <= browser OK:verbose Network.enable {} +1ms
LH:method => browser:verbose Page.setLifecycleEventsEnabled {"enabled":true} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"3F36B47427160157AF9F822 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"3F36B47427160157AF9F822 +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"3F36B47427160157AF9F822 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"3F36B47427160157AF9F822 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"3F36B47427160157AF9F822 +0ms
LH:method <= browser OK:verbose Page.setLifecycleEventsEnabled {} +0ms
LH:method => browser:verbose Page.navigate {"url":"about:blank"} +0ms
LH:listen once for event =>:verbose Page.frameNavigated +1ms
LH:method <= browser OK:verbose Page.navigate {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B31 +1ms
LH:<= event:verbose Page.frameStartedLoading {"frameId":"08C3D886293E020EC6BC8D08F746440A"} +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +2ms
LH:<= event:verbose Page.frameNavigated {"frame":{"id":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147 +5ms
LH:method => browser:verbose Target.setAutoAttach {"flatten":true,"autoAttach":true,"waitForDebuggerOnStart":true} +0ms
LH:<= event:verbose Page.loadEventFired {"timestamp":9746.123155} +0ms
LH:method => browser:verbose Page.getResourceTree +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +1ms
LH:<= event:verbose Page.frameStoppedLoading {"frameId":"08C3D886293E020EC6BC8D08F746440A"} +0ms
LH:<= event:verbose Page.domContentEventFired {"timestamp":9746.123623} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +1ms
LH:method <= browser OK:verbose Target.setAutoAttach {} +1ms
LH:method <= browser OK:verbose Page.getResourceTree {"frameTree":{"frame":{"id":"08C3D886293E020EC6BC8D08F746440A","load +0ms
LH:statusEnd:verbose Resetting state with about:blank +1ms
LH:status:verbose Getting browser version +0ms
LH:method => browser:verbose Browser.getVersion +0ms
LH:method <= browser OK:verbose Browser.getVersion {"protocolVersion":"1.3","product":"Chrome/92.0.4515.107","revision":" +0ms
LH:statusEnd:verbose Getting browser version +1ms
LH:status Benchmarking machine +0ms
LH:method => browser:verbose Runtime.evaluate {"expression":"(function wrapInNativePromise() {\n const Promise = g +0ms
LH:method <= browser OK:verbose Runtime.evaluate {"result":{"type":"number","value":1549,"description":"1549"}} +1s
LH:statusEnd:verbose Benchmarking machine +0ms
LH:status Initializing… +1ms
LH:listen once for event =>:verbose ServiceWorker.workerRegistrationUpdated +0ms
LH:Driver:verbose ServiceWorker.enable +0ms
LH:method => browser:verbose ServiceWorker.enable +0ms
LH:method <= browser OK:verbose ServiceWorker.enable {} +0ms
LH:<= event:verbose ServiceWorker.workerRegistrationUpdated {"registrations":[]} +1ms
LH:Driver:verbose ServiceWorker.disable +0ms
LH:method => browser:verbose ServiceWorker.disable +0ms
LH:<= event:verbose ServiceWorker.workerVersionUpdated {"versions":[]} +0ms
LH:method <= browser OK:verbose ServiceWorker.disable {} +0ms
LH:listen for event =>:verbose ServiceWorker.workerVersionUpdated +0ms
LH:Driver:verbose ServiceWorker.enable +0ms
LH:method => browser:verbose ServiceWorker.enable +0ms
LH:method <= browser OK:verbose ServiceWorker.enable {} +1ms
LH:<= event:verbose ServiceWorker.workerRegistrationUpdated {"registrations":[]} +0ms
LH:<= event:verbose ServiceWorker.workerVersionUpdated {"versions":[]} +0ms
LH:Driver:verbose ServiceWorker.disable +0ms
LH:method => browser:verbose ServiceWorker.disable +0ms
LH:method <= browser OK:verbose ServiceWorker.disable {} +0ms
LH:method => browser:verbose Network.setUserAgentOverride {"userAgent":"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) Appl +1ms
LH:method <= browser OK:verbose Network.setUserAgentOverride {} +0ms
LH:method => browser:verbose Emulation.setDeviceMetricsOverride {"width":360,"height":640,"deviceScaleFactor":2.625,"mobi +0ms
LH:<= event:verbose Page.frameResized {} +3ms
LH:<= event:verbose Page.frameResized {} +0ms
LH:method <= browser OK:verbose Emulation.setDeviceMetricsOverride {} +0ms
LH:method => browser:verbose Emulation.setTouchEmulationEnabled {"enabled":true} +0ms
LH:method <= browser OK:verbose Emulation.setTouchEmulationEnabled {} +1ms
LH:listen for event =>:verbose Debugger.paused +0ms
LH:listen for event =>:verbose Page.frameNavigated +0ms
LH:Driver:verbose Debugger.enable +1ms
LH:method => browser:verbose Debugger.enable +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"5","url":"","startLine":0,"startColumn":0,"endLine":0,"endColumn": +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"6","url":"","startLine":0,"startColumn":0,"endLine":79,"endColumn" +0ms
LH:method <= browser OK:verbose Debugger.enable {"debuggerId":"8966013685038082926.7238982223048219254"} +0ms
LH:method => browser:verbose Debugger.setSkipAllPauses {"skip":true} +1ms
LH:method <= browser OK:verbose Debugger.setSkipAllPauses {} +0ms
LH:method => browser:verbose Debugger.setAsyncCallStackDepth {"maxDepth":8} +0ms
LH:method <= browser OK:verbose Debugger.setAsyncCallStackDepth {} +0ms
LH:listen for event =>:verbose Page.javascriptDialogOpening +1ms
LH:method => browser:verbose Page.addScriptToEvaluateOnNewDocument {"source":"(() => {\n const Promise = globalThis. +0ms
LH:method <= browser OK:verbose Page.addScriptToEvaluateOnNewDocument {"identifier":"1"} +0ms
LH:statusEnd:verbose Initializing… +0ms
LH:status Running defaultPass pass CSSUsage, JsUsage, ViewportDimensions, ConsoleMessages, AnchorElements, ImageElements, LinkElements, MetaElements, ScriptElements, IFrameElements, FormElements, MainDocumentContent, GatherContext, GlobalListeners, AppCacheManifest, Doctype, DOMStats, OptimizedImages, PasswordInputsWithPreventedPaste, ResponseCompression, TagsBlockingFirstPaint, FontSize, EmbeddedContent, RobotsTxt, TapTargets, Accessibility, TraceElements, InspectorIssues, SourceMaps, FullPageScreenshot +1ms
LH:status Resetting state with about:blank +0ms
LH:listen for event =>:verbose Page.frameNavigated +0ms
LH:method => browser:verbose Page.setLifecycleEventsEnabled {"enabled":true} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"7B38E9927F1A62B3147C5D3 +0ms
LH:method <= browser OK:verbose Page.setLifecycleEventsEnabled {} +0ms
LH:method => browser:verbose Page.navigate {"url":"about:blank"} +0ms
LH:listen once for event =>:verbose Page.frameNavigated +0ms
LH:method <= browser OK:verbose Page.navigate {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0F +4ms
LH:<= event:verbose Page.frameStartedLoading {"frameId":"08C3D886293E020EC6BC8D08F746440A"} +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:<= event:verbose Page.frameNavigated {"frame":{"id":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC +7ms
LH:method => browser:verbose Target.setAutoAttach {"flatten":true,"autoAttach":true,"waitForDebuggerOnStart":true} +1ms
LH:<= event:verbose Page.frameResized {} +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"7","url":"","startLine":0,"startColumn":0,"endLine":20,"endColumn" +0ms
LH:method => browser:verbose Page.getResourceTree +0ms
LH:method => browser:verbose Debugger.setSkipAllPauses {"skip":true} +0ms
LH:<= event:verbose Page.frameResized {} +0ms
LH:<= event:verbose Page.loadEventFired {"timestamp":9747.159869} +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:<= event:verbose Page.frameStoppedLoading {"frameId":"08C3D886293E020EC6BC8D08F746440A"} +1ms
LH:<= event:verbose Page.domContentEventFired {"timestamp":9747.160294} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:method <= browser OK:verbose Target.setAutoAttach {} +1ms
LH:method <= browser OK:verbose Page.getResourceTree {"frameTree":{"frame":{"id":"08C3D886293E020EC6BC8D08F746440A","load +0ms
LH:method <= browser OK:verbose Debugger.setSkipAllPauses {} +0ms
LH:method => browser:verbose Debugger.setAsyncCallStackDepth {"maxDepth":8} +0ms
LH:statusEnd:verbose Resetting state with about:blank +0ms
LH:method => browser:verbose Storage.getUsageAndQuota {"origin":"https://www.webpagetest.org/"} +0ms
LH:method <= browser OK:verbose Debugger.setAsyncCallStackDepth {} +2ms
LH:method <= browser OK:verbose Storage.getUsageAndQuota {"usage":0,"quota":24940715212,"overrideActive":false,"usageBrea +0ms
LH:method => browser:verbose Storage.clearDataForOrigin {"origin":"https://www.webpagetest.org","storageTypes":"appcache, +1ms
LH:method <= browser OK:verbose Storage.clearDataForOrigin {} +1ms
LH:status Cleaning browser cache +0ms
LH:method => browser:verbose Network.clearBrowserCache +0ms
LH:method <= browser OK:verbose Network.clearBrowserCache {} +22ms
LH:method => browser:verbose Network.setCacheDisabled {"cacheDisabled":true} +0ms
LH:method <= browser OK:verbose Network.setCacheDisabled {} +1ms
LH:method => browser:verbose Network.setCacheDisabled {"cacheDisabled":false} +0ms
LH:method <= browser OK:verbose Network.setCacheDisabled {} +1ms
LH:statusEnd:verbose Cleaning browser cache +0ms
LH:status Preparing network conditions +0ms
LH:method => browser:verbose Network.emulateNetworkConditions {"offline":false,"latency":562.5,"downloadThroughput":18874 +0ms
LH:method => browser:verbose Emulation.setCPUThrottlingRate {"rate":4} +1ms
LH:method <= browser OK:verbose Network.emulateNetworkConditions {} +0ms
LH:method <= browser OK:verbose Emulation.setCPUThrottlingRate {} +6ms
LH:method => browser:verbose Network.setBlockedURLs {"urls":[]} +0ms
LH:method <= browser OK:verbose Network.setBlockedURLs {} +1ms
LH:statusEnd:verbose Preparing network conditions +0ms
LH:status:verbose Running beforePass methods +0ms
LH:status:verbose Gathering setup: CSSUsage +0ms
LH:statusEnd:verbose Gathering setup: CSSUsage +0ms
LH:status:verbose Gathering setup: JsUsage +0ms
LH:Driver:verbose Profiler.enable +1ms
LH:method => browser:verbose Profiler.enable +0ms
LH:method <= browser OK:verbose Profiler.enable {} +0ms
LH:method => browser:verbose Profiler.startPreciseCoverage {"detailed":false} +0ms
LH:method <= browser OK:verbose Profiler.startPreciseCoverage {"timestamp":9747.204279} +9ms
LH:listen for event =>:verbose Debugger.scriptParsed +0ms
LH:statusEnd:verbose Gathering setup: JsUsage +0ms
LH:status:verbose Gathering setup: ViewportDimensions +1ms
LH:statusEnd:verbose Gathering setup: ViewportDimensions +0ms
LH:status:verbose Gathering setup: ConsoleMessages +0ms
LH:listen for event =>:verbose Log.entryAdded +0ms
LH:Driver:verbose Log.enable +0ms
LH:method => browser:verbose Log.enable +0ms
LH:method <= browser OK:verbose Log.enable {} +3ms
LH:method => browser:verbose Log.startViolationsReport {"config":[{"name":"discouragedAPIUse","threshold":-1}]} +1ms
LH:method <= browser OK:verbose Log.startViolationsReport {} +2ms
LH:listen for event =>:verbose Runtime.consoleAPICalled +0ms
LH:listen for event =>:verbose Runtime.exceptionThrown +0ms
LH:Driver:verbose Runtime.enable +0ms
LH:method => browser:verbose Runtime.enable +0ms
LH:<= event:verbose Runtime.executionContextCreated {"context":{"id":3,"origin":"://","name":"","uniqueId":"-759764602813 +2ms
LH:method <= browser OK:verbose Runtime.enable {} +0ms
LH:statusEnd:verbose Gathering setup: ConsoleMessages +1ms
LH:status:verbose Gathering setup: AnchorElements +0ms
LH:statusEnd:verbose Gathering setup: AnchorElements +0ms
LH:status:verbose Gathering setup: ImageElements +0ms
LH:statusEnd:verbose Gathering setup: ImageElements +0ms
LH:status:verbose Gathering setup: LinkElements +0ms
LH:statusEnd:verbose Gathering setup: LinkElements +0ms
LH:status:verbose Gathering setup: MetaElements +0ms
LH:statusEnd:verbose Gathering setup: MetaElements +0ms
LH:status:verbose Gathering setup: ScriptElements +0ms
LH:statusEnd:verbose Gathering setup: ScriptElements +0ms
LH:status:verbose Gathering setup: IFrameElements +0ms
LH:statusEnd:verbose Gathering setup: IFrameElements +0ms
LH:status:verbose Gathering setup: FormElements +0ms
LH:statusEnd:verbose Gathering setup: FormElements +0ms
LH:status:verbose Gathering setup: MainDocumentContent +0ms
LH:statusEnd:verbose Gathering setup: MainDocumentContent +0ms
LH:status:verbose Gathering setup: GatherContext +0ms
LH:statusEnd:verbose Gathering setup: GatherContext +0ms
LH:status:verbose Gathering setup: GlobalListeners +0ms
LH:statusEnd:verbose Gathering setup: GlobalListeners +0ms
LH:status:verbose Gathering setup: AppCacheManifest +1ms
LH:statusEnd:verbose Gathering setup: AppCacheManifest +0ms
LH:status:verbose Gathering setup: Doctype +0ms
LH:statusEnd:verbose Gathering setup: Doctype +0ms
LH:status:verbose Gathering setup: DOMStats +0ms
LH:statusEnd:verbose Gathering setup: DOMStats +0ms
LH:status:verbose Gathering setup: OptimizedImages +0ms
LH:statusEnd:verbose Gathering setup: OptimizedImages +0ms
LH:status:verbose Gathering setup: PasswordInputsWithPreventedPaste +0ms
LH:statusEnd:verbose Gathering setup: PasswordInputsWithPreventedPaste +0ms
LH:status:verbose Gathering setup: ResponseCompression +0ms
LH:statusEnd:verbose Gathering setup: ResponseCompression +0ms
LH:status:verbose Gathering setup: TagsBlockingFirstPaint +0ms
LH:method => browser:verbose Page.addScriptToEvaluateOnNewDocument {"source":"(() => {\n const Promise = globalThis. +0ms
LH:method <= browser OK:verbose Page.addScriptToEvaluateOnNewDocument {"identifier":"2"} +1ms
LH:statusEnd:verbose Gathering setup: TagsBlockingFirstPaint +0ms
LH:status:verbose Gathering setup: FontSize +0ms
LH:statusEnd:verbose Gathering setup: FontSize +1ms
LH:status:verbose Gathering setup: EmbeddedContent +0ms
LH:statusEnd:verbose Gathering setup: EmbeddedContent +0ms
LH:status:verbose Gathering setup: RobotsTxt +0ms
LH:statusEnd:verbose Gathering setup: RobotsTxt +0ms
LH:status:verbose Gathering setup: TapTargets +0ms
LH:statusEnd:verbose Gathering setup: TapTargets +0ms
LH:status:verbose Gathering setup: Accessibility +0ms
LH:statusEnd:verbose Gathering setup: Accessibility +0ms
LH:status:verbose Gathering setup: TraceElements +0ms
LH:Driver:verbose Animation.enable +0ms
LH:method => browser:verbose Animation.enable +0ms
LH:method <= browser OK:verbose Animation.enable {} +1ms
LH:listen for event =>:verbose Animation.animationStarted +0ms
LH:statusEnd:verbose Gathering setup: TraceElements +0ms
LH:status:verbose Gathering setup: InspectorIssues +0ms
LH:listen for event =>:verbose Audits.issueAdded +0ms
LH:Driver:verbose Audits.enable +0ms
LH:method => browser:verbose Audits.enable +0ms
LH:method <= browser OK:verbose Audits.enable {} +3ms
LH:statusEnd:verbose Gathering setup: InspectorIssues +0ms
LH:status:verbose Gathering setup: SourceMaps +0ms
LH:listen for event =>:verbose Debugger.scriptParsed +0ms
LH:statusEnd:verbose Gathering setup: SourceMaps +0ms
LH:status:verbose Gathering setup: FullPageScreenshot +0ms
LH:statusEnd:verbose Gathering setup: FullPageScreenshot +0ms
LH:statusEnd:verbose Running beforePass methods +0ms
LH:status Beginning devtoolsLog and trace +0ms
LH:method => browser:verbose Tracing.start {"categories":"-*,disabled-by-default-lighthouse,loading,v8,v8.execute,blink.u +0ms
LH:method <= browser OK:verbose Tracing.start {} +43ms
LH:statusEnd:verbose Beginning devtoolsLog and trace +0ms
LH:status Loading page & waiting for onload +1ms
LH:listen for event =>:verbose Page.frameNavigated +0ms
LH:method => browser:verbose Page.setLifecycleEventsEnabled {"enabled":true} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +6ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +0ms
LH:method <= browser OK:verbose Page.setLifecycleEventsEnabled {} +2ms
LH:method => browser:verbose Page.navigate {"url":"https://www.webpagetest.org/"} +0ms
LH:listen for event =>:verbose Page.lifecycleEvent +1ms
LH:listen once for event =>:verbose Page.loadEventFired +0ms
LH:listen once for event =>:verbose Page.domContentEventFired +0ms
LH:listen once for event =>:verbose Page.domContentEventFired +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","loaderId":"BABD200387E5EB6 +5ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:NetworkRecorder:verbose network semi-quiet +0ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","associatedCookies +12ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +476ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"6C4749344693A0B0FCC4961 +1ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","blockedCookies":[] +93ms
LH:<= event:verbose Network.responseReceived {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","loaderId":"BABD200387E5EB6C +8ms
LH:method <= browser OK:verbose Page.navigate {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9 +3ms
LH:<= event:verbose Page.frameStartedLoading {"frameId":"08C3D886293E020EC6BC8D08F746440A"} +110ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +4ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.2","associatedCookies":[{"blockedReasons":[],"c +260ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.3","associatedCookies":[{"blockedReasons":[],"c +10ms
LH:<= event:verbose Runtime.executionContextsCleared {} +83ms
LH:<= event:verbose Page.frameNavigated {"frame":{"id":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8 +0ms
LH:method => browser:verbose Target.setAutoAttach {"flatten":true,"autoAttach":true,"waitForDebuggerOnStart":true} +0ms
LH:<= event:verbose Runtime.executionContextCreated {"context":{"id":4,"origin":"https://www.webpagetest.org","name":""," +1ms
LH:<= event:verbose Page.frameResized {} +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"8","url":"","startLine":0,"startColumn":0,"endLine":20,"endColumn" +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"9","url":"","startLine":0,"startColumn":0,"endLine":24,"endColumn" +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timestamp":9748.212461,"dataLen +0ms
LH:<= event:verbose Page.frameResized {} +0ms
LH:method => browser:verbose Debugger.setSkipAllPauses {"skip":true} +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timestamp":9748.248437,"dataLen +2ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.2","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network semi-quiet +1ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.3","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.4","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.5","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.6","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.7","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.8","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.9","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docume +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +1ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.10","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.11","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"10","url":"https://www.webpagetest.org/","startLine":15,"startColu +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timestamp":9748.307855,"dataLen +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timestamp":9747.97203,"encod +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +8ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +1ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.13","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:method <= browser OK:verbose Target.setAutoAttach {} +18ms
LH:method <= browser OK:verbose Debugger.setSkipAllPauses {} +24ms
LH:method => browser:verbose Debugger.setAsyncCallStackDepth {"maxDepth":8} +0ms
LH:method <= browser OK:verbose Debugger.setAsyncCallStackDepth {} +5ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.2","blockedCookies":[],"headers":{"server":"ngin +422ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.3","blockedCookies":[],"headers":{"server":"ngin +11ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.2","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +30ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.11","associatedCookies":[{"blockedReasons":[]," +54ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.3","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +27ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.3","timestamp":9748.884676,"dataLength":10422,"encodedDataLen +43ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.3","timestamp":9748.882114,"encodedDataLength":3958,"shoul +3ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.2","timestamp":9749.012197,"dataLength":36674,"encodedDataLen +11ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.13","associatedCookies":[{"blockedReasons":[]," +5ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.2","timestamp":9748.898,"encodedDataLength":8219,"shouldRe +18ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.5","associatedCookies":[{"blockedReasons":[],"c +23ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.4","associatedCookies":[],"headers":{":method": +7ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.6","associatedCookies":[{"blockedReasons":[],"c +5ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.7","associatedCookies":[{"blockedReasons":[],"c +7ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.8","associatedCookies":[{"blockedReasons":[],"c +9ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.9","associatedCookies":[{"blockedReasons":[],"c +9ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.10","associatedCookies":[{"blockedReasons":[]," +8ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.14","associatedCookies":[],"headers":{":method" +19ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"11","url":"https://www.webpagetest.org/","startLine":90,"startColu +7ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.14","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +3ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"12","url":"https://www.webpagetest.org/","startLine":119,"startCol +115ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"13","url":"https://www.webpagetest.org/","startLine":125,"startCol +0ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.24","associatedCookies":[{"blockedReasons":[]," +35ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.23","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +171ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestServedFromCache {"requestId":"4349.23"} +1ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.23","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +3ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.23","timestamp":9749.285142,"dataLength":271,"encodedDataLeng +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.23","timestamp":9749.285147,"encodedDataLength":0,"shouldR +1ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.24","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.resourceChangedPriority {"requestId":"4349.24","newPriority":"High","timestamp":9749.44082} +0ms
LH:<= event:verbose Network.resourceChangedPriority {"requestId":"4349.5","newPriority":"High","timestamp":9749.440847} +0ms
LH:<= event:verbose Network.resourceChangedPriority {"requestId":"4349.7","newPriority":"High","timestamp":9749.44086} +0ms
LH:<= event:verbose Network.resourceChangedPriority {"requestId":"4349.6","newPriority":"High","timestamp":9749.440874} +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +0ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +1ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +117ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +5ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.11","blockedCookies":[],"headers":{"server":"ngi +0ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.11","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +15ms
LH:<= event:verbose Page.lifecycleEvent {"frameId":"08C3D886293E020EC6BC8D08F746440A","loaderId":"BABD200387E5EB6C9E8A142 +1ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.13","blockedCookies":[],"headers":{"server":"ngi +1ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.13","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +5ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.13","timestamp":9749.637136,"dataLength":15794,"encodedDataLe +27ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.13","timestamp":9749.636341,"encodedDataLength":4324,"shou +3ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.5","blockedCookies":[],"headers":{"server":"ngin +13ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.4","blockedCookies":[],"headers":{"expires":"Fri +7ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.5","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +6ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.5","timestamp":9749.656834,"dataLength":1647,"encodedDataLeng +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.5","timestamp":9749.652971,"encodedDataLength":851,"should +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.6","blockedCookies":[],"headers":{"server":"ngin +3ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.4","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +2ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.4","timestamp":9749.668775,"dataLength":850,"encodedDataLengt +1ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.4","timestamp":9749.660109,"encodedDataLength":987,"should +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.6","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +9ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.6","timestamp":9749.67238,"dataLength":2957,"encodedDataLengt +1ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.6","timestamp":9749.668638,"encodedDataLength":800,"should +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +1ms
LH:<= event:verbose Debugger.scriptParsed {"scriptId":"15","url":"https://www.google.com/recaptcha/api.js","startLine":0, +1ms
LH:<= event:verbose Network.requestWillBeSent {"requestId":"4349.26","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","docum +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.7","blockedCookies":[],"headers":{"server":"ngin +3ms
LH:<= event:verbose Network.requestWillBeSentExtraInfo {"requestId":"4349.26","associatedCookies":[],"headers":{":method" +3ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.8","blockedCookies":[],"headers":{"server":"ngin +2ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.9","blockedCookies":[],"headers":{"server":"ngin +11ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.10","blockedCookies":[],"headers":{"server":"ngi +5ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.7","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +5ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.7","timestamp":9749.69433,"dataLength":1561,"encodedDataLengt +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.7","timestamp":9749.684205,"encodedDataLength":662,"should +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.14","blockedCookies":[],"headers":{"strict-trans +10ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.8","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +27ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.9","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timesta +2ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.10","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +3ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.9","timestamp":9749.819061,"dataLength":5744,"encodedDataLeng +67ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.9","timestamp":9749.8191,"encodedDataLength":5886,"shouldR +2ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceivedExtraInfo {"requestId":"4349.24","blockedCookies":[],"headers":{"server":"ngi +66ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.24","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +14ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.24","timestamp":9749.893909,"dataLength":286,"encodedDataLeng +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.24","timestamp":9749.89161,"encodedDataLength":478,"should +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.11","timestamp":9749.940535,"dataLength":92003,"encodedDataLe +44ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.10","timestamp":9749.993056,"dataLength":12413,"encodedDataLe +48ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.10","timestamp":9749.993109,"encodedDataLength":12518,"sho +14ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.8","timestamp":9750.04229,"dataLength":15629,"encodedDataLeng +34ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.8","timestamp":9750.041894,"encodedDataLength":15803,"shou +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network busy +0ms
LH:<= event:verbose Network.responseReceived {"requestId":"4349.14","loaderId":"BABD200387E5EB6C9E8A142D4BAD6EFC","timest +37ms
LH:<= event:verbose Network.dataReceived {"requestId":"4349.14","timestamp":9750.079233,"dataLength":46274,"encodedDataLe +0ms
LH:<= event:verbose Network.loadingFinished {"requestId":"4349.14","timestamp":9750.073626,"encodedDataLength":17586,"sho +4ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:waitFor:verbose Waiting on DomContentLoaded +0ms
LH:NetworkRecorder:verbose network semi-quiet +0ms
LH:<= event:verbose Inspector.targetCrashed {} +180ms
</details>
comment created time in 3 hours
Pull request review commentGoogleChrome/lighthouse
core(css-usage): ignore removed stylesheets
class CSSUsage extends FRGatherer { this._stylesheets = []; /** @param {LH.Crdp.CSS.StyleSheetAddedEvent} sheet */ this._onStylesheetAdded = sheet => this._stylesheets.push(sheet);+ /** @param {LH.Crdp.CSS.StyleSheetRemovedEvent} sheet */+ this._onStylesheetRemoved = sheet => {+ const styleSheetId = sheet.styleSheetId;
// We can't fetch the content of removed stylesheets, so we ignore them completely.
// TODO(FR-COMPAT): Refactor use of CSSUsage artifact to not *always* rely on the content of stylesheets.
const styleSheetId = sheet.styleSheetId;
comment created time in 3 hours
Pull request review commentGoogleChrome/lighthouse
core(byte-efficiency): mark n/a if no network records in timespan
describe('Fraggle Rock API', () => { const {auditResults, erroredAudits, notApplicableAudits} = getAuditsBreakdown(result.lhr); expect(auditResults.length).toMatchInlineSnapshot(`50`); - expect(notApplicableAudits.length).toMatchInlineSnapshot(`9`);+ expect(notApplicableAudits.length).toMatchInlineSnapshot(`22`); expect(notApplicableAudits.map(audit => audit.id)).toContain('server-response-time'); // TODO(FR-COMPAT): Reduce this number by handling the error, making N/A, or removing timespan support.- expect(erroredAudits.length).toMatchInlineSnapshot(`14`);+ expect(erroredAudits.length).toMatchInlineSnapshot(`1`);
nice! what's the final one?
comment created time in 3 hours
Pull request review commentGoogleChrome/lighthouse
core(byte-efficiency): mark n/a if no network records in timespan
class UnusedBytes extends Audit { devtoolsLog, settings, };- const networkRecords = await NetworkRecords.request(devtoolsLog, context);++ // Requesting load simulator requires non-empty network records.+ // Timespan is not guaranteed to generate network records, so mark N/A if empty.
// Timespans are not guaranteed to have any network activity.
// There are no bytes to be saved if no bytes were downloaded, so mark N/A if empty.
WDYT? just to make super clear it's the logical conclusion not a technical limitation :)
comment created time in 3 hours
pull request commentGoogleChrome/lighthouse
misc(cli): improve error if invalid value for `--output` argument is passed
@svkrclg I restarted them for ya :)
comment created time in 3 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.+ */+'use strict';++const Audit = require('./audit.js');+const i18n = require('../lib/i18n/i18n.js');++const UIStrings = {+ /** Descriptive title of a diagnostic audit that provides */+ title: 'LCP element was lazy-loaded',+ /** Description of a Lighthouse audit that tells */+ description: '',+};++const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);++class LargestContentfulPaintElement extends Audit {+ /**+ * @return {LH.Audit.Meta}+ */+ static get meta() {+ return {+ id: 'lcp-lazy-loaded',+ title: str_(UIStrings.title),+ description: str_(UIStrings.description),+ scoreDisplayMode: Audit.SCORING_MODES.ERROR,+ supportedModes: ['navigation'],+ requiredArtifacts: ['traces', 'TraceElements', 'ImageElements'],+ };+ }++ /**+ * @param {LH.Artifacts} artifacts+ * @return {LH.Audit.Product}+ */+ static audit(artifacts) {+ const images = artifacts.ImageElements;+ const lazyLoadedImages = images.filter(+ image => image.loading === 'lazy');+ const lcpElement = artifacts.TraceElements+ .find(element => element.traceEventType === 'largest-contentful-paint');++ const lcpElementDetails = [];+ if (lcpElement) {+ const lcpImageElement = lazyLoadedImages.find(elem => {+ return elem.node.devtoolsNodePath === lcpElement.node.devtoolsNodePath;+ });+ if (lcpImageElement) {+ lcpElementDetails.push({+ node: Audit.makeNodeItem(lcpImageElement.node),+ });+ }+ }++ /** @type {LH.Audit.Details.Table['headings']} */+ const headings = [+ {key: 'node', itemType: 'node', text: str_(i18n.UIStrings.columnElement)},+ ];++ const details = Audit.makeTableDetails(headings, lcpElementDetails);++ const displayValue = str_(i18n.UIStrings.displayValueElementsFound,+ {nodeCount: lcpElementDetails.length});++ return {+ score: 1,
score: 0,
comment created time in 20 hours
Pull request review commentGoogleChrome/lighthouse
const defaultConfig = { {id: 'duplicated-javascript', weight: 0, group: 'load-opportunities'}, {id: 'legacy-javascript', weight: 0, group: 'load-opportunities'}, {id: 'preload-lcp-image', weight: 0, group: 'load-opportunities'},+ {id: 'lcp-lazy-loaded', weight: 0, group: 'load-opportunities'},
we only put an audit into load-opportunities today if we can quantify the impact on resources, for now let's leave it as diagnostics
comment created time in 20 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.+ */+'use strict';++const Audit = require('./audit.js');+const i18n = require('../lib/i18n/i18n.js');++const UIStrings = {+ /** Descriptive title of a diagnostic audit that provides */+ title: 'LCP element was lazy-loaded',+ /** Description of a Lighthouse audit that tells */+ description: '',+};++const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);++class LargestContentfulPaintElement extends Audit {+ /**+ * @return {LH.Audit.Meta}+ */+ static get meta() {+ return {+ id: 'lcp-lazy-loaded',+ title: str_(UIStrings.title),+ description: str_(UIStrings.description),+ scoreDisplayMode: Audit.SCORING_MODES.ERROR,+ supportedModes: ['navigation'],+ requiredArtifacts: ['traces', 'TraceElements', 'ImageElements'],+ };+ }++ /**+ * @param {LH.Artifacts} artifacts+ * @return {LH.Audit.Product}+ */+ static audit(artifacts) {+ const images = artifacts.ImageElements;+ const lazyLoadedImages = images.filter(+ image => image.loading === 'lazy');+ const lcpElement = artifacts.TraceElements+ .find(element => element.traceEventType === 'largest-contentful-paint');++ const lcpElementDetails = [];+ if (lcpElement) {+ const lcpImageElement = lazyLoadedImages.find(elem => {+ return elem.node.devtoolsNodePath === lcpElement.node.devtoolsNodePath;+ });+ if (lcpImageElement) {+ lcpElementDetails.push({+ node: Audit.makeNodeItem(lcpImageElement.node),+ });+ }+ }++ /** @type {LH.Audit.Details.Table['headings']} */+ const headings = [+ {key: 'node', itemType: 'node', text: str_(i18n.UIStrings.columnElement)},+ ];++ const details = Audit.makeTableDetails(headings, lcpElementDetails);++ const displayValue = str_(i18n.UIStrings.displayValueElementsFound,+ {nodeCount: lcpElementDetails.length});++ return {+ score: 1,+ notApplicable: lcpElementDetails.length === 0,
there are some good edge cases discussed in https://github.com/GoogleChrome/lighthouse/issues/12785 , we probably also want to mark this as notApplicable if the scroll position isn't at the top (in case we measured a URL with a fragment and out-of-viewport anchor)
I don't believe we currently capture this information anywhere in our artifacts, but I think it makes a lot of sense in ViewportDimensions, we might discuss in eng sync next week :)
FWIW, our notApplicable logic can also be a little confusing so we tend to have an explicit branch for it
if (isAuditNotApplicable()) {
return {score: 1, notApplicable: true};
}
return {
score: // the actual results...
}
comment created time in 20 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.+ */+'use strict';++const Audit = require('./audit.js');+const i18n = require('../lib/i18n/i18n.js');++const UIStrings = {+ /** Descriptive title of a diagnostic audit that provides */+ title: 'LCP element was lazy-loaded',+ /** Description of a Lighthouse audit that tells */+ description: '',+};++const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);++class LargestContentfulPaintElement extends Audit {+ /**+ * @return {LH.Audit.Meta}+ */+ static get meta() {+ return {+ id: 'lcp-lazy-loaded',+ title: str_(UIStrings.title),+ description: str_(UIStrings.description),+ scoreDisplayMode: Audit.SCORING_MODES.ERROR,+ supportedModes: ['navigation'],+ requiredArtifacts: ['traces', 'TraceElements', 'ImageElements'],
I don't think we actually use traces anywhere
requiredArtifacts: ['TraceElements', 'ImageElements'],
comment created time in 21 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.+ */+'use strict';++const Audit = require('./audit.js');+const i18n = require('../lib/i18n/i18n.js');++const UIStrings = {+ /** Descriptive title of a diagnostic audit that provides */+ title: 'LCP element was lazy-loaded',+ /** Description of a Lighthouse audit that tells */+ description: '',+};++const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);++class LargestContentfulPaintElement extends Audit {+ /**+ * @return {LH.Audit.Meta}+ */+ static get meta() {+ return {+ id: 'lcp-lazy-loaded',+ title: str_(UIStrings.title),+ description: str_(UIStrings.description),+ scoreDisplayMode: Audit.SCORING_MODES.ERROR,+ supportedModes: ['navigation'],+ requiredArtifacts: ['traces', 'TraceElements', 'ImageElements'],+ };+ }++ /**+ * @param {LH.Artifacts} artifacts+ * @return {LH.Audit.Product}+ */+ static audit(artifacts) {+ const images = artifacts.ImageElements;+ const lazyLoadedImages = images.filter(+ image => image.loading === 'lazy');+ const lcpElement = artifacts.TraceElements+ .find(element => element.traceEventType === 'largest-contentful-paint');++ const lcpElementDetails = [];+ if (lcpElement) {+ const lcpImageElement = lazyLoadedImages.find(elem => {+ return elem.node.devtoolsNodePath === lcpElement.node.devtoolsNodePath;+ });+ if (lcpImageElement) {+ lcpElementDetails.push({+ node: Audit.makeNodeItem(lcpImageElement.node),+ });+ }+ }++ /** @type {LH.Audit.Details.Table['headings']} */+ const headings = [+ {key: 'node', itemType: 'node', text: str_(i18n.UIStrings.columnElement)},+ ];++ const details = Audit.makeTableDetails(headings, lcpElementDetails);++ const displayValue = str_(i18n.UIStrings.displayValueElementsFound,
there can only ever be 1 here, so I don't know if it's worth having a display value
comment created time in 20 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.+ */+'use strict';++const Audit = require('./audit.js');+const i18n = require('../lib/i18n/i18n.js');++const UIStrings = {+ /** Descriptive title of a diagnostic audit that provides */+ title: 'LCP element was lazy-loaded',+ /** Description of a Lighthouse audit that tells */+ description: '',+};++const str_ = i18n.createMessageInstanceIdFn(__filename, UIStrings);++class LargestContentfulPaintElement extends Audit {+ /**+ * @return {LH.Audit.Meta}+ */+ static get meta() {+ return {+ id: 'lcp-lazy-loaded',+ title: str_(UIStrings.title),+ description: str_(UIStrings.description),+ scoreDisplayMode: Audit.SCORING_MODES.ERROR,
binary is the default and that's what we want here :)
comment created time in 21 hours
Pull request review commentGoogleChrome/lighthouse
+/**+ * @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
comment created time in 21 hours
push eventGoogleChrome/lighthouse
commit sha c085bbb722a1557f1e01704556f673bf1e4adcc5
add server crash reporting scripts
push time in 21 hours
Pull request review commentGoogleChrome/lighthouse
tests(fr): add fraggle rock smoke tests
jobs: # Fail if any changes were written to source files. - run: git diff --exit-code + smoke-fr:+ runs-on: ubuntu-latest+ name: Fraggle Rock++ steps:+ - name: git clone+ uses: actions/checkout@v2++ - name: Use Node.js 12.x+ uses: actions/setup-node@v1+ with:+ node-version: 12.x++ - run: yarn install --frozen-lockfile --network-timeout 1000000+ - run: yarn build-report++ - run: sudo apt-get install xvfb+ - name: yarn smoke --fraggle-rock+ run: xvfb-run --auto-servernum yarn smoke --debug --fraggle-rock -j=1 --retries=2 a11y lantern seo-passing seo-failing csp
I suppose the burndown in the inverse of this smoke list? It'd be nice to use --invert here and list just the tests that are failing (the ones we need to fix).
Great call, I'll do that when the list is a smidge shorter :D
comment created time in 21 hours
issue commentGoogleChrome/lighthouse
WPT started getting a lot of PROTOCOL_TIMEOUT errors
It looks like the Inspector.targetCrashed {} message came in but it still tried to gracefully continue.
Yeah that's the case until https://github.com/GoogleChrome/lighthouse/pull/11840 lands. We suspect most of our PROTOCOL_TIMEOUT issues today are crashes.
@paulirish was investigating the situation on Windows and found some GPU crashes that ultimately caused a timeout without a renderer crash, could be related to the situations without the targetCrashed message?
If you send me a public SSH key I can install it on the VM and provide information on how to debug in the WPT agent config
That'd be great! Finally having a repro environment is amazing. I think I just need to get chrome's stderr with the verbose logging to get some extra details? chrome://crashes and a crash ID would be ideal 😅
comment created time in 2 days
issue commentGoogleChrome/lighthouse
WPT started getting a lot of PROTOCOL_TIMEOUT errors
Does Chrome normally output stderr/out logging in the renderer crash case or is it something you instrumented for a local build?
I just turned on some verbose logging --enable-logging=stderr --v=2
comment created time in 2 days
issue commentGoogleChrome/lighthouse
WPT started getting a lot of PROTOCOL_TIMEOUT errors
Thanks @pmeenan! We started seeing this exact behavior on our test infrastructure, but only on ToT Chromium on GitHub actions and haven't been unable to reproduce in any local or Docker environment. (I'm not sure if our stable set has reached 92 yet)
AFAICT in my reproduction attempts with extra Chromium logging, the renderer is crashing but we're failing to get Target.targetDetached/Target.targetCrashed roughly half the time.
Sounds like if WPT is reliably reproing I might be able to spin up a WPT VM on ec2 and investigate directly?
comment created time in 2 days
pull request commentGoogleChrome/lighthouse
core(fr): timespan/snapshot specific audit groups
Are you referring to removing the load-opportunities and diagnostics groups?
Correct, in our recent opportunities discussions with jiwoong there are not two separate groups and the type of details determines how to display the impact. I was asking mostly to see if we're still OK with tabling this for the time being.
The points @brendankenny raises are good reasons to avoid the programmatic option I highlighted, so that's out 👍
comment created time in 2 days
PR opened GoogleChrome/lighthouse
Summary Adds a fraggle rock mode to our smoke tests and enables a subset of them in CI. Now we have a clean burndown of many of our FR-COMPAT issues too :)
Related Issues/PRs ref #11313
pr created time in 3 days
pull request commentGoogleChrome/lighthouse
core(fr): timespan/snapshot specific audit groups
Nice! We'll definitely want gatherMode accessible somewhere on the LHR for the imminent flow report work so that's 👍
I kinda prefer your previous proposal of
Another option I've been thinking about, optionally return overrideGroup in the audit to dynamically change the group.
But did you run into a new case where this is necessary? If it's still opportunities only, I think this might be solved naturally by moving away from the hard line distinction.
comment created time in 3 days