https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c10 https://bug1504834.bmoattachments.org/attachment.cgi?id=9111147 mozilla-bmo1504834-part4.patch # HG changeset patch # Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec Problem description: Tab-titles that are too long to fit into a tab get faded out. On big endian this is broken and instead of fading out, the tab gets white and the font transparent, leading to an unreadable tab-title Solution: This is not a real solution, but a hack. The real solution would have been to byte-swap the correct buffer, but I could not find it. So the next best thing is to deactivate the fading-effect. Now all tab-titles are readable, albeit not as pretty to look at as they could be. Side-effects: I have not yet found an unwanted side-effect. diff --git gfx/2d/DrawTargetSkia.cpp gfx/2d/DrawTargetSkia.cpp index 6bbef8d..161b96f 100644 --- gfx/2d/DrawTargetSkia.cpp +++ gfx/2d/DrawTargetSkia.cpp @@ -1903,6 +1903,14 @@ void DrawTargetSkia::PushLayerWithBlend(bool aOpaque, Float aOpacity, SkCanvas::kPreserveLCDText_SaveLayerFlag | (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); +#if MOZ_BIG_ENDIAN() + // Pushing a layer where an aMask is defined produces wrong output. + // We _should_ endian swap the data, but I couldn't find a workable way to do so + // Therefore I deactivate those layers in the meantime. + // The result is: Tab-titles that are longer than the available space should be faded out. + // The fading doesn't work, so we deactivate the fading-effect here. + if (!aMask) +#endif mCanvas->saveLayer(saveRec); SetPermitSubpixelAA(aOpaque);