Closed Bug 1294700 Opened 9 years ago Closed 8 years ago

Extreme lag/jank when repainting during text input after using Mobile Twitter

Categories

(Firefox :: Untriaged, defect)

50 Branch
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 1295214

People

(Reporter: kael, Unassigned, NeedInfo)

Details

Attachments

(1 file)

Once I browse around in Mobile Twitter for 5-10 minutes in a pinned tab, Firefox begins taking upwards of 500ms to repaint in response to text events. While I type into the Description field here in Bugzilla right now, it's repainting at probably less than 5fps. This makes it pretty hard to input and edit text. If I restart FF for a fresh session everything is fine, but after a minute or two of Mobile Twitter it consistently becomes terrible. Oddly I'm not seeing anything strange in Cleopatra if I profile this, it seems like all the time is being spent in WaitForMultipleObjects. But I'm not sure if Gecko Profiler works correctly anymore. Input into the address bar also lags (albeit less). Highlighting on context menus in FF also lags if I swipe my mouse over the menus. Animations and scrolling in the compositor seem to be jank-free in this state, and hovers (like on the tab bar) also seem to be jank free. So that's weird. Here's a cleopatra profile: https://cleopatra.io/#report=0ae38e4b742645ee69df2cef6a0675689860674d Attaching memory report
about:support follows Application Basics ------------------ Name: Firefox Version: 50.0a2 Build ID: 20160811004013 Update Channel: aurora User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0 OS: Windows_NT 10.0 Multiprocess Windows: 1/1 (Enabled by user) Safe Mode: false Crash Reports for the Last 3 Days --------------------------------- Report ID: bp-8a43e334-83cf-4e05-9e85-8d5ab2160812 Submitted: 6 hours ago All Crash Reports Extensions ---------- Name: Anti-Aliasing Tuner Version: 15.11.01.01 Enabled: true ID: aatuner@hotmint.com Name: FlyWeb Version: 1.0.0 Enabled: true ID: flyweb@mozilla.org Name: geckoprofiler Version: 1.16.14 Enabled: true ID: jid0-edalmuivkozlouyij0lpdx548bc@jetpack Name: Multi-process staged rollout Version: 1.0 Enabled: true ID: e10srollout@mozilla.org Name: Pocket Version: 1.0.4 Enabled: true ID: firefox@getpocket.com Name: Rikaichan Version: 3.00a3 Enabled: true ID: {0AA9101C-D3C1-4129-A9B7-D778C6A17F82} Name: Rikaichan Japanese-English Dictionary File Version: 2.01.160101 Enabled: true ID: rikaichan-jpen@polarcloud.com Name: uBlock Origin Version: 1.8.4 Enabled: true ID: uBlock0@raymondhill.net Name: Web Compat Version: 1.0 Enabled: true ID: webcompat@mozilla.org Name: Cookies Manager+ Version: 1.13 Enabled: false ID: {bb6bc1bb-f824-4702-90cd-35e2fb24f25d} Name: Greasemonkey Version: 3.8 Enabled: false ID: {e4a8a97b-f2ed-450b-b12d-ee082ba24781} Name: Stylish Version: 2.0.7 Enabled: false ID: {46551EC9-40F0-4e47-8E18-8E5CF550CFB8} Graphics -------- Features Compositing: Direct3D 11 Asynchronous Pan/Zoom: wheel input enabled WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 980 Ti Direct3D11 vs_5_0 ps_5_0) WebGL2 Renderer: NVIDIA Corporation -- GeForce GTX 980 Ti/PCIe/SSE2 Hardware H264 Decoding: Yes; Using D3D11 API Audio Backend: wasapi Direct2D: true DirectWrite: true (10.0.14393.0) GPU #1 Active: Yes Description: NVIDIA GeForce GTX 980 Ti Vendor ID: 0x10de Device ID: 0x17c8 Driver Version: 10.18.13.6881 Driver Date: 7-10-2016 Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um Subsys ID: 19963842 RAM: 6144 Diagnostics AzureCanvasAccelerated: 0 AzureCanvasBackend: direct2d 1.1 AzureContentBackend: direct2d 1.1 AzureFallbackCanvasBackend: cairo Crash Guard Disabled Features D3D9 Video Decoder: Reset on Next Restart Important Modified Preferences ------------------------------ 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: 4 browser.download.importedFromSqlite: true browser.download.manager.alertOnEXEOpen: false browser.fixup.domainwhitelist.firehomie: true browser.fixup.domainwhitelist.rv325: true browser.places.smartBookmarksVersion: 8 browser.sessionstore.upgradeBackup.latestBuildID: 20160811004013 browser.startup.homepage: about:home browser.startup.homepage_override.buildID: 20160811004013 browser.startup.homepage_override.mstone: 50.0a2 browser.tabs.crashReporting.includeURL: true browser.tabs.remote.autostart: true browser.tabs.remote.autostart.2: false browser.tabs.warnOnClose: false browser.tabs.warnOnOpen: false browser.urlbar.suggest.searches: true browser.urlbar.userMadeSearchSuggestionsChoice: true dom.apps.lastUpdate.buildID: 20160801004002 dom.apps.lastUpdate.mstone: 49.0a2 dom.apps.reset-permissions: true dom.mozApps.used: true dom.push.userAgentID: bb8e2088eb484f8ebeb23539c779b010 extensions.lastAppVersion: 50.0a2 font.internaluseonly.changed: true font.name.monospace.x-western: Consolas font.name.sans-serif.x-western: Calibri font.name.serif.x-western: Cambria font.size.fixed.x-western: 15 font.size.variable.x-western: 18 gfx.crash-guard.d3d11layers.appVersion: 50.0a2 gfx.crash-guard.d3d11layers.deviceID: 0x17c8 gfx.crash-guard.d3d11layers.driverVersion: 10.18.13.6881 gfx.crash-guard.d3d11layers.feature-d2d: true gfx.crash-guard.d3d11layers.feature-d3d11: true gfx.crash-guard.glcontext.gfx.driver-init.direct3d11-angle: true gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle: true gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-d3d11: false gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-warp: false gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-try-d3d11: true gfx.crash-guard.status.: 2 gfx.crash-guard.status.d3d11layers: 2 gfx.crash-guard.status.d3d11video: 2 gfx.crash-guard.status.d3d9video: 3 gfx.crash-guard.status.glcontext: 2 gfx.direct3d.last_used_feature_level_idx: 0 gfx.driver-init.appVersion: 42.0a2 gfx.driver-init.deviceID: 0x17c8 gfx.driver-init.driverVersion: 10.18.13.5582 gfx.driver-init.feature-d2d: true gfx.driver-init.feature-d3d11: true gfx.driver-init.status: 2 gfx.font_rendering.cleartype_params.cleartype_level: 40 gfx.font_rendering.cleartype_params.enhanced_contrast: 45 gfx.font_rendering.cleartype_params.force_gdi_classic_for_families: gfx.font_rendering.cleartype_params.gamma: 1550 gfx.font_rendering.cleartype_params.rendering_mode: 5 gfx.font_rendering.directwrite.enabled: true media.benchmark.vp9.fps: 241 media.benchmark.vp9.versioncheck: 1 media.gmp-eme-adobe.abi: x86_64-msvc-x64 media.gmp-eme-adobe.lastUpdate: 1456263116 media.gmp-eme-adobe.version: 17 media.gmp-gmpopenh264.abi: x86_64-msvc-x64 media.gmp-gmpopenh264.lastUpdate: 1470957444 media.gmp-gmpopenh264.version: 1.6 media.gmp-manager.buildID: 20160811004013 media.gmp-manager.lastCheck: 1470980032 media.gmp-widevinecdm.abi: x86_64-msvc-x64 media.gmp-widevinecdm.lastUpdate: 1470784645 media.gmp-widevinecdm.version: 1.4.8.903 media.gmp.storage.version.observed: 1 media.hardware-video-decoding.failed: false media.webrtc.debug.aec_log_dir: C:\Users\Katelyn\AppData\Local\Temp media.webrtc.debug.log_file: C:\Users\Katelyn\AppData\Local\Temp\WebRTC.log network.cookie.prefsMigrated: true network.dns.disablePrefetch: true network.http.speculative-parallel-limit: 0 network.predictor.cleaned-up: true network.prefetch-next: false places.database.lastMaintenance: 1470582007 places.history.expiration.transient_current_max_pages: 118039 plugin.disable_full_page_plugin_for_types: application/pdf plugin.importedState: true plugin.state.flash: 1 plugin.state.npctrl: 2 plugin.state.npgoogleupdate: 0 plugin.state.npnv3dv: 0 plugin.state.npnv3dvstreaming: 0 plugin.state.npunity3d: 1 privacy.cpd.cookies: false privacy.cpd.downloads: false privacy.cpd.formdata: false privacy.cpd.history: false privacy.cpd.sessions: false privacy.donottrackheader.enabled: true privacy.sanitize.migrateClearSavedPwdsOnExit: true privacy.sanitize.migrateFx3Prefs: true privacy.sanitize.timeSpan: 0 privacy.trackingprotection.enabled: true privacy.trackingprotection.introCount: 20 privacy.trackingprotection.pbmode.enabled: false security.disable_button.openCertManager: false security.sandbox.content.tempDirSuffix: {798b84da-142a-4a56-bf4a-aecef54f996a} services.sync.declinedEngines: prefs services.sync.engine.addons: false services.sync.engine.greasemonkey: true services.sync.engine.prefs: false services.sync.engine.prefs.modified: false services.sync.engine.userStyles: true services.sync.lastPing: 1470973947 services.sync.lastSync: Fri Aug 12 2016 07:15:44 GMT-0700 (Pacific Standard Time) services.sync.numClients: 3 storage.vacuum.last.index: 1 storage.vacuum.last.places.sqlite: 1470229095 ui.osk.debug.keyboardDisplayReason: IKPOS: Touch screen not found. Important Locked Preferences ---------------------------- Places Database --------------- JavaScript ---------- Incremental GC: true Accessibility ------------- Activated: false Prevent Accessibility: 0 Library Versions ---------------- NSPR Expected minimum version: 4.12 Version in use: 4.12 NSS Expected minimum version: 3.26 Version in use: 3.26 NSSSMIME Expected minimum version: 3.26 Version in use: 3.26 NSSSSL Expected minimum version: 3.26 Version in use: 3.26 NSSUTIL Expected minimum version: 3.26 Version in use: 3.26 Experimental Features ---------------------
I tried profiling with GPU and 'main thread I/O' turned on but the content process crashes when opening cleopatra now :/
From the crash stacks opening Cleopatra that's 1271102, so unrelated.
While this reproduces in the bugzilla text fields, other text fields do not consistently reproduce. I.e. the main text field on Twitter is jank-free, but the text field in the Reply modal is not. The Firefox address bar is janky, but the search field on the New Tab Page is butter-smooth. If I start recording performance in the Performance tab of the Developer Tools on the bugzilla page, the input jank goes away while the recording is in progress. :/ It seems like maybe paints aren't being triggered for some reason? But it also feels like input events are not being processed promptly. If I look at the timeline in cleopatra, I see big bursts of paints with large gaps inbetween, which doesn't make sense given that I am literally spamming the keys on my keyboard at around 100-140wpm. I can also reproduce this with regular web twitter (https://twitter.com/) if I scroll around in my feed long enough, but mobile twitter seems worse (https://mobile.twitter.com/).
If I disable e10s this goes away and responsiveness is consistently good for input events.
Does this happen on a clean profile? If so, any chance you could bisect this with mozregression?
Component: General → Untriaged
Flags: needinfo?(kg)
I tried bisecting with mozregression but it takes a while to reproduce. I'll give it another go now that I have a better sense of how to reproduce it. It's kinda impossible to reproduce on a clean profile since the problem is essentially 'all your other tabs suck with Twitter open' - i.e. the impact is not noticeable unless you go through your regular browsing routine for a half hour. I'm trying Release channel FF right now to see if it works better, since that will give me a regression window to drill down into.
This bug is probably a duplicate of bug #1295214. Please retest to see if it's fixed in latest Nightly (51.0a1 [2016-08-27]), if not, reopen this bug.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: