Index: Source/core/frame/LocalFrame.cpp |
diff --git a/Source/core/frame/LocalFrame.cpp b/Source/core/frame/LocalFrame.cpp |
index f5a0e0366599c39e4b4a3ddcb51b16f1987cdc8a..1ee17fb47a82b66edad1cc260762b707e0735270 100644 |
--- a/Source/core/frame/LocalFrame.cpp |
+++ b/Source/core/frame/LocalFrame.cpp |
@@ -255,10 +255,18 @@ void LocalFrame::navigate(Document& originDocument, const KURL& url, bool lockBa |
void LocalFrame::reload(ReloadPolicy reloadPolicy, ClientRedirectPolicy clientRedirectPolicy) |
{ |
ASSERT(clientRedirectPolicy == NotClientRedirect || reloadPolicy == NormalReload); |
- if (clientRedirectPolicy == NotClientRedirect) |
- m_loader.reload(reloadPolicy); |
- else |
+ if (clientRedirectPolicy == NotClientRedirect) { |
+ if (!m_loader.currentItem()) |
+ return; |
+ FrameLoadType loadType = reloadPolicy == NormalReload ? |
+ FrameLoadTypeReload : FrameLoadTypeReloadFromOrigin; |
+ FrameLoadRequest request = FrameLoader::frameRequestForReload( |
+ m_loader.resourceRequestForReload(*this, loadType, KURL(), clientRedirectPolicy), |
+ clientRedirectPolicy); |
+ m_loader.load(request, loadType); |
+ } else { |
m_navigationScheduler.scheduleReload(); |
+ } |
} |
void LocalFrame::detach() |