[webkit-qt] QtWebkit 2.2.1 - Script Debugger Locks Inspector UI

Jarred Nicholls jarred at webkit.org
Thu Jan 12 13:05:54 PST 2012


On Wed, Jan 11, 2012 at 1:05 PM, Jarred Nicholls <jarred at webkit.org> wrote:

> On Tue, Jan 10, 2012 at 11:08 PM, Leo Franchi <lfranchi at kde.org> wrote:
>
>> On Jan 10, 2012, at 2:45 PM, Jarred Nicholls wrote:
>>
>> Hey qtwebkittens,
>>
>> My company has charged me with resolving a very nasty issue with QtWebKit
>> 2.2.1's web inspector interface (built from Qt 4.8.0 source), which locks
>> up when one pauses script at a breakpoint.
>>
>> https://bugs.webkit.org/show_bug.cgi?id=71271
>>
>> CPU on the process goes to 100% and it looks like the EventLoop just runs
>> on and on (calling QCoreApplication::processEvents), but isn't processing
>> UI events in the inspector interface at all.
>>
>> Before spending much more time trying to analyze this issue and scouring
>> changesets, has anyone experienced this themself and/or have any indication
>> of what the issue is or how to fix it?  This appears to have been an issue
>> in the past (https://bugs.webkit.org/show_bug.cgi?id=41142) but I have a
>> trunk build of QtWebKit @ r84622 (against Qt 4.7.4) that does not have this
>> issue.
>>
>>
>> Hi Jarred,
>>
>> It might be the issue I fixed recently in my qtwebkit fork---I added
>> support for phantomjs remote debugging, and ran into this exact same thing.
>> Turns out in a few places setting a breakpoint caused processing of the
>> incoming events from the JS side of the debugger to fail.
>>
>> I mentioned my fixes to jturcotte but didn't get much interest---if there
>> is interest I will gladly clean up my patches and get these fixes upstream.
>>
>> Here's the work to see if it fixes for you:
>>
>> 1) Updated Websocket implementation to latest spec to work against a
>> recent chrome/webkit browser:
>>
>>
>> https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/93a72f2657c2a8bb6863d5d2ffe8ce6faedd4598
>>
>> 2) 2 fixes for hanging on breakpoint (one requires the above commit, but
>> is easy enough to apply against trunk if you read the code)
>>
>>
>> https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/4e104bc438c21ef63a6a4227a142d36bf2401b2e
>>
>> https://gitorious.org/~lfranchi/webkit/lfranchis-qtwebkit/commit/1606e202891b856ad0fdae80288ccdbf8d6765e1
>>
>> The latter two patches I hope should fix your issue. All 3 are also
>> available as a standalone patch against qt 4.8 here:
>>
>>
>> https://github.com/ariya/phantomjs/blob/master/deploy/qt48_fix_inspector.patch
>>
>> cheers,
>> leo
>>
>> --
>> leo at kdab.com                                 KDAB (USA), LLC
>> lfranchi at kde.org                             The KDE Project
>>
>>  --
>> leo at kdab.com                                 KDAB (USA), LLC
>> lfranchi at kde.org                             The KDE Project
>>
>>
> Hi Leo,
>
> I tried the patch on vanilla Qt 4.8 and unfortunately it did not resolve
> the issue for me :(  I will keep digging.  Thanks!
>
> Jarred
>

Hi Leo,

FYI, I did get remote debugging to work, it was a stupid mistake on my
part.  I narrowed down the issue of local debugging; it seems the
inspector's JS context is paused when the Frame's context is paused.  I
added some debugging to WebInspector.dispatch() in inspector.js, and it
seems that execution of the inspector itself is paused.  I resumed the code
execution manually in ScriptDebugServer via GDB and the inspector's code
resumes.  It's a little bizarre, but since I got remote debugging to work
(thanks to your patch!) this will suffice for now.

Cheers,
Jarred
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-qt/attachments/20120112/12b976b3/attachment.html>


More information about the webkit-qt mailing list