summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/WebFrameProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/WebFrameProxy.cpp')
-rw-r--r--Source/WebKit2/UIProcess/WebFrameProxy.cpp109
1 files changed, 4 insertions, 105 deletions
diff --git a/Source/WebKit2/UIProcess/WebFrameProxy.cpp b/Source/WebKit2/UIProcess/WebFrameProxy.cpp
index f60fab040..a57087c1f 100644
--- a/Source/WebKit2/UIProcess/WebFrameProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebFrameProxy.cpp
@@ -34,21 +34,16 @@
#include "WebPageProxy.h"
#include <WebCore/DOMImplementation.h>
#include <WebCore/Image.h>
+#include <WebCore/MIMETypeRegistry.h>
#include <stdio.h>
#include <wtf/text/WTFString.h>
using namespace WebCore;
-using namespace std;
namespace WebKit {
WebFrameProxy::WebFrameProxy(WebPageProxy* page, uint64_t frameID)
: m_page(page)
- , m_parentFrame(0)
- , m_nextSibling(0)
- , m_previousSibling(0)
- , m_firstChild(0)
- , m_lastChild(0)
, m_loadState(LoadStateFinished)
, m_isFrameSet(false)
, m_frameID(frameID)
@@ -64,11 +59,6 @@ WebFrameProxy::~WebFrameProxy()
void WebFrameProxy::disconnect()
{
m_page = 0;
- m_parentFrame = 0;
- m_nextSibling = 0;
- m_previousSibling = 0;
- m_firstChild = 0;
- m_lastChild = 0;
if (m_activeListener) {
m_activeListener->invalidate();
@@ -105,16 +95,7 @@ bool WebFrameProxy::canShowMIMEType(const String& mimeType) const
if (!m_page)
return false;
- if (m_page->canShowMIMEType(mimeType))
- return true;
-
-#if PLATFORM(MAC)
- // On Mac, we can show PDFs.
- if (!mimeType.isEmpty())
- return WebContext::pdfAndPostScriptMIMETypes().contains(mimeType) && !WebContext::omitPDFSupport();
-#endif
-
- return false;
+ return m_page->canShowMIMEType(mimeType);
}
bool WebFrameProxy::isDisplayingStandaloneImageDocument() const
@@ -125,8 +106,7 @@ bool WebFrameProxy::isDisplayingStandaloneImageDocument() const
bool WebFrameProxy::isDisplayingMarkupDocument() const
{
// FIXME: This check should be moved to somewhere in WebCore.
- // FIXME: This returns false when displaying a web archive.
- return m_MIMEType == "text/html" || m_MIMEType == "image/svg+xml" || DOMImplementation::isXMLMIMEType(m_MIMEType);
+ return m_MIMEType == "text/html" || m_MIMEType == "image/svg+xml" || m_MIMEType == "application/x-webarchive" || DOMImplementation::isXMLMIMEType(m_MIMEType);
}
bool WebFrameProxy::isDisplayingPDFDocument() const
@@ -134,12 +114,11 @@ bool WebFrameProxy::isDisplayingPDFDocument() const
if (m_MIMEType.isEmpty())
return false;
- return WebContext::pdfAndPostScriptMIMETypes().contains(m_MIMEType);
+ return MIMETypeRegistry::isPDFOrPostScriptMIMEType(m_MIMEType);
}
void WebFrameProxy::didStartProvisionalLoad(const String& url)
{
- ASSERT(m_loadState == LoadStateFinished);
ASSERT(m_provisionalURL.isEmpty());
m_loadState = LoadStateProvisional;
m_provisionalURL = url;
@@ -183,7 +162,6 @@ void WebFrameProxy::didFailLoad()
ASSERT(m_loadState == LoadStateCommitted);
ASSERT(m_provisionalURL.isEmpty());
m_loadState = LoadStateFinished;
- m_title = String();
}
void WebFrameProxy::didSameDocumentNavigation(const String& url)
@@ -196,85 +174,6 @@ void WebFrameProxy::didChangeTitle(const String& title)
m_title = title;
}
-void WebFrameProxy::appendChild(WebFrameProxy* child)
-{
- ASSERT(child->page() == page());
- ASSERT(!child->m_parentFrame);
- ASSERT(!child->m_nextSibling);
- ASSERT(!child->m_previousSibling);
-
- child->m_parentFrame = this;
-
- WebFrameProxy* oldLast = m_lastChild;
- m_lastChild = child;
-
- if (oldLast) {
- ASSERT(!oldLast->m_nextSibling);
- child->m_previousSibling = oldLast;
- oldLast->m_nextSibling = child;
- } else
- m_firstChild = child;
-}
-
-void WebFrameProxy::removeChild(WebFrameProxy* child)
-{
- child->m_parentFrame = 0;
-
- WebFrameProxy*& newLocationForNext = m_firstChild == child ? m_firstChild : child->m_previousSibling->m_nextSibling;
- WebFrameProxy*& newLocationForPrevious = m_lastChild == child ? m_lastChild : child->m_nextSibling->m_previousSibling;
- swap(newLocationForNext, child->m_nextSibling);
- swap(newLocationForPrevious, child->m_previousSibling);
- child->m_previousSibling = 0;
- child->m_nextSibling = 0;
-}
-
-bool WebFrameProxy::isDescendantOf(const WebFrameProxy* ancestor) const
-{
- if (!ancestor)
- return false;
-
- if (m_page != ancestor->m_page)
- return false;
-
- for (const WebFrameProxy* frame = this; frame; frame = frame->m_parentFrame) {
- if (frame == ancestor)
- return true;
- }
-
- return false;
-}
-
-void WebFrameProxy::dumpFrameTreeToSTDOUT(unsigned indent)
-{
- if (!indent && m_parentFrame)
- printf("NOTE: Printing subtree.\n");
-
- for (unsigned i = 0; i < indent; ++i)
- printf(" ");
- printf("| FRAME %d %s\n", (int)m_frameID, m_url.utf8().data());
-
- for (WebFrameProxy* child = m_firstChild; child; child = child->m_nextSibling)
- child->dumpFrameTreeToSTDOUT(indent + 4);
-}
-
-void WebFrameProxy::didRemoveFromHierarchy()
-{
- if (m_parentFrame)
- m_parentFrame->removeChild(this);
-}
-
-PassRefPtr<ImmutableArray> WebFrameProxy::childFrames()
-{
- if (!m_firstChild)
- return ImmutableArray::create();
-
- Vector<RefPtr<APIObject> > vector;
- for (WebFrameProxy* child = m_firstChild; child; child = child->m_nextSibling)
- vector.append(child);
-
- return ImmutableArray::adopt(vector);
-}
-
void WebFrameProxy::receivedPolicyDecision(WebCore::PolicyAction action, uint64_t listenerID)
{
if (!m_page)