diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
commit | 635860845790a19bf50bbc51ba8fb66a96dde068 (patch) | |
tree | ef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebKit/qt/WebCoreSupport | |
parent | 8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff) | |
download | external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.zip external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.gz external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.bz2 |
auto import from //depot/cupcake/@136594
Diffstat (limited to 'WebKit/qt/WebCoreSupport')
-rw-r--r-- | WebKit/qt/WebCoreSupport/ChromeClientQt.cpp | 55 | ||||
-rw-r--r-- | WebKit/qt/WebCoreSupport/ChromeClientQt.h | 3 | ||||
-rw-r--r-- | WebKit/qt/WebCoreSupport/EditorClientQt.cpp | 55 | ||||
-rw-r--r-- | WebKit/qt/WebCoreSupport/EditorClientQt.h | 1 | ||||
-rw-r--r-- | WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp | 125 | ||||
-rw-r--r-- | WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h | 9 |
6 files changed, 169 insertions, 79 deletions
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index 8a4de6b..c545769 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -37,10 +37,14 @@ #include "HitTestResult.h" #include "NotImplemented.h" #include "WindowFeatures.h" +#include "DatabaseTracker.h" +#include "SecurityOrigin.h" #include "qwebpage.h" #include "qwebpage_p.h" #include "qwebframe_p.h" +#include "qwebsecurityorigin.h" +#include "qwebsecurityorigin_p.h" #include <qtooltip.h> @@ -305,8 +309,8 @@ void ChromeClientQt::repaint(const IntRect& windowRect, bool contentChanged, boo if (view) { QRect rect(windowRect); rect = rect.intersected(QRect(QPoint(0, 0), m_webPage->viewportSize())); - if (!windowRect.isEmpty()) - view->update(windowRect); + if (!rect.isEmpty()) + view->update(rect); } emit m_webPage->repaintRequested(windowRect); } @@ -340,6 +344,11 @@ PlatformWidget ChromeClientQt::platformWindow() const return m_webPage->view(); } +void ChromeClientQt::contentsSizeChanged(Frame* frame, const IntSize& size) const +{ + emit QWebFramePrivate::kit(frame)->contentsSizeChanged(size); +} + void ChromeClientQt::mouseDidMoveOverElement(const HitTestResult& result, unsigned modifierFlags) { if (result.absoluteLinkURL() != lastHoverURL @@ -377,20 +386,46 @@ void ChromeClientQt::print(Frame *frame) emit m_webPage->printRequested(QWebFramePrivate::kit(frame)); } -void ChromeClientQt::exceededDatabaseQuota(Frame*, const String&) +void ChromeClientQt::exceededDatabaseQuota(Frame* frame, const String& databaseName) { - notImplemented(); + quint64 quota = QWebSettings::offlineStorageDefaultQuota(); +#if ENABLE(DATABASE) + if (!DatabaseTracker::tracker().hasEntryForOrigin(frame->document()->securityOrigin())) + DatabaseTracker::tracker().setQuota(frame->document()->securityOrigin(), quota); +#endif + emit m_webPage->databaseQuotaExceeded(QWebFramePrivate::kit(frame), databaseName); } void ChromeClientQt::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser) { - // FIXME: Support multiple files. - RefPtr<FileChooser> fileChooser = prpFileChooser; - QString suggestedFile = fileChooser->filenames()[0]; - QString file = m_webPage->chooseFile(QWebFramePrivate::kit(frame), suggestedFile); - if (!file.isEmpty()) - fileChooser->chooseFile(file); + bool supportMulti = m_webPage->supportsExtension(QWebPage::ChooseMultipleFilesExtension); + + if (fileChooser->allowsMultipleFiles() && supportMulti) { + QWebPage::ChooseMultipleFilesExtensionOption option; + option.parentFrame = QWebFramePrivate::kit(frame); + + if (!fileChooser->filenames().isEmpty()) + for (int i = 0; i < fileChooser->filenames().size(); ++i) + option.suggestedFileNames += fileChooser->filenames()[i]; + + QWebPage::ChooseMultipleFilesExtensionReturn output; + m_webPage->extension(QWebPage::ChooseMultipleFilesExtension, &option, &output); + + if (!output.fileNames.isEmpty()) { + Vector<String> names; + for (int i = 0; i < output.fileNames.count(); ++i) + names.append(output.fileNames.at(i)); + fileChooser->chooseFiles(names); + } + } else { + QString suggestedFile; + if (!fileChooser->filenames().isEmpty()) + suggestedFile = fileChooser->filenames()[0]; + QString file = m_webPage->chooseFile(QWebFramePrivate::kit(frame), suggestedFile); + if (!file.isEmpty()) + fileChooser->chooseFile(file); + } } } diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 440f29e..a13bb7c 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -106,6 +106,7 @@ namespace WebCore { virtual IntPoint screenToWindow(const IntPoint&) const; virtual IntRect windowToScreen(const IntRect&) const; virtual PlatformWidget platformWindow() const; + virtual void contentsSizeChanged(Frame*, const IntSize&) const; virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags); @@ -117,6 +118,8 @@ namespace WebCore { virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); + virtual void formStateDidChange(const Node*) { } + QWebPage* m_webPage; WebCore::KURL lastHoverURL; WebCore::String lastHoverTitle; diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index a25ff18..a688779 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -1,7 +1,8 @@ /* * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. + * Copyright (C) 2006, 2008 Apple Computer, Inc. + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) * * All rights reserved. * @@ -53,16 +54,11 @@ #define methodDebug() qDebug("EditorClientQt: %s", __FUNCTION__); static bool dumpEditingCallbacks = false; -static bool drt_run = false; static bool acceptsEditing = true; void QWEBKIT_EXPORT qt_dump_editing_callbacks(bool b) { dumpEditingCallbacks = b; } -void QWEBKIT_EXPORT qt_drt_run(bool b) -{ - drt_run = b; -} void QWEBKIT_EXPORT qt_dump_set_accepts_editing(bool b) { @@ -109,7 +105,7 @@ bool EditorClientQt::shouldDeleteRange(Range* range) bool EditorClientQt::shouldShowDeleteInterface(HTMLElement* element) { - if (drt_run) + if (QWebPagePrivate::drtRun) return element->className() == "needsDeletionUI"; return false; } @@ -246,7 +242,7 @@ bool EditorClientQt::selectWordBeforeMenuEvent() bool EditorClientQt::isEditable() { - return m_page->isEditable(); + return m_page->isContentEditable(); } void EditorClientQt::registerCommandForUndo(WTF::PassRefPtr<WebCore::EditCommand> cmd) @@ -333,6 +329,12 @@ bool EditorClientQt::smartInsertDeleteEnabled() return false; } +bool EditorClientQt::isSelectTrailingWhitespaceEnabled() +{ + notImplemented(); + return false; +} + void EditorClientQt::toggleContinuousSpellChecking() { notImplemented(); @@ -359,6 +361,20 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) // FIXME: refactor all of this to use Actions or something like them if (start->isContentEditable()) { +#ifndef QT_NO_SHORTCUT + QWebPage::WebAction action = QWebPagePrivate::editorActionForKeyEvent(kevent->qtEvent()); + if (action != QWebPage::NoWebAction) { + const char* cmd = QWebPagePrivate::editorCommandForWebActions(action); + // WebKit doesn't have enough information about mode to decide how commands that just insert text if executed via Editor should be treated, + // so we leave it upon WebCore to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated + // (e.g. Tab that inserts a Tab character, or Enter). + if (cmd && frame->editor()->command(cmd).isTextInsertion() + && kevent->type() == PlatformKeyboardEvent::RawKeyDown) + return; + + m_page->triggerAction(action); + } else +#endif // QT_NO_SHORTCUT switch (kevent->windowsVirtualKeyCode()) { #if QT_VERSION < 0x040500 case VK_RETURN: @@ -424,24 +440,9 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) case VK_B: frame->editor()->command("ToggleBold").execute(); break; - case VK_C: - frame->editor()->command("Copy").execute(); - break; case VK_I: frame->editor()->command("ToggleItalic").execute(); break; - case VK_V: - frame->editor()->command("Paste").execute(); - break; - case VK_X: - frame->editor()->command("Cut").execute(); - break; - case VK_Y: - frame->editor()->command("Redo").execute(); - break; - case VK_Z: - frame->editor()->command("Undo").execute(); - break; default: // catch combination AltGr+key or Ctrl+Alt+key if (kevent->type() != PlatformKeyboardEvent::KeyDown && kevent->altKey() && !kevent->text().isEmpty()) { @@ -453,6 +454,11 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) } else return; } } else { +#ifndef QT_NO_SHORTCUT + if (kevent->qtEvent() == QKeySequence::Copy) { + m_page->triggerAction(QWebPage::Copy); + } else +#endif // QT_NO_SHORTCUT switch (kevent->windowsVirtualKeyCode()) { case VK_UP: frame->editor()->command("MoveUp").execute(); @@ -480,9 +486,6 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event) case VK_A: frame->editor()->command("SelectAll").execute(); break; - case VK_C: case VK_X: - frame->editor()->command("Copy").execute(); - break; default: return; } diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.h b/WebKit/qt/WebCoreSupport/EditorClientQt.h index 35020b2..b39f02b 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.h +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.h @@ -48,6 +48,7 @@ public: virtual bool shouldDeleteRange(Range*); virtual bool shouldShowDeleteInterface(HTMLElement*); virtual bool smartInsertDeleteEnabled(); + virtual bool isSelectTrailingWhitespaceEnabled(); virtual bool isContinuousSpellCheckingEnabled(); virtual void toggleContinuousSpellChecking(); virtual bool isGrammarCheckingEnabled(); diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 6235ed6..af96201 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -3,6 +3,7 @@ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) * Copyright (C) 2008 Collabora Ltd. All rights reserved. + * Coypright (C) 2008 Holger Hans Peter Freyther * * All rights reserved. * @@ -197,12 +198,12 @@ bool FrameLoaderClientQt::hasWebView() const return true; } -void FrameLoaderClientQt::savePlatformDataToCachedPage(CachedPage*) +void FrameLoaderClientQt::savePlatformDataToCachedFrame(CachedFrame*) { notImplemented(); } -void FrameLoaderClientQt::transitionToCommittedFromCachedPage(CachedPage*) +void FrameLoaderClientQt::transitionToCommittedFromCachedFrame(CachedFrame*) { } @@ -211,28 +212,14 @@ void FrameLoaderClientQt::transitionToCommittedForNewPage() ASSERT(m_frame); ASSERT(m_webFrame); - Page* page = m_frame->page(); - ASSERT(page); - - bool isMainFrame = m_frame == page->mainFrame(); - - m_frame->setView(0); - - FrameView* frameView; - if (isMainFrame) - frameView = new FrameView(m_frame, m_webFrame->page()->viewportSize()); - else - frameView = new FrameView(m_frame); - - m_frame->setView(frameView); - // FrameViews are created with a ref count of 1. Release this ref since we've assigned it to frame. - frameView->deref(); - - if (m_webFrame && m_webFrame->page()) - m_webFrame->d->updateBackground(); - - if (m_frame->ownerRenderer()) - m_frame->ownerRenderer()->setWidget(frameView); + QBrush brush = m_webFrame->page()->palette().brush(QPalette::Base); + QColor backgroundColor = brush.style() == Qt::SolidPattern ? brush.color() : QColor(); + WebCore::FrameLoaderClient::transitionToCommittedForNewPage(m_frame, m_webFrame->page()->viewportSize(), + backgroundColor, !backgroundColor.alpha(), + m_webFrame->page()->fixedLayoutSize(), + m_webFrame->page()->useFixedLayout(), + (ScrollbarMode)m_webFrame->scrollBarPolicy(Qt::Horizontal), + (ScrollbarMode)m_webFrame->scrollBarPolicy(Qt::Vertical)); } @@ -370,6 +357,12 @@ void FrameLoaderClientQt::dispatchDidFinishDocumentLoad() if (dumpFrameLoaderCallbacks) printf("%s - didFinishDocumentLoadForFrame\n", qPrintable(drtDescriptionSuitableForTestResult(m_frame))); + if (QWebPagePrivate::drtRun) { + int unloadEventCount = m_frame->eventHandler()->pendingFrameUnloadEventCount(); + if (unloadEventCount) + printf("%s - has %u onunload handler(s)\n", qPrintable(drtDescriptionSuitableForTestResult(m_frame)), unloadEventCount); + } + if (m_frame->tree()->parent() || !m_webFrame) return; @@ -396,6 +389,10 @@ void FrameLoaderClientQt::dispatchDidFirstLayout() emit m_webFrame->initialLayoutCompleted(); } +void FrameLoaderClientQt::dispatchDidFirstVisuallyNonEmptyLayout() +{ + notImplemented(); +} void FrameLoaderClientQt::dispatchShow() { @@ -541,7 +538,9 @@ void FrameLoaderClientQt::frameLoadCompleted() void FrameLoaderClientQt::restoreViewState() { - notImplemented(); + if (!m_webFrame) + return; + emit m_webFrame->page()->restoreFrameStateRequested(m_webFrame); } @@ -621,11 +620,15 @@ void FrameLoaderClientQt::registerForIconNotification(bool) notImplemented(); } -void FrameLoaderClientQt::updateGlobalHistory(const WebCore::KURL& url) +void FrameLoaderClientQt::updateGlobalHistory() { QWebHistoryInterface *history = QWebHistoryInterface::defaultInterface(); if (history) - history->addHistoryEntry(url.prettyURL()); + history->addHistoryEntry(m_frame->loader()->documentLoader()->urlForHistory().prettyURL()); +} + +void FrameLoaderClientQt::updateGlobalHistoryForRedirectWithoutHistoryItem() +{ } bool FrameLoaderClientQt::shouldGoToHistoryItem(WebCore::HistoryItem *item) const @@ -636,7 +639,7 @@ bool FrameLoaderClientQt::shouldGoToHistoryItem(WebCore::HistoryItem *item) cons void FrameLoaderClientQt::saveViewStateToItem(WebCore::HistoryItem* item) { QWebHistoryItem historyItem(new QWebHistoryItemPrivate(item)); - emit m_webFrame->aboutToUpdateHistory(&historyItem); + emit m_webFrame->page()->saveFrameStateRequested(m_webFrame, &historyItem); } bool FrameLoaderClientQt::canCachePage() const @@ -785,6 +788,13 @@ void FrameLoaderClientQt::dispatchWillSendRequest(WebCore::DocumentLoader*, unsi //qDebug() << "FrameLoaderClientQt::dispatchWillSendRequest" << request.isNull() << request.url().string`(); } +bool +FrameLoaderClientQt::shouldUseCredentialStorage(DocumentLoader*, unsigned long) +{ + notImplemented(); + return false; +} + void FrameLoaderClientQt::dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long, const AuthenticationChallenge&) { notImplemented(); @@ -881,6 +891,12 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunc if (!page->d->acceptNavigationRequest(0, r, QWebPage::NavigationType(action.type()))) { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) m_frame->loader()->resetMultipleFormSubmissionProtection(); + + if (action.type() == NavigationTypeLinkClicked && r.url().hasFragment()) { + ResourceRequest emptyRequest; + m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); + } + slotCallPolicyFunction(PolicyIgnore); return; } @@ -902,6 +918,12 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun if (!page->d->acceptNavigationRequest(m_webFrame, r, QWebPage::NavigationType(action.type()))) { if (action.type() == NavigationTypeFormSubmitted || action.type() == NavigationTypeFormResubmitted) m_frame->loader()->resetMultipleFormSubmissionProtection(); + + if (action.type() == NavigationTypeLinkClicked && r.url().hasFragment()) { + ResourceRequest emptyRequest; + m_frame->loader()->activeDocumentLoader()->setLastCheckedRequest(emptyRequest); + } + slotCallPolicyFunction(PolicyIgnore); return; } @@ -944,13 +966,10 @@ PassRefPtr<Frame> FrameLoaderClientQt::createFrame(const KURL& url, const String RefPtr<Frame> childFrame = adoptRef(webFrame->d->frame); - // FIXME: All of the below should probably be moved over into WebCore - childFrame->tree()->setName(name); - m_frame->tree()->appendChild(childFrame); // ### set override encoding if we have one FrameLoadType loadType = m_frame->loader()->loadType(); - FrameLoadType childLoadType = FrameLoadTypeRedirectWithLockedHistory; + FrameLoadType childLoadType = FrameLoadTypeRedirectWithLockedBackForwardList; childFrame->loader()->loadURL(frameData.url, frameData.referrer, String(), childLoadType, 0, 0); @@ -985,7 +1004,7 @@ ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const if (PluginDatabase::installedPlugins()->isMIMETypeRegistered(mimeType)) return ObjectContentNetscapePlugin; - if (m_frame->page() && m_frame->page()->pluginData()->supportsMimeType(mimeType)) + if (m_frame->page() && m_frame->page()->pluginData() && m_frame->page()->pluginData()->supportsMimeType(mimeType)) return ObjectContentOtherPlugin; if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType)) @@ -1011,11 +1030,34 @@ class QtPluginWidget: public Widget { public: QtPluginWidget(QWidget* w = 0): Widget(w) {} + ~QtPluginWidget() + { + if (platformWidget()) + platformWidget()->deleteLater(); + } virtual void invalidateRect(const IntRect& r) { if (platformWidget()) platformWidget()->update(r); } + virtual void frameRectsChanged() + { + if (!platformWidget()) + return; + + IntRect windowRect = convertToContainingWindow(IntRect(0, 0, frameRect().width(), frameRect().height())); + platformWidget()->setGeometry(windowRect); + + ScrollView* parentScrollView = parent(); + if (!parentScrollView) + return; + + ASSERT(parentScrollView->isFrameView()); + IntRect clipRect(static_cast<FrameView*>(parentScrollView)->windowClipRect()); + clipRect.move(-windowRect.x(), -windowRect.y()); + clipRect.intersect(platformWidget()->rect()); + platformWidget()->setMask(QRegion(clipRect.x(), clipRect.y(), clipRect.width(), clipRect.height())); + } }; Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, Element* element, const KURL& url, const Vector<String>& paramNames, @@ -1042,12 +1084,12 @@ Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, Element* el QString urlStr(url.string()); QUrl qurl = urlStr; - QObject *object = 0; + QObject* object = 0; if (mimeType == "application/x-qt-plugin" || mimeType == "application/x-qt-styled-widget") { object = m_webFrame->page()->createPlugin(classid, qurl, params, values); #ifndef QT_NO_STYLE_STYLESHEET - QWidget *widget = qobject_cast<QWidget *>(object); + QWidget* widget = qobject_cast<QWidget*>(object); if (widget && mimeType == "application/x-qt-styled-widget") { QString styleSheet = element->getAttribute("style"); @@ -1077,12 +1119,15 @@ Widget* FrameLoaderClientQt::createPlugin(const IntSize& pluginSize, Element* el #endif if (object) { - QWidget *widget = qobject_cast<QWidget *>(object); - QWidget *view = m_webFrame->page()->view(); - if (widget && view) { - widget->setParent(view); - QtPluginWidget* w= new QtPluginWidget(); + QWidget* widget = qobject_cast<QWidget*>(object); + if (widget) { + QWidget* view = m_webFrame->page()->view(); + if (view) + widget->setParent(view); + QtPluginWidget* w = new QtPluginWidget(); w->setPlatformWidget(widget); + // Make sure it's invisible until properly placed into the layout + w->setFrameRect(IntRect(0, 0, 0, 0)); return w; } // FIXME: make things work for widgetless plugins as well diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h index 0156412..908d2aa 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h @@ -90,6 +90,7 @@ namespace WebCore { virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&); virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long, WebCore::ResourceRequest&, const WebCore::ResourceResponse&); + virtual bool shouldUseCredentialStorage(DocumentLoader*, unsigned long identifier); virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&); virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&); virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long, const WebCore::ResourceResponse&); @@ -113,6 +114,7 @@ namespace WebCore { virtual void dispatchDidFinishDocumentLoad(); virtual void dispatchDidFinishLoad(); virtual void dispatchDidFirstLayout(); + virtual void dispatchDidFirstVisuallyNonEmptyLayout(); virtual WebCore::Frame* dispatchCreatePage(); virtual void dispatchShow(); @@ -144,7 +146,8 @@ namespace WebCore { virtual void committedLoad(WebCore::DocumentLoader*, const char*, int); virtual void finishedLoading(DocumentLoader*); - virtual void updateGlobalHistory(const KURL&); + virtual void updateGlobalHistory(); + virtual void updateGlobalHistoryForRedirectWithoutHistoryItem(); virtual bool shouldGoToHistoryItem(HistoryItem*) const; virtual ResourceError cancelledError(const ResourceRequest&); @@ -175,8 +178,8 @@ namespace WebCore { virtual String userAgent(const WebCore::KURL&); - virtual void savePlatformDataToCachedPage(WebCore::CachedPage*); - virtual void transitionToCommittedFromCachedPage(WebCore::CachedPage*); + virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*); + virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*); virtual void transitionToCommittedForNewPage(); virtual bool canCachePage() const; |