diff --git a/examples/widgets/browser/browsermainwindow.cpp b/examples/widgets/browser/browsermainwindow.cpp
index 9a22623141e1f19c1474c40939ac4471a2fbc622..b51df7a75fd7eb58379dde574a377fa4ef77fceb 100644
--- a/examples/widgets/browser/browsermainwindow.cpp
+++ b/examples/widgets/browser/browsermainwindow.cpp
@@ -291,6 +291,7 @@ void BrowserMainWindow::setupMenu()
 
     // Edit
     QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
+#if defined(QWEBENGINEPAGE_WEBACTION_UNDO)
     QAction *m_undo = editMenu->addAction(tr("&Undo"));
     m_undo->setShortcuts(QKeySequence::Undo);
     m_tabWidget->addWebAction(m_undo, QWebEnginePage::Undo);
@@ -308,6 +309,7 @@ void BrowserMainWindow::setupMenu()
     m_paste->setShortcuts(QKeySequence::Paste);
     m_tabWidget->addWebAction(m_paste, QWebEnginePage::Paste);
     editMenu->addSeparator();
+#endif
 
 #if defined(QWEBENGINEPAGE_FINDTEXT)
     QAction *m_find = editMenu->addAction(tr("&Find"));
diff --git a/examples/widgets/browser/tabwidget.cpp b/examples/widgets/browser/tabwidget.cpp
index 3c71b2d53590c2e727c8766a842491308a77894d..af18b5a37bcc495f044bfc59add443e99f6b304b 100644
--- a/examples/widgets/browser/tabwidget.cpp
+++ b/examples/widgets/browser/tabwidget.cpp
@@ -306,18 +306,26 @@ void TabWidget::currentChanged(int index)
 
     WebView *oldWebView = this->webView(m_lineEdits->currentIndex());
     if (oldWebView) {
+#if defined(QWEBENGINEVIEW_STATUSBARMESSAGE)
         disconnect(oldWebView, SIGNAL(statusBarMessage(QString)),
                 this, SIGNAL(showStatusBarMessage(QString)));
+#endif
+#if defined(QWEBENGINEVIEW_LINKHOVERED)
         disconnect(oldWebView->page(), SIGNAL(linkHovered(QString,QString,QString)),
                 this, SIGNAL(linkHovered(QString)));
+#endif
         disconnect(oldWebView, SIGNAL(loadProgress(int)),
                 this, SIGNAL(loadProgress(int)));
     }
 
+#if defined(QWEBENGINEVIEW_STATUSBARMESSAGE)
     connect(webView, SIGNAL(statusBarMessage(QString)),
             this, SIGNAL(showStatusBarMessage(QString)));
+#endif
+#if defined(QWEBENGINEVIEW_LINKHOVERED)
     connect(webView->page(), SIGNAL(linkHovered(QString,QString,QString)),
             this, SIGNAL(linkHovered(QString)));
+#endif
     connect(webView, SIGNAL(loadProgress(int)),
             this, SIGNAL(loadProgress(int)));
 
@@ -450,8 +458,10 @@ WebView *TabWidget::newTab(bool makeCurrent)
             this, SLOT(webViewLoadStarted()));
     connect(webView, SIGNAL(loadFinished(bool)),
             this, SLOT(webViewIconChanged()));
+#if defined(QWEBENGINEVIEW_ICONCHANGED)
     connect(webView, SIGNAL(iconChanged()),
             this, SLOT(webViewIconChanged()));
+#endif
     connect(webView, SIGNAL(titleChanged(QString)),
             this, SLOT(webViewTitleChanged(QString)));
     connect(webView, SIGNAL(urlChanged(QUrl)),
@@ -460,14 +470,22 @@ WebView *TabWidget::newTab(bool makeCurrent)
             this, SLOT(windowCloseRequested()));
     connect(webView->page(), SIGNAL(geometryChangeRequested(QRect)),
             this, SIGNAL(geometryChangeRequested(QRect)));
+#if defined(QWEBENGINEPAGE_PRINTREQUESTED)
     connect(webView->page(), SIGNAL(printRequested(QWebEngineFrame*)),
             this, SIGNAL(printRequested(QWebEngineFrame*)));
+#endif
+#if defined(QWEBENGINEPAGE_MENUBARVISIBILITYCHANGEREQUESTED)
     connect(webView->page(), SIGNAL(menuBarVisibilityChangeRequested(bool)),
             this, SIGNAL(menuBarVisibilityChangeRequested(bool)));
+#endif
+#if defined(QWEBENGINEPAGE_STATUSBARVISIBILITYCHANGEREQUESTED)
     connect(webView->page(), SIGNAL(statusBarVisibilityChangeRequested(bool)),
             this, SIGNAL(statusBarVisibilityChangeRequested(bool)));
+#endif
+#if defined(QWEBENGINEPAGE_TOOLBARVISIBILITYCHANGEREQUESTED)
     connect(webView->page(), SIGNAL(toolBarVisibilityChangeRequested(bool)),
             this, SIGNAL(toolBarVisibilityChangeRequested(bool)));
+#endif
     addTab(webView, tr("(Untitled)"));
     if (makeCurrent)
         setCurrentWidget(webView);
diff --git a/examples/widgets/browser/urllineedit.cpp b/examples/widgets/browser/urllineedit.cpp
index 47828d95f24fff5ea2f8dcc89cb5f50b8c623c69..306e56e9a6441daf1bfad2f0227d41a979da686a 100644
--- a/examples/widgets/browser/urllineedit.cpp
+++ b/examples/widgets/browser/urllineedit.cpp
@@ -276,8 +276,10 @@ void UrlLineEdit::setWebView(WebView *webView)
         this, SLOT(webViewUrlChanged(QUrl)));
     connect(webView, SIGNAL(loadFinished(bool)),
         this, SLOT(webViewIconChanged()));
+#if defined(QWEBENGINEVIEW_ICONCHANGED)
     connect(webView, SIGNAL(iconChanged()),
         this, SLOT(webViewIconChanged()));
+#endif
     connect(webView, SIGNAL(loadProgress(int)),
         this, SLOT(update()));
 }
diff --git a/examples/widgets/browser/webview.cpp b/examples/widgets/browser/webview.cpp
index 7eb08d6a33fca156e52ba710f0b417b42390e3c0..99ae2b09cf61eed7f59a1a4dae732dee752ba6fb 100644
--- a/examples/widgets/browser/webview.cpp
+++ b/examples/widgets/browser/webview.cpp
@@ -70,8 +70,10 @@ WebPage::WebPage(QObject *parent)
 #if defined(QWEBENGINEPAGE_SETNETWORKACCESSMANAGER)
     setNetworkAccessManager(BrowserApplication::networkAccessManager());
 #endif
+#if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)
     connect(this, SIGNAL(unsupportedContent(QNetworkReply*)),
             this, SLOT(handleUnsupportedContent(QNetworkReply*)));
+#endif
 }
 
 BrowserMainWindow *WebPage::mainWindow()
@@ -85,9 +87,9 @@ BrowserMainWindow *WebPage::mainWindow()
     return BrowserApplication::instance()->mainWindow();
 }
 
+#if defined(QWEBENGINEPAGE_ACCEPTNAVIGATIONREQUEST)
 bool WebPage::acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequest &request, NavigationType type)
 {
-#if defined(QWEBENGINEPAGE_ACCEPTNAVIGATIONREQUEST)
     // ctrl open in new tab
     // ctrl-shift open in new tab and select
     // ctrl-alt open in new window
@@ -114,9 +116,8 @@ bool WebPage::acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequ
     }
     m_loadingUrl = request.url();
     emit loadingUrl(m_loadingUrl);
-#endif
-    return QWebEnginePage::acceptNavigationRequest(frame, request, type);
 }
+#endif
 
 class PopupWindow : public QWidget {
     Q_OBJECT
@@ -195,9 +196,9 @@ QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, const QS
 }
 #endif // !defined(QT_NO_UITOOLS)
 
+#if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)
 void WebPage::handleUnsupportedContent(QNetworkReply *reply)
 {
-#if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)
     QString errorString = reply->errorString();
 
     if (m_loadingUrl != reply->url()) {
@@ -246,8 +247,8 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply)
     if (m_loadingUrl == reply->url()) {
         mainFrame()->setHtml(html, reply->url());
     }
-#endif
 }
+#endif
 
 
 WebView::WebView(QWidget* parent)
@@ -256,16 +257,20 @@ WebView::WebView(QWidget* parent)
     , m_page(new WebPage(this))
 {
     setPage(m_page);
+#if defined(QWEBENGINEPAGE_STATUSBARMESSAGE)
     connect(page(), SIGNAL(statusBarMessage(QString)),
             SLOT(setStatusBarText(QString)));
+#endif
     connect(this, SIGNAL(loadProgress(int)),
             this, SLOT(setProgress(int)));
     connect(this, SIGNAL(loadFinished(bool)),
             this, SLOT(loadFinished()));
     connect(page(), SIGNAL(loadingUrl(QUrl)),
             this, SIGNAL(urlChanged(QUrl)));
+#if defined(QWEBENGINEPAGE_DOWNLOADREQUESTED)
     connect(page(), SIGNAL(downloadRequested(QNetworkRequest)),
             this, SLOT(downloadRequested(QNetworkRequest)));
+#endif
 #if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)
     page()->setForwardUnsupportedContent(true);
 #endif
@@ -310,8 +315,10 @@ void WebView::wheelEvent(QWheelEvent *event)
 
 void WebView::openLinkInNewTab()
 {
+#if defined(QWEBENGINEPAGE_WEBACTION_OPENLINKINNEWWINDOW)
     m_page->m_openInNewTab = true;
     pageAction(QWebEnginePage::OpenLinkInNewWindow)->trigger();
+#endif
 }
 
 void WebView::setProgress(int progress)
diff --git a/examples/widgets/browser/webview.h b/examples/widgets/browser/webview.h
index 0dce3e029a7a9c759f7f1fac1d151f273a8b9669..4ef4d7e6a35cea95daf6947dae44d4f5efbcc62d 100644
--- a/examples/widgets/browser/webview.h
+++ b/examples/widgets/browser/webview.h
@@ -64,14 +64,18 @@ public:
     BrowserMainWindow *mainWindow();
 
 protected:
+#if defined(QWEBENGINEPAGE_ACCEPTNAVIGATIONREQUEST)
     bool acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequest &request, NavigationType type);
+#endif
     QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type);
 #if !defined(QT_NO_UITOOLS)
     QObject *createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
 #endif
 
 private slots:
+#if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)
     void handleUnsupportedContent(QNetworkReply *reply);
+#endif
 
 private:
     friend class WebView;
diff --git a/src/webenginewidgets/api/qwebenginehistoryinterface.h b/src/webenginewidgets/api/qwebenginehistoryinterface.h
index b8108c5166fe95367c7f71674bbb162563fc8bc9..f799bdae77a29d3fed4556a2cb18be2014471e77 100644
--- a/src/webenginewidgets/api/qwebenginehistoryinterface.h
+++ b/src/webenginewidgets/api/qwebenginehistoryinterface.h
@@ -30,15 +30,6 @@ QT_BEGIN_NAMESPACE
 
 class QWEBENGINEWIDGETS_EXPORT QWebEngineHistoryInterface : public QObject {
     Q_OBJECT
-public:
-    QWebEngineHistoryInterface(QObject *parent = 0);
-    ~QWebEngineHistoryInterface();
-
-    static void setDefaultInterface(QWebEngineHistoryInterface *defaultInterface);
-    static QWebEngineHistoryInterface *defaultInterface();
-
-    virtual bool historyContains(const QString &url) const = 0;
-    virtual void addHistoryEntry(const QString &url) = 0;
 };
 
 QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebengineinspector.h b/src/webenginewidgets/api/qwebengineinspector.h
index 9427b4e5cafa68eb6daada8457091da7a98d6b85..b3f87897cb24b7a695c926455ebf1593decae0c2 100644
--- a/src/webenginewidgets/api/qwebengineinspector.h
+++ b/src/webenginewidgets/api/qwebengineinspector.h
@@ -25,17 +25,8 @@
 
 QT_BEGIN_NAMESPACE
 
-class QWebEnginePage;
-class QWebEngineInspectorPrivate;
-
 class QWEBENGINEWIDGETS_EXPORT QWebEngineInspector : public QWidget {
     Q_OBJECT
-public:
-    QWebEngineInspector(QWidget* parent = 0);
-    ~QWebEngineInspector();
-
-    void setPage(QWebEnginePage* page);
-    QWebEnginePage* page() const;
 };
 
 QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 4d6a72fc40fa8eb0ed688dd50049740edcab1c15..6e158f3bd28e588d0c980df334644ccbcc628ec4 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -32,23 +32,14 @@
 #include <QtWidgets/qwidget.h>
 
 QT_BEGIN_NAMESPACE
-class QUndoStack;
 class QMenu;
-class QPrinter;
 
-// FIXME: Just forward-declare the to-be-removed frame and element classes for now.
+// FIXME: Just forward-declare the to-be-removed frame classe for now.
 // Referencing calls should be ported to be page-friendly or removed individually.
 class QWebEngineFrame;
-class QWebEngineElement;
-class QWebEngineElementCollection;
 
 class QWebEngineHistory;
-class QWebEngineHistoryItem;
 class QWebEnginePagePrivate;
-class QWebEnginePluginFactory;
-class QWebEngineSecurityOrigin;
-class QtViewportAttributesPrivate;
-class QWebEngineHitTestResultPrivate;
 
 namespace QtWebEnginePrivate {
 
@@ -67,497 +58,97 @@ private:
 }
 
 class QWEBENGINEWIDGETS_EXPORT QWebEngineHitTestResult {
-public:
-    QWebEngineHitTestResult();
-    QWebEngineHitTestResult(const QWebEngineHitTestResult &other);
-    QWebEngineHitTestResult &operator=(const QWebEngineHitTestResult &other);
-    ~QWebEngineHitTestResult();
-
-    bool isNull() const;
-
-    QPoint pos() const;
-    QRect boundingRect() const;
-    QWebEngineElement enclosingBlockElement() const;
-    QString title() const;
-
-    QString linkText() const;
-    QUrl linkUrl() const;
-    QUrl linkTitle() const;
-    QWebEngineFrame *linkTargetFrame() const;
-    QWebEngineElement linkElement() const;
-
-    QString alternateText() const; // for img, area, input and applet
-
-    QUrl imageUrl() const;
-    QPixmap pixmap() const;
-
-    bool isContentEditable() const;
-    bool isContentSelected() const;
-
-    QWebEngineElement element() const;
-
-    QWebEngineFrame *frame() const;
 };
 
 class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject {
     Q_OBJECT
-// Hack to avoid undefined symbols with properties until we have them implemented.
-#ifndef Q_MOC_RUN
-    Q_PROPERTY(bool modified READ isModified)
-    Q_PROPERTY(QString selectedText READ selectedText)
-    Q_PROPERTY(QString selectedHtml READ selectedHtml)
-    Q_PROPERTY(bool hasSelection READ hasSelection)
-    Q_PROPERTY(QSize viewportSize READ viewportSize WRITE setViewportSize)
-    Q_PROPERTY(QSize preferredContentsSize READ preferredContentsSize WRITE setPreferredContentsSize)
-    Q_PROPERTY(bool forwardUnsupportedContent READ forwardUnsupportedContent WRITE setForwardUnsupportedContent)
-    Q_PROPERTY(LinkDelegationPolicy linkDelegationPolicy READ linkDelegationPolicy WRITE setLinkDelegationPolicy)
-    Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
-    Q_PROPERTY(bool contentEditable READ isContentEditable WRITE setContentEditable)
-    Q_ENUMS(LinkDelegationPolicy NavigationType WebAction)
 
     // Ex-QWebFrame properties
-    Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false)
-    Q_PROPERTY(QUrl requestedUrl READ requestedUrl)
-    Q_PROPERTY(QUrl baseUrl READ baseUrl)
-    Q_PROPERTY(QIcon icon READ icon)
-    Q_PROPERTY(QSize contentsSize READ contentsSize)
-    Q_PROPERTY(QPoint scrollPosition READ scrollPosition WRITE setScrollPosition)
-    Q_PROPERTY(bool focus READ hasFocus)
-#endif
     Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor)
     Q_PROPERTY(QString title READ title)
     Q_PROPERTY(QUrl url READ url WRITE setUrl)
 
 public:
     enum NavigationType {
-        NavigationTypeLinkClicked,
-        NavigationTypeFormSubmitted,
-        NavigationTypeBackOrForward,
-        NavigationTypeReload,
-        NavigationTypeFormResubmitted,
-        NavigationTypeOther
     };
 
     enum WebAction {
         NoWebAction = - 1,
-
-        OpenLink,
-
-        OpenLinkInNewWindow,
-        OpenFrameInNewWindow,
-
-        DownloadLinkToDisk,
-        CopyLinkToClipboard,
-
-        OpenImageInNewWindow,
-        DownloadImageToDisk,
-        CopyImageToClipboard,
-
         Back,
         Forward,
         Stop,
         Reload,
-
-        Cut,
-        Copy,
-        Paste,
-
-        Undo,
-        Redo,
-        MoveToNextChar,
-        MoveToPreviousChar,
-        MoveToNextWord,
-        MoveToPreviousWord,
-        MoveToNextLine,
-        MoveToPreviousLine,
-        MoveToStartOfLine,
-        MoveToEndOfLine,
-        MoveToStartOfBlock,
-        MoveToEndOfBlock,
-        MoveToStartOfDocument,
-        MoveToEndOfDocument,
-        SelectNextChar,
-        SelectPreviousChar,
-        SelectNextWord,
-        SelectPreviousWord,
-        SelectNextLine,
-        SelectPreviousLine,
-        SelectStartOfLine,
-        SelectEndOfLine,
-        SelectStartOfBlock,
-        SelectEndOfBlock,
-        SelectStartOfDocument,
-        SelectEndOfDocument,
-        DeleteStartOfWord,
-        DeleteEndOfWord,
-
-        SetTextDirectionDefault,
-        SetTextDirectionLeftToRight,
-        SetTextDirectionRightToLeft,
-
-        ToggleBold,
-        ToggleItalic,
-        ToggleUnderline,
-
-        InspectElement,
-
-        InsertParagraphSeparator,
-        InsertLineSeparator,
-
-        SelectAll,
         ReloadAndBypassCache,
-
-        PasteAndMatchStyle,
-        RemoveFormat,
-
-        ToggleStrikethrough,
-        ToggleSubscript,
-        ToggleSuperscript,
-        InsertUnorderedList,
-        InsertOrderedList,
-        Indent,
-        Outdent,
-
-        AlignCenter,
-        AlignJustified,
-        AlignLeft,
-        AlignRight,
-
-        StopScheduledPageRefresh,
-
-        CopyImageUrlToClipboard,
-
-        OpenLinkInThisWindow,
-
         WebActionCount
     };
 
-    enum FindFlag {
-        FindBackward = 1,
-        FindCaseSensitively = 2,
-        FindWrapsAroundDocument = 4,
-        HighlightAllOccurrences = 8
-    };
-    Q_DECLARE_FLAGS(FindFlags, FindFlag)
-
-    enum LinkDelegationPolicy {
-        DontDelegateLinks,
-        DelegateExternalLinks,
-        DelegateAllLinks
-    };
-
     enum WebWindowType {
         WebBrowserWindow,
         WebModalDialog
     };
 
-    enum PermissionPolicy {
-        PermissionUnknown,
-        PermissionGrantedByUser,
-        PermissionDeniedByUser
-    };
-
-    enum Feature {
-        Notifications,
-        Geolocation
-    };
-
     // Ex-QWebFrame enum
-    enum ValueOwnership {
-        QtOwnership,
-        ScriptOwnership,
-        AutoOwnership
-    };
 
     enum FileSelectionMode {
         FileSelectOpen,
         FileSelectOpenMultiple,
     };
 
-    class QWEBENGINEWIDGETS_EXPORT ViewportAttributes {
-    public:
-        ViewportAttributes();
-        ViewportAttributes(const QWebEnginePage::ViewportAttributes& other);
-
-        ~ViewportAttributes();
-
-        QWebEnginePage::ViewportAttributes& operator=(const QWebEnginePage::ViewportAttributes& other);
-
-        inline qreal initialScaleFactor() const { return m_initialScaleFactor; }
-        inline qreal minimumScaleFactor() const { return m_minimumScaleFactor; }
-        inline qreal maximumScaleFactor() const { return m_maximumScaleFactor; }
-        inline qreal devicePixelRatio() const { return m_devicePixelRatio; }
-        inline bool isUserScalable() const { return m_isUserScalable; }
-        inline bool isValid() const { return m_isValid; }
-        inline QSizeF size() const { return m_size; }
-
-    private:
-        QSharedDataPointer<QtViewportAttributesPrivate> d;
-        qreal m_initialScaleFactor;
-        qreal m_minimumScaleFactor;
-        qreal m_maximumScaleFactor;
-        qreal m_devicePixelRatio;
-        bool m_isUserScalable;
-        bool m_isValid;
-        QSizeF m_size;
-
-        friend class QWebEnginePage;
-    };
-
-
     explicit QWebEnginePage(QObject *parent = 0);
     ~QWebEnginePage();
-
-    QWebEngineFrame *mainFrame() const;
-    QWebEngineFrame *currentFrame() const;
-    QWebEngineFrame* frameAt(const QPoint& pos) const;
-
     QWebEngineHistory *history() const;
-    QWebEngineSettings *settings() const;
 
     void setView(QWidget *view);
     QWidget *view() const;
 
-    bool isModified() const;
-#ifndef QT_NO_UNDOSTACK
-    QUndoStack *undoStack() const;
-#endif
-
-    void setNetworkAccessManager(QNetworkAccessManager *manager);
-    QNetworkAccessManager *networkAccessManager() const;
-
-    void setPluginFactory(QWebEnginePluginFactory *factory);
-    QWebEnginePluginFactory *pluginFactory() const;
-
-    quint64 totalBytes() const;
-    quint64 bytesReceived() const;
-
-    bool hasSelection() const;
-    QString selectedText() const;
-    QString selectedHtml() const;
-
 #ifndef QT_NO_ACTION
     QAction *action(WebAction action) const;
 #endif
     virtual void triggerAction(WebAction action, bool checked = false);
 
-    QSize viewportSize() const;
-    void setViewportSize(const QSize &size) const;
-    ViewportAttributes viewportAttributesForSize(const QSize& availableSize) const;
-
-    QSize preferredContentsSize() const;
-    void setPreferredContentsSize(const QSize &size) const;
-    void setActualVisibleContentRect(const QRect& rect) const;
-
-    bool focusNextPrevChild(bool next);
-
-    QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
-
-    bool findText(const QString &subString, FindFlags options = 0);
-
-    void setForwardUnsupportedContent(bool forward);
-    bool forwardUnsupportedContent() const;
-
-    void setLinkDelegationPolicy(LinkDelegationPolicy policy);
-    LinkDelegationPolicy linkDelegationPolicy() const;
-
-    void setPalette(const QPalette &palette);
-    QPalette palette() const;
-
-    void setContentEditable(bool editable);
-    bool isContentEditable() const;
-
-#ifndef QT_NO_CONTEXTMENU
-    bool swallowContextMenuEvent(QContextMenuEvent *event);
-#endif
-    void updatePositionDependentActions(const QPoint &pos);
-
     QMenu *createStandardContextMenu();
 
-    void setFeaturePermission(QWebEngineFrame* frame, Feature feature, PermissionPolicy policy);
-
-    QStringList supportedContentTypes() const;
-    bool supportsContentType(const QString& mimeType) const;
-
     enum Extension {
-        ErrorPageExtension
     };
     class ExtensionOption
     {};
     class ExtensionReturn
     {};
 
-    enum ErrorDomain { QtNetwork, Http, WebKit };
-    class ErrorPageExtensionOption : public ExtensionOption {
-    public:
-        QUrl url;
-        QWebEngineFrame* frame;
-        ErrorDomain domain;
-        int error;
-        QString errorString;
-    };
-
-    class ErrorPageExtensionReturn : public ExtensionReturn {
-    public:
-        ErrorPageExtensionReturn() : contentType(QLatin1String("text/html")), encoding(QLatin1String("utf-8")) {};
-        QString contentType;
-        QString encoding;
-        QUrl baseUrl;
-        QByteArray content;
-    };
-
-
-    virtual bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0) { Q_UNUSED(extension); Q_UNUSED(option); Q_UNUSED(output); Q_UNREACHABLE(); return false; }
-    virtual bool supportsExtension(Extension extension) const { Q_UNUSED(extension); Q_UNREACHABLE(); return false; }
-
-    virtual bool shouldInterruptJavaScript() { Q_UNREACHABLE(); return false; }
-
     // Ex-QWebFrame methods
     void load(const QUrl &url);
-    void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray());
-    void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
-    void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
-
-    void addToJavaScriptWindowObject(const QString &name, QObject *object, ValueOwnership ownership = QtOwnership);
-    QString toHtml() const;
-    QString toPlainText() const;
 
     QString title() const;
     void setUrl(const QUrl &url);
     QUrl url() const;
-    QUrl requestedUrl() const;
-    QUrl baseUrl() const;
-    QIcon icon() const;
-    QMultiMap<QString, QString> metaData() const;
-
-    QString frameName() const;
-
-    QWebEngineFrame *parentFrame() const;
-    QList<QWebEngineFrame*> childFrames() const;
-
-    Qt::ScrollBarPolicy scrollBarPolicy(Qt::Orientation orientation) const;
-    void setScrollBarPolicy(Qt::Orientation orientation, Qt::ScrollBarPolicy policy);
-
-    void setScrollBarValue(Qt::Orientation orientation, int value);
-    int scrollBarValue(Qt::Orientation orientation) const;
-    int scrollBarMinimum(Qt::Orientation orientation) const;
-    int scrollBarMaximum(Qt::Orientation orientation) const;
-    QRect scrollBarGeometry(Qt::Orientation orientation) const;
-
-    void scroll(int, int);
-    QPoint scrollPosition() const;
-    void setScrollPosition(const QPoint &pos);
-
-    void scrollToAnchor(const QString& anchor);
-
-    enum RenderLayer {
-        ContentsLayer = 0x10,
-        ScrollBarLayer = 0x20,
-        PanIconLayer = 0x40,
-
-        AllLayers = 0xff
-    };
-    Q_DECLARE_FLAGS(RenderLayers, RenderLayer)
-
-    void render(QPainter*, const QRegion& clip = QRegion());
-    void render(QPainter*, RenderLayers layer, const QRegion& clip = QRegion());
-
-    void setTextSizeMultiplier(qreal factor);
-    qreal textSizeMultiplier() const;
 
     qreal zoomFactor() const;
     void setZoomFactor(qreal factor);
 
-    bool hasFocus() const;
-    void setFocus();
-
-    QPoint pos() const;
-    QRect geometry() const;
-    QSize contentsSize() const;
-
-    QWebEngineElement documentElement() const;
-    QWebEngineElementCollection findAllElements(const QString &selectorQuery) const;
-    QWebEngineElement findFirstElement(const QString &selectorQuery) const;
-
-    QWebEngineHitTestResult hitTestContent(const QPoint &pos) const;
-
-    QWebEngineSecurityOrigin securityOrigin() const;
-
     void runJavaScript(const QString& scriptSource, const QString &xPath = QString());
 
     template <typename F>
     void runJavaScript(const QString& scriptSource, F func, const QString &xPath = QString());
 
-public Q_SLOTS:
-    // Ex-QWebFrame slot
-#ifndef QT_NO_PRINTER
-    void print(QPrinter *printer) const { Q_UNUSED(printer); Q_UNREACHABLE(); }
-#endif
-
-
 Q_SIGNALS:
     void loadStarted();
     void loadProgress(int progress);
     void loadFinished(bool ok);
 
-    void linkHovered(const QString &link, const QString &title, const QString &textContent);
-    void statusBarMessage(const QString& text);
-    void selectionChanged();
-    void frameCreated(QWebEngineFrame *frame);
     void geometryChangeRequested(const QRect& geom);
-    void repaintRequested(const QRect& dirtyRect);
-    void scrollRequested(int dx, int dy, const QRect& scrollViewRect);
     void windowCloseRequested();
-    void printRequested(QWebEngineFrame *frame);
-    void linkClicked(const QUrl &url);
-
-    void toolBarVisibilityChangeRequested(bool visible);
-    void statusBarVisibilityChangeRequested(bool visible);
-    void menuBarVisibilityChangeRequested(bool visible);
-
-    void unsupportedContent(QNetworkReply *reply);
-    void downloadRequested(const QNetworkRequest &request);
-
-    void microFocusChanged();
-    void contentsChanged();
-    void databaseQuotaExceeded(QWebEngineFrame* frame, QString databaseName);
-    void applicationCacheQuotaExceeded(QWebEngineSecurityOrigin* origin, quint64 defaultOriginQuota, quint64 totalSpaceNeeded);
-
-    void saveFrameStateRequested(QWebEngineFrame* frame, QWebEngineHistoryItem* item);
-    void restoreFrameStateRequested(QWebEngineFrame* frame);
-
-    void viewportChangeRequested();
-
-    void featurePermissionRequested(QWebEngineFrame* frame, QWebEnginePage::Feature feature);
-    void featurePermissionRequestCanceled(QWebEngineFrame* frame, QWebEnginePage::Feature feature);
 
     // Ex-QWebFrame signals
-    void javaScriptWindowObjectCleared();
-
-    void provisionalLoad();
     void titleChanged(const QString &title);
     void urlChanged(const QUrl &url);
 
-    void initialLayoutCompleted();
-
-    void iconChanged();
-
-    void contentsSizeChanged(const QSize &size);
-
-    void pageChanged();
-
 protected:
     virtual QWebEnginePage *createWindow(WebWindowType type);
-    virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues) { Q_UNUSED(classid); Q_UNUSED(url); Q_UNUSED(paramNames); Q_UNUSED(paramValues); Q_UNREACHABLE(); return 0; }
 
-    virtual bool acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequest &request, NavigationType type) { Q_UNUSED(frame); Q_UNUSED(request); Q_UNUSED(type); Q_UNREACHABLE(); return false; }
     virtual QStringList chooseFiles(FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes);
     virtual void javaScriptAlert(QWebEngineFrame *originatingFrame, const QString& msg);
     virtual bool javaScriptConfirm(QWebEngineFrame *originatingFrame, const QString& msg);
     virtual bool javaScriptPrompt(QWebEngineFrame *originatingFrame, const QString& msg, const QString& defaultValue, QString* result);
-    virtual void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID) { Q_UNUSED(message); Q_UNUSED(lineNumber); Q_UNUSED(sourceID); Q_UNREACHABLE(); }
-
-    virtual QString userAgentForUrl(const QUrl& url) const { Q_UNUSED(url); Q_UNREACHABLE(); return QString(); }
 
 private:
     Q_DECLARE_PRIVATE(QWebEnginePage);
@@ -570,10 +161,6 @@ private:
     friend class QWebEngineViewPrivate;
 };
 
-Q_DECLARE_OPERATORS_FOR_FLAGS(QWebEnginePage::FindFlags);
-Q_DECLARE_OPERATORS_FOR_FLAGS(QWebEnginePage::RenderLayers);
-
-
 template <typename F>
 inline void QWebEnginePage::runJavaScript(const QString &scriptSource, F func, const QString &xPath)
 {
diff --git a/src/webenginewidgets/api/qwebenginesecurityorigin.h b/src/webenginewidgets/api/qwebenginesecurityorigin.h
index c943bec84fd68871b1d4df19542d88575668d64b..f372f52c97f9bdaf6a39c2ac2fac3a0c01fbec65 100644
--- a/src/webenginewidgets/api/qwebenginesecurityorigin.h
+++ b/src/webenginewidgets/api/qwebenginesecurityorigin.h
@@ -24,27 +24,8 @@
 #include <QtWebEngineWidgets/qtwebenginewidgetsglobal.h>
 
 QT_BEGIN_NAMESPACE
-class QWebEngineDatabase;
-class QWebEngineSecurityOriginPrivate;
 
 class QWEBENGINEWIDGETS_EXPORT QWebEngineSecurityOrigin {
-public:
-    static QList<QWebEngineSecurityOrigin> allOrigins();
-    static void addLocalScheme(const QString& scheme);
-    static void removeLocalScheme(const QString& scheme);
-    static QStringList localSchemes();
-
-    ~QWebEngineSecurityOrigin();
-
-    QString scheme() const;
-    QString host() const;
-    int port() const;
-
-    qint64 databaseUsage() const;
-    qint64 databaseQuota() const;
-    void setDatabaseQuota(qint64 quota);
-    void setApplicationCacheQuota(qint64 quota);
-    QList<QWebEngineDatabase> databases() const;
 };
 
 QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h
index 177a975fd95ff84e6fd63d7d86a46f0def533e27..13a7048c120050654e1c2020a6d25eef545602e6 100644
--- a/src/webenginewidgets/api/qwebenginesettings.h
+++ b/src/webenginewidgets/api/qwebenginesettings.h
@@ -22,147 +22,10 @@
 #define QWEBENGINESETTINGS_H
 
 #include <QtWebEngineWidgets/qtwebenginewidgetsglobal.h>
-#include <QtCore/qstring.h>
 
 QT_BEGIN_NAMESPACE
 
-class QIcon;
-class QPixmap;
-class QUrl;
-class QWebEngineSettingsPrivate;
-
 class QWEBENGINEWIDGETS_EXPORT QWebEngineSettings {
-public:
-    enum FontFamily {
-        StandardFont,
-        FixedFont,
-        SerifFont,
-        SansSerifFont,
-        CursiveFont,
-        FantasyFont
-    };
-    enum WebAttribute {
-        AutoLoadImages,
-        JavascriptEnabled,
-        JavaEnabled,
-        PluginsEnabled,
-        PrivateBrowsingEnabled,
-        JavascriptCanOpenWindows,
-        JavascriptCanAccessClipboard,
-        DeveloperExtrasEnabled,
-        LinksIncludedInFocusChain,
-        ZoomTextOnly,
-        PrintElementBackgrounds,
-        OfflineStorageDatabaseEnabled,
-        OfflineWebApplicationCacheEnabled,
-        LocalStorageEnabled,
-#if defined(QT_DEPRECATED) || defined(qdoc)
-        LocalStorageDatabaseEnabled = LocalStorageEnabled,
-#endif
-        LocalContentCanAccessRemoteUrls,
-        DnsPrefetchEnabled,
-        XSSAuditingEnabled,
-        AcceleratedCompositingEnabled,
-        SpatialNavigationEnabled,
-        LocalContentCanAccessFileUrls,
-        TiledBackingStoreEnabled,
-        FrameFlatteningEnabled,
-        SiteSpecificQuirksEnabled,
-        JavascriptCanCloseWindows,
-        WebGLEnabled,
-        CSSRegionsEnabled,
-        HyperlinkAuditingEnabled,
-        CSSGridLayoutEnabled,
-        ScrollAnimatorEnabled,
-        CaretBrowsingEnabled,
-        NotificationsEnabled
-    };
-    enum WebGraphic {
-        MissingImageGraphic,
-        MissingPluginGraphic,
-        DefaultFrameIconGraphic,
-        TextAreaSizeGripCornerGraphic,
-        DeleteButtonGraphic,
-        InputSpeechButtonGraphic,
-        SearchCancelButtonGraphic,
-        SearchCancelButtonPressedGraphic
-    };
-    enum FontSize {
-        MinimumFontSize,
-        MinimumLogicalFontSize,
-        DefaultFontSize,
-        DefaultFixedFontSize
-    };
-    enum ThirdPartyCookiePolicy {
-        AlwaysAllowThirdPartyCookies,
-        AlwaysBlockThirdPartyCookies,
-        AllowThirdPartyWithExistingCookies
-    };
-
-    static QWebEngineSettings *globalSettings();
-
-    void setFontFamily(FontFamily which, const QString &family);
-    QString fontFamily(FontFamily which) const;
-    void resetFontFamily(FontFamily which);
-
-    void setFontSize(FontSize type, int size);
-    int fontSize(FontSize type) const;
-    void resetFontSize(FontSize type);
-
-    void setAttribute(WebAttribute attr, bool on);
-    bool testAttribute(WebAttribute attr) const;
-    void resetAttribute(WebAttribute attr);
-
-    void setUserStyleSheetUrl(const QUrl &location);
-    QUrl userStyleSheetUrl() const;
-
-    void setDefaultTextEncoding(const QString &encoding);
-    QString defaultTextEncoding() const;
-
-    static void setIconDatabasePath(const QString &location);
-    static QString iconDatabasePath();
-    static void clearIconDatabase();
-    static QIcon iconForUrl(const QUrl &url);
-
-    //static QWebEnginePluginDatabase *pluginDatabase();
-
-    static void setWebGraphic(WebGraphic type, const QPixmap &graphic);
-    static QPixmap webGraphic(WebGraphic type);
-
-    static void setMaximumPagesInCache(int pages);
-    static int maximumPagesInCache();
-    static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
-
-    static void setOfflineStoragePath(const QString& path);
-    static QString offlineStoragePath();
-    static void setOfflineStorageDefaultQuota(qint64 maximumSize);
-    static qint64 offlineStorageDefaultQuota();
-
-    static void setOfflineWebApplicationCachePath(const QString& path);
-    static QString offlineWebApplicationCachePath();
-    static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
-    static qint64 offlineWebApplicationCacheQuota();
-
-    void setLocalStoragePath(const QString& path);
-    QString localStoragePath() const;
-
-    static void clearMemoryCaches();
-
-    static void enablePersistentStorage(const QString& path = QString());
-
-    void setThirdPartyCookiePolicy(ThirdPartyCookiePolicy);
-    QWebEngineSettings::ThirdPartyCookiePolicy thirdPartyCookiePolicy() const;
-
-    void setCSSMediaType(const QString&);
-    QString cssMediaType() const;
-
-private:
-    Q_DISABLE_COPY(QWebEngineSettings)
-
-    QWebEngineSettings();
-    ~QWebEngineSettings();
-
-    QWebEngineSettingsPrivate *d;
 };
 
 QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index 2c649d46f24d0e72c013b5bbfbbe07a5e4bf745e..a1621e714607daa4f52614c371204e74b15dde90 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -31,33 +31,16 @@
 
 QT_BEGIN_NAMESPACE
 class QContextMenuEvent;
-class QIcon;
-class QNetworkRequest;
-class QPrinter;
 class QUrl;
 class QWebEnginePage;
 class QWebEngineViewPrivate;
-class QWebEngineNetworkRequest;
 
 class QWEBENGINEWIDGETS_EXPORT QWebEngineView : public QWidget {
     Q_OBJECT
-// Hack to avoid undefined symbols with properties until we have them implemented.
-#ifndef Q_MOC_RUN
     Q_PROPERTY(QString title READ title)
     Q_PROPERTY(QUrl url READ url WRITE setUrl)
-    Q_PROPERTY(QIcon icon READ icon)
-    Q_PROPERTY(QString selectedText READ selectedText)
-    Q_PROPERTY(QString selectedHtml READ selectedHtml)
-    Q_PROPERTY(bool hasSelection READ hasSelection)
-    Q_PROPERTY(bool modified READ isModified)
-    //Q_PROPERTY(Qt::TextInteractionFlags textInteractionFlags READ textInteractionFlags WRITE setTextInteractionFlags)
-    Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false)
     Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor)
 
-    Q_PROPERTY(QPainter::RenderHints renderHints READ renderHints WRITE setRenderHints)
-    Q_FLAGS(QPainter::RenderHints)
-#endif
-
 public:
     explicit QWebEngineView(QWidget* parent = 0);
     virtual ~QWebEngineView();
@@ -66,66 +49,33 @@ public:
     void setPage(QWebEnginePage* page);
 
     void load(const QUrl& url);
-    void load(const QNetworkRequest& request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray());
-    void setHtml(const QString& html, const QUrl& baseUrl = QUrl());
-    void setContent(const QByteArray& data, const QString& mimeType = QString(), const QUrl& baseUrl = QUrl());
 
     QWebEngineHistory* history() const;
-    QWebEngineSettings* settings() const;
 
     QString title() const;
     void setUrl(const QUrl &url);
     QUrl url() const;
-    QIcon icon() const;
 
-    bool hasSelection() const;
-    QString selectedText() const;
-    QString selectedHtml() const;
 
 #ifndef QT_NO_ACTION
     QAction* pageAction(QWebEnginePage::WebAction action) const;
 #endif
     void triggerPageAction(QWebEnginePage::WebAction action, bool checked = false);
 
-    bool isModified() const;
-
-    /*
-    Qt::TextInteractionFlags textInteractionFlags() const;
-    void setTextInteractionFlags(Qt::TextInteractionFlags flags);
-    void setTextInteractionFlag(Qt::TextInteractionFlag flag);
-    */
-
     qreal zoomFactor() const;
     void setZoomFactor(qreal factor);
 
-    void setTextSizeMultiplier(qreal factor);
-    qreal textSizeMultiplier() const;
-
-    QPainter::RenderHints renderHints() const;
-    void setRenderHints(QPainter::RenderHints hints);
-    void setRenderHint(QPainter::RenderHint hint, bool enabled = true);
-
-    bool findText(const QString& subString, QWebEnginePage::FindFlags options = 0);
-
-    virtual QSize sizeHint() const { return QSize(800, 600); }
-
 public Q_SLOTS:
     void stop();
     void back();
     void forward();
     void reload();
 
-    void print(QPrinter*) const { }
-
 Q_SIGNALS:
     void loadStarted();
     void loadProgress(int progress);
     void loadFinished(bool);
     void titleChanged(const QString& title);
-    void statusBarMessage(const QString& text);
-    void linkClicked(const QUrl&);
-    void selectionChanged();
-    void iconChanged();
     void urlChanged(const QUrl&);
 
 protected:
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 6ca8e0d8e04f390e38342218355fb0993a9b3996..1c5fc6d8687e699e258cce0ceef0cc4f5bdf912e 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2726,6 +2726,7 @@ void tst_QWebEnginePage::defaultTextEncoding()
 #endif
 }
 
+#ifdef QWEBENGINESETTINGS_ERRORPAGEEXTENSION
 class ErrorPage : public QWebEnginePage
 {
 public:
@@ -2748,9 +2749,13 @@ public:
         return true;
     }
 };
+#endif
 
 void tst_QWebEnginePage::errorPageExtension()
 {
+#if !defined(QWEBENGINESETTINGS_ERRORPAGEEXTENSION)
+    QSKIP("QWEBENGINESETTINGS_ERRORPAGEEXTENSION");
+#else
     ErrorPage page;
     m_view->setPage(&page);
 
@@ -2783,6 +2788,7 @@ void tst_QWebEnginePage::errorPageExtension()
     QTRY_COMPARE(page.history()->currentItem().url(), QUrl("data:text/html,foo"));
 
     m_view->setPage(0);
+#endif
 }
 
 void tst_QWebEnginePage::errorPageExtensionInIFrames()
@@ -2828,6 +2834,9 @@ void tst_QWebEnginePage::errorPageExtensionInFrameset()
 
 void tst_QWebEnginePage::errorPageExtensionLoadFinished()
 {
+#if !defined(QWEBENGINESETTINGS_ERRORPAGEEXTENSION)
+    QSKIP("QWEBENGINESETTINGS_ERRORPAGEEXTENSION");
+#else
     ErrorPage page;
     m_view->setPage(&page);
 
@@ -2853,6 +2862,7 @@ void tst_QWebEnginePage::errorPageExtensionLoadFinished()
     QVERIFY(nonExistantFrameLoadSucceded);
 
     m_view->setPage(0);
+#endif
 }
 
 class FriendlyWebPage : public QWebEnginePage