Changeset 111272 in webkit
- Timestamp:
- Mar 19, 2012 4:59:07 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r111271 r111272 1 2012-03-19 Brady Eidson <beidson@apple.com> 2 3 <rdar://problem/10917120> and https://bugs.webkit.org/show_bug.cgi?id=81066 4 Crash in 3rd party WebKit apps under XHR/Cache code 5 6 Reviewed by Antti Koivisto. 7 8 No new layout tests. 9 TestWebKitAPI test MemoryCachePruneWithinResourceLoadDelegate included 10 11 A CachedResource representing an XHR was being deleted by cache pruning during a delegate callback. 12 This worked until http://trac.webkit.org/changeset/98380 13 14 * history/PageCache.cpp: 15 (WebCore::PageCache::releaseAutoreleasedPagesNow): Only trigger pruning after the page cache 16 autorelease if it was enabled before. 17 18 * loader/cache/CachedResourceLoader.cpp: 19 (WebCore::CachedResourceLoader::loadResource): Disable pruning before loading the resource and 20 re-enable it afterwards if necessary. 21 22 * loader/cache/MemoryCache.h: 23 (WebCore::MemoryCache::pruneEnabled): 24 1 25 2012-03-19 Anders Carlsson <andersca@apple.com> 2 26 -
trunk/Source/WebCore/history/PageCache.cpp
r110998 r111272 504 504 505 505 // Postpone dead pruning until all our resources have gone dead. 506 bool pruneWasEnabled = memoryCache()->pruneEnabled(); 506 507 memoryCache()->setPruneEnabled(false); 507 508 … … 514 515 515 516 // Now do the prune. 516 memoryCache()->setPruneEnabled(true); 517 memoryCache()->prune(); 517 if (pruneWasEnabled) { 518 memoryCache()->setPruneEnabled(true); 519 memoryCache()->prune(); 520 } 518 521 } 519 522 -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r110676 r111272 509 509 510 510 resource->setLoadPriority(priority); 511 512 bool wasPruneEnabled = memoryCache()->pruneEnabled(); 513 memoryCache()->setPruneEnabled(false); 511 514 resource->load(this, options); 515 memoryCache()->setPruneEnabled(wasPruneEnabled); 512 516 513 517 if (!inCache) { -
trunk/Source/WebCore/loader/cache/MemoryCache.h
r111089 r111272 130 130 131 131 void setPruneEnabled(bool enabled) { m_pruneEnabled = enabled; } 132 bool pruneEnabled() const { return m_pruneEnabled; } 132 133 void prune(); 133 134 void pruneToPercentage(float targetPercentLive); -
trunk/Tools/ChangeLog
r111267 r111272 1 2012-03-19 Brady Eidson <beidson@apple.com> 2 3 <rdar://problem/10917120> and https://bugs.webkit.org/show_bug.cgi?id=81066 4 Crash in 3rd party WebKit apps under XHR/Cache code 5 6 Reviewed by Antti Koivisto. 7 8 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 9 * TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.html: Added. 10 * TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.mm: Added. 11 (-[MemoryCachePruneTestResourceLoadDelegate webView:identifierForInitialRequest:fromDataSource:]): 12 (-[MemoryCachePruneTestResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]): 13 (-[MemoryCachePruneTestResourceLoadDelegate webView:resource:didFinishLoadingFromDataSource:]): 14 (-[MemoryCachePruneTestResourceLoadDelegate webView:resource:didFailLoadingWithError:fromDataSource:]): 15 (TestWebKitAPI): 16 (TestWebKitAPI::TEST): 17 1 18 2012-03-19 Brady Eidson <beidson@apple.com> 2 19 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r111267 r111272 41 41 5142B2711517C88B00C32B19 /* ContextMenuCanCopyURL.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5142B2701517C88B00C32B19 /* ContextMenuCanCopyURL.mm */; }; 42 42 5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */; }; 43 517E7DFC15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */; }; 44 517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */; }; 43 45 51FBBB4D1513D4E900822738 /* WebViewCanPasteURL.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51FBBB4C1513D4E900822738 /* WebViewCanPasteURL.mm */; }; 44 46 520BCF4C141EB09E00937EA8 /* WebArchive_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 520BCF4A141EB09E00937EA8 /* WebArchive_Bundle.cpp */; }; … … 162 164 files = ( 163 165 5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */, 166 517E7E04151119C100D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html in Copy Resources */, 164 167 379028B914FAC24C007E6B43 /* acceptsFirstMouse.html in Copy Resources */, 165 168 33DC8912141955FE00747EF7 /* simple-iframe.html in Copy Resources */, … … 220 223 5142B2701517C88B00C32B19 /* ContextMenuCanCopyURL.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextMenuCanCopyURL.mm; sourceTree = "<group>"; }; 221 224 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ContextMenuCanCopyURL.html; sourceTree = "<group>"; }; 225 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MemoryCachePruneWithinResourceLoadDelegate.mm; sourceTree = "<group>"; }; 226 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = MemoryCachePruneWithinResourceLoadDelegate.html; sourceTree = "<group>"; }; 222 227 51FBBB4C1513D4E900822738 /* WebViewCanPasteURL.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebViewCanPasteURL.mm; sourceTree = "<group>"; }; 223 228 520BCF4A141EB09E00937EA8 /* WebArchive_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebArchive_Bundle.cpp; sourceTree = "<group>"; }; … … 600 605 939BA91614103412001A01BD /* DeviceScaleFactorOnBack.mm */, 601 606 C507E8A614C6545B005D6B3B /* InspectorBar.mm */, 607 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */, 602 608 3722C8681461E03E00C45D00 /* RenderedImageFromDOMRange.mm */, 603 609 3799AD3914120A43005EB0C6 /* StringByEvaluatingJavaScriptFromString.mm */, … … 616 622 37DC678F140D7D3A00ABCCDB /* DOMRangeOfString.html */, 617 623 C07E6CB113FD738A0038B22B /* devicePixelRatio.html */, 624 517E7E031511187500D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.html */, 618 625 ); 619 626 name = Resources; … … 810 817 379028B614FABD92007E6B43 /* AcceptsFirstMouse.mm in Sources */, 811 818 3776BC63150946BC0043A66D /* DeviceScaleFactorInDashboardRegions.mm in Sources */, 819 517E7DFC15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm in Sources */, 812 820 51FBBB4D1513D4E900822738 /* WebViewCanPasteURL.mm in Sources */, 813 821 5142B2711517C88B00C32B19 /* ContextMenuCanCopyURL.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.