Assertion failure: aOpacityLevel >= 0 && aTransformLevel >= 0, at src/layout/painting/FrameLayerBuilder.cpp:6827

RESOLVED FIXED in Firefox 68

Status

()

defect
P3
normal
RESOLVED FIXED
2 months ago
16 days ago

People

(Reporter: tsmith, Assigned: miko)

Tracking

(Blocks 2 bugs, {assertion, testcase})

unspecified
mozilla68
Unspecified
Android
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(firefox-esr60 unaffected, firefox67 wontfix, firefox68 fixed)

Details

Attachments

(2 attachments)

Reporter

Description

2 months ago
Posted file testcase.html

Assertion failure: aOpacityLevel >= 0 && aTransformLevel >= 0, at src/layout/painting/FrameLayerBuilder.cpp:6827

eip = 0xcab3e530   esp = 0xd07fbaf0   ebp = 0xd07fbb08   ebx = 0xcfae6dd4
esi = 0x00001aab   edi = 0xcab3e4f4   eax = 0xcd50db68   ecx = 0xd0cb817c
edx = 0x0000009d   efl = 0x00210282
OS|Android|0.0.0 Linux 4.4.124+ #1 SMP PREEMPT Sun Nov 4 14:31:25 UTC 2018 i686
CPU|x86|GenuineIntel family 6 model 6 stepping 3|4
GPU|||
Crash|SIGSEGV|0x0|13
13|0|libxul.so|mozilla::UpdateEffectTracking(int&, int&, mozilla::DisplayItemEntryType)|hg:hg.mozilla.org/mozilla-central:layout/painting/FrameLayerBuilder.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|6827|0x22
13|1|libxul.so|mozilla::FrameLayerBuilder::PaintItems(std::__ndk1::vector<mozilla::AssignedDisplayItem, std::__ndk1::allocator<mozilla::AssignedDisplayItem> >&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, gfxContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> const&, float, float)|hg:hg.mozilla.org/mozilla-central:layout/painting/FrameLayerBuilder.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|6911|0x7
13|2|libxul.so|mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*)|hg:hg.mozilla.org/mozilla-central:layout/painting/FrameLayerBuilder.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|7187|0x41
13|3|libxul.so|mozilla::layers::ClientMultiTiledLayerBuffer::Update(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::TilePaintFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/MultiTiledContentClient.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|262|0x40
13|4|libxul.so|mozilla::layers::ClientMultiTiledLayerBuffer::PaintThebes(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::TilePaintFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/MultiTiledContentClient.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|116|0x13
13|5|libxul.so|mozilla::layers::ClientMultiTiledLayerBuffer::ProgressiveUpdate(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits>&, mozilla::layers::BasicTiledLayerPaintData*, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/MultiTiledContentClient.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|665|0x16
13|6|libxul.so|mozilla::layers::ClientTiledPaintedLayer::RenderLowPrecision(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientTiledPaintedLayer.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|428|0x33
13|7|libxul.so|mozilla::layers::ClientTiledPaintedLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientTiledPaintedLayer.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|623|0x24
13|8|libxul.so|non-virtual thunk to mozilla::layers::ClientTiledPaintedLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientTiledPaintedLayer.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|0|0x21
13|9|libxul.so|<name omitted>|hg:hg.mozilla.org/mozilla-central:js/xpconnect/public/xpc_map_end.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|45|0x8
13|10|libxul.so|mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|53|0xf
13|11|libxul.so|non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|0|0x21
13|12|libxul.so|<name omitted>|hg:hg.mozilla.org/mozilla-central:js/xpconnect/public/xpc_map_end.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|45|0x8
13|13|libxul.so|mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|53|0xf
13|14|libxul.so|non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|0|0x21
13|15|libxul.so|<name omitted>|hg:hg.mozilla.org/mozilla-central:js/xpconnect/public/xpc_map_end.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|45|0x8
13|16|libxul.so|mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|53|0xf
13|17|libxul.so|non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer()|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientContainerLayer.h:b13f2b24ae625d16fdeeb61cdec10978c3c75638|0|0x21
13|18|libxul.so|mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientLayerManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|318|0x8
13|19|libxul.so|mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientLayerManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|373|0x16
13|20|libxul.so|mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/client/ClientLayerManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|388|0x1d
13|21|libxul.so|nsDisplayList::PaintRoot(nsDisplayListBuilder*, gfxContext*, unsigned int)|hg:hg.mozilla.org/mozilla-central:layout/painting/nsDisplayList.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|2877|0x28
13|22|libxul.so|nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags)|hg:hg.mozilla.org/mozilla-central:layout/base/nsLayoutUtils.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|3987|0x8
13|23|libxul.so|mozilla::PresShell::Paint(nsView*, nsRegion const&, mozilla::PaintFlags)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|6078|0x1e
13|24|libxul.so|nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*)|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|462|0x2c
13|25|libxul.so|nsViewManager::ProcessPendingUpdatesForView(nsView*, bool)|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|397|0xc
13|26|libxul.so|nsViewManager::ProcessPendingUpdates()|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|1020|0x17
13|27|libxul.so|nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|2067|0x10
13|28|libxul.so|mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|348|0x33
13|29|libxul.so|mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|342|0x52
13|30|libxul.so|mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|708|0x41
13|31|libxul.so|mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run()|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|508|0x3d
13|32|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|1180|0x16
13|33|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|486|0x11
13|34|libxul.so|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|88|0xd
13|35|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:b13f2b24ae625d16fdeeb61cdec10978c3c75638|315|0x16
13|36|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:b13f2b24ae625d16fdeeb61cdec10978c3c75638|290|0xb
13|37|libxul.so|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|137|0xe
13|38|libxul.so|nsAppStartup::Run()|hg:hg.mozilla.org/mozilla-central:toolkit/components/startup/nsAppStartup.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|270|0x18
13|39|libxul.so|XREMain::XRE_mainRun()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsAppRunner.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|4578|0x10
13|40|libxul.so|XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsAppRunner.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|4716|0x8
13|41|libxul.so|XRE_main(int, char**, mozilla::BootstrapConfig const&)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsAppRunner.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|4797|0xf
13|42|libxul.so|GeckoStart|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsAndroidStartup.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|47|0xd
13|43|libxul.so|mozilla::BootstrapImpl::GeckoStart(_JNIEnv*, char**, int, mozilla::StaticXREAppData const&)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/Bootstrap.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|77|0x11
13|44|libmozglue.so|Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun|hg:hg.mozilla.org/mozilla-central:mozglue/android/APKOpen.cpp:b13f2b24ae625d16fdeeb61cdec10978c3c75638|372|0x2a
13|45|libart.so||||0x634318
Flags: in-testsuite?
Flags: needinfo?(mikokm)
Priority: -- → P3
Assignee

Comment 1

2 months ago

This seems to trigger assertions in layout because of the huge sizes

nsLineLayout: Block(marquee)(1)@15818ae68 metrics=768,1073741823!
nsLineLayout: Block(q)(0)@15818abe8 metrics=2100,1073741919!
nsLineLayout: Block(marquee)(1)@15818ae68 metrics=1536,1073741823!
nsLineLayout: Block(marquee)(1)@15818ae68 metrics=1536,1073741823!
nsLineLayout: Block(q)(0)@15818abe8 metrics=2100,1073744127!
nsBlockReflowContext: Block(dt)(1)@15818be68 metrics=1073739423,768!
Block(dd)(1)@15818bdb0: Init: bad caller: width WAS 1073739423(0x3ffff69f)
Block(marquee)(2)@15818bf20: Init: bad caller: width WAS 1073739423(0x3ffff69f)
nsLineLayout: Block(marquee)(2)@15818bf20 metrics=1800,1073739423!
nsBlockReflowContext: Block(dd)(1)@15818bdb0 metrics=1073739423,719408104!
nsBlockReflowContext: Block(dl)(2)@15818bcf8 metrics=1073741823,719408104!
nsBlockReflowContext: Block(body)(1)@15818aae0 metrics=1073741823,719411164!
nsLineLayout: Block(marquee)(1)@15818ae68 metrics=1536,1073741823!
nsLineLayout: Block(q)(0)@15818abe8 metrics=2100,1073744127!
nsBlockReflowContext: Block(dt)(1)@15818be68 metrics=1073739423,768!
Block(dd)(1)@15818bdb0: Init: bad caller: width WAS 1073739423(0x3ffff69f)
...

and these end up in display list:

nsDisplayTransform p=0x160722820 f=0x15fc0ecf8(Block(dl)(2)) key=70 bounds(1026,2880,5400,536868032) layerBounds(-719340030,2880,5400,536868032) visible(-16,0,122880,291840) building(-16,0,122880,291840) componentAlpha(0,0,0,0) clip(-16,0,122880,291840) asr(<0x15fc0d218>) clipChain(0x160721220 <-16,0,122880,291840> [0x15fc0d218], 0x1607227a0 <0,0,75900,79680> [root asr]) ref=0x15fc0d020 agr=0x15fc0d0b8 hitTestInfo(0x1) hitTestArea(0,0,719411704,1073741823)[ 1 0; 0 1; 31 16; ] allowAsync(false) childrenBuildingRect(0,-480,121920,291840) layer=0x15fc68800
  BackgroundColor p=0x160724ba0 f=0x15fc0ef20(Block(marquee)(2)) key=5 bounds(96,2400,5400,1073739423) layerBounds(96,2400,5400,1073739423) visible(0,-480,121920,291840) building(0,-480,121920,291840) componentAlpha(0,0,0,0) clip() asr(<0x15fc0d218>) clipChain() uniform ref=0x15fc0ecf8 agr=0x15fc0ecf8 (opaque 96,2400,5400,1073739423) (rgba 0,0.878431,0,1) backgroundRect(96,2400,5400,1073739423) layer=0x15fc68800

My theory is that we have overflows happening when calculating the paint rect1. I could not manage to reproduce this on mac, so will try this out in an emulator.

Flags: needinfo?(mikokm)
Assignee

Comment 2

2 months ago

It does indeed overflow

05-02 20:27:13.547  9961  9985 I Gecko   : -- Enter FrameLayerBuilder::PaintItems()
05-02 20:27:13.548  9961  9985 I Gecko   : aRect: [-5994624, 4471133, 1280, 2815], boundRect: [-3360, -255480, 153600, 337800]
05-02 20:27:13.548  9961  9985 I Gecko   : [Unknown] Item [CANVAS_BACKGROUND_COLOR, 0x76d3e9762920], paintRect: [-3360, -255480, 153600, 337800], paintRect empty: 0
05-02 20:27:13.548  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 0
05-02 20:27:13.549  9961  9985 I Gecko   : [PushTransform] Item [TRANSFORM, 0x76d3e9762ca0], paintRect: [-2400, -255480, 2880, 337800], paintRect empty: 0
05-02 20:27:13.549  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 0
05-02 20:27:13.549  9961  9985 I Gecko   : [Unknown] Item [BACKGROUND_COLOR, 0x76d3e9762fa0], paintRect: [-2400, -255480, 2880, 337800], paintRect empty: 0
05-02 20:27:13.549  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 1
05-02 20:27:13.549  9961  9985 I Gecko   : [PopTransform] Item [TRANSFORM, 0x76d3e9762ca0], paintRect: [-3360, -255480, 153600, 337800], paintRect empty: 0
05-02 20:27:13.549  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 1
05-02 20:27:13.549  9961  9985 I Gecko   : -- Exit FrameLayerBuilder::PaintItems()
05-02 20:27:13.552  9961  9985 I Gecko   : -- Enter FrameLayerBuilder::PaintItems()
05-02 20:27:13.552  9961  9985 I Gecko   : aRect: [-23961600, 4462592, 17972224, 13388800], boundRect: [-2147483648, -1280400, -2146857248, 1606656000]
05-02 20:27:13.552  9961  9985 I Gecko   : [Unknown] Item [CANVAS_BACKGROUND_COLOR, 0x76d3e9762920], paintRect: [-3360, -1269312, 614350, 1351632], paintRect empty: 0
05-02 20:27:13.552  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 0
05-02 20:27:13.552  9961  9985 I Gecko   : [PushTransform] Item [TRANSFORM, 0x76d3e9762ca0], paintRect: [-2400, -1269312, 2880, 1013832], paintRect empty: 0
05-02 20:27:13.552  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 0
05-02 20:27:13.552  9961  9985 I Gecko   : [Unknown] Item [BACKGROUND_COLOR, 0x76d3e9762fa0], paintRect: [-2400, -1269312, 2880, 1013832], paintRect empty: 0
05-02 20:27:13.552  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 1
05-02 20:27:13.552  9961  9985 I Gecko   : [PopTransform] Item [TRANSFORM, 0x76d3e9762ca0], paintRect: [-2147483648, -1280400, 0, 0], paintRect empty: 1
05-02 20:27:13.552  9961  9985 I Gecko   : emptyEffectLevel: 0, opacityLevel: 0, transformLevel: 1
05-02 20:27:13.552  9961  9985 F MOZ_Assert: Assertion failure: aOpacityLevel >= 0 && aTransformLevel >= 0, at /Users/miko/Code/mu/layout/painting/FrameLayerBuilder.cpp:6848

The interesting thing is that we overflow the actual bounds during app units conversion. I think the solution is to either clamp the coordinates, or skip drawing altogether.

Assignee: nobody → mikokm
Status: NEW → ASSIGNED

Comment 4

2 months ago
Pushed by mikokm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/762224e2d5e9
Handle bounds overflow in FrameLayerBuilder::PaintItems() r=mattwoodrow

Comment 5

2 months ago
bugherder
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.