Changeset 19406 for S60/trunk/WebCore
- Timestamp:
- 02/05/07 09:24:12 (2 years ago)
- Location:
- S60/trunk/WebCore
- Files:
-
- 6 modified
-
ChangeLog (modified) (1 diff)
-
bridge/WebCoreBridge.cpp (modified) (2 diffs)
-
bridge/WebCoreImageRendererFactory.h (modified) (2 diffs)
-
khtml/khtml_part.cpp (modified) (1 diff)
-
khtml/xml/dom_docimpl.cpp (modified) (1 diff)
-
khtml/xml/dom_docimpl.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
S60/trunk/WebCore/ChangeLog
r19368 r19406 1 bujtas, merged of r19405 to s60/trunk by mbradley, reviewed by yongjun. 2 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 3 fix: 4 1. cancel parsing when the document is being closed 5 2. flush static image decoder queue. remove images associated with the the view being destroyed 6 7 http://bugs.webkit.org/show_bug.cgi?id=12542 8 9 * bridge/WebCoreBridge.cpp: 10 (CWebCoreBridge::RemoveFromFrame): 11 * bridge/WebCoreImageRendererFactory.h: 12 * khtml/khtml_part.cpp: 13 (KHTMLPart::clear): 14 * khtml/xml/dom_docimpl.cpp: 15 (DocumentImpl::cancelParsing): 16 * khtml/xml/dom_docimpl.h: 17 1 18 bujtas, Reviewed by yongjun. 2 19 DESC: browser crashes on www.tays.fi. when multiple layers are referring to the same background image, the render_object does not do proper deref on the image. -
S60/trunk/WebCore/bridge/WebCoreBridge.cpp
r19307 r19406 83 83 84 84 #include "WebCoreImageRenderer.h" 85 #include "WebCoreImageRendererFactory.h" 85 86 //#include "WebCoreTextRendererFactory.h" 86 87 //#include "WebCoreViewFactory.h" … … 870 871 iPart->view()->setView(0); 871 872 iPart->setView(0); 872 873 873 // tell image renderers this frame does not exist any more 874 MWebCoreScrollView* view = &Client().DocumentView(); 875 QDictIterator<khtml::CachedObject> it( *khtml::Cache::cache ); 876 khtml::CachedObject* o = 0; 877 while( ( o = it.current() ) != NULL ) { 878 if( o->type() == khtml::CachedObject::Image ) { 879 const QPixmap& pm = static_cast<khtml::CachedImage *>(o)->pixmap(); 880 if (pm.image()) 881 pm.image()->RemoveFromScrollView(view); 882 } 883 ++it; 884 } 874 TWebCoreImageRendererFactory::Factory()->RemoveImagesInView( Client().DocumentView() ); 885 875 } 886 876 -
S60/trunk/WebCore/bridge/WebCoreImageRendererFactory.h
r14549 r19406 43 43 44 44 class MWebCoreImageRenderer; 45 class MWebCoreScrollView; 45 46 46 47 // CLASS DECLARATION … … 61 62 virtual MWebCoreImageRenderer* ImageRendererWithName(const TDesC& aName) = 0; 62 63 virtual CArrayFix<TPtrC>* SupportedMIMETypes() = 0; 64 virtual void RemoveImagesInView(MWebCoreScrollView& aView) = 0; 63 65 // virtual int CGCompositeOperationInContext((CGContextRef)context); 64 66 // virtual void setCGCompositeOperation((int)op, (CGContextRef)context ) = 0; -
S60/trunk/WebCore/khtml/khtml_part.cpp
r18935 r19406 1095 1095 1096 1096 1097 if ( d->m_doc ) 1098 d->m_doc->detach(); 1099 1097 if ( d->m_doc ) { 1098 d->m_doc->cancelParsing(); 1099 d->m_doc->detach(); 1100 } 1100 1101 // Moving past doc so that onUnload works. 1101 1102 if ( d->m_jscript ) -
S60/trunk/WebCore/khtml/xml/dom_docimpl.cpp
r16142 r19406 1509 1509 } 1510 1510 1511 void DocumentImpl::cancelParsing() 1512 { 1513 if (m_tokenizer) { 1514 // We have to clear the tokenizer to avoid possibly triggering 1515 // the onload handler when closing as a side effect of a cancel-style 1516 // change, such as opening a new document or closing the window while 1517 // still parsing 1518 delete m_tokenizer; 1519 m_tokenizer = 0; 1520 close(); 1521 } 1522 } 1523 1511 1524 void DocumentImpl::implicitOpen() 1512 1525 { -
S60/trunk/WebCore/khtml/xml/dom_docimpl.h
r16142 r19406 314 314 315 315 void open(); 316 void cancelParsing(); 316 317 void implicitOpen(); 317 318 void close();