From e1503159a6023b8eb39fbecadf6986c8ddd862e2 Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Fri, 5 Jun 2009 14:49:32 +0100 Subject: Check in patch for webkit bug 25710. History navigation by fragement breaks database transactions. https://bugs.webkit.org/show_bug.cgi?id=25710, landed to webkit in r44468 --- WebCore/loader/FrameLoader.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'WebCore/loader/FrameLoader.cpp') diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp index bfc2686..e5ce94a 100644 --- a/WebCore/loader/FrameLoader.cpp +++ b/WebCore/loader/FrameLoader.cpp @@ -619,7 +619,7 @@ void FrameLoader::submitForm(const char* action, const String& url, PassRefPtrdocument() && m_frame->document()->tokenizer()) m_frame->document()->tokenizer()->stopParsing(); @@ -660,7 +660,8 @@ void FrameLoader::stopLoading(bool sendUnload) cache()->loader()->cancelRequests(docLoader); #if ENABLE(DATABASE) - doc->stopDatabases(); + if (databasePolicy == DatabasePolicyStop) + doc->stopDatabases(); #endif } @@ -2713,7 +2714,7 @@ void FrameLoader::stopLoadingSubframes() child->loader()->stopAllLoaders(); } -void FrameLoader::stopAllLoaders() +void FrameLoader::stopAllLoaders(DatabasePolicy databasePolicy) { // If this method is called from within this method, infinite recursion can occur (3442218). Avoid this. if (m_inStopAllLoaders) @@ -2725,9 +2726,9 @@ void FrameLoader::stopAllLoaders() stopLoadingSubframes(); if (m_provisionalDocumentLoader) - m_provisionalDocumentLoader->stopLoading(); + m_provisionalDocumentLoader->stopLoading(databasePolicy); if (m_documentLoader) - m_documentLoader->stopLoading(); + m_documentLoader->stopLoading(databasePolicy); setProvisionalDocumentLoader(0); -- cgit v1.1