Bug 76249

Summary: REGRESSION (r98852): apple.com navigation bar is broken under full-page zoom
Product: WebKit Reporter: mitz
Component: Layout and RenderingAssignee: Nikolas Zimmermann <zimmermann>
Status: RESOLVED FIXED    
Severity: Normal CC: koivisto, simon.fraser, thorton, zimmermann
Priority: P1 Keywords: HasReduction, InRadar, Regression
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
URL: http://www.apple.com/
Attachments:
Description Flags
Reduction
none
Patch kling: review+

Description mitz 2012-01-12 22:52:57 PST
Created attachment 122370 [details]
Reduction

<rdar://problem/10687565>

To reproduce: navigate to the URL in Safari and choose View > Zoom In multiple times. Disable the Zoom Text Only option if it is selected in the View menu.

Results: a pixelated gradient is rendered at the top right of each segment of the navigation bar.

A reduction is attached. This regression was apparently caused by <http://trac.webkit.org/r98852>.
Comment 1 Nikolas Zimmermann 2012-01-17 12:12:46 PST
It's even asserting:

Jan 17 21:12:05 nikoimac.fritz.box WebProcess[59502] <Error>: CGImageCreateWithImageProvider: invalid image size: 0 x 0.
ASSERTION FAILED: CGImageGetHeight(image.get()) == currHeight - CGRectIntegral(srcRect).origin.y
/Users/nzimmermann/Coding/WebKit/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp(197) : void WebCore::GraphicsContext::drawNativeImage(NativeImagePtr, const WebCore::FloatSize &, WebCore::ColorSpace, const WebCore::FloatRect &, const WebCore::FloatRect &, WebCore::CompositeOperator)
1   0x110a2da28 WebCore::GraphicsContext::drawNativeImage(CGImage*, WebCore::FloatSize const&, WebCore::ColorSpace, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::CompositeOperator)
2   0x110bb43a3 WebCore::BitmapImage::draw(WebCore::GraphicsContext*, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::ColorSpace, WebCore::CompositeOperator)
3   0x110a0f3d4 WebCore::GraphicsContext::drawImage(WebCore::Image*, WebCore::ColorSpace, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::CompositeOperator, bool)
4   0x110a0eff4 WebCore::GraphicsContext::drawImage(WebCore::Image*, WebCore::ColorSpace, WebCore::IntRect const&, WebCore::IntRect const&, WebCore::CompositeOperator, bool)
5   0x110a0f68a WebCore::GraphicsContext::drawTiledImage(WebCore::Image*, WebCore::ColorSpace, WebCore::IntRect const&, WebCore::IntRect const&, WebCore::FloatSize const&, WebCore::Image::TileRule, WebCore::Image::TileRule, WebCore::CompositeOperator, bool)
6   0x111488874 WebCore::RenderBoxModelObject::paintNinePieceImage(WebCore::GraphicsContext*, WebCore::IntRect const&, WebCore::RenderStyle const*, WebCore::NinePieceImage const&, WebCore::CompositeOperator)
7   0x11148c5c5 WebCore::RenderBoxModelObject::paintBorder(WebCore::PaintInfo const&, WebCore::IntRect const&, WebCore::RenderStyle const*, WebCore::BackgroundBleedAvoidance, bool, bool)
8   0x11146e7d8 WebCore::RenderBox::paintBoxDecorations(WebCore::PaintInfo&, WebCore::IntPoint const&)
9   0x111415589 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::IntPoint const&)
10  0x11146fdb8 WebCore::RenderBox::pushContentsClip(WebCore::PaintInfo&, WebCore::IntPoint const&)
11  0x11141350b WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::IntPoint const&)
12  0x1114150df WebCore::RenderBlock::paintChildren(WebCore::PaintInfo&, WebCore::IntPoint const&)
13  0x111414d26 WebCore::RenderBlock::paintContents(WebCore::PaintInfo&, WebCore::IntPoint const&)
14  0x111415725 WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::IntPoint const&)
15  0x11141353d WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::IntPoint const&)
16  0x1115effdf WebCore::RenderTableCell::paint(WebCore::PaintInfo&, WebCore::IntPoint const&)
17  0x1115f9607 WebCore::RenderTableSection::paintCell(WebCore::RenderTableCell*, WebCore::PaintInfo&, WebCore::IntPoint const&)
18  0x1115fa06c WebCore::RenderTableSection::paintObject(WebCore::PaintInfo&, WebCore::IntPoint const&)
19  0x1115f9373 WebCore::RenderTableSection::paint(WebCore::PaintInfo&, WebCore::IntPoint const&)
20  0x1115e4cf5 WebCore::RenderTable::paintObject(WebCore::PaintInfo&, WebCore::IntPoint const&)
21  0x1115e4a8d WebCore::RenderTable::paint(WebCore::PaintInfo&, WebCore::IntPoint const&)
22  0x1114f5fde WebCore::RenderLayer::paintLayerContents(WebCore::RenderLayer*, WebCore::GraphicsContext*, WebCore::IntRect const&, unsigned int, WebCore::RenderObject*, WebCore::RenderRegion*, WTF::HashMap<WebCore::OverlapTestRequestClient*, WebCore::IntRect, WTF::PtrHash<WebCore::OverlapTestRequestClient*>, WTF::HashTraits<WebCore::OverlapTestRequestClient*>, WTF::HashTraits<WebCore::IntRect> >*, unsigned int)
Comment 2 Nikolas Zimmermann 2012-01-18 07:19:00 PST
Thanks for the reduction! Got a three-liner that fixes this.
Comment 3 Nikolas Zimmermann 2012-01-20 07:45:52 PST
Created attachment 123314 [details]
Patch
Comment 4 Nikolas Zimmermann 2012-01-20 07:52:27 PST
Committed r105515: <http://trac.webkit.org/changeset/105515>
Comment 6 Simon Fraser (smfr) 2012-05-29 13:42:34 PDT
This caused bug 87774.