diff options
Diffstat (limited to 'WebCore/loader')
-rw-r--r-- | WebCore/loader/EmptyClients.h | 2 | ||||
-rw-r--r-- | WebCore/loader/FrameLoader.cpp | 4 | ||||
-rw-r--r-- | WebCore/loader/FrameLoaderClient.h | 1 | ||||
-rw-r--r-- | WebCore/loader/HistoryController.cpp | 4 | ||||
-rw-r--r-- | WebCore/loader/ImageLoader.cpp | 2 | ||||
-rw-r--r-- | WebCore/loader/ProgressTracker.cpp | 12 |
6 files changed, 18 insertions, 7 deletions
diff --git a/WebCore/loader/EmptyClients.h b/WebCore/loader/EmptyClients.h index 5b24bd3..6004b55 100644 --- a/WebCore/loader/EmptyClients.h +++ b/WebCore/loader/EmptyClients.h @@ -150,6 +150,7 @@ public: #endif virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { } + virtual void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>) { } virtual void formStateDidChange(const Node*) { } @@ -301,6 +302,7 @@ public: virtual void didDisplayInsecureContent() { } virtual void didRunInsecureContent(SecurityOrigin*) { } virtual PassRefPtr<Frame> createFrame(const KURL&, const String&, HTMLFrameOwnerElement*, const String&, bool, int, int) { return 0; } + virtual void didTransferChildFrameToNewDocument() { } virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; } virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; } diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp index 514f98a..d28dc50 100644 --- a/WebCore/loader/FrameLoader.cpp +++ b/WebCore/loader/FrameLoader.cpp @@ -480,7 +480,9 @@ void FrameLoader::submitForm(const char* action, const String& url, PassRefPtr<F #endif String targetOrBaseTarget = target.isEmpty() ? m_frame->document()->baseTarget() : target; - Frame* targetFrame = findFrameForNavigation(targetOrBaseTarget); + Frame* targetFrame = m_frame->tree()->find(targetOrBaseTarget); + if (!shouldAllowNavigation(targetFrame)) + return; if (!targetFrame) { targetFrame = m_frame; frameRequest.setFrameName(targetOrBaseTarget); diff --git a/WebCore/loader/FrameLoaderClient.h b/WebCore/loader/FrameLoaderClient.h index 2668958..4f78805 100644 --- a/WebCore/loader/FrameLoaderClient.h +++ b/WebCore/loader/FrameLoaderClient.h @@ -219,6 +219,7 @@ namespace WebCore { virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) = 0; + virtual void didTransferChildFrameToNewDocument() = 0; virtual PassRefPtr<Widget> createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) = 0; virtual void redirectDataToPlugin(Widget* pluginWidget) = 0; diff --git a/WebCore/loader/HistoryController.cpp b/WebCore/loader/HistoryController.cpp index 43c9979..55b68dc 100644 --- a/WebCore/loader/HistoryController.cpp +++ b/WebCore/loader/HistoryController.cpp @@ -109,6 +109,10 @@ void HistoryController::updateBackForwardListForFragmentScroll() // Since the document isn't changed as a result of a fragment scroll, we should // preserve the DocumentSequenceNumber of the previous item. + if (!m_previousItem) + return; + + ASSERT(m_currentItem); m_currentItem->setDocumentSequenceNumber(m_previousItem->documentSequenceNumber()); } diff --git a/WebCore/loader/ImageLoader.cpp b/WebCore/loader/ImageLoader.cpp index c61d133..929b28a 100644 --- a/WebCore/loader/ImageLoader.cpp +++ b/WebCore/loader/ImageLoader.cpp @@ -230,7 +230,7 @@ void ImageLoader::updateRenderer() // is a complete image. This prevents flickering in the case where a dynamic // change is happening between two images. CachedImage* cachedImage = imageRenderer->cachedImage(); - if (m_image != cachedImage && (m_imageComplete || !imageRenderer->cachedImage())) + if (m_image != cachedImage && (m_imageComplete || !cachedImage)) imageRenderer->setCachedImage(m_image.get()); } } diff --git a/WebCore/loader/ProgressTracker.cpp b/WebCore/loader/ProgressTracker.cpp index 0c9f2fb..458de68 100644 --- a/WebCore/loader/ProgressTracker.cpp +++ b/WebCore/loader/ProgressTracker.cpp @@ -26,10 +26,12 @@ #include "config.h" #include "ProgressTracker.h" +#include "CString.h" #include "DocumentLoader.h" #include "Frame.h" #include "FrameLoader.h" #include "FrameLoaderClient.h" +#include "Logging.h" #include "ResourceResponse.h" #include <wtf/CurrentTime.h> @@ -97,7 +99,7 @@ void ProgressTracker::reset() void ProgressTracker::progressStarted(Frame* frame) { - // LOG (Progress, "frame %p(%@), _private->numProgressTrackedFrames %d, _private->originatingProgressFrame %p", frame, [frame name], _private->numProgressTrackedFrames, _private->originatingProgressFrame); + LOG(Progress, "Progress started (%p) - frame %p(\"%s\"), value %f, tracked frames %d, originating frame %p", this, frame, frame->tree()->name().string().utf8().data(), m_progressValue, m_numProgressTrackedFrames, m_originatingProgressFrame.get()); frame->loader()->client()->willChangeEstimatedProgress(); @@ -115,7 +117,7 @@ void ProgressTracker::progressStarted(Frame* frame) void ProgressTracker::progressCompleted(Frame* frame) { - // LOG (Progress, "frame %p(%@), _private->numProgressTrackedFrames %d, _private->originatingProgressFrame %p", frame, [frame name], _private->numProgressTrackedFrames, _private->originatingProgressFrame); + LOG(Progress, "Progress completed (%p) - frame %p(\"%s\"), value %f, tracked frames %d, originating frame %p", this, frame, frame->tree()->name().string().utf8().data(), m_progressValue, m_numProgressTrackedFrames, m_originatingProgressFrame.get()); if (m_numProgressTrackedFrames <= 0) return; @@ -132,7 +134,7 @@ void ProgressTracker::progressCompleted(Frame* frame) void ProgressTracker::finalProgressComplete() { - // LOG (Progress, ""); + LOG(Progress, "Final progress complete (%p)", this); RefPtr<Frame> frame = m_originatingProgressFrame.release(); @@ -151,7 +153,7 @@ void ProgressTracker::finalProgressComplete() void ProgressTracker::incrementProgress(unsigned long identifier, const ResourceResponse& response) { - // LOG (Progress, "_private->numProgressTrackedFrames %d, _private->originatingProgressFrame %p", _private->numProgressTrackedFrames, _private->originatingProgressFrame); + LOG(Progress, "Progress incremented (%p) - value %f, tracked frames %d, originating frame %p", this, m_progressValue, m_numProgressTrackedFrames, m_originatingProgressFrame.get()); if (m_numProgressTrackedFrames <= 0) return; @@ -214,7 +216,7 @@ void ProgressTracker::incrementProgress(unsigned long identifier, const char*, i double now = currentTime(); double notifiedProgressTimeDelta = now - m_lastNotifiedProgressTime; - // LOG (Progress, "_private->progressValue %g, _private->numProgressTrackedFrames %d", _private->progressValue, _private->numProgressTrackedFrames); + LOG(Progress, "Progress incremented (%p) - value %f, tracked frames %d", this, m_progressValue, m_numProgressTrackedFrames); double notificationProgressDelta = m_progressValue - m_lastNotifiedProgressValue; if ((notificationProgressDelta >= m_progressNotificationInterval || notifiedProgressTimeDelta >= m_progressNotificationTimeInterval) && |