Closed Bug 1294700 Opened 3 years ago Closed 3 years ago

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

Categories

(Firefox :: Untriaged, defect, major)

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: 3 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1295214
You need to log in before you can comment on or make changes to this bug.