summaryrefslogtreecommitdiffstats
path: root/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/WebFrame.cpp')
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebFrame.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp b/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
index fa4dc2c..574634f 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
@@ -335,7 +335,11 @@ String WebFrame::url() const
if (!m_coreFrame)
return String();
- return m_coreFrame->document()->url().string();
+ DocumentLoader* documentLoader = m_coreFrame->loader()->documentLoader();
+ if (!documentLoader)
+ return String();
+
+ return documentLoader->url().string();
}
String WebFrame::innerText() const
@@ -611,7 +615,12 @@ String WebFrame::suggestedFilenameForResourceWithURL(const KURL& url) const
DocumentLoader* loader = m_coreFrame->loader()->documentLoader();
if (!loader)
return String();
-
+
+ // First, try the main resource.
+ if (loader->url() == url)
+ return loader->response().suggestedFilename();
+
+ // Next, try subresources.
RefPtr<ArchiveResource> resource = loader->subresource(url);
if (!resource)
return String();
@@ -627,7 +636,12 @@ String WebFrame::mimeTypeForResourceWithURL(const KURL& url) const
DocumentLoader* loader = m_coreFrame->loader()->documentLoader();
if (!loader)
return String();
-
+
+ // First, try the main resource.
+ if (loader->url() == url)
+ return loader->response().mimeType();
+
+ // Next, try subresources.
RefPtr<ArchiveResource> resource = loader->subresource(url);
if (resource)
return resource->mimeType();