Closed Bug 403443 Opened 15 years ago Closed 13 years ago

scrolling broken within rotated SVG foreignObject elements

Categories

(Core :: SVG, defect, P3)

x86
All
defect

Tracking

()

RESOLVED FIXED
mozilla1.9.3a1

People

(Reporter: jtd, Assigned: dbaron)

References

()

Details

Attachments

(3 files)

In Mark Finkle's weblog entry related to the use of the SVG foreignObject tag, there's an example that includes an iframe within a foreignObject tag.  The iframe points to his blog which is long enough to cause a scroll bar to appear.  If you try to scroll however, the frame is incorrectly updated, it looks like the inval rect is not getting transformed.

Original blog page:
http://starkravingfinkle.org/blog/2007/07/firefox-3-svg-foreignobject/

SVG rotation example:
http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/foreignobject-transform.svg

Steps:

1. Click on the URL
2. Click in the scroll bar to page down.

Result: the upper right corner of the rotated object does not refresh correctly.
Flags: blocking1.9?
Possibly related to bug 350698?
To fix this we would need to make nsViewManager::CanScrollWithBitBlt always return false for views inside foreignobjects, preferably by not giving them a widget in nsGfxScrollFrame. nsGfxScrollFrame could check that I guess at CreateAnonymousContent time. Should be an easy patch.
Any suggestions on Prio Roc?
Flags: blocking1.9? → blocking1.9+
Priority: -- → P3
This bug is now being masked by bug 418063. Currently we're invalidating the entire foreignObject area if there's even the smallest area to invalidate. We don't really want to do that, but we're going to leave it that way for 1.9 to mask all the foreignObject invalidation bugs like this one.

roc: do you still want to block to implement comment 2?
No, let's not block given that we have a "workaround" in place.
Flags: blocking1.9+
Assignee: nobody → dbaron
Attached patch patchSplinter Review
With the workaround (bug 418063) removed, this fixes it in the current code.  The new code is already checking for being inside SVG.  However, the check needs to work cross-document.
Attachment #422772 - Flags: review?(roc)
(Is there a test somewhere that has an infrastructure set up for testing things like this?)
You should be able to use test_scrolling.html
Attached patch testSplinter Review
Attachment #423478 - Flags: review?(roc)
http://hg.mozilla.org/mozilla-central/rev/868a2da476a8
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.3a1
You need to log in before you can comment on or make changes to this bug.