Closed Bug 1468476 Opened 6 years ago Closed 3 years ago

F5 causes content re-validation and this is slow

Categories

(Core :: DOM: Navigation, defect, P3)

60 Branch
defect

Tracking

()

RESOLVED FIXED
95 Branch
Performance Impact medium
Tracking Status
firefox95 --- fixed

People

(Reporter: frank.zimmer, Assigned: sefeng)

References

Details

(Keywords: perf:pageload, Whiteboard: [reload-parity][blocked by bug 1722759])

Attachments

(4 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 Build ID: 20180605171542 Steps to reproduce: Browsing some of my favourite websites (www.heise.de, www.spiegel.de) with both browsers shows a very huge difference in full page load. When starting both browsers with empty cache brave is more than double as fast, when just reloading page after initial open e.g heise.de takes in brave less than 2 seconds to fully render whereas in firefox it takes around 7-9 seconds. similar result for firefox nightly. Enabled in FF is uBlock origin and https everywhere Brave does have his own add blocking and also https everywhere Actual results: Firefox much slower browsing pages than brave browser
Hello, as described in initial report i tried out several Firefox versions, with that different profiles. I also used a fully fresh profile ! with the current stable version of firefox and applied some of the performance settings. But still Brave is the much faster one. In general, Brave is still not as Firefox, but the speed how pages are loaded and painted/rendered is really impressive. The only advice i can give is to have you Brave installed and compare on your own. Surely there are many features still not implemented and some not working properly, but this wasn't subject of my ticket!
Flags: needinfo?(frank.zimmer)
Setting as General component. Can you paste your information from about:support?
Component: Untriaged → General
Flags: needinfo?(frank.zimmer)
Allgemeine Informationen ------------------------ Name: Firefox Version: 60.0.2 Build-ID: 20180605171542 Update-Kanal: release User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 Betriebssystem: Windows_NT 10.0 Fenster mit mehreren Prozessen: 1/1 (aktiviert (Standard)) Web-Inhaltsprozesse: 2/1 Stylo: content = true (aktiviert (Standard)), chrome = true (aktiviert (Standard)) Unternehmensrichtlinien: Inaktiv Google-Schlüssel: Gefunden Mozilla-Location-Service-Schlüssel: Gefunden Abgesicherter Modus: false Absturzberichte der letzten 3 Tage ---------------------------------- Alle Absturzberichte Firefox-Funktionen ------------------ Name: Activity Stream Version: 2018.04.20.1103-b3b95672 ID: activity-stream@mozilla.org Name: Application Update Service Helper Version: 2.0 ID: aushelper@mozilla.org Name: Firefox Screenshots Version: 30.1.0 ID: screenshots@mozilla.org Name: Follow-on Search Telemetry Version: 0.9.6 ID: followonsearch@mozilla.com Name: Form Autofill Version: 1.0 ID: formautofill@mozilla.org Name: Photon onboarding Version: 1.0 ID: onboarding@mozilla.org Name: Pocket Version: 1.0.5 ID: firefox@getpocket.com Name: Web Compat Version: 1.1 ID: webcompat@mozilla.org Erweiterungen ------------- Name: Cookie AutoDelete Version: 2.2.0 Aktiviert: true ID: CookieAutoDelete@kennydo.com Name: Firefox Multi-Account Containers Version: 6.0.0 Aktiviert: true ID: @testpilot-containers Name: HTTP/2 Indicator Version: 3.0 Aktiviert: true ID: spdyindicator@chengsun.github.com Name: HTTPS Everywhere Version: 2018.6.13 Aktiviert: true ID: https-everywhere@eff.org Name: Privacy Settings Version: 0.3.4 Aktiviert: true ID: jid1-CKHySAadH4nL6Q@jetpack Name: uBlock Origin Version: 1.16.10 Aktiviert: true ID: uBlock0@raymondhill.net Name: Temporary Containers Version: 0.90 Aktiviert: false ID: {c607c8df-14a7-4f28-894f-29e8722976af} Sicherheitssoftware ------------------- Typ: Avast Antivirus Typ: Avast Antivirus Typ: Windows-Firewall Grafik ------ Allgemeine Merkmale Compositing: Direct3D 11 (Advanced Layers) Asynchrones Wischen und Zoomen: Mausrad-Eingabe aktiviert; Ziehen der Bildlaufleiste aktiviert; Tastatur aktiviert; automatischer Bildlauf aktiviert WebGL-1-Treiber: WSI Info: - WebGL-1-Treiber: Renderer: WebGL is currently disabled. WebGL-1-Treiber: Version: - WebGL-1-Treiber: Erweiterungen: - WebGL-1-Erweiterungen: - WebGL-2-Treiber: WSI Info: - WebGL-2-Treiber: Renderer: WebGL is currently disabled. WebGL-2-Treiber: Version: - WebGL-2-Treiber: Erweiterungen: - WebGL-2-Erweiterungen: - Direct2D: true Zeichnen auf Nebenthread aktiviert: true DirectWrite: true (10.0.17134.1) GPU 1 Aktiv: Ja Beschreibung: ATI Mobility Radeon HD 4650 Herstellerkennung: 0x1002 Gerätekennung: 0x9480 Treiber-Version: 8.970.100.9001 Treiber-Datum: 1-13-2015 Treiber: aticfx64 aticfx64 aticfx32 aticfx32 atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64 Subsys-ID: 00000000 RAM: 1024 Weitere Informationen ClearType-Parameter: Gamma: 1,8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 300 AzureCanvasAccelerated: 0 AzureCanvasBackend: Direct2D 1.1 AzureCanvasBackend (UI Process): skia AzureContentBackend: Direct2D 1.1 AzureContentBackend (UI Process): skia AzureFallbackCanvasBackend (UI Process): cairo GPUProcessPid: 9912 ClearType-Parameter: Gamma: 1,8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 300 Entscheidungsprotokoll WEBRENDER: opt-in by default: WebRender is an opt-in feature unavailable by runtime: Build doesn't include WebRender Medien ------ Audio-Backend: wasapi Max. Kanäle: 2 Bevorzugtes Kanallayout: stereo Bevorzugte Sample-Rate: 48000 Ausgabegeräte Name: Gruppe : : : : : : : : Lautsprecher (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 : : : : Realtek HDMI Output (ATI HDMI Audio): HDAUDIO\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1001\5&3a98a0f8&0&0001 Lautsprecher (2- Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\7&16494ac&0&0000 : : Lautsprecher (3- Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\8&2bc8f408&0&0000 : Freisprechtelefon mit Echoausschaltung (Jabra SPEAK 510 USB): USB\VID_0B0E&PID_0422&MI_00\8&264952b8&2&0000 : : : : : : : Lautsprecher (Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\8&2e7daa6&0&0000 : : : : : : Eingabegeräte Name: Gruppe Mikrofon (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 Freisprechtelefon mit Echoausschaltung (Jabra SPEAK 510 USB): USB\VID_0B0E&PID_0422&MI_00\8&264952b8&2&0000 Stereomix (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 Eingang (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 Mikrofon (Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\8&2e7daa6&0&0000 Mikrofon (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 PC Beep (Realtek High Definition Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0272&SUBSYS_1179FFA8&REV_1000\4&8a38e32&0&0001 Mikrofon (3- Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\8&2bc8f408&0&0000 Mikrofon (2- Sennheiser USB headset): USB\VID_1395&PID_0020&MI_00\7&16494ac&0&0000 Wichtige modifizierte Einstellungen ----------------------------------- accessibility.blockautorefresh: true accessibility.force_disabled: 1 accessibility.typeaheadfind.flashBar: 0 browser.cache.disk.capacity: 358400 browser.cache.disk.filesystem_reported: 1 browser.cache.disk.hashstats_reported: 1 browser.cache.disk.smart_size.first_run: false browser.cache.disk.smart_size.use_old_max: false browser.cache.frecency_experiment: 3 browser.cache.memory.max_entry_size: 10240 browser.cache.use_new_backend: 1 browser.download.manager.alertOnEXEOpen: true browser.places.smartBookmarksVersion: 8 browser.search.useDBForOrder: true browser.sessionstore.interval: 60000 browser.sessionstore.upgradeBackup.latestBuildID: 20180605171542 browser.startup.homepage: https://www.qwant.com/?client=qwant-firefox browser.startup.homepage_override.buildID: 20180605171542 browser.startup.homepage_override.mstone: 60.0.2 browser.urlbar.lastSuggestionsPromptDate: 20170819 browser.urlbar.matchBuckets: general:5,suggestion:Infinity browser.urlbar.timesBeforeHidingSuggestionsHint: 0 dom.apps.lastUpdate.buildID: 20161019084923 dom.apps.lastUpdate.mstone: 49.0.2 dom.apps.reset-permissions: true dom.battery.enabled: false dom.enable_performance: false dom.enable_resource_timing: false dom.enable_user_timing: false dom.event.clipboardevents.enabled: false dom.event.contextmenu.enabled: false dom.ipc.processCount: 1 dom.ipc.processCount.web: 4 dom.push.userAgentID: 97defa73266a4275b3ba16c7485c202e extensions.lastAppVersion: 60.0.2 font.internaluseonly.changed: false general.autoScroll: false gfx.crash-guard.d3d11layers.appVersion: 53.0 gfx.crash-guard.d3d11layers.deviceID: 0x9480 gfx.crash-guard.d3d11layers.driverVersion: 8.970.100.9001 gfx.crash-guard.d3d11layers.feature-d2d: true gfx.crash-guard.d3d11layers.feature-d3d11: true gfx.crash-guard.status.d3d11layers: 2 gfx.crash-guard.status.d3d11video: 2 layers.mlgpu.sanity-test-failed: false media.benchmark.vp9.fps: 109 media.benchmark.vp9.versioncheck: 3 media.gmp-eme-adobe.abi: x86-msvc-x64 media.gmp-eme-adobe.enabled: false media.gmp-eme-adobe.lastUpdate: 1480164880 media.gmp-eme-adobe.version: 17 media.gmp-gmpopenh264.abi: x86_64-msvc-x64 media.gmp-gmpopenh264.lastUpdate: 1528534892 media.gmp-gmpopenh264.version: 1.7.1 media.gmp-manager.buildID: 20180605171542 media.gmp-manager.lastCheck: 1529315799 media.gmp-widevinecdm.abi: x86_64-msvc-x64 media.gmp-widevinecdm.lastUpdate: 1506619156 media.gmp-widevinecdm.version: 1.4.8.1008 media.gmp.storage.version.observed: 1 media.hardware-video-decoding.failed: false media.peerconnection.enabled: false media.peerconnection.ice.default_address_only: true media.webrtc.debug.log_file: C:\Users\zimmis\AppData\Local\Temp\WebRTC.log network.captive-portal-service.enabled: false network.cookie.cookieBehavior: 3 network.cookie.lifetimePolicy: 2 network.cookie.prefsMigrated: true network.cookie.thirdparty.sessionOnly: true network.dns.disableIPv6: true network.http.referer.spoofSource: true network.http.referer.trimmingPolicy: 1 network.http.referer.XOriginPolicy: 1 network.http.sendRefererHeader: 1 network.http.speculative-parallel-limit: 4 network.predictor.cleaned-up: true network.security.ports.banned.override: network.warnOnAboutNetworking: false network.websocket.enabled: false places.database.lastMaintenance: 1528808201 places.history.expiration.transient_current_max_pages: 86968 plugin.disable_full_page_plugin_for_types: application/pdf plugin.importedState: true plugin.state.npamazonmp3downloaderplugin: 0 plugin.state.npappdetector: 0 plugin.state.npgeplugin: 0 plugin.state.npgoogleupdate: 0 plugins.ctprollout.cohort: early-adopter-ctp print.printer_Foxit_Reader_PDF_Printer.print_bgcolor: false print.printer_Foxit_Reader_PDF_Printer.print_bgimages: false print.printer_Foxit_Reader_PDF_Printer.print_duplex: -437918235 print.printer_Foxit_Reader_PDF_Printer.print_edge_bottom: 0 print.printer_Foxit_Reader_PDF_Printer.print_edge_left: 0 print.printer_Foxit_Reader_PDF_Printer.print_edge_right: 0 print.printer_Foxit_Reader_PDF_Printer.print_edge_top: 0 print.printer_Foxit_Reader_PDF_Printer.print_evenpages: true print.printer_Foxit_Reader_PDF_Printer.print_footercenter: print.printer_Foxit_Reader_PDF_Printer.print_footerleft: &PT print.printer_Foxit_Reader_PDF_Printer.print_footerright: &D print.printer_Foxit_Reader_PDF_Printer.print_headercenter: print.printer_Foxit_Reader_PDF_Printer.print_headerleft: &T print.printer_Foxit_Reader_PDF_Printer.print_headerright: &U print.printer_Foxit_Reader_PDF_Printer.print_in_color: true print.printer_Foxit_Reader_PDF_Printer.print_margin_bottom: 0.5 print.printer_Foxit_Reader_PDF_Printer.print_margin_left: 0.5 print.printer_Foxit_Reader_PDF_Printer.print_margin_right: 0.5 print.printer_Foxit_Reader_PDF_Printer.print_margin_top: 0.5 print.printer_Foxit_Reader_PDF_Printer.print_oddpages: true print.printer_Foxit_Reader_PDF_Printer.print_orientation: 1 print.printer_Foxit_Reader_PDF_Printer.print_page_delay: 50 print.printer_Foxit_Reader_PDF_Printer.print_paper_data: 9 print.printer_Foxit_Reader_PDF_Printer.print_paper_height: 297,00 print.printer_Foxit_Reader_PDF_Printer.print_paper_name: print.printer_Foxit_Reader_PDF_Printer.print_paper_size_unit: 1 print.printer_Foxit_Reader_PDF_Printer.print_paper_width: 210,00 print.printer_Foxit_Reader_PDF_Printer.print_resolution: 600 print.printer_Foxit_Reader_PDF_Printer.print_reversed: false print.printer_Foxit_Reader_PDF_Printer.print_scaling: 0,50 print.printer_Foxit_Reader_PDF_Printer.print_shrink_to_fit: false print.printer_Foxit_Reader_PDF_Printer.print_to_file: false print.printer_Foxit_Reader_PDF_Printer.print_unwriteable_margin_bottom: 0 print.printer_Foxit_Reader_PDF_Printer.print_unwriteable_margin_left: 0 print.printer_Foxit_Reader_PDF_Printer.print_unwriteable_margin_right: 0 print.printer_Foxit_Reader_PDF_Printer.print_unwriteable_margin_top: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_bgcolor: false print.printer_HP_Officejet_6700_(Netzwerk).print_bgimages: false print.printer_HP_Officejet_6700_(Netzwerk).print_duplex: -437918235 print.printer_HP_Officejet_6700_(Netzwerk).print_edge_bottom: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_edge_left: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_edge_right: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_edge_top: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_evenpages: true print.printer_HP_Officejet_6700_(Netzwerk).print_footercenter: print.printer_HP_Officejet_6700_(Netzwerk).print_footerleft: &PT print.printer_HP_Officejet_6700_(Netzwerk).print_footerright: &D print.printer_HP_Officejet_6700_(Netzwerk).print_headercenter: print.printer_HP_Officejet_6700_(Netzwerk).print_headerleft: &T print.printer_HP_Officejet_6700_(Netzwerk).print_headerright: &U print.printer_HP_Officejet_6700_(Netzwerk).print_in_color: true print.printer_HP_Officejet_6700_(Netzwerk).print_margin_bottom: 0.5 print.printer_HP_Officejet_6700_(Netzwerk).print_margin_left: 0.5 print.printer_HP_Officejet_6700_(Netzwerk).print_margin_right: 0.5 print.printer_HP_Officejet_6700_(Netzwerk).print_margin_top: 0.5 print.printer_HP_Officejet_6700_(Netzwerk).print_oddpages: true print.printer_HP_Officejet_6700_(Netzwerk).print_orientation: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_page_delay: 50 print.printer_HP_Officejet_6700_(Netzwerk).print_paper_data: 9 print.printer_HP_Officejet_6700_(Netzwerk).print_paper_height: -1,00 print.printer_HP_Officejet_6700_(Netzwerk).print_paper_name: print.printer_HP_Officejet_6700_(Netzwerk).print_paper_size_unit: 1 print.printer_HP_Officejet_6700_(Netzwerk).print_paper_width: -1,00 print.printer_HP_Officejet_6700_(Netzwerk).print_resolution: 600 print.printer_HP_Officejet_6700_(Netzwerk).print_reversed: false print.printer_HP_Officejet_6700_(Netzwerk).print_scaling: 0,50 print.printer_HP_Officejet_6700_(Netzwerk).print_shrink_to_fit: false print.printer_HP_Officejet_6700_(Netzwerk).print_to_file: false print.printer_HP_Officejet_6700_(Netzwerk).print_unwriteable_margin_bottom: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_unwriteable_margin_left: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_unwriteable_margin_right: 0 print.printer_HP_Officejet_6700_(Netzwerk).print_unwriteable_margin_top: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_bgcolor: false print.printer_HP4174A0_(HP_Officejet_6700).print_bgimages: false print.printer_HP4174A0_(HP_Officejet_6700).print_duplex: -437918235 print.printer_HP4174A0_(HP_Officejet_6700).print_edge_bottom: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_edge_left: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_edge_right: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_edge_top: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_evenpages: true print.printer_HP4174A0_(HP_Officejet_6700).print_footercenter: print.printer_HP4174A0_(HP_Officejet_6700).print_footerleft: &PT print.printer_HP4174A0_(HP_Officejet_6700).print_footerright: &D print.printer_HP4174A0_(HP_Officejet_6700).print_headercenter: print.printer_HP4174A0_(HP_Officejet_6700).print_headerleft: &T print.printer_HP4174A0_(HP_Officejet_6700).print_headerright: &U print.printer_HP4174A0_(HP_Officejet_6700).print_in_color: true print.printer_HP4174A0_(HP_Officejet_6700).print_margin_bottom: 0.5 print.printer_HP4174A0_(HP_Officejet_6700).print_margin_left: 0.5 print.printer_HP4174A0_(HP_Officejet_6700).print_margin_right: 0.5 print.printer_HP4174A0_(HP_Officejet_6700).print_margin_top: 0.5 print.printer_HP4174A0_(HP_Officejet_6700).print_oddpages: true print.printer_HP4174A0_(HP_Officejet_6700).print_orientation: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_page_delay: 50 print.printer_HP4174A0_(HP_Officejet_6700).print_paper_data: 9 print.printer_HP4174A0_(HP_Officejet_6700).print_paper_height: -1,00 print.printer_HP4174A0_(HP_Officejet_6700).print_paper_name: print.printer_HP4174A0_(HP_Officejet_6700).print_paper_size_unit: 1 print.printer_HP4174A0_(HP_Officejet_6700).print_paper_width: -1,00 print.printer_HP4174A0_(HP_Officejet_6700).print_resolution: 600 print.printer_HP4174A0_(HP_Officejet_6700).print_reversed: false print.printer_HP4174A0_(HP_Officejet_6700).print_scaling: 1,00 print.printer_HP4174A0_(HP_Officejet_6700).print_shrink_to_fit: true print.printer_HP4174A0_(HP_Officejet_6700).print_to_file: false print.printer_HP4174A0_(HP_Officejet_6700).print_unwriteable_margin_bottom: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_unwriteable_margin_left: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_unwriteable_margin_right: 0 print.printer_HP4174A0_(HP_Officejet_6700).print_unwriteable_margin_top: 0 print.printer_Microsoft_Print_to_PDF.print_bgcolor: false print.printer_Microsoft_Print_to_PDF.print_bgimages: false print.printer_Microsoft_Print_to_PDF.print_duplex: -437918235 print.printer_Microsoft_Print_to_PDF.print_edge_bottom: 0 print.printer_Microsoft_Print_to_PDF.print_edge_left: 0 print.printer_Microsoft_Print_to_PDF.print_edge_right: 0 print.printer_Microsoft_Print_to_PDF.print_edge_top: 0 print.printer_Microsoft_Print_to_PDF.print_evenpages: true print.printer_Microsoft_Print_to_PDF.print_footercenter: print.printer_Microsoft_Print_to_PDF.print_footerleft: &PT print.printer_Microsoft_Print_to_PDF.print_footerright: &D print.printer_Microsoft_Print_to_PDF.print_headercenter: print.printer_Microsoft_Print_to_PDF.print_headerleft: &T print.printer_Microsoft_Print_to_PDF.print_headerright: &U print.printer_Microsoft_Print_to_PDF.print_in_color: true print.printer_Microsoft_Print_to_PDF.print_margin_bottom: 0.5 print.printer_Microsoft_Print_to_PDF.print_margin_left: 0.5 print.printer_Microsoft_Print_to_PDF.print_margin_right: 0.5 print.printer_Microsoft_Print_to_PDF.print_margin_top: 0.5 print.printer_Microsoft_Print_to_PDF.print_oddpages: true print.printer_Microsoft_Print_to_PDF.print_orientation: 0 print.printer_Microsoft_Print_to_PDF.print_page_delay: 50 print.printer_Microsoft_Print_to_PDF.print_paper_data: 9 print.printer_Microsoft_Print_to_PDF.print_paper_height: -1,00 print.printer_Microsoft_Print_to_PDF.print_paper_name: print.printer_Microsoft_Print_to_PDF.print_paper_size_unit: 1 print.printer_Microsoft_Print_to_PDF.print_paper_width: -1,00 print.printer_Microsoft_Print_to_PDF.print_resolution: 600 print.printer_Microsoft_Print_to_PDF.print_reversed: false print.printer_Microsoft_Print_to_PDF.print_scaling: 1,00 print.printer_Microsoft_Print_to_PDF.print_shrink_to_fit: true print.printer_Microsoft_Print_to_PDF.print_to_file: false print.printer_Microsoft_Print_to_PDF.print_unwriteable_margin_bottom: 0 print.printer_Microsoft_Print_to_PDF.print_unwriteable_margin_left: 0 print.printer_Microsoft_Print_to_PDF.print_unwriteable_margin_right: 0 print.printer_Microsoft_Print_to_PDF.print_unwriteable_margin_top: 0 privacy.clearOnShutdown.downloads: false privacy.clearOnShutdown.formdata: false privacy.clearOnShutdown.history: false privacy.clearOnShutdown.offlineApps: true privacy.history.custom: true privacy.sanitize.didShutdownSanitize: true privacy.sanitize.pending: [{"id":"shutdown","itemsToClear":["cache","cookies","offlineApps","sessions"],"options":{}}] privacy.sanitize.sanitizeOnShutdown: true privacy.trackingprotection.enabled: true privacy.trackingprotection.introCount: 20 privacy.usercontext.about_newtab_segregation.enabled: true privacy.userContext.enabled: true privacy.userContext.extension: CookieAutoDelete@kennydo.com privacy.userContext.longPressBehavior: 2 privacy.userContext.ui.enabled: true security.disable_button.openCertManager: false security.sandbox.content.tempDirSuffix: {571fe83d-5f3a-4f27-9a32-0c17211fd6c7} security.tls.insecure_fallback_hosts.use_static_list: false services.sync.declinedEngines: storage.vacuum.last.index: 1 storage.vacuum.last.places.sqlite: 1528983833 ui.osk.debug.keyboardDisplayReason: IKPOS: Touch screen not found. ui.osk.enabled: false webgl.disabled: true Wichtige nicht veränderbare Einstellungen ----------------------------------------- Chronik- und Lesezeichendatenbank --------------------------------- JavaScript ---------- Inkrementelle GC: true Barrierefreiheit ---------------- Aktiviert: false Barrierefreiheit verhindern: 1 Accessible Handler verwendet: true Dienst für Barrierefreiheit aufgerufen durch: Bibliotheken-Versionen ---------------------- NSPR Minimal vorausgesetzte Version: 4.19 Verwendete Version: 4.19 NSS Minimal vorausgesetzte Version: 3.36.4 Verwendete Version: 3.36.4 NSSSMIME Minimal vorausgesetzte Version: 3.36.4 Verwendete Version: 3.36.4 NSSSSL Minimal vorausgesetzte Version: 3.36.4 Verwendete Version: 3.36.4 NSSUTIL Minimal vorausgesetzte Version: 3.36.4 Verwendete Version: 3.36.4 Experimentelle Funktionen ------------------------- Isolierte Umgebungen -------------------- Ebene der isolierten Umgebung des Inhaltsprozesses: 5 Effektive Ebene der isolierten Umgebung: 5 Internationalisierung & Lokalisierung ------------------------------------- Anwendungseinstellungen Angeforderte Sprachen: ["de","en-US"] Verfügbare Sprachen: ["de","en-US"] Anwendungssprachen: ["de","en-US"] Region-Einstellungen: ["de-DE"] Standardsprache: "de" Betriebssystem Sprachen des Betriebssystems: ["de-DE"] Region-Einstellungen: ["de-DE"]
Flags: needinfo?(frank.zimmer)
Hm. I'm not able to see much rendering / page loading performance difference between the two, myself. Hey Cosmin, do you have a copy of Brave anywhere? Are you able to notice a difference?
Flags: needinfo?(cosmin.muntean)
ok, laptop not that new. Core i5-430m, 4 GB RAM, Samsung Evo 850 SSD, ATI Mobility Radeon HD 4650 [Toshiba]. But similar results on my working device Core i7-4600U, 10 GB RAM, Toshiba SSD, Intel HD Grapics 4400 Brave around 50% faster on both devices when reloading the page.
I have tested this issue on latest Firefox 60.0.2 release (with uBlock origin installed) and latest Brave 0.22.810 version on Windows 7, but I don't see much difference between the browsers. I have also navigated to multiple websites but the Brave browser don't seem to be 50% faster then Firefox on my end. However, on certain websites the Brave browser seem to be a little bit faster. Tested on a computer with a AMD FX - 8320 Eight Core Processor 3.50 Ghz processor and a ATI Radeon 3000 Graphics 3323 MB video card. Here are the results: For the "www.heise.de" website, on Firefox the images seem to be displayed a bit later then on the Brave browser. Here is a screen recording made on Firefox: https://goo.gl/EWBrfQ Here is a screen recording made on Brave: https://goo.gl/LgDs2U For the "www.spiegel.de" website, the site is faster loaded in Firefox then on the Brave browser. Here is a screen recording made on Firefox: https://goo.gl/xd9Bte Here is a screen recording made on Brave: https://goo.gl/sukGdN For the "https://www.reddit.com/" website, it seems that the page is faster loaded in Brave browser then in Firefox browser. Here is a screen recording made on Firefox: https://goo.gl/5RxhBz Here is a screen recording made on Brave: https://goo.gl/Zk4ADT Here is a copy of my "about:support" page from Firefox browser: https://goo.gl/aGPtwe Please let me know if you need more information or testing on multiple machines.
Flags: needinfo?(cosmin.muntean)
Could you tell me which screen recording tool you use? I guess as faster the machine is as less difference you will see. For me re-loading of www.heise.de (including https !!!) takes around 5-6 seconds (measured with the network analysis tool). As ad blocking only use uBlock origin, internal blocking is disabled. With brave you can only use their own ad blocking tool, also here https enabled. Re-load takes between 2.2 and 3.5 seconds This difference is visible, it's not that sad, but it's something.
> For the "www.heise.de" website, on Firefox the images seem to be displayed a > bit later then on the Brave browser. > Here is a screen recording made on Firefox: https://goo.gl/EWBrfQ > Here is a screen recording made on Brave: https://goo.gl/LgDs2U I just noticed that I added the wrong link for the recording made on Firefox. Here is the correct link: https://goo.gl/AH7YGE @Frank, I have used Screencast-O-Matic.
Thanks for your work, Cosmin. Hey Frank, Can you tell us more about your machine? Specifically, the CPU speed and number of cores? Can you also tell us about your network speed? You're right that machine speed could be a factor here - but so could network speed.
Flags: needinfo?(frank.zimmer)
Intel Core i5-430M, 2 Cores (1. generation i-core) Max Core Speed 2300MHz, Turbo speed 2600Mhz Internet: 6 mbit/s download DSL, 1.8 mbits upload DSL Latency to www.heise.de : ~ 26ms Ping wird ausgeführt für heise.de [193.99.144.80] mit 32 Bytes Daten: Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=27ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=27ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=28ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=26ms TTL=248 Antwort von 193.99.144.80: Bytes=32 Zeit=27ms TTL=248 during test no other applications running, Internet exclusively for this device Graphics AMD Mobility Radeon HD 4650
Flags: needinfo?(frank.zimmer)
Attached file firefox__www.heise.de.har (deleted) —
www.heise.de with Firefox
Attached file chromium_www.heise.de.har (deleted) —
www.heise.de with Chromium
Hi Frank, Why is this second log from Chromium? I thought we were comparing with the Brave browser. The two logs certainly show that Firefox is taking a few seconds longer to reach the loaded state. It looks like the Chromium log is reporting that more things are being cached. Only 189.36kb is being transferred over the wire for the Chromium log, vs the 852.46kb being transferred for the Firefox log. Were you shift-reloading in both cases?
Flags: needinfo?(frank.zimmer)
Hi Mike, first i took chromium to compare as brave does not have the development tools built-in and available. And brave relies itself on chromium. And for both i did NOT shift-reload by intention, to have exactly caches enabled. I only did a normal reload of the page. As originally stated the biggest difference between both i can see when it comes to "standard" refresh. In practical life navigating back and forth between different articles on the website. This visible difference (~2 seconds) is also somehow depicted on both har files. It can be that chromium/brave is caching much more aggressive, maybe not respecting the cache pragmas and expiry times ?
Flags: needinfo?(frank.zimmer)
(In reply to Frank Zimmer from comment #15) > Hi Mike, > > first i took chromium to compare as brave does not have the development > tools built-in and available. > And brave relies itself on chromium. Both Brave and Chromium are based on the Blink engine, but as I understand it, Brave blocks things more aggressively than Chromium does by default, so I'm reasonably certain that they're not equal quantities. Still, however, for the sake of data analysis, let's continue to compare Chromium and Firefox for this particular page load just to see if we can figure out what's going on. > And for both i did NOT shift-reload by intention, to have exactly caches > enabled. I only did a normal reload of the page. In Firefox, in the Network Inspector, do you have "Disable cache" enabled? For Web Developers, we often disable the network cache when the DevTools are open. I'm not certain if Chromium does something similar.
Flags: needinfo?(frank.zimmer)
Attached image HARs compared (deleted) —
I wrote a tool a while ago to parse and summarize/compare HAR data[1], and using it with the provided HAR data above I get the following summary (Firefox left, Chromium right): https://bugzilla.mozilla.org/attachment.cgi?id=8987942 [1] http://raymondhill.net/httpsb/har-parser.html
Hi, in both Dev Tools you an either disable or enable the browser cache. In my "test" i have for both browsers cache ENABLED (means NOT disabled). Because my network is not that fast, when cache is disabled the variances in downloading page content is that high. What i could see in the waterfall diagrams is that at least chrome is caching much more graphics in the (memory) cache and loading them even much faster from cache then firefox (images from cloudimages.io). And in addition chrome is also caching much more of them. When you look at the replay headers you see that this graphics do have a valid cache pragma as well as an expiry time in the future, so there are cacheable but aren't cached by FF. At least that's my non-professional view on this. What also seems a bit strange to me is that FF doesn't cache these ones in memory (what chrome does), only to disk (in this case to a SSD).
Flags: needinfo?(frank.zimmer)
Flags: needinfo?(mconley)
I agree with your assessment, Frank - in Firefox's case, we appear to be downloading the images again, and Chromium appears to be drawing them out of the cache. Hey valentin, I assume this might fall into the domain of the HTTP cache? Do you know who I should be pointing this at?
Flags: needinfo?(mconley) → needinfo?(valentin.gosu)
Honza & Michal are the Necko Cache experts (CC) @Frank: One of the reasons I could think of for not using the cache, is "race cache with network". Can you try disabling it and then check again? (Set network.http.rcwn.enabled to false in about:config) As for the images, the responsibility for caching is shared between the HTTP cache and the image cache (which I don't fully understand).
Flags: needinfo?(valentin.gosu) → needinfo?(frank.zimmer)
I believe we simply have a different kind of behavior when (plain) F5 is pressed. We revalidate all content with the server unless it's Cache-control: immutable. Chrome probably does differently, and from my experience, yes, Chrome is much more cache-aggressive (=they deliver more from cache than we do). Probably applies to Brave as well. I would try a different way of reloading the page in Firefox: click in the address bar to focus it, (in Firefox you can also do Alt-D or Ctrl-L) and press the enter key. This reloads the page as well, but differently - doesn't force revalidation of all resources with the server and hence is way faster. I would be interested in how that compares with Brave (both F5 reload in Brave and re-navigate as suggested above for Firefox). The videos are great way to capture this! Thanks for it.
Hi as proposed by Valentin i disabled rcwn, but not that much difference, however executing the reload as proposed by Honza the page load time for www.heise.de is nearly the same in FF as compared to Brave. In that way a page reload with FF takes around 2.7 s, same values as with Brave. ok, besides all technical details, standards and whatever, for me as simple and stupid enduser ;-) it's only visible that reloading page with Brave (Chrome)using the toolbar reload icon has a huge difference (even maybe that chrome does not show the real actual content)compared to FF. on the other hand, why is content revalidated against the server when it does have a valid cache-pragma and expiration time?
Flags: needinfo?(frank.zimmer)
(In reply to Frank Zimmer from comment #23) > Hi > as proposed by Valentin i disabled rcwn, but not that much difference, > however executing the reload as proposed by Honza the page load time for > www.heise.de is nearly the same in FF as compared to Brave. > In that way a page reload with FF takes around 2.7 s, same values as with > Brave. Thanks for checking this out. > > ok, besides all technical details, standards and whatever, for me as simple > and stupid enduser ;-) it's only visible that reloading page with Brave > (Chrome)using the toolbar reload icon has a huge difference (even maybe that > chrome does not show the real actual content)compared to FF. > > on the other hand, why is content revalidated against the server when it > does have a valid cache-pragma and expiration time? Because pressing F5 is (or, we see it as) an explicit command given by the user to the UA to fetch the latest content of the page. Hence, revalidate regardless expiration. I believe this behavior is there for years, since bug 21137 (year 1999), https://github.com/ehsan/mozilla-cvs-history/commit/8bc2f71c3eb7d9054e4bb692fd013dcc703128bf.
Summary: Firefox much, much slower than brave browser → Firefox much, much slower when reloading (F5) a page than brave browser
Component: General → Networking: Cache
Product: Firefox → Core
Component: Networking: Cache → Document Navigation
Summary: Firefox much, much slower when reloading (F5) a page than brave browser → Firefox much, much slower when reloading (F5) a page than Brave browser
Document navigation because the decision to use the VALIDATE_ALWAYS flag happens there.
Changing this behaviour will probably require a broad discussion on a mailing list or at least not on this bug.
Priority: -- → P3
Summary: Firefox much, much slower when reloading (F5) a page than Brave browser → F5 causes content re-validation and this is slow
I'd like to tell my POV, as i was already active in the famous Internet since 94! i can easily understand the decision taken 99 to have F5 (Reload) reloading all content regardless of cache pragmas and expiry dates as in these old time ;-) the CDN's and webhosters weren't that strong and large as today with proper cache pragmas and correct expiry dates. But nowadays this has changed and yes you still can find bad and malformed webpages, no question at all, but the majority is now using these things more properly. So when i put myself into an end user view i would expect that F5 (reload) just reloads what is really necessary, and in case I want personally to get really all content new i would have to to a "Shift-Reload" of the webpage. But as already proposed TBD.
Whiteboard: [reload-parity]

Honza: does the reload button use VALIDATE_ALWAYS? Given nsDocShell::DoChannelLoad(), since it sets it for case LOAD_RELOAD_NORMAL: and case LOAD_REFRESH:, I'd guess the answer is "yes".

Whiteboard: [reload-parity] → [reload-parity][qf]

(In reply to Randell Jesup [:jesup] (needinfo me) from comment #29)

Honza: does the reload button use VALIDATE_ALWAYS? Given nsDocShell::DoChannelLoad(), since it sets it for case LOAD_RELOAD_NORMAL: and case LOAD_REFRESH:, I'd guess the answer is "yes".

Yes, the answer is yes. This makes us either reload (if the resource is still fresh) or do a conditional request if we can, regardless possible freshness. The flag propagates on all subresource loads including iframes.

The idea is to revalidate only the top level document on F5. OTOH, I don't see a point in handling c-c: immutable any more; that's a bit we may look for how it's being actually handled by other browsers that have different F5 behavior from us. Immutable would virtually become the same as max-age=<inf> with the proposal.

p2 because users do use Reload in the various forms to test how fast a page is (or to refresh content).

Whiteboard: [reload-parity][qf] → [reload-parity][qf:p2:pageload]

Bug 1551965 landed, so we started to collect telemetry data for which buttons user use to reload pages. Once we had enough data, we can reevaluate our decision here.

(In reply to Sean Feng [:sefeng] from comment #32)

Bug 1551965 landed, so we started to collect telemetry data for which buttons user use to reload pages. Once we had enough data, we can reevaluate our decision here.

So we started to collect that data about 2 years ago. I assume there should be enough data around now to have a look into that. Sean, do you know who could do that?

Flags: needinfo?(sefeng)

Yup, we have actually disabled the telemetry already. Since it is disabled, we have to run query maually.

Here's the data https://sql.telemetry.mozilla.org/queries/74006/source for between 2019-10-22 and 2019-11-30. Just need to manually change the date if we want to query for difference date ranges.

I copy pasted the data over

Label | Count
0     | 2,252,497,473
1     | 60,691,404
2     | 197,437,234
3     | 22,877,962
4     | 1,850,947,930
5     | 3,904,273
6     | 559,598
7     | 840,874
8     | 0

This is the meaning of lables.

0: "only_f5",
1: "ctrl_f5",
2: "accel_reloadKey",
3: "accel_shift_reload",
4: "toolbar",
5: "shift_toolbar",
6: "accel_toolbar",
7: "auxiliary_toolbar"
Flags: needinfo?(sefeng)

(In reply to Sean Feng [:sefeng] from comment #34)

Yup, we have actually disabled the telemetry already. Since it is disabled, we have to run query maually.

Here's the data https://sql.telemetry.mozilla.org/queries/74006/source for between 2019-10-22 and 2019-11-30. Just need to manually change the date if we want to query for difference date ranges.

I copy pasted the data over

Label | Count
0     | 2,252,497,473
1     | 60,691,404
2     | 197,437,234
3     | 22,877,962
4     | 1,850,947,930
5     | 3,904,273
6     | 559,598
7     | 840,874
8     | 0

This is the meaning of lables.

0: "only_f5",
1: "ctrl_f5",
2: "accel_reloadKey",
3: "accel_shift_reload",
4: "toolbar",
5: "shift_toolbar",
6: "accel_toolbar",
7: "auxiliary_toolbar"

I looked at this data a little more, it appears (if I didn't make any mistakes), that this means the average user in this group uses a toolbar or F5 refresh roughly twice per hour that they are 'interacting with the browser' (as indicated by whether there was an active tick). There's probably some more interesting questions we should look at. But at least this seems to be reasonable common.

Dragana confirmed that the Necko team currently has no plan to work on this, but can assist if needed.

The next step for this bug is comparing Firefox and Chrome to figure out which resources are revalidated in Chrome and which are not. Using devtools is probably sufficient.

e.g. are the main doc revalidated, are iframes revalidated, are other resources revalidated, are expired resources refetch, double-check what is happening with not cachable resource(this is more for completeness), etc.

I might be able to find some cycles to do the comparison. However, if somebody else has cycles, please take it!

I took a comparison between the two sites that were provided in comment 1 plus some simple manual testing and found these things.

  • Main Document: Always re-fetched

  • Images: Sometimes we used the cache for them, however sometimes we didn't. An example is https://mathiasbynens.be/demo/img-loading-lazy which Firefox always re-fetched the images whereas Chrome always used the cache. And these images had cache-control public, max-age=86400 specified.

  • Iframe (Subdocument): Always re-fetched

  • Fetch API: Chrome used the cache and Firefox didn't. An example is loading https://www.spiegel.de and checking the request for fetching https://cdn.prod.www.spiegel.de/assets/news/breakingnews.json. This request had cache-control public, max-age=30, s-maxage=30.

  • are expired resources refetched: Yes

  • non-cacheable resource: One case I found was the https://assets.adobedtm.com/extensions/EPbde2f7ca14e540399dcc1f8208860b7b/AppMeasurement.min.js request on https://www.spiegel.de. Cache control specifies cache-control: no-cache. So Chrome always re-fetched the content for reloading. However, Firefox was able to use the cache for it which I didn't understand.

Dragana, let me know your thoughts. I think unable to use the cache for images and fetch API is hurting us.

Flags: needinfo?(dd.mozilla)

(In reply to Sean Feng [:sefeng] from comment #37)

I took a comparison between the two sites that were provided in comment 1 plus some simple manual testing and found these things.

  • Main Document: Always re-fetched

  • Images: Sometimes we used the cache for them, however sometimes we didn't. An example is https://mathiasbynens.be/demo/img-loading-lazy which Firefox always re-fetched the images whereas Chrome always used the cache. And these images had cache-control public, max-age=86400 specified.

  • Iframe (Subdocument): Always re-fetched

  • Fetch API: Chrome used the cache and Firefox didn't. An example is loading https://www.spiegel.de and checking the request for fetching https://cdn.prod.www.spiegel.de/assets/news/breakingnews.json. This request had cache-control public, max-age=30, s-maxage=30.

  • are expired resources refetched: Yes

  • non-cacheable resource: One case I found was the https://assets.adobedtm.com/extensions/EPbde2f7ca14e540399dcc1f8208860b7b/AppMeasurement.min.js request on https://www.spiegel.de. Cache control specifies cache-control: no-cache. So Chrome always re-fetched the content for reloading. However, Firefox was able to use the cache for it which I didn't understand.

We revalidate such resources, so i is loaded form a cache after 304 is received.

Dragana, let me know your thoughts. I think unable to use the cache for images and fetch API is hurting us.

I have reread some background on this:
Bug 1267474
https://engineering.fb.com/2017/01/26/web/this-browser-tweak-saved-60-of-requests-to-facebook/
https://blog.chromium.org/2017/01/reload-reloaded-faster-and-leaner-page_26.html
https://bugs.chromium.org/p/chromium/issues/detail?id=611416#c46

As this change is in Chrome for a long time and there is no issues, we can try to make the same change in Firefox.
I would be a bit cautious, the Firefox user behavior may be different.
We should start by sending an email to dev-plaform with intend to implement.
This needs to be behind a pref. (we may want to hold it on EARLY_BETA_OR_EARLIER for 2 cycles).
We need to implement test for this.

Flags: needinfo?(dd.mozilla)

Thanks Dragana, Can you confirm the change we should make is changing this to VALIDATE_NEVER?

I tried that locally which made the reload much faster, however, somehow the network tab was no longer showing the request anymore, not sure what also needs to be updated.

Flags: needinfo?(dd.mozilla)

(In reply to Sean Feng [:sefeng] from comment #39)

Thanks Dragana, Can you confirm the change we should make is changing this to VALIDATE_NEVER?

Hi Dragana, maybe you could find the time to answer Sean's question? Thanks!

(In reply to Sean Feng [:sefeng] from comment #39)

Thanks Dragana, Can you confirm the change we should make is changing this to VALIDATE_NEVER?

That what we need to change. Please double check iframe behavior.
Adding test for all resources type would be good.

I tried that locally which made the reload much faster, however, somehow the network tab was no longer showing the request anymore, not sure what also needs to be updated.

Please ask someone from devTool to help here. This may need some changes to devTool.

First we need to send an email to dev-plaform with intend to implement. I will take this action, and I will sent the email this week.

Flags: needinfo?(dd.mozilla)

(In reply to Dragana Damjanovic [:dragana] from comment #42)

I tried that locally which made the reload much faster, however, somehow the network tab was no longer showing the request anymore, not sure what also needs to be updated.

Sean, is the DevTool's network tab in such a case still not working correctly?

First we need to send an email to dev-plaform with intend to implement. I will take this action, and I will sent the email this week.

FYI, the intent to prototype email can be found here:
https://groups.google.com/a/mozilla.org/g/dev-platform/c/IiuvO7eHBME

Flags: needinfo?(sefeng)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #43)

(In reply to Dragana Damjanovic [:dragana] from comment #42)

I tried that locally which made the reload much faster, however, somehow the network tab was no longer showing the request anymore, not sure what also needs to be updated.

Sean, is the DevTool's network tab in such a case still not working correctly?

First we need to send an email to dev-plaform with intend to implement. I will take this action, and I will sent the email this week.

FYI, the intent to prototype email can be found here:
https://groups.google.com/a/mozilla.org/g/dev-platform/c/IiuvO7eHBME

Hi Henrik,
would be curious to see what are the performance improvements you experienced, can you please just give some examples ?
Thx

Sean, is the DevTool's network tab in such a case still not working correctly?

I've talked with tnikkle about this, looks like we need a special case handling for image cache.

FYI, the intent to prototype email can be found here

Yeah, thanks! I am working on a patch to change the behaviour right now.

Flags: needinfo?(sefeng)
Assignee: nobody → sefeng

Hi Honza, can you help us to resolve the issue with showing images loaded from image cache in devtools. Can you send this to the right person in your team.

Sometimes images are not shown in DevTools and that is because they are loaded for m a image cache. The cache is in img-lib so there is not HttpChannel for this request at all and no events for them. Someone from DevTools could help Sean create a new event to reprote images loaded from this cache (or maybe not an event, any other approach is fine as well). The image caches are in the content processes.

Thank you.

Flags: needinfo?(odvarko)

Hi Sean,
I think we can resolve this bug independently of the image cache issue. That issue should be a follow up bug.

I've been already discussing this quickly with Sean on Element (#DevTools Network Monitor channel). The network panel is listening to "http-on-examine-cached-response" for standard 304 requests the Network panel (those have nsIHttpRequest channel created)

In order to show also request coming from the image cache we need a new event (we can't reuse the "http-on-examine-cached-response" since there is no nsIHttpChannel in this case).

The Network panel would consequently listen to the event, get all necessary info about the request from it (URL, stack trace - if any, size, headers - if available in the cache, etc.). Based on the data, the Network panel would show the appropriate request.

@Bomsy, does this make sense? Can you please assist Dragana and Sean here, thank you.

Honza

Flags: needinfo?(odvarko) → needinfo?(hmanilla)

I wonder if an easier approach could be we still create an HTTP channel with all the information, so that the function which examines the channel can be reused. The extra step that needs to be done is passing this channel from content to parent, and I am not sure where the best place to add this IPC message.

In order to show also request coming from the image cache we need a new event (we can't reuse the "http-on-examine-cached-response" since there is no nsIHttpChannel in this case).
The Network panel would consequently listen to the event, get all necessary info about the request from it (URL, stack trace - if any, size, headers - if available in the cache, etc.). Based on the data, the Network panel would show the appropriate request.

Thanks honza. This makes sense, from a devtools perspective we can handle either way (a new event or using "http-on-examine-cached-response").

I wonder if an easier approach could be we still create an HTTP channel with all the information, so that the function which examines the channel can be reused. The extra step that needs to be done is passing this channel from content to parent, and I am not sure where the best place to add this IPC message.

Hi Sean,
I was going to suggest something related, creating a channel just for sending the notification to devtools. Here is how we have done it in the content process to notify of CSP failures.
https://searchfox.org/mozilla-central/rev/c114db74a92cf15096dfda02255e125949b0e070/layout/style/Loader.cpp#918-922,928-929
Maybe this helps?

Flags: needinfo?(hmanilla)

(In reply to Sean Feng [:sefeng] from comment #49)

I wonder if an easier approach could be we still create an HTTP channel with all the information, so that the function which examines the channel can be reused. The extra step that needs to be done is passing this channel from content to parent, and I am not sure where the best place to add this IPC message.

I also agree, this would be perfect. Creating a (fake) channel would make it simpler to consume the data and also the code base would be consistent.

Hi bomsy, thanks!

The example you've posted is an observer which is being registered in the content process, which is different than the ones like http-on-examine-cached-response which is being registered in the parent process. Do you think I can just register a new observer in the content process and it would work or I still need to somehow pass the channel from content to parent to let observers in the parent process to be notified?

Flags: needinfo?(hmanilla)

(In reply to Sean Feng [:sefeng] from comment #52)

Hi bomsy, thanks!

The example you've posted is an observer which is being registered in the content process, which is different than the ones like http-on-examine-cached-response which is being registered in the parent process. Do you think I can just register a new observer in the content process and it would work or I still need to somehow pass the channel from content to parent to let observers in the parent process to be notified?

I'm not really clear on the need to pass the channel from content to parent? Is there also a reason why the http-on-examine-cached-response event is restricted to the parent process? I would think that as done in that example, you can also just register a new observer and send http-on-examine-cached-response from the content. Or am i misunderstanding something?

Also using a new event should also probably work if works better for you.

Devtools can listen for events coming from both the content and the parent process.

Flags: needinfo?(hmanilla) → needinfo?(sefeng)

http-on-examine-cached-response is only send from the parent process because the http cache is only in the parent process.
You can send that event from the content process, but I prefer that you change the name to http-on-examine-cached-response-content-process, because http-on-examine-cached-response is used by WebExentions as well and if we want to change the behavior of http-on-examine-cached-response we need to check with the WebExtensions team beforehand.

(In reply to Dragana Damjanovic [:dragana] from comment #54)

http-on-examine-cached-response is only send from the parent process because the http cache is only in the parent process.
You can send that event from the content process, but I prefer that you change the name to http-on-examine-cached-response-content-process, because http-on-examine-cached-response is used by WebExentions as well and if we want to change the behavior of http-on-examine-cached-response we need to check with the WebExtensions team beforehand.

Thanks Dragana, this makes sense and is clear now. We are totally fine with a new event.

Depends on: 1722759

Currently, soft reload uses the VALIDATE_ALWAYS flag to not only
force revalidate the top level document, but also subresources.
This causes content to be refetched from the web even if there
are caches that are still valid and can be used.

Chrome already has such behaviour to not revalidate all resources.

Attachment #9236852 - Attachment description: WIP: Bug 1468476 - Make soft reload only validates top level document → WIP: Bug 1468476 - Make soft reload only force validates top level document
Attachment #9236852 - Attachment description: WIP: Bug 1468476 - Make soft reload only force validates top level document → Bug 1468476 - Make soft reload only force validates top level document r=asuth,dragana,nika!
Attachment #9236852 - Attachment description: Bug 1468476 - Make soft reload only force validates top level document r=asuth,dragana,nika! → WIP: Bug 1468476 - Make soft reload only force validates top level document r=asuth,dragana,nika!
Attachment #9236852 - Attachment description: WIP: Bug 1468476 - Make soft reload only force validates top level document r=asuth,dragana,nika! → Bug 1468476 - Make soft reload only force validates top level document r=asuth,dragana,nika!
Flags: needinfo?(sefeng)

Hi Sean. The patch has been reviewed about 2 weeks ago. Is there any more work needed or can it be landed?

Flags: needinfo?(sefeng)

Yeah, right now I am working with Bomsy to address bug 1722759. I'd like to get it landed first.

Flags: needinfo?(sefeng)

Thanks Sean. I'll mark it as such in the whiteboard so it will be visible to everyone checking this bug.

Whiteboard: [reload-parity][qf:p2:pageload] → [reload-parity][qf:p2:pageload][blocked by bug 1722759]
Pushed by sefeng@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d5102e702526 Make soft reload only force validates top level document r=necko-reviewers,nika,dragana,asuth
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
Regressions: 1738449
Blocks: 1738621
No longer regressions: 1739638
Blocks: 1752152
Blocks: 1752558
Performance Impact: --- → P2
Keywords: perf:pageload
Whiteboard: [reload-parity][qf:p2:pageload][blocked by bug 1722759] → [reload-parity][blocked by bug 1722759]
Blocks: 1314942
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: