Changeset 19440 in webkit


Ignore:
Timestamp:
Feb 6, 2007 2:03:51 PM (17 years ago)
Author:
brmorris
Message:

brmorris <bradley.morrison@nokia.com>, rs'd by zalan

DESC: merge from s60/branches/3.1m to s60/trunk of r19429, r19430, r19431, r19432 and r19433

Location:
S60/trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • S60/trunk/JavaScriptCore/ChangeLog

    r17301 r19440  
     1vbradley, Reviewed by Yongjun.
     2        DESC: Fixed the stack size and pcre stack overflow. Limit the number
     3    recursions that are allowed in match().
     4        http://bugs.webkit.org/show_bug.cgi?id=12611
     5
     6        * group/JavaScriptCore.mmp:
     7        * pcre/pcre.c:
     8        (match):
     9
    1102006-10-25  yadavall  <sriram.yadavalli@nokia.com>
    211
  • S60/trunk/JavaScriptCore/group/JavaScriptCore.mmp

    r17301 r19440  
    3333
    3434EPOCALLOWDLLDATA
     35// heap size 20K - 16M
    3536EPOCHEAPSIZE 0x5000 0x1000000
     37// stack size 64K
     38epocstacksize 0x10000
    3639
    3740#if defined(ARMCC)
  • S60/trunk/JavaScriptCore/pcre/pcre.c

    r14549 r19440  
    36493649
    36503650
     3651#if NOKIA_CHANGES
     3652// Prototype match_internal()
     3653static BOOL
     3654match_internal(register const ichar *eptr, register const uschar *ecode,
     3655               int offset_top, match_data *md, unsigned long int ims,
     3656               eptrblock *eptrb, int flags);
    36513657
    36523658/*************************************************
     
    36733679Returns:       TRUE if matched
    36743680*/
    3675 
    36763681static BOOL
    36773682match(register const ichar *eptr, register const uschar *ecode,
     
    36793684  int flags)
    36803685{
     3686    static int matchcount = 0;
     3687    static int matchcountMax = 0;
     3688    BOOL err;
     3689
     3690    if ( matchcountMax >= 250 )
     3691        {
     3692        return FALSE;
     3693        }
     3694
     3695    ++matchcount;
     3696
     3697    if ( matchcountMax < matchcount )
     3698        {
     3699        matchcountMax = matchcount;
     3700        }
     3701       
     3702    err = match_internal(eptr, ecode, offset_top, md, ims, eptrb, flags);
     3703
     3704    --matchcount;
     3705    if ( matchcount <= 0 )
     3706        {
     3707        matchcountMax = 0;
     3708        }
     3709
     3710    return err;
     3711}
     3712#endif  // end of NOKIA_CHANGES
     3713
     3714/*************************************************
     3715*         Match from current position            *
     3716*************************************************/
     3717
     3718/* On entry ecode points to the first opcode, and eptr to the first character
     3719in the subject string, while eptrb holds the value of eptr at the start of the
     3720last bracketed group - used for breaking infinite loops matching zero-length
     3721strings.
     3722
     3723Arguments:
     3724   eptr        pointer in subject
     3725   ecode       position in code
     3726   offset_top  current top pointer
     3727   md          pointer to "static" info for the match
     3728   ims         current /i, /m, and /s options
     3729   eptrb       pointer to chain of blocks containing eptr at start of
     3730                 brackets - for testing for empty matches
     3731   flags       can contain
     3732                 match_condassert - this is an assertion condition
     3733                 match_isgroup - this is the start of a bracketed group
     3734
     3735Returns:       TRUE if matched
     3736*/
     3737
     3738#if NOKIA_CHANGES
     3739static BOOL
     3740match_internal(register const ichar *eptr, register const uschar *ecode,
     3741  int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,
     3742  int flags)
     3743#else
     3744match(register const ichar *eptr, register const uschar *ecode,
     3745  int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,
     3746  int flags)
     3747#endif
     3748{
     3749
    36813750unsigned long int original_ims = ims;   /* Save for resetting on ')' */
    36823751eptrblock newptrb;
     
    45324601          ichar c1 = *ecode++;
    45334602#endif
    4534                         {
     4603            {
    45354604          ichar c2 = *eptr++;
    45364605          if (MAPCHAR(md->lcc, c1) != MAPCHAR(md->lcc, c2))
    45374606            return FALSE;
    45384607          }
    4539                   }
     4608          }
    45404609        }
    45414610      else
     
    46234692          if (i >= max || eptr >= md->end_subject)
    46244693            return FALSE;
    4625                         {
     4694            {
    46264695          ichar c2 = *eptr++;
    46274696          if (c != MAPCHAR(md->lcc, c2))
    46284697            return FALSE;
    4629                         }
     4698            }
    46304699          }
    46314700        /* Control never gets here */
     
    46834752    case OP_NOT: {
    46844753    if (eptr >= md->end_subject) return FALSE;
    4685           {
     4754      {
    46864755#if PCRE_UTF16
    46874756    int c = (ecode[1] << 8) | ecode[2];
     
    47014770      }
    47024771    }
    4703           }
     4772      }
    47044773    break;
    47054774
     
    47764845          if (i >= max || eptr >= md->end_subject)
    47774846            return FALSE;
    4778                         {
     4847            {
    47794848          ichar c2 = *eptr++;
    47804849          if (c == MAPCHAR(md->lcc, c2))
    47814850            return FALSE;
    4782                         }
     4851            }
    47834852          }
    47844853        /* Control never gets here */
  • S60/trunk/S60Tools/prepare-ChangeLog.bat

    r16659 r19440  
    7373use Cwd;
    7474use Win32;
     75use Term::ReadKey;
    7576
    7677sub canonicalizePath($);
     
    257258
    258259# Get some parameters for the ChangeLog we are about to write.
    259 my $date = sprintf "%d-%02d-%02d",
    260   1900 + (localtime $^T)[5], # year
    261   1 + (localtime $^T)[4], # month
    262   (localtime $^T)[3]; # day within month
     260#my $date = sprintf "%d-%02d-%02d",
     261#  1900 + (localtime $^T)[5], # year
     262#  1 + (localtime $^T)[4], # month
     263#  (localtime $^T)[3]; # day within month
    263264my $name = $ENV{USERNAME}
    264265  || $ENV{REAL_NAME}
    265266  || Win32::LoginName()
    266267  || "set REAL_NAME environment variable";
    267 my $email_address = $ENV{CHANGE_LOG_EMAIL_ADDRESS}
    268   || $ENV{EMAIL_ADDRESS}
    269   || "set EMAIL_ADDRESS environment variable";
     268#my $email_address = $ENV{CHANGE_LOG_EMAIL_ADDRESS}
     269#  || $ENV{EMAIL_ADDRESS}
     270#  || "set EMAIL_ADDRESS environment variable";
    270271
    271272# Remove trailing parenthesized notes from user name (bit of hack).
     
    317318foreach my $prefix (sort keys %files)
    318319  {
    319     print STDERR "  Editing the ${prefix}ChangeLog file.\n";
     320    my $reviewer = prompt_for("reviewer on $prefix");
     321    print STDERR "Editing the ${prefix}ChangeLog file.\n\n";
    320322    open OLD_CHANGE_LOG, "${prefix}ChangeLog" or die "Could not open ${prefix}ChangeLog file: $!.\n";
    321323    # It's less efficient to read the whole thing into memory than it would be
     
    324326    close OLD_CHANGE_LOG;
    325327    open CHANGE_LOG, "> ${prefix}ChangeLog" or die "Could not write ${prefix}ChangeLog\n.";
    326     print CHANGE_LOG "$date  $name  <$email_address>\n\n";
    327     print CHANGE_LOG "        Reviewed by NOBODY (OO" . "PS!).\n";
    328     print CHANGE_LOG "        DESC: \n";
    329     print CHANGE_LOG "        http://bugs.webkit.org/show_bug.cgi?id=\n\n";
     328    print CHANGE_LOG "$name, Reviewed by $reviewer";
     329    print CHANGE_LOG " DESC: \n";
     330    print CHANGE_LOG " http://bugs.webkit.org/show_bug.cgi?id=\n\n";
    330331    if ($prefix =~ m/WebCore/ || cwd() =~ m/WebCore/) {
    331332        print CHANGE_LOG "        WARNING: NO TEST CASES ADDED OR CHANGED\n\n" unless $changedLayoutTests;
     
    364365# Done.
    365366exit;
     367
     368sub prompt_for {
     369   my ($msg) = @_;
     370   print $msg, ": ";
     371   ReadMode('normal');
     372   my $result = ReadLine(0);
     373#   print "\n";
     374   return $result 
     375}
    366376
    367377sub canonicalizePath($)
  • S60/trunk/WebCore/ChangeLog

    r19406 r19440  
     1yongjzha, reviewed by Zalan.
     2        DESC: don't apply outline style for image inside <A> element
     3        http://bugs.webkit.org/show_bug.cgi?id=12621
     4
     5        WARNING: NO TEST CASES ADDED OR CHANGED
     6
     7        * khtml/css/html4.css:
     8
     9vbradley, Reviewed by Yongjun.
     10        DESC: Fixed the stack size and pcre stack overflow. Limit the number
     11    recursions that are allowed in match().
     12        http://bugs.webkit.org/show_bug.cgi?id=12611
     13
     14
     15        WARNING: NO TEST CASES ADDED OR CHANGED
     16
     17        * group/WebCore.mmp:
     18
     192007-02-02  w3liu  <wei.liu@nokia.com>
     20
     21        Reviewed by yongjun.zhang@nokia.com.
     22        DESC: If there is meta, should check meta tag in decoder.cpp
     23        http://bugs.webkit.org/show_bug.cgi?id=12225
     24
     25        WARNING: NO TEST CASES ADDED OR CHANGED
     26
     27        * khtml/misc/decoder.cpp:
     28        (Decoder::decode):
     29
    130bujtas, merged of r19405 to s60/trunk by mbradley, reviewed by yongjun.
    231        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
  • S60/trunk/WebCore/group/WebCore.mmp

    r17301 r19440  
    2525epocallowdlldata
    2626VENDORID    VID_DEFAULT
     27// stack size 64K
     28epocstacksize 0x10000
    2729
    2830LANG     SC
  • S60/trunk/WebCore/khtml/css/html4.css

    r18194 r19440  
    429429:focus img  { outline: auto 2px #aaaaff; outline-offset: 2px }
    430430a:-khtml-any-link:hover     { outline: auto 4px #aaaaff; outline-offset: 2px }
    431 a:-khtml-any-link:hover img { outline: auto 4px #aaaaff; outline-offset: 2px }
    432431
    433432
  • S60/trunk/WebCore/khtml/misc/decoder.cpp

    r19051 r19440  
    485485            const char *pEnd = buffer.length();
    486486#endif
     487#if NOKIA_CHANGES
     488            bool hasMeta = buffer.find("<meta", 0, false);
     489            bool reachMeta = false;
     490#endif
    487491            while(ptr != pEnd)
    488492            {
     
    533537                    switch( id ) {
    534538                    case ID_META:
    535                     {
     539                        {
     540#if NOKIA_CHANGES
     541                        reachMeta = true;                       
     542#endif
    536543                        // found a meta tag...
    537544                        //ptr += 5;
     
    544551                        //if( (pos = str.find("http-equiv", pos)) == -1) break;
    545552                        //if( (pos = str.find("content-type", pos)) == -1) break;
    546             while( pos < ( int ) str.length() ) {
    547                 if( (pos = str.find("charset", pos, false)) == -1) break;
    548                 pos += 7;
     553                        while( pos < ( int ) str.length() ) {
     554                            if( (pos = str.find("charset", pos, false)) == -1) break;
     555                            pos += 7;
    549556                            // skip whitespace..
    550                 while(  pos < (int)str.length() && str[pos] <= ' ' ) pos++;
     557                            while(  pos < (int)str.length() && str[pos] <= ' ' ) pos++;
    551558                            if ( pos == ( int )str.length()) break;
    552559                            if ( str[pos++] != '=' ) continue;
    553560                            while ( pos < ( int )str.length() &&
    554                                     ( str[pos] <= ' ' ) || str[pos] == '=' || str[pos] == '"' || str[pos] == '\'')
    555                 pos++;
    556 
     561                                ( str[pos] <= ' ' ) || str[pos] == '=' || str[pos] == '"' || str[pos] == '\'')
     562                                pos++;
     563                           
    557564                            // end ?
    558565                            if ( pos == ( int )str.length() ) break;
    559                 uint endpos = pos;
    560                 while( endpos < str.length() &&
    561                                    (str[endpos] != ' ' && str[endpos] != '"' && str[endpos] != '\''
    562                                     && str[endpos] != ';' && str[endpos] != '>') )
    563                 endpos++;
    564 #ifdef DECODE_DEBUG
    565                 kdDebug( 6005 ) << "Decoder: found charset: " << str.mid(pos, endpos-pos) << endl;
    566 #endif
    567                 setEncoding(str.mid(pos, endpos-pos), EncodingFromMetaTag);
    568                 if( m_type == EncodingFromMetaTag ) goto found;
    569 
     566                            uint endpos = pos;
     567                            while( endpos < str.length() &&
     568                                (str[endpos] != ' ' && str[endpos] != '"' && str[endpos] != '\''
     569                                && str[endpos] != ';' && str[endpos] != '>') )
     570                                endpos++;
     571#ifdef DECODE_DEBUG
     572                            kdDebug( 6005 ) << "Decoder: found charset: " << str.mid(pos, endpos-pos) << endl;
     573#endif
     574                            setEncoding(str.mid(pos, endpos-pos), EncodingFromMetaTag);
     575                            if( m_type == EncodingFromMetaTag ) goto found;
     576                           
    570577                            if ( endpos >= str.length() || str[endpos] == '/' || str[endpos] == '>' ) break;
    571 
    572                 pos = endpos + 1;
    573             }
    574             }
     578                           
     579                            pos = endpos + 1;
     580                            }
     581                        }
    575582                    case (ID_META+ID_CLOSE_TAG):
    576583                    case ID_SCRIPT:
     
    597604                        break;
    598605                    default:
     606#if NOKIA_CHANGES
     607                        if (hasMeta && !reachMeta)
     608                            break;
     609#endif
    599610                        body = true;
    600611#ifdef DECODE_DEBUG
  • S60/trunk/WebKit/BrowserCore/Renderers/src/ImageRenderer.cpp

    r18582 r19440  
    292292            // small masked scaled bitmaps at all. These are usually fully transparent.
    293293            // this avoid ugly pixels showing up in wrong places
     294            // Update: DrawBitmapMasked works with transparent 1 pix image if mask color mode
     295            // is EGray256.
    294296            TSize s(iParent->iBitmap->SizeInPixels());
    295             if (iParent->iBitmap->HasMask() && (s.iWidth==1&&s.iHeight==1))
     297            if (iParent->iBitmap->HasMask() && iParent->iBitmap->Mask().DisplayMode() == EGray2 && (s.iWidth==1&&s.iHeight==1))
    296298                {
    297299                return;
  • S60/trunk/WebKit/BrowserView/src/LoadListeners.cpp

    r18807 r19440  
    334334    CWebKitLoader* webKitLoader = iWebKitLoader;
    335335    // lock
     336    CWebKitFrame* frame = &(webKitLoader->WebKitBridge().Frame());
     337    // Quick fix around a WebCore bug that detaches the parent frame and then detaches the child frame again,
     338    // in cases where we have 3 levels of nested iframes, created by javascript
     339    webKitLoader->WebKitBridge().Frame().Ref();
    336340    webKitLoader->WebKitBridge().Frame().Ref();
    337341
     
    339343    webKitLoader->IncomingContentInfo( aTransactionId, ELoadComplete, ETrue, aResponse );
    340344    // unlock
    341     webKitLoader->WebKitBridge().Frame().Deref();
     345    frame->Deref();
     346    frame->Deref();
    342347    // reset errors
    343348    iIgnoreContent = EFalse;
     
    458463
    459464    // lock
     465    CWebKitFrame* frame = &(webKitLoader->WebKitBridge().Frame());
     466    // Quick fix around a WebCore bug that detaches the parent frame and then detaches the child frame again,
     467    // in cases where we have 3 levels of nested iframes, created by javascript
     468    webKitLoader->WebKitBridge().Frame().Ref();
    460469    webKitLoader->WebKitBridge().Frame().Ref();
    461470    if( aError == KErrNone && iError == KErrNone )
     
    473482    webKitLoader->IncomingContentInfo( aTransactionId, ELoadComplete, EFalse, aResponse );
    474483    // unlock
    475     webKitLoader->WebKitBridge().Frame().Deref();
     484    frame->Deref();
     485    frame->Deref();
    476486    }
    477487
  • S60/trunk/WebKit/BrowserView/src/WcSettingsController.cpp

    r14549 r19440  
    1111*    All rights reserved.
    1212
    13      Redistribution and use in source and binary forms, with or without
    14      modification, are permitted provided that the following conditions
    15      are met:
     13 Redistribution and use in source and binary forms, with or without
     14 modification, are permitted provided that the following conditions
     15 are met:
    1616
    1717*      * Redistributions of source code must retain the above copyright
     
    2525*        from this software without specific prior written permission.
    2626
    27      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    28      "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    29      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    30      A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    31      OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    32      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    33      LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    34      DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    35      THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    36      (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
    37      USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
    38      DAMAGE.
     27 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     28 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     29 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     30 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     31 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     32 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     33 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     34 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     35 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     36 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
     37 USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
     38 DAMAGE.
    3939
    4040*    Please see file patentlicense.txt for further grants.
     
    4848#include "TextRendererFactory.h"
    4949#include "WebKitView.h"
     50#include "WebKitControl.h"
    5051#include "WebKitFrame.h"
    5152#include "WebKitBridge.h"
     
    9798    iWebCoreSettings = CWebCoreSettings::NewL();
    9899    iTextRendererFactory = CTextRendererFactory::InstanceL();
    99         InitWCS();
     100    InitWCS();
    100101    }
    101102
     
    186187        case TBrCtlDefs::ESettingsCharacterset:
    187188            // SetWcsDefaultTextEncoding( enumerated charset in BrCtlDefs.h );
    188             break;
     189        break;
    189190        default:
    190191        ; // should not occur
     
    201202void CWcSettingsController::InitWCS( void )
    202203    {
     204    CWebKitControl& webKitControl(iWebKitFrame->WebKitView().WebKitControl());
    203205    SetWcsMinimumFontSize( KDefaultMinimumFontSize );
    204206    SetWcsMinimumLogicalFontSize( KDefaultMinimumLogicalFontSize );
    205     SetWcsDefaultFontSize( KDefaultDefaultFontSize );
     207    SetWcsDefaultFontSize( webKitControl.GetBrowserSettingL(TBrCtlDefs::ESettingsFontSize ));
    206208    SetWcsDefaultFixedFontSize( KDefaultDefaultFixedFontSize );
    207209    SetWcsJavaEnabled( KDefaultJavaEnabled );
    208     SetWcsPluginsEnabled( KDefaultPluginsEnabled );
    209     SetWcsJavaScriptEnabled( KDefaultJavaScriptEnabled );
    210     SetWcsAutoRefreshEnabled( KDefaultAutoRefreshEnabled );
     210    SetWcsPluginsEnabled( !webKitControl.GetBrowserSettingL(TBrCtlDefs::ESettingsDisableFlash ));
     211    SetWcsJavaScriptEnabled( webKitControl.GetBrowserSettingL(TBrCtlDefs::ESettingsECMAScriptEnabled ));
     212    SetWcsAutoRefreshEnabled( webKitControl.GetBrowserSettingL(TBrCtlDefs::ESettingsAutoRefresh ));
    211213    SetWcsJavaScriptCanOpenWindowsAutomatically( KDefaultJavaScriptCanOpenWindowsAutomatically );
    212     SetWcsWillLoadImagesAutomatically( KDefaultWillLoadImagesAutomatically );
     214    SetWcsWillLoadImagesAutomatically( webKitControl.GetBrowserSettingL(TBrCtlDefs::ESettingsAutoLoadImages ));
    213215    SetWcsShouldPrintBackgrounds( KDefaultShouldPrintBackgrounds );
    214216
    215217    TFileName KDefaultUserStyleSheetLocation;
    216218
    217         _LIT( KZDrive,"z:" );
    218 
    219         // _LIT(KDC_APP_RESOURCE_DIR,"\\resource\\apps\\uiresourcefiles\\");    //      Application resource (.rsc)
    220         _LIT( KFileName,"oem.css" );
     219    _LIT( KZDrive,"z:" );
     220
     221    // _LIT(KDC_APP_RESOURCE_DIR,"\\resource\\apps\\uiresourcefiles\\");    //  Application resource (.rsc)
     222    _LIT( KFileName,"oem.css" );
    221223
    222224    KDefaultUserStyleSheetLocation += KZDrive;
     
    401403
    402404TBool CWcSettingsController::WcsWillLoadImagesAutomatically()
    403         {
     405    {
    404406    return iWebCoreSettings->WillLoadImagesAutomatically();
    405         }
     407    }
    406408
    407409
  • S60/trunk/WebKit/BrowserView/src/WebKitLoader.cpp

    r19307 r19440  
    631631    {
    632632    CWmlResourceLoadListener* resLoadListener = NULL;
    633     if( !iCancelInPrgress )
     633    if( !iCancelInPrgress && !iWebKitControl->CancelInProgress() )
    634634        {
    635635        TInt status;
     
    669669// ----------------------------------------------------------------------------
    670670 TInt CWebKitLoader::LoadFavicon(const TDesC& aIconUrl)
    671   {
    672     TInt status( KErrNone );
    673   TBrCtlDefs::TBrCtlCacheMode cacheMode(TBrCtlDefs::ECacheModeNormal);
    674   cacheMode = iWebKitBridge->Frame().WebKitView().WebKitControl().CacheMode();
    675 
    676   if( !iIsSavedPage && (cacheMode != TBrCtlDefs::ECacheModeHistory) && (cacheMode != TBrCtlDefs::ECacheModeOnlyCache))
    677         {
    678         CUrlRequestInfo* requestInfo = CUrlRequestInfo::NewL();
    679         CleanupClosePushL( *requestInfo );
    680         requestInfo->SetUrlL( aIconUrl );
    681         requestInfo->SetTopLevel( EFalse );
    682         requestInfo->SetLoadType( EUrlRequestTypeImage );
    683 
    684         //set the cache mode for the favicon according to where the top level page was loaded
    685         TBrCtlDefs::TBrCtlCacheMode cacheModeFavicon (TBrCtlDefs::ECacheModeNormal);
    686         if(iLoadedFromCache)
    687             {
    688             cacheModeFavicon = TBrCtlDefs::ECacheModeOnlyCache;
    689             }
    690         requestInfo->SetCacheMode(cacheModeFavicon);
    691 
    692         MContentLoaderInterface* urlLoader;
    693 
    694         status = LoadPluginL(requestInfo, *iFaviconLoadListener, urlLoader );
    695 
    696         CleanupStack::Pop(); // requestInfo
    697         requestInfo->Close();
    698         }
    699     return status;
    700   }
     671     {
     672     TInt status( KErrNone );
     673     TBrCtlDefs::TBrCtlCacheMode cacheMode(TBrCtlDefs::ECacheModeNormal);
     674     cacheMode = iWebKitBridge->Frame().WebKitView().WebKitControl().CacheMode();
     675     
     676     if( !iCancelInPrgress && !iWebKitControl->CancelInProgress() )
     677         {
     678         if( !iIsSavedPage && (cacheMode != TBrCtlDefs::ECacheModeHistory) && (cacheMode != TBrCtlDefs::ECacheModeOnlyCache))
     679             {
     680             CUrlRequestInfo* requestInfo = CUrlRequestInfo::NewL();
     681             CleanupClosePushL( *requestInfo );
     682             requestInfo->SetUrlL( aIconUrl );
     683             requestInfo->SetTopLevel( EFalse );
     684             requestInfo->SetLoadType( EUrlRequestTypeImage );
     685             
     686             //set the cache mode for the favicon according to where the top level page was loaded
     687             TBrCtlDefs::TBrCtlCacheMode cacheModeFavicon (TBrCtlDefs::ECacheModeNormal);
     688             if(iLoadedFromCache)
     689                 {
     690                 cacheModeFavicon = TBrCtlDefs::ECacheModeOnlyCache;
     691                 }
     692             requestInfo->SetCacheMode(cacheModeFavicon);
     693             
     694             MContentLoaderInterface* urlLoader;
     695             
     696             status = LoadPluginL(requestInfo, *iFaviconLoadListener, urlLoader );
     697             
     698             CleanupStack::Pop(); // requestInfo
     699             requestInfo->Close();
     700             }
     701         }
     702     return status;
     703     }
    701704
    702705// ----------------------------------------------------------------------------
  • S60/trunk/WebKit/BrowserView/src/webkitbridge.cpp

    r19406 r19440  
    994994    Frame().WebKitView().WebKitControl().DocumentComplete();
    995995    // load favicon only for the top level frame
    996     if( !Frame().Parent() && iFrame->WebKitView().WebKitControl().BrCtl().Capabilities() & TBrCtlDefs::ECapabilityFavicon)
     996    if( (iFrame == &(iFrame->WebKitView().MainFrame())) && iFrame->WebKitView().WebKitControl().BrCtl().Capabilities() & TBrCtlDefs::ECapabilityFavicon)
    997997        {
    998998        TRAP_IGNORE(LoadFaviconL());
  • S60/trunk/WebKit/ChangeLog

    r19424 r19440  
     12007-02-05  yaharon  <yael.aharon@nokia.com>
     2
     3        Reviewed by Yongjun.
     4        DESC: [S60] OSS Browser crashes when accessing cnn.com, yahoo.com with Load images & sounds turned off.(SLON-6XY8JM )
     5        http://bugs.webkit.org/show_bug.cgi?id=12622
     6
     7        * BrowserView/src/LoadListeners.cpp:
     8        (CPageLoadListener::Complete):
     9        (CResourceLoadListener::Complete):
     10        * BrowserView/src/WcSettingsController.cpp:
     11        (CWcSettingsController::InitWCS):
     12        * BrowserView/src/webkitbridge.cpp:
     13        (CWebKitBridge::DocumentComplete):
     14
     152007-02-05  yongjzha  <yongjun.zhang@nokia.com>
     16
     17        Reviewed by Zalan
     18        DESC: allow drawing for 1px image with EGray256 mask.
     19        http://bugs.webkit.org/show_bug.cgi?id=12621
     20
     21        * BrowserCore/Renderers/src/ImageRenderer.cpp:
     22        (CImageRenderer::DrawImageInRect):
     23
     24vbradley, Reviewed by Yongjun.
     25        DESC: Fixed the stack size and pcre stack overflow. Limit the number
     26    recursions that are allowed in match().
     27        http://bugs.webkit.org/show_bug.cgi?id=12611
     28
     29        * group/webkit.mmp:
     30
     31bujtas, Reviewed by Yongjun.
     32        DESC: closing the window while the page is loading still crashes the browser. fix: do not let
     33        new transactions get sumbited while cancel is in progress       
     34       
     35        http://bugs.webkit.org/show_bug.cgi?id=12542
     36
     37        * BrowserView/src/WebKitLoader.cpp:
     38        (CWebKitLoader::LoadWmlResourceL):
     39        (CWebKitLoader::LoadFavicon):
     40        * ResourceLoader/src/UrlLoader.cpp:
     41        (CUrlLoader::RequestL):
     42        (CUrlLoader::CancelAllL):
     43
    144bujtas, reviewed by Yongjun.
    245        DESC: PartialImage() can end up in a dialog box which starts up a nested active scheduler JELE-6XSH3P
  • S60/trunk/WebKit/ResourceLoader/src/UrlLoader.cpp

    r16127 r19440  
    112112    // it's enough to check it only once per page
    113113    // as user cannot change settings during fetch
    114     if( aRequestInfo && aRequestInfo->TopLevel() )
    115         {
    116         TRAP_IGNORE(UpdateSessionFiltersL());
    117         // to avoid dead lock set pending num to 0
    118         // in case of top level load.
    119         iPendingTransList.Reset();
    120         iOutstandingTransNum = 0;
    121         iCancelAllInProgress = EFalse;
     114    if( aRequestInfo )
     115        {
     116        if (aRequestInfo->TopLevel())
     117            {
     118            TRAP_IGNORE(UpdateSessionFiltersL());
     119            // to avoid dead lock set pending num to 0
     120            // in case of top level load.
     121            iPendingTransList.Reset();
     122            iOutstandingTransNum = 0;
     123            iCancelAllInProgress = EFalse;
     124            }
     125        else if (iCancelAllInProgress)
     126            {
     127            // dont let non-toplevel loading through while cancelling
     128            return KErrCancel;
     129            }
    122130        }
    123131    //
     
    206214    pendTransIter.SetToFirst();
    207215    trans = pendTransIter++;
    208 
    209216    while( trans != NULL )
    210217        {
  • S60/trunk/WebKit/group/webkit.mmp

    r17905 r19440  
    5252CAPABILITY  CAP_GENERAL_DLL
    5353EPOCALLOWDLLDATA
     54// stack size 64K
     55epocstacksize 0x10000
    5456
    5557MACRO __OOM__
Note: See TracChangeset for help on using the changeset viewer.