[Webkit-unassigned] [Bug 20831] New: Very slow <input type="search">. 100% CPU usage for each key press.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Sep 13 12:52:33 PDT 2008
https://bugs.webkit.org/show_bug.cgi?id=20831
Summary: Very slow <input type="search">. 100% CPU usage for each
key press.
Product: WebKit
Version: 528+ (Nightly build)
Platform: Macintosh
OS/Version: Mac OS X 10.5
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: Text
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: john.engelhart at gmail.com
Very, very slow interactive response for a <input type="search"> field. CPU
jumps to 100% for each key press, and can take a few seconds for just a dozen
keystrokes.
I've condensed down the HTML that reproduces the bug. Tried with nightly
r35942 and Mac OS X Safari 4.0 (5528.1, I think the latest developer preview
available). I also grabbed a stack sample and included the heavy hitting part
in the html comments.
I have no idea which of the bits and pieces cause the problem, so the HTML code
that I'm including is the result of distilling the problem down in to
something minimal that definitely reproduces the issue.
The nightly build is noticeably more sluggish than the Safari 4 developer
preview, but not by much.
--- begin HTML code to reproduce problem ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
.alphaTopAndBottomFade { border-bottom: 1px solid rgba(0,0,0,0.075);
border-top: 1px solid rgba(0,0,0,0.2); border-left: 1px solid rgba(0,0,0,0.05);
border-right: 1px solid rgba(0,0,0,0.05); -webkit-box-shadow: 0px 0px 1px
rgba(0,0,0,0.2); padding-bottom: 0.5em; margin-bottom: 0.5em; background:
-webkit-gradient(linear, left top, left bottom, from(rgb(213,221,231)),
color-stop(0.33, rgb(255,255,255)), color-stop(0.66, rgb(255,255,255)),
to(rgb(240,240,240))); -webkit-border-radius: 5px; -moz-border-radius: 5px; }
.table { display: table; }
.table > .row { display: table-row; }
.table > .row > .cell { display: table-cell; }
</style>
</head>
<body>
<div class="content" style="">
<div class="alphaTopAndBottomFade" style="position: relative;">
<div class="table" style="width: 100%; height: 300px; padding: 0.375em
3ex;"><div class="row">
<div class="cell" style="width: 50%; height: 100%;">
<div style="width: 100%; height: 100%; position: relative;">
<div style="margin: 0em 3ex; color: #333; font-family: 'Lucida
Grande'; font-weight: normal;">
<div style="font-size: 18px; font-weight:
normal;">Title</div>
<div style="color: #666; margin-left: 1ex; margin-top:
0.25em;">Subtitle!</div>
</div>
<div style="font: 11px normal 'Lucida Grande'; color: #555">
<p>Yay for us.. and stuff</p>
<p>And some more bits and pieces.</p>
<!-- This input search box is very, very slugish to respond
to key presses, and chews up 100% CPU on a G4 PPC PowerBook -->
<!--
I don't know which of the above pieces contribute to the problem, but I sliced
it down to just these bits that reproduce the problem.
Note: When I was trimming things down to a useable example, there's definitely
some point where the problem 'mostly' goes away.
Also, I don't know if this is a WebKit bug or a Mac OS X compositor performance
issue.
-->
<input type="search" name="req" value="" results="5"
placeholder="Search This" autosave="">
<!--
Stack sample during bad behavior (clipped for brevity, heaviest call stack
only):
Analysis of sampling Safari (pid 37724) every 10 milliseconds
Call graph:
1254 Thread_2503
1254 0xbffff050
1254 0xb65a0
1254 NSApplicationMain
1254 -[NSApplication run]
1200 0x7dac
1200 -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:]
1200 _DPSNextEvent
966 BlockUntilNextEventMatchingListInMode
966 ReceiveNextEventCommon
965 RunCurrentEventLoopInMode
962 CFRunLoopRunSpecific
843 __CFRunLoopDoObservers
834 _handleWindowNeedsDisplay
831 0x1ff80
831 -[NSWindow displayIfNeeded]
826 -[NSView
_displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]
807 -[NSThemeFrame
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
807 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
806 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
803 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
798 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
782 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
774 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
773 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
772 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
771
-[WebHTMLView(WebPrivate)
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
771 -[NSView
_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
771 -[NSView
_drawRect:clip:]
771 -[WebHTMLView
drawRect:]
771
-[WebHTMLView drawSingleRect:]
771
-[WebFrame(WebInternal) _drawRect:]
771
WebCore::Frame::paint(WebCore::GraphicsContext*, WebCore::IntRect const&)
771
WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*,
WebCore::GraphicsContext*, WebCore::IntRect const&, bool,
WebCore::PaintRestriction, WebCore::RenderObject*, bool)
770
WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*,
WebCore::GraphicsContext*, WebCore::IntRect const&, bool,
WebCore::PaintRestriction, WebCore::RenderObject*, bool)
765
WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*,
WebCore::GraphicsContext*, WebCore::IntRect const&, bool,
WebCore::PaintRestriction, WebCore::RenderObject*, bool)
758
WebCore::RenderBlock::paint(WebCore::RenderObject::PaintInfo&, int, int)
757 WebCore::RenderBlock::paintObject(WebCore::RenderObject::PaintInfo&, int,
int)
750 WebCore::RenderBox::paintBoxDecorations(WebCore::RenderObject::PaintInfo&,
int, int)
744 WebCore::RenderBox::paintFillLayer(WebCore::RenderObject::PaintInfo
const&, WebCore::Color const&, WebCore::FillLayer const*, int, int, int, int,
int, int, WebCore::CompositeOperator)
744
WebCore::RenderBox::paintFillLayerExtended(WebCore::RenderObject::PaintInfo
const&, WebCore::Color const&, WebCore::FillLayer const*, int, int, int, int,
int, int, WebCore::InlineFlowBox*, WebCore::CompositeOperator)
744 WebCore::GraphicsContext::drawTiledImage(WebCore::Image*,
WebCore::IntRect const&, WebCore::IntPoint const&, WebCore::IntSize const&,
WebCore::CompositeOperator)
744 WebCore::Image::drawTiled(WebCore::GraphicsContext*,
WebCore::FloatRect const&, WebCore::FloatPoint const&, WebCore::FloatSize
const&, WebCore::CompositeOperator)
744 WebCore::GeneratedImage::drawPattern(WebCore::GraphicsContext*,
WebCore::FloatRect const&, WebCore::AffineTransform const&, WebCore::FloatPoint
const&, WebCore::CompositeOperator, WebCore::FloatRect const&)
635 WebCore::Image::drawPattern(WebCore::GraphicsContext*,
WebCore::FloatRect const&, WebCore::AffineTransform const&, WebCore::FloatPoint
const&, WebCore::CompositeOperator, WebCore::FloatRect const&)
635 CGContextDrawTiledImage
635 CGContextFillRect
635 CGContextFillRects
635 ripc_DrawRects
635 ripc_Render
628 ripc_GetColor
624 ripc_TilePattern
624 ripc_DrawImages
623 ripc_RenderImage
623 ripl_BltImage
623 ripl_Mark
623 ARGB32_image
623 vecCGSBlendXXXX8888Permute
623 vecCGSBlendXXXX8888Permute
1 ripc_AcquireImage
1 CGSImageDataLock
1 img_reference
1 img_reference
4 ripl_Create
4 mem_allocate
3 mmap
3 mmap
1 mem_allocate
6 ripl_release
6 mem_deallocate
6 munmap$UNIX2003
6 munmap$UNIX2003
1 ripl_BltShape
1 dyld_stub_CGSBoundsIntersection
1 dyld_stub_CGSBoundsIntersection
38 WebCore::ImageBuffer::create(WebCore::IntSize const&, bool)
34 WTF::tryFastCalloc(unsigned long, unsigned long)
34 __bzero
34 __bzero
4 CGBitmapContextCreate
-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list