[Webkit-unassigned] [Bug 119823] New: crash(ASSERT(!renderer()->needsLayout())) when entering Chinese text via Google Chinese Pinyin IME

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 14 16:05:26 PDT 2013


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

           Summary: crash(ASSERT(!renderer()->needsLayout())) when
                    entering Chinese text via Google Chinese Pinyin IME
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
               URL: http://www.google.com
        OS/Version: Windows 7
            Status: UNCONFIRMED
          Severity: Major
          Priority: P2
         Component: Text
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: sfcheng at gmail.com


I am using QtWebkit 5.1.0 on Windows 7. When I enter some Chinese text via Google Chinese Pinyin IME into the search box on Google homepage, every now and then, webkit crashes due to the following assert:

bool Node::isFocusable() const
{
    if (!inDocument() || !supportsFocus())
        return false;

    // Elements in canvas fallback content are not rendered, but they are allowed to be
    // focusable as long as their canvas is displayed and visible.
    if (isElementNode() && toElement(this)->isInCanvasSubtree()) {
        const Element* e = toElement(this);
        while (e && !e->hasLocalName(canvasTag))
            e = e->parentElement();
        ASSERT(e);
        return e->renderer() && e->renderer()->style()->visibility() == VISIBLE;
    }

    if (renderer())
------>      ASSERT(!renderer()->needsLayout());  
    else
        // If the node is in a display:none tree it might say it needs style recalc but
        // the whole document is actually up to date.
        ASSERT(!document()->childNeedsStyleRecalc());

    // FIXME: Even if we are not visible, we might have a child that is visible.
    // Hyatt wants to fix that some day with a "has visible content" flag or the like.
    if (!renderer() || renderer()->style()->visibility() != VISIBLE)
        return false;

    return true;
}


Here is entire stack:

     ntdll.dll!_ZwRaiseException at 12()  + 0x12 bytes    
     ntdll.dll!_ZwRaiseException at 12()  + 0x12 bytes    
>	Qt5WebKitd.dll!WebCore::Node::isFocusable()  Line 927 + 0x3c bytes	C++
     Qt5WebKitd.dll!WebCore::HTMLFormControlElement::isFocusable()  Line 330    C++
     Qt5WebKitd.dll!WebCore::HTMLInputElement::isTextFormControlFocusable()  Line 398    C++
     Qt5WebKitd.dll!WebCore::TextFieldInputType::isMouseFocusable()  Line 79    C++
     Qt5WebKitd.dll!WebCore::HTMLInputElement::isMouseFocusable()  Line 393    C++
     Qt5WebKitd.dll!WebCore::FrameSelection::setFocusedNodeIfNeeded()  Line 1884 + 0x16 bytes    C++
     Qt5WebKitd.dll!WebCore::FrameSelection::setSelection(const WebCore::VisibleSelection & newSelection={...}, unsigned int options=0, WebCore::FrameSelection::CursorAlignOnScroll align=AlignCursorOnScrollIfNeeded, WebCore::TextGranularity granularity=CharacterGranularity)  Line 298    C++
     Qt5WebKitd.dll!WebCore::Editor::selectComposition()  Line 1321    C++
     Qt5WebKitd.dll!WebCore::Editor::setComposition(const WTF::String & text={...}, const WTF::Vector<WebCore::CompositionUnderline,0> & underlines={...}, unsigned int selectionStart=0, unsigned int selectionEnd=0)  Line 1400    C++
     Qt5WebKitd.dll!QWebPageAdapter::inputMethodEvent(QInputMethodEvent * ev=0x16dd2220)  Line 710 + 0x2c bytes    C++
     Qt5WebKitWidgetsd.dll!QWebPage::event(QEvent * ev=0x16dd2220)  Line 2543    C++
     MyApp.exe!WebPage::event(QEvent * e=0x16dd2220)  Line 1021    C++
     Qt5WebKitWidgetsd.dll!QWebView::inputMethodEvent(QInputMethodEvent * e=0x16dd2220)  Line 1031    C++
     Qt5Widgetsd.dll!QWidget::event(QEvent * event=0x16dd2220)  Line 7951    C++
     Qt5WebKitWidgetsd.dll!QWebView::event(QEvent * e=0x16dd2220)  Line 734    C++
     Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x0d5daa08, QEvent * e=0x16dd2220)  Line 3455 + 0x11 bytes    C++
     Qt5Widgetsd.dll!QApplication::notify(QObject * receiver=0x0d5daa08, QEvent * e=0x16dd2220)  Line 3420 + 0x10 bytes    C++
     Qt5Cored.dll!QCoreApplication::notifyInternal(QObject * receiver=0x0d5daa08, QEvent * event=0x16dd2220)  Line 871 + 0x15 bytes    C++
     Qt5Cored.dll!QCoreApplication::sendEvent(QObject * receiver=0x0d5daa08, QEvent * event=0x16dd2220)  Line 232 + 0x39 bytes    C++
     qwindowsd.dll!QWindowsInputContext::composition(HWND__ * hwnd=0x00311056, long lParamIn=184)  Line 443 + 0x13 bytes    C++
     qwindowsd.dll!QWindowsContext::windowsProc(HWND__ * hwnd=0x00311056, unsigned int message=271, QtWindows::WindowsEventType et=InputMethodCompositionEvent, unsigned int wParam=0, long lParam=184, long * result=0x0025d9a8)  Line 736 + 0x14 bytes    C++
     qwindowsd.dll!qWindowsWndProc(HWND__ * hwnd=0x00311056, unsigned int message=271, unsigned int wParam=0, long lParam=184)  Line 951 + 0x24 bytes    C++
     user32.dll!_InternalCallWinProc at 20()  + 0x23 bytes    
     user32.dll!_UserCallWinProcCheckWow at 32()  + 0xb7 bytes    
     user32.dll!_DispatchMessageWorker at 8()  + 0xed bytes    
     user32.dll!_DispatchMessageW at 4()  + 0xf bytes    
     Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 752    C++
     qwindowsd.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 78 + 0xd bytes    C++
     Qt5Cored.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 137    C++
     Qt5Cored.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...})  Line 212 + 0x26 bytes    C++
     Qt5Cored.dll!QCoreApplication::exec()  Line 1124 + 0x15 bytes    C++
     Qt5Guid.dll!QGuiApplication::exec()  Line 1197    C++
     Qt5Widgetsd.dll!QApplication::exec()  Line 2690    C++

-- 
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