Consider the performance of setting conditional processing attributes during parsing

NEW
Unassigned

Status

()

10 years ago
7 years ago

People

(Reporter: jwatt, Unassigned)

Tracking

({perf})

Trunk
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

(Reporter)

Description

10 years ago
In bug 409383 the following change was made to allow the 'switch' element to detect changes to conditional processing attributes on its child elements.

http://hg.mozilla.org/mozilla-central/index.cgi/diff/c1598626dbd3/content/svg/content/src/nsSVGElement.cpp

The problem is that during parsing we will end up iterating over each of the children of the switch during document load (parsing) for each conditional processing attribute that is set on a child of a switch. I.e. we'll call NS_SVG_PassesConditionalProcessingTests on all the children each time one of these attributes is parsed and set on a child.

Boris suggests looking at DoneCreatingElement as an alternative in bug 409383 comment 54.
Maybe we could do some or all of:

a) check whether NS_FRAME_FIRST_REFLOW is set. We will do an update when this changes state via nsSVGSwitchFrame::InitialUpdate

b) skip out early if doc->MayStartLayout() is false.

c) skip out early if presShell->IsPaintingSuppressed() is true.

(Reporter)

Updated

7 years ago
Keywords: perf
You need to log in before you can comment on or make changes to this bug.