diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/WebFrameProxy.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/WebFrameProxy.cpp | 109 |
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) |