mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Bug 1403433 - Add another variant of SchedulePaint that does not call InvalidateRenderingObservers for PendingAnimationTracker. r=birtles
nsFrame::SchedulePaint() invokes InvalidateRenderingObservers, and InvalidateRenderingObservers ends up posting change hints during we are processing sequential tasks for animations, but we don't allow posting any change hints while we are in the middle of restyling process. Though the change hints posted by InvalidateRenderingObservers are not harmful in this case since the change hints will be processed in a second post traversal without problems. That's said, InvalidateRenderingObservers stuff should be processed in display list based invalidation anyway (bug 1284053). MozReview-Commit-ID: GKVRZ98lvEN
This commit is contained in:
parent
333ae6019a
commit
653e15ba32
@ -173,7 +173,7 @@ PendingAnimationTracker::EnsurePaintIsScheduled()
|
||||
return;
|
||||
}
|
||||
|
||||
rootFrame->SchedulePaint();
|
||||
rootFrame->SchedulePaintWithoutInvalidatingObservers();
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
||||
|
@ -6687,6 +6687,13 @@ nsIFrame::SchedulePaint(PaintType aType)
|
||||
SchedulePaintInternal(displayRoot, this, aType);
|
||||
}
|
||||
|
||||
void
|
||||
nsIFrame::SchedulePaintWithoutInvalidatingObservers(PaintType aType)
|
||||
{
|
||||
nsIFrame* displayRoot = nsLayoutUtils::GetDisplayRootFrame(this);
|
||||
SchedulePaintInternal(displayRoot, this, aType);
|
||||
}
|
||||
|
||||
Layer*
|
||||
nsIFrame::InvalidateLayer(DisplayItemType aDisplayItemKey,
|
||||
const nsIntRect* aDamageRect,
|
||||
|
@ -3032,6 +3032,11 @@ public:
|
||||
};
|
||||
void SchedulePaint(PaintType aType = PAINT_DEFAULT);
|
||||
|
||||
// Similar to SchedulePaint() but without calling
|
||||
// InvalidateRenderingObservers() for SVG.
|
||||
void SchedulePaintWithoutInvalidatingObservers(
|
||||
PaintType aType = PAINT_DEFAULT);
|
||||
|
||||
/**
|
||||
* Checks if the layer tree includes a dedicated layer for this
|
||||
* frame/display item key pair, and invalidates at least aDamageRect
|
||||
|
6
layout/style/crashtests/1403433.html
Normal file
6
layout/style/crashtests/1403433.html
Normal file
@ -0,0 +1,6 @@
|
||||
<style>
|
||||
#b { -webkit-filter: url(#a); }
|
||||
</style>
|
||||
<iframe id="a" height="0" src="data:v;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAA5NtZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjY0MyA1YzY1NzA0IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAvWWIhAAh/9PWYQ7q+jvvWOfBgvpv0eIYkqWiQW6SsLQx8ByoouBLEC9HBQTAXOJh/wFnteOP+NH5Er2DeHrP4kxvjj4nXKG9Zm/FycSAdlzoMDOFc4CmXmCL51Dj+zekurxKazOLwXVd7f/rOQpa9+iPXYTZsRw+WFFNokI8saLT7Mt03UvGxwdAYkwe7UmwPZacue5goP6rQhBgGMjgK21nSHZWUcz5Y6Ec/wdCPp0Sxx/h6UsSneF9hINuvwAAAAhBmiJsQx92QAAAAAgBnkF5DH/EgQAAAzRtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACXnRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAIAAAACAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAQAAAEAAAAAAdZtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAADwAAAAGAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAGBbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABQXN0YmwAAACVc3RzZAAAAAAAAAABAAAAhWF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAIAAgAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAvYXZjQwFkAAr/4QAWZ2QACqzZSWhAAAADAEAAAA8DxIllgAEABmjr48siwAAAABhzdHRzAAAAAAAAAAEAAAADAAACAAAAABRzdHNzAAAAAAAAAAEAAAABAAAAKGN0dHMAAAAAAAAAAwAAAAEAAAQAAAAAAQAABgAAAAABAAACAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAwAAAAEAAAAgc3RzegAAAAAAAAAAAAAAAwAAA3MAAAAMAAAADAAAABRzdGNvAAAAAAAAAAEAAAAwAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDEnow">
|
||||
</iframe>
|
||||
<table id="b">
|
@ -229,12 +229,13 @@ load 1401256.html
|
||||
load 1401692.html
|
||||
load 1401706.html
|
||||
load 1401801.html
|
||||
load 1402218-1.html
|
||||
load 1402366.html
|
||||
load 1402419.html
|
||||
load 1402472.html
|
||||
load 1403028.html
|
||||
load 1402218-1.html
|
||||
load 1403615.html
|
||||
load 1403592.html
|
||||
load 1403712.html
|
||||
load 1403433.html
|
||||
load 1403465.html
|
||||
load 1403592.html
|
||||
load 1403615.html
|
||||
load 1403712.html
|
||||
|
Loading…
Reference in New Issue
Block a user