Closed Bug 1964293 Opened 8 days ago Closed 5 days ago

Assertion failure: canvasBg.mCSSSpecified || ((uint8_t)(((canvasBg.mColor) >> 24) & 0xff)) == 255 (Default canvas background should either be transparent or opaque), at /builds/worker/checkouts/gecko/layout/generic/nsCanvasFrame.cpp:448

Categories

(Core :: Layout, defect)

defect

Tracking

()

RESOLVED FIXED
140 Branch
Tracking Status
firefox-esr128 --- unaffected
firefox138 --- fix-optional
firefox139 --- wontfix
firefox140 --- fixed

People

(Reporter: tsmith, Assigned: emilio)

References

(Blocks 1 open bug, Regression, )

Details

(Keywords: assertion, pernosco, regression)

Attachments

(1 file)

Found with m-c 20250502-5b5bd7e73009 (--enable-debug)

This was found by visiting a live website with a debug build.
A Pernosco session is available here: https://pernos.co/debug/8YpbjN10LYK6mmnDtO-0_w/index.html

STR:

  • Launch browser and visit site

This issue was triggered by visiting http://mysalononline.com/.

Assertion failure: canvasBg.mCSSSpecified || ((uint8_t)(((canvasBg.mColor) >> 24) & 0xff)) == 255 (Default canvas background should either be transparent or opaque), at /builds/worker/checkouts/gecko/layout/generic/nsCanvasFrame.cpp:448

0|0|xul.dll|nsCanvasFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::nsDisplayListSet const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsCanvasFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|446|0x1377
0|1|xul.dll|nsIFrame::BuildDisplayListForSimpleChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mozilla::nsDisplayListSet const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsIFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|4039|0x328
0|2|xul.dll|nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mozilla::nsDisplayListSet const&, mozilla::EnumSet<nsIFrame::DisplayChildFlag,unsigned int>)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsIFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|4148|0x6d6
0|3|xul.dll|mozilla::ScrollContainerFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::nsDisplayListSet const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/ScrollContainerFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|4146|0x181b
0|4|xul.dll|nsIFrame::BuildDisplayListForSimpleChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mozilla::nsDisplayListSet const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsIFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|4039|0x328
0|5|xul.dll|nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mozilla::nsDisplayListSet const&, mozilla::EnumSet<nsIFrame::DisplayChildFlag,unsigned int>)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsIFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|4148|0x6d6
0|6|xul.dll|mozilla::ViewportFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::nsDisplayListSet const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/ViewportFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|66|0x278
0|7|xul.dll|nsIFrame::BuildDisplayListForStackingContext(mozilla::nsDisplayListBuilder*, mozilla::nsDisplayList*, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsIFrame.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|3494|0x2539
0|8|xul.dll|nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, mozilla::nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags)|hg:hg.mozilla.org/mozilla-central:layout/base/nsLayoutUtils.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|3183|0x1464
0|9|xul.dll|mozilla::PresShell::PaintInternal(nsView*, mozilla::PaintInternalFlags)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|6704|0x743
0|10|xul.dll|nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*)|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|399|0x2ca
0|11|xul.dll|nsViewManager::ProcessPendingUpdatesForView(nsView*, bool)|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|334|0x314
0|12|xul.dll|nsViewManager::ProcessPendingUpdates()|hg:hg.mozilla.org/mozilla-central:view/nsViewManager.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|784|0xab
0|13|xul.dll|nsRefreshDriver::PaintIfNeeded()|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|2607|0x56a
0|14|xul.dll|nsRefreshDriver::RunRenderingPhaseLegacy<`lambda at /builds/worker/checkouts/gecko/layout/base/nsRefreshDriver.cpp:2527:7'>(mozilla::RenderingPhase, nsRefreshDriver::Tick::<lambda_18>&&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1287|0x75
0|15|xul.dll|nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsRefreshDriver::IsExtraTick)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|2525|0xbb2
0|16|xul.dll|mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|347|0xb4
0|17|xul.dll|mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|363|0xbb
0|18|xul.dll|mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|953|0x32
0|19|xul.dll|mozilla::VsyncRefreshDriverTimer::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|863|0x271
0|20|xul.dll|mozilla::VsyncRefreshDriverTimer::NotifyVsyncOnMainThread(mozilla::VsyncEvent const&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|760|0x44b
0|21|xul.dll|mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsyncTimerOnMainThread()|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|594|0xd8
0|22|xul.dll|mozilla::dom::VsyncMainChild::RecvNotify(mozilla::VsyncEvent const&, float const&)|hg:hg.mozilla.org/mozilla-central:dom/ipc/VsyncMainChild.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|66|0xf1
0|23|xul.dll|mozilla::dom::PVsyncChild::OnMessageReceived(IPC::Message const&)|s3:gecko-generated-sources:892867c967752e8572b3c48e1e8ec5542612cadef83ec8d26f81a66342272c6d6d51cb22d80c9e6867472cb07ff431977f3f9d04f971f91004e7058c76c20573/ipc/ipdl/PVsyncChild.cpp:|235|0x2fd
0|24|xul.dll|mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&)|s3:gecko-generated-sources:206eb59138026e17e561c2b629d0174e24161e2b8e746685bd2c7485bd06b19df5c9fb82020b1c2dd438a21f477b2cfe915f05567ef4024bbb3c7547811138aa/ipc/ipdl/PBackgroundChild.cpp:|5173|0x19d
0|25|xul.dll|mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1789|0x14c
0|26|xul.dll|mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message,mozilla::DefaultDelete<IPC::Message> >)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1716|0x255
0|27|xul.dll|mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1507|0x193
0|28|xul.dll|mozilla::ipc::MessageChannel::MessageTask::Run()|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1607|0xdd
0|29|xul.dll|mozilla::RunnableTask::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TaskController.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|703|0x1d
0|30|xul.dll|mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex &> const&)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TaskController.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1252|0x737
0|31|xul.dll|mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex &> const&)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TaskController.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1075|0x57
0|32|xul.dll|mozilla::TaskController::ProcessPendingMTTask(bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TaskController.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|639|0x69
0|33|xul.dll|mozilla::detail::RunnableFunction<`lambda at /builds/worker/checkouts/gecko/xpcom/threads/TaskController.cpp:333:7'>::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:5b5bd7e730096ef3867efe107dc97fb4a38a489a|548|0x16
0|34|xul.dll|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|1159|0x66b
0|35|xul.dll|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|480|0x70
0|36|xul.dll|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|85|0xb7
0|37|xul.dll|MessageLoop::RunHandler()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5b5bd7e730096ef3867efe107dc97fb4a38a489a|362|0x3e
0|38|xul.dll|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5b5bd7e730096ef3867efe107dc97fb4a38a489a|344|0x6e
0|39|xul.dll|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|148|0x27
0|40|xul.dll|nsAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/windows/nsAppShell.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|688|0x193
0|41|xul.dll|XRE_RunAppShell()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|654|0x78
0|42|xul.dll|mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|235|0x39
0|43|xul.dll|MessageLoop::RunHandler()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5b5bd7e730096ef3867efe107dc97fb4a38a489a|362|0x3e
0|44|xul.dll|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:5b5bd7e730096ef3867efe107dc97fb4a38a489a|344|0x6e
0|45|xul.dll|XRE_InitChildProcess(int, char**, XREChildData const*)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|592|0x9e9
0|46|firefox.exe|NS_internal_main(int, char**, char**)|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|397|0x1fd
0|47|firefox.exe|wmain(int, wchar_t**)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsWindowsWMain.cpp:5b5bd7e730096ef3867efe107dc97fb4a38a489a|151|0x246
0|48|firefox.exe|__scrt_common_main_seh()|/builds/worker/workspace/obj-build/browser/app/D:/a/_work/1/s/src/vctools/crt/vcstartup/src/startup/exe_common.inl|288|0x10b
0|49|kernel32.dll||||
0|50|ntdll.dll||||
0|51|KERNELBASE.dll||||
Keywords: regression
Regressed by: 1956453

Set release status flags based on info from the regressing bug 1956453

:emilio, since you are the author of the regressor, bug 1956453, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

So this was a bit hard to track down because it's deep in an iframe, but the TLDR is:

  background-color: rgba(255, 255, 255, 0.98);
  background-image: url(https://s3.amazonaws.com/daysmartonlinebooking/accounts/ced8943b-240c-42a9-a32c-df810eeca98e/images/background_pinkdots.jpg);
  background-repeat: repeat;
  background-position: top left;
  border-color: rgba(255, 255, 255, 1);
  border-width: 0px;
  opacity: 1;

And we think that the canvas background is not specified by CSS because of this piece of code, which ends up setting mCSSSpecified=false here.

Flags: needinfo?(emilio)
Assignee: nobody → emilio
Status: NEW → ASSIGNED
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/72bb80a79854 Prevent opaque background-image optimization from confusing canvas background code. r=tnikkel
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/52382 for changes under testing/web-platform/tests
Status: ASSIGNED → RESOLVED
Closed: 5 days ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch
Upstream PR merged by moz-wptsync-bot
Upstream PR merged by moz-wptsync-bot

The patch landed in nightly and beta is affected.
:emilio, is this bug important enough to require an uplift?

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

I don't think this causes correctness issues.

Flags: needinfo?(emilio)

(In reply to Emilio Cobos Álvarez (:emilio) from comment #10)

I don't think this causes correctness issues.

It might actually; see bug 1964293. (But it's not a huge deal.)

er sorry, copypaste typo; I meant "see bug 1965005" (which seems to be fixed by this bug)

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: