[Webkit-unassigned] [Bug 105649] New: [Qt/Windows7] QWebView/QGraphicsWebView CPU consumption and wrong widgets state when animations are enabled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Dec 21 12:08:21 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=105649

           Summary: [Qt/Windows7] QWebView/QGraphicsWebView CPU
                    consumption and wrong widgets state when animations
                    are enabled
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Windows 7
            Status: UNCONFIRMED
          Severity: Major
          Priority: P2
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: zcrendel at gmail.com


Created an attachment (id=180542)
 --> (https://bugs.webkit.org/attachment.cgi?id=180542&action=review)
CPU high load when visited webpage with radiogroup widgets in it

When animations for widgets in Windows 7 are enabled then QtWebkit textareas, radiogroups and some other widgets makes CPU high load (see attachment screenshot). Btw, animations also do not work properly (see attachment picture, radiogroup with 2 checked radioboxes). The problem is how widgets/style/qwindowsvistastyle.cpp stores widget previous style state to compare with current state:

QObject *styleObject = option->styleObject;
styleObject->setProperty("_q_no_animation", true);

int oldState = styleObject->property("_q_stylestate").toInt();
oldRect = styleObject->property("_q_stylerect").toRect();
newRect = option->rect;
styleObject->setProperty("_q_stylestate", (int)option->state);
styleObject->setProperty("_q_stylerect", option->rect);

However for each normal widget this object (widget itself) is unique, but for QtWebkit widgets styleObject - a global object (a painting surface?) returned by QStyleFacadeImp::widgetForPainter(QPainter* painter) function (see, WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp). 
This global object produces problem by sharing set/get style option state for different widgets on a page. This makes CPU high and memory leaking due inifite loop of animations.

How to reproduce:
1. Turn all animations on in Windows 7
2. Visit any webpage where is textarea or radiogroups presented from QWebView or QGraphicsView, like: 
   http://echoecho.com/htmlforms10.htm
3. Got CPU High and sometimes memory leaking

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list