diff --git a/src/core/clipboard_change_observer.h b/src/core/clipboard_change_observer.h
new file mode 100644
index 0000000000000000000000000000000000000000..f9b33fc932fca6afac0ae3f740ca0e647089e6ed
--- /dev/null
+++ b/src/core/clipboard_change_observer.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CLIPBOARD_CHANGE_OBSERVER_H
+#define CLIPBOARD_CHANGE_OBSERVER_H
+
+#include <QClipboard>
+#include <QMap>
+#include <QObject>
+
+namespace QtWebEngineCore {
+
+class ClipboardChangeObserver : public QObject {
+    Q_OBJECT
+public:
+    ClipboardChangeObserver();
+    quint64 getSequenceNumber(QClipboard::Mode mode) { return sequenceNumber.value(mode); }
+
+private Q_SLOTS:
+    void trackChange(QClipboard::Mode mode);
+
+private:
+    QMap<QClipboard::Mode, quint64> sequenceNumber;
+};
+
+} // namespace QtWebEngineCore
+
+#endif // CLIPBOARD_CHANGE_OBSERVER_H
diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp
index d7fa225cd08e4e548eee43238bc80b29d4831a13..f4a14570a1b7e067ce4c8eea684f8226cc31504d 100644
--- a/src/core/clipboard_qt.cpp
+++ b/src/core/clipboard_qt.cpp
@@ -42,15 +42,15 @@
 // found in the LICENSE.Chromium file.
 
 #include "clipboard_qt.h"
-#include "ui/base/clipboard/clipboard.h"
-#include "ui/base/clipboard/clipboard_constants.h"
-#include "ui/base/clipboard/clipboard_format_type.h"
-
+#include "clipboard_change_observer.h"
 #include "type_conversion.h"
 
 #include "base/logging.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/base/clipboard/custom_data_helper.h"
+#include "ui/base/clipboard/clipboard.h"
+#include "ui/base/clipboard/clipboard_constants.h"
+#include "ui/base/clipboard/clipboard_format_type.h"
 
 #include <QGuiApplication>
 #include <QImage>
@@ -91,12 +91,13 @@ QMimeData *getUncommittedData()
     return uncommittedData.data();
 }
 
-}  // namespace
+} // namespace
 
 namespace ui {
 
 // Factory function
-Clipboard* Clipboard::Create() {
+Clipboard *Clipboard::Create()
+{
     return new ClipboardQt;
 }
 
@@ -104,7 +105,7 @@ Clipboard* Clipboard::Create() {
 
 namespace QtWebEngineCore {
 
-void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects)
+void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap &objects)
 {
     DCHECK(CalledOnValidThread());
     DCHECK(IsSupportedClipboardType(type));
@@ -114,7 +115,9 @@ void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects)
 
     // Commit the accumulated data.
     if (uncommittedData)
-        QGuiApplication::clipboard()->setMimeData(uncommittedData.take(), type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+        QGuiApplication::clipboard()->setMimeData(uncommittedData.take(),
+                                                  type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard
+                                                                                        : QClipboard::Selection);
 
     if (type == ui::CLIPBOARD_TYPE_COPY_PASTE && IsSupportedClipboardType(ui::CLIPBOARD_TYPE_SELECTION)) {
         ObjectMap::const_iterator text_iter = objects.find(CBF_TEXT);
@@ -126,17 +129,17 @@ void ClipboardQt::WriteObjects(ui::ClipboardType type, const ObjectMap& objects)
     }
 }
 
-void ClipboardQt::WriteText(const char* text_data, size_t text_len)
+void ClipboardQt::WriteText(const char *text_data, size_t text_len)
 {
     getUncommittedData()->setText(QString::fromUtf8(text_data, text_len));
 }
 
-void ClipboardQt::WriteHTML(const char* markup_data, size_t markup_len, const char* url_data, size_t url_len)
+void ClipboardQt::WriteHTML(const char *markup_data, size_t markup_len, const char *url_data, size_t url_len)
 {
     getUncommittedData()->setHtml(QString::fromUtf8(markup_data, markup_len));
 }
 
-void ClipboardQt::WriteRTF(const char* rtf_data, size_t data_len)
+void ClipboardQt::WriteRTF(const char *rtf_data, size_t data_len)
 {
     getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeRTF), QByteArray(rtf_data, data_len));
 }
@@ -146,12 +149,12 @@ void ClipboardQt::WriteWebSmartPaste()
     getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeWebkitSmartPaste), QByteArray());
 }
 
-void ClipboardQt::WriteBitmap(const SkBitmap& bitmap)
+void ClipboardQt::WriteBitmap(const SkBitmap &bitmap)
 {
     getUncommittedData()->setImageData(toQImage(bitmap).copy());
 }
 
-void ClipboardQt::WriteBookmark(const char* title_data, size_t title_len, const char* url_data, size_t url_len)
+void ClipboardQt::WriteBookmark(const char *title_data, size_t title_len, const char *url_data, size_t url_len)
 {
     // FIXME: Untested, seems to be used only for drag-n-drop.
     // Write as a mozilla url (UTF16: URL, newline, title).
@@ -159,29 +162,32 @@ void ClipboardQt::WriteBookmark(const char* title_data, size_t title_len, const
     QString title = QString::fromUtf8(title_data, title_len);
 
     QByteArray data;
-    data.append(reinterpret_cast<const char*>(url.utf16()), url.size() * 2);
+    data.append(reinterpret_cast<const char *>(url.utf16()), url.size() * 2);
     data.append('\n');
-    data.append(reinterpret_cast<const char*>(title.utf16()), title.size() * 2);
+    data.append(reinterpret_cast<const char *>(title.utf16()), title.size() * 2);
     getUncommittedData()->setData(QString::fromLatin1(ui::kMimeTypeMozillaURL), data);
 }
 
-void ClipboardQt::WriteData(const ui::ClipboardFormatType& format, const char* data_data, size_t data_len)
+void ClipboardQt::WriteData(const ui::ClipboardFormatType &format, const char *data_data, size_t data_len)
 {
     getUncommittedData()->setData(QString::fromStdString(format.ToString()), QByteArray(data_data, data_len));
 }
 
-bool ClipboardQt::IsFormatAvailable(const ui::ClipboardFormatType& format, ui::ClipboardType type) const
+bool ClipboardQt::IsFormatAvailable(const ui::ClipboardFormatType &format, ui::ClipboardType type) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     return mimeData && mimeData->hasFormat(QString::fromStdString(format.ToString()));
 }
 
 void ClipboardQt::Clear(ui::ClipboardType type)
 {
-    QGuiApplication::clipboard()->clear(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    QGuiApplication::clipboard()->clear(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard
+                                                                              : QClipboard::Selection);
 }
 
-void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::string16>* types, bool* contains_filenames) const
+void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::string16> *types,
+                                     bool *contains_filenames) const
 {
     if (!types || !contains_filenames) {
         NOTREACHED();
@@ -189,7 +195,8 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::s
     }
 
     types->clear();
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (!mimeData)
         return;
     if (mimeData->hasImage() && !mimeData->formats().contains(QStringLiteral("image/png")))
@@ -203,22 +210,24 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::s
     ui::ReadCustomDataTypes(customData.constData(), customData.size(), types);
 }
 
-
-void ClipboardQt::ReadText(ui::ClipboardType type, base::string16* result) const
+void ClipboardQt::ReadText(ui::ClipboardType type, base::string16 *result) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (mimeData)
         *result = toString16(mimeData->text());
 }
 
-void ClipboardQt::ReadAsciiText(ui::ClipboardType type, std::string* result) const
+void ClipboardQt::ReadAsciiText(ui::ClipboardType type, std::string *result) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (mimeData)
         *result = mimeData->text().toStdString();
 }
 
-void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16* markup, std::string* src_url, uint32_t* fragment_start, uint32_t* fragment_end) const
+void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16 *markup, std::string *src_url,
+                           uint32_t *fragment_start, uint32_t *fragment_end) const
 {
     markup->clear();
     if (src_url)
@@ -226,16 +235,18 @@ void ClipboardQt::ReadHTML(ui::ClipboardType type, base::string16* markup, std::
     *fragment_start = 0;
     *fragment_end = 0;
 
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (!mimeData)
         return;
     *markup = toString16(mimeData->html());
     *fragment_end = static_cast<uint32_t>(markup->length());
 }
 
-void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const
+void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string *result) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (!mimeData)
         return;
     const QByteArray byteArray = mimeData->data(QString::fromLatin1(ui::kMimeTypeRTF));
@@ -244,7 +255,8 @@ void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const
 
 SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (!mimeData)
         return SkBitmap();
     QImage image = qvariant_cast<QImage>(mimeData->imageData());
@@ -267,21 +279,22 @@ SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const
     return bitmap;
 }
 
-void ClipboardQt::ReadCustomData(ui::ClipboardType clipboard_type, const base::string16& type, base::string16* result) const
+void ClipboardQt::ReadCustomData(ui::ClipboardType clipboard_type, const base::string16 &type, base::string16 *result) const
 {
-    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(
+            clipboard_type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
     if (!mimeData)
         return;
     const QByteArray customData = mimeData->data(QString::fromLatin1(ui::kMimeTypeWebCustomData));
     ui::ReadCustomDataForType(customData.constData(), customData.size(), type, result);
 }
 
-void ClipboardQt::ReadBookmark(base::string16* title, std::string* url) const
+void ClipboardQt::ReadBookmark(base::string16 *title, std::string *url) const
 {
     NOTIMPLEMENTED();
 }
 
-void ClipboardQt::ReadData(const ui::ClipboardFormatType& format, std::string* result) const
+void ClipboardQt::ReadData(const ui::ClipboardFormatType &format, std::string *result) const
 {
     const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData();
     if (!mimeData)
@@ -292,7 +305,8 @@ void ClipboardQt::ReadData(const ui::ClipboardFormatType& format, std::string* r
 
 uint64_t ClipboardQt::GetSequenceNumber(ui::ClipboardType type) const
 {
-    return clipboardChangeObserver()->getSequenceNumber(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+    return clipboardChangeObserver()->getSequenceNumber(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard
+                                                                                              : QClipboard::Selection);
 }
 
-}  // namespace QtWebEngineCore
+} // namespace QtWebEngineCore
diff --git a/src/core/clipboard_qt.h b/src/core/clipboard_qt.h
index d5fa35af62f6280342ec2eecae2ebabfe6840432..7884da16722df9b593b4090f6cfe1e93f7b3ea84 100644
--- a/src/core/clipboard_qt.h
+++ b/src/core/clipboard_qt.h
@@ -42,57 +42,36 @@
 
 #include "ui/base/clipboard/clipboard.h"
 
-#include <QClipboard>
-#include <QMap>
-#include <QObject>
-
 namespace QtWebEngineCore {
 
-class ClipboardChangeObserver : public QObject {
-    Q_OBJECT
-public:
-    ClipboardChangeObserver();
-    quint64 getSequenceNumber(QClipboard::Mode mode) {
-        return sequenceNumber.value(mode);
-    }
-
-private Q_SLOTS:
-    void trackChange(QClipboard::Mode mode);
-
-private:
-    QMap<QClipboard::Mode, quint64> sequenceNumber;
-};
-
 class ClipboardQt : public ui::Clipboard {
 public:
     uint64_t GetSequenceNumber(ui::ClipboardType type) const override;
-    bool IsFormatAvailable(const ui::ClipboardFormatType& format, ui::ClipboardType type) const override;
+    bool IsFormatAvailable(const ui::ClipboardFormatType &format, ui::ClipboardType type) const override;
     void Clear(ui::ClipboardType type) override;
-    void ReadAvailableTypes(ui::ClipboardType type, std::vector<base::string16>* types, bool* contains_filenames) const override;
-    void ReadText(ui::ClipboardType type, base::string16* result) const override;
-    void ReadAsciiText(ui::ClipboardType type, std::string* result) const override;
-    void ReadHTML(ui::ClipboardType type,
-                        base::string16* markup,
-                        std::string* src_url,
-                        uint32_t* fragment_start,
-                        uint32_t* fragment_end) const override;
-    void ReadRTF(ui::ClipboardType type, std::string* result) const override;
+    void ReadAvailableTypes(ui::ClipboardType type, std::vector<base::string16> *types,
+                            bool *contains_filenames) const override;
+    void ReadText(ui::ClipboardType type, base::string16 *result) const override;
+    void ReadAsciiText(ui::ClipboardType type, std::string *result) const override;
+    void ReadHTML(ui::ClipboardType type, base::string16 *markup, std::string *src_url, uint32_t *fragment_start,
+                  uint32_t *fragment_end) const override;
+    void ReadRTF(ui::ClipboardType type, std::string *result) const override;
     SkBitmap ReadImage(ui::ClipboardType type) const override;
-    void ReadCustomData(ui::ClipboardType clipboard_type, const base::string16& type, base::string16* result) const override;
-    void ReadBookmark(base::string16* title, std::string* url) const override;
-    void ReadData(const ui::ClipboardFormatType& format, std::string* result) const override;
+    void ReadCustomData(ui::ClipboardType clipboard_type, const base::string16 &type, base::string16 *result) const override;
+    void ReadBookmark(base::string16 *title, std::string *url) const override;
+    void ReadData(const ui::ClipboardFormatType &format, std::string *result) const override;
 
-    void OnPreShutdown() override { }
+    void OnPreShutdown() override {}
 
 protected:
-    void WriteObjects(ui::ClipboardType type, const ObjectMap& objects) override;
-    void WriteText(const char* text_data, size_t text_len) override;
-    void WriteHTML(const char* markup_data, size_t markup_len, const char* url_data, size_t url_len) override;
-    void WriteRTF(const char* rtf_data, size_t data_len) override;
-    void WriteBookmark(const char* title_data, size_t title_len, const char* url_data, size_t url_len) override;
+    void WriteObjects(ui::ClipboardType type, const ObjectMap &objects) override;
+    void WriteText(const char *text_data, size_t text_len) override;
+    void WriteHTML(const char *markup_data, size_t markup_len, const char *url_data, size_t url_len) override;
+    void WriteRTF(const char *rtf_data, size_t data_len) override;
+    void WriteBookmark(const char *title_data, size_t title_len, const char *url_data, size_t url_len) override;
     void WriteWebSmartPaste() override;
-    void WriteBitmap(const SkBitmap& bitmap) override;
-    void WriteData(const ui::ClipboardFormatType& format, const char* data_data, size_t data_len) override;
+    void WriteBitmap(const SkBitmap &bitmap) override;
+    void WriteData(const ui::ClipboardFormatType &format, const char *data_data, size_t data_len) override;
 };
 
 } // namespace QtWebEngineCore
diff --git a/src/core/core_chromium.pri b/src/core/core_chromium.pri
index 3f4266c8c746538afc40eb310e5c49c1db7ac2ce..4d8db0d1e722638642a88f6384a5ab936d2c87c1 100644
--- a/src/core/core_chromium.pri
+++ b/src/core/core_chromium.pri
@@ -154,6 +154,7 @@ HEADERS = \
         certificate_error_controller_p.h \
         certificate_error_controller.h \
         client_cert_select_controller.h \
+        clipboard_change_observer.h \
         clipboard_qt.h \
         command_line_pref_store_qt.h \
         color_chooser_qt.h \