summaryrefslogtreecommitdiffstats
path: root/WebKit/qt/WebCoreSupport
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
commit635860845790a19bf50bbc51ba8fb66a96dde068 (patch)
treeef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebKit/qt/WebCoreSupport
parent8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff)
downloadexternal_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.cpp55
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.h3
-rw-r--r--WebKit/qt/WebCoreSupport/EditorClientQt.cpp55
-rw-r--r--WebKit/qt/WebCoreSupport/EditorClientQt.h1
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp125
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h9
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;