Changeset 19424 in webkit


Ignore:
Timestamp:
Feb 5, 2007 8:10:02 PM (17 years ago)
Author:
brmorris
Message:

bujtas, reviewed by Yongjun.

DESC: PartialImage() can end up in a dialog box which starts up a nested active scheduler JELE-6XSH3P

and since the page still being loaded in the background new image
data could come to the image decoder. that's a fatal re-entry on
the image decoder.

http://bugs.webkit.org/show_bug.cgi?id=12550

Location:
S60/trunk/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • S60/trunk/WebKit/BrowserCore/Formcontrols/src/FControlInputWidget.cpp

    r18812 r19424  
    521521      }
    522522
     523    CWebKitView* webkitView = static_cast<CWebKitView*>(iParent);
     524    CWebKitFrame* focused = webkitView->MainFrame().FocusedFrame();
     525    // send keys to webcore
     526    if (focused)
     527        {       
     528        // send as keypress/keyrelease
     529        if (aType == EEventKeyDown)
     530            {
     531            focused->WebKitBridge().WebCoreBridge().KeyEvent(aKeyEvent,EFalse);
     532            }
     533        else if (aType == EEventKeyUp)
     534            {
     535            focused->WebKitBridge().WebCoreBridge().KeyEvent(aKeyEvent,ETrue);
     536            }
     537        }
     538
    523539    // Send arrow keys and OK key to list box first
    524540    //if (aType == EEventKeyDown  &&
  • S60/trunk/WebKit/BrowserCore/Renderers/inc/StaticImageDecoder.h

    r19406 r19424  
    9393        RPointerArray<CRawData> iQueue;
    9494        CRawData*               iContext;   // current decoding data
     95        TBool                   iBlocked;
    9596    };
    9697
  • S60/trunk/WebKit/BrowserCore/Renderers/src/StaticImageDecoder.cpp

    r19406 r19424  
    176176void CStaticImageDecoder::LoadOneFrame()
    177177    {
     178    // the first frame, partial information is available
     179    // PartialImage() can end up in a dialog box which
     180    // starts up a nested active scheduler and since
     181    // the page still being loaded in the background
     182    // new image data could come to the image decoder.
     183    // that's a fatal re-entry on the image decoder.
     184    iBlocked = ETrue;
     185    // the first frame, partial information is available
     186    iContext->iObserver->PartialImage();
     187    iBlocked = EFalse;
     188
    178189    // static image has only one frame;
    179190    const TFrameInfo& frameInfo = iDecoder->FrameInfo( 0 );
     
    187198        {
    188199        iDecoder->Convert( &iStatus, bmp, 0 );
    189         }
    190    
    191     // the first frame, partial information is available
    192     iContext->iObserver->PartialImage();
     200        }
    193201   
    194202    SetActive();
     
    206214void CStaticImageDecoder::StartLoading()
    207215    {
    208     if( !IsActive() )
     216    // see LoadOneFrame for iBlocked
     217    if( !IsActive() && !iBlocked )
    209218        {
    210219        // initalize decoding
  • S60/trunk/WebKit/BrowserView/src/KeyEventHandler.cpp

    r19258 r19424  
    182182                case EKeyDownArrow:
    183183                    {
     184                    // Don't generate keyevent for arrows since they are oveloaded for pointer
     185                    // unless it is tabbed navigation
     186                    CWebKitFrame* focused = iWebKitView->MainFrame().FocusedFrame();
     187                    if (iWebKitView->TabbedNavigation() && !iWebKitView->WebKitControl().InPageViewMode() && focused)
     188                        {
     189                        // send keyevent to the webcore
     190                        focused->WebKitBridge().WebCoreBridge().KeyEvent(iLastEventKey,EFalse);
     191                        }
    184192                    keyResponse = HandleArrowKeysL(aKeyEvent);
    185193                    break;
  • S60/trunk/WebKit/ChangeLog

    r19406 r19424  
     1bujtas, reviewed by Yongjun.
     2        DESC: PartialImage() can end up in a dialog box which starts up a nested active scheduler JELE-6XSH3P
     3         and since the page still being loaded in the background new image
     4         data could come to the image decoder. that's a fatal re-entry on
     5         the image decoder.
     6
     7        http://bugs.webkit.org/show_bug.cgi?id=12550
     8
     9        * BrowserCore/Renderers/inc/StaticImageDecoder.h:
     10        * BrowserCore/Renderers/src/StaticImageDecoder.cpp:
     11        (CStaticImageDecoder::LoadOneFrame):
     12
    113bujtas  <zbujtas@gmail.com>, merged to s60/trunk by brad, reviewed by Yongjun.
    214        DESC: browser is crashing if it is closed while a page is loading and closing and opening a new window crashes the browser as well TMCN-6XRQP2
Note: See TracChangeset for help on using the changeset viewer.