text in a <clipPath> does not reflow when changed

RESOLVED FIXED

Status

()

RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: heycam, Assigned: longsonr)

Tracking

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

5 years ago
Created attachment 742145 [details]
test

See the attached test.  This is broken with both the old and new text frames.
(Assignee)

Comment 1

5 years ago
Created attachment 742784 [details] [diff] [review]
fix old text frames
Attachment #742784 - Flags: review?(cam)
(Reporter)

Comment 2

5 years ago
Comment on attachment 742784 [details] [diff] [review]
fix old text frames

I assume it's not problematic that this will update the glyph metrics if both NS_STATE_SVG_NONDISPLAY_CHILD and NS_FRAME_FIRST_REFLOW are set.
Attachment #742784 - Flags: review?(cam) → review+
(Assignee)

Comment 3

5 years ago
If NS_STATE_SVG_NONDISPLAY_CHILD is set then NS_FRAME_FIRST_REFLOW is never cleared as the frames never get an InitialUpdate call which is what clears it.
(Reporter)

Comment 5

5 years ago
(In reply to Robert Longson from comment #3)
> If NS_STATE_SVG_NONDISPLAY_CHILD is set then NS_FRAME_FIRST_REFLOW is never
> cleared as the frames never get an InitialUpdate call which is what clears
> it.

Makes sense, though it must be something like that.
Assignee: nobody → longsonr
Status: NEW → ASSIGNED
(Reporter)

Comment 6

5 years ago
*thought
Comment on attachment 742784 [details] [diff] [review]
fix old text frames

>+  if ((GetStateBits() & (NS_STATE_SVG_NONDISPLAY_CHILD | NS_FRAME_FIRST_REFLOW)) != 
>+      NS_FRAME_FIRST_REFLOW) {

Can you maybe write that as the following?

  if (!(GetStateBits() & NS_FRAME_FIRST_REFLOW) ||
      (GetStateBits() & NS_STATE_SVG_NONDISPLAY_CHILD)) {

I think that makes it easier to grasp what this logic is doing. (And since GetStateBits() is inline there's negligible extra overhead in doing it that way.)
(Assignee)

Comment 9

5 years ago
Marking [leave open] assuming a new text frame solution is required.
Assignee: longsonr → nobody
(Assignee)

Updated

5 years ago
Whiteboard: [leave open]
(Assignee)

Comment 11

5 years ago
Cameron, are you planning to do anything for new text frames here? If not we should mark this as fixed.
(Reporter)

Comment 12

5 years ago
This is working again in the new text world.
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
(Assignee)

Updated

5 years ago
Assignee: nobody → longsonr
You need to log in before you can comment on or make changes to this bug.