RESOLVED FIXED 33821
REGRESSION (r53110): Find My iPhone message dialog is offset from original position once it gets focus
https://bugs.webkit.org/show_bug.cgi?id=33821
Summary REGRESSION (r53110): Find My iPhone message dialog is offset from original po...
Adele Peterson
Reported 2010-01-18 18:05:18 PST
Steps to reproduce: 1) You must have Find My iPhone enabled with a MobileMe account. 2) Go to me.com, click on Account Settings, and select "Find my iPhone" 3) Click on the button to display a message on your iPhone 4) Click in the textarea Observe that the dialog and overlay end up significantly offset from the original position <rdar://problem/7549496>
Attachments
Reduced testcase (896 bytes, text/html)
2010-01-22 10:34 PST, Simon Fraser (smfr)
no flags
Patch (28.31 KB, patch)
2010-01-22 15:05 PST, Simon Fraser (smfr)
mitz: review+
Adele Peterson
Comment 1 2010-01-18 18:06:37 PST
Darin Adler
Comment 2 2010-01-18 21:14:36 PST
First thing I would try is to revert that patch and set m_loadManually to NP_FULL in the constructor and see what that does.
Darin Adler
Comment 3 2010-01-19 07:52:21 PST
Second thing I would try is to revert the patch and set m_loadManually to NP_EMBED in the constructor and see what that does.
Adele Peterson
Comment 4 2010-01-19 09:53:11 PST
I'm running into an unrelated assertion on this page in debug WebKit. So I'll try commenting out the assert to try your suggestions.
Adele Peterson
Comment 5 2010-01-19 10:48:21 PST
My regression testing was off by one. This was actually caused by r53110
Simon Fraser (smfr)
Comment 6 2010-01-19 11:45:08 PST
Yeah, that's me.
Simon Fraser (smfr)
Comment 7 2010-01-22 10:34:40 PST
Created attachment 47211 [details] Reduced testcase
Simon Fraser (smfr)
Comment 8 2010-01-22 11:07:42 PST
Filed bug 34009 on avoiding compositing mode just for a 0x0 plugin.
Simon Fraser (smfr)
Comment 9 2010-01-22 11:33:08 PST
The issue here is that there's a fixed position div inside an abs. position div, and the fixed position div is using the wrong offsets. In general, there's a conflict between the geometry and layering hierarchies for fixed position elements. In terms of geometry, a fixed layer would naturally be anchored at the root, but in terms of layering it should be anchored in its container. Layering comes first, but we'll have to throw animations of things with fixed descendants into software.
Simon Fraser (smfr)
Comment 10 2010-01-22 15:05:04 PST
Simon Fraser (smfr)
Comment 11 2010-01-22 15:06:13 PST
Filed bug 34012 on animating fixed position containers.
mitz
Comment 12 2010-01-22 17:00:22 PST
Comment on attachment 47230 [details] Patch > + RenderLayer* currLayer = parent(); > + while (currLayer) { > + if (currLayer == ancestorLayer) > + foundAncestor = true; > + > + if (isFixedPositionedContainer(currLayer)) { > + fixedPositionContainerLayer = currLayer; > + ASSERT(foundAncestor); > + break; > + } > + > + currLayer = currLayer->parent(); > + } Can be written as a for loop with currLayer in the scope of the loop.
Simon Fraser (smfr)
Comment 13 2010-01-22 17:18:05 PST
Note You need to log in before you can comment on or make changes to this bug.