While adding more new tests I noticed that if we have a frame of size 0, we would get into infinite loop and eventually crash. The reason is that when the algorithm sees a starting rect of size 0, it assumes that there is no focused node, thus restarts itself.
Created attachment 76005 [details] Patch.
Comment on attachment 76005 [details] Patch. View in context: https://bugs.webkit.org/attachment.cgi?id=76005&action=review > WebCore/page/FocusController.cpp:422 > // Ignore iframes that don't have a src attribute Please also update comment.
Comment on attachment 76005 [details] Patch. Rejecting patch 76005 from commit-queue. Failed to run "['./WebKitTools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '--bot-id=eseidel-cq-sl', 'build', '--no-clean', '--no-update', '--build-style=both']" exit_code: 1 ERROR: Working directory has local commits, pass --force-clean to continue. Full output: http://queues.webkit.org/results/6948010
Comment on attachment 76005 [details] Patch. Clearing flags on attachment: 76005 Committed r73634: <http://trac.webkit.org/changeset/73634>
All reviewed patches have been landed. Closing bug.
I can't just cherry-pick it to qtwebkit-2.1 because of changes from bug 47142. I'll fix the conflict as below. Yael/Antonio, could you please confirm it's OK? - if (candidate.node->isFrameOwnerElement() && !static_cast<HTMLFrameOwnerElement*>(candidate.node)->contentFrame()) + if (candidate.node->isFrameOwnerElement() && (!static_cast<HTMLFrameOwnerElement*>(candidate.node)->contentFrame() || candidate.rect.isEmpty()))
(In reply to comment #6) > I can't just cherry-pick it to qtwebkit-2.1 because of changes from bug 47142. > > I'll fix the conflict as below. Yael/Antonio, could you please confirm it's OK? > > - if (candidate.node->isFrameOwnerElement() && !static_cast<HTMLFrameOwnerElement*>(candidate.node)->contentFrame()) > + if (candidate.node->isFrameOwnerElement() && (!static_cast<HTMLFrameOwnerElement*>(candidate.node)->contentFrame() || candidate.rect.isEmpty())) Looks good to me. thanks!
Revision r73634 cherry-picked into qtwebkit-2.1 with commit 7bebc59 <http://gitorious.org/webkit/qtwebkit/commit/7bebc59>