diff options
Diffstat (limited to 'src/core/common')
-rw-r--r-- | src/core/common/qt_messages.h | 31 | ||||
-rw-r--r-- | src/core/common/user_script_data.cpp | 46 | ||||
-rw-r--r-- | src/core/common/user_script_data.h | 63 |
3 files changed, 131 insertions, 9 deletions
diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h index 5ae5fef7d..c692ee5ca 100644 --- a/src/core/common/qt_messages.h +++ b/src/core/common/qt_messages.h @@ -3,19 +3,21 @@ // found in the LICENSE file. // Multiply-included file, no traditional include guard. -#include "ipc/ipc_message_macros.h" - -// Singly-included section for enums and custom IPC traits. -#ifndef RENDER_VIEW_MESSAGES_H -#define RENDER_VIEW_MESSAGES_H -namespace IPC { +#include "content/public/common/common_param_traits.h" +#include "ipc/ipc_message_macros.h" -// TODO - add enums and custom IPC traits here when needed. +#include "user_script_data.h" -} // namespace IPC +IPC_STRUCT_TRAITS_BEGIN(UserScriptData) + IPC_STRUCT_TRAITS_MEMBER(source) + IPC_STRUCT_TRAITS_MEMBER(url) + IPC_STRUCT_TRAITS_MEMBER(injectionPoint) + IPC_STRUCT_TRAITS_MEMBER(injectForSubframes) + IPC_STRUCT_TRAITS_MEMBER(worldId) + IPC_STRUCT_TRAITS_MEMBER(scriptId) +IPC_STRUCT_TRAITS_END() -#endif // RENDER_VIEW_MESSAGES_H #define IPC_MESSAGE_START QtMsgStart @@ -31,6 +33,17 @@ IPC_MESSAGE_ROUTED1(QtRenderViewObserver_FetchDocumentInnerText, IPC_MESSAGE_ROUTED1(WebChannelIPCTransport_Message, std::vector<char> /*binaryJSON*/) +// User scripts messages +IPC_MESSAGE_ROUTED1(RenderViewObserverHelper_AddScript, + UserScriptData /* script */) +IPC_MESSAGE_ROUTED1(RenderViewObserverHelper_RemoveScript, + UserScriptData /* script */) +IPC_MESSAGE_ROUTED0(RenderViewObserverHelper_ClearScripts) + +IPC_MESSAGE_CONTROL1(UserScriptController_AddScript, UserScriptData /* scriptContents */) +IPC_MESSAGE_CONTROL1(UserScriptController_RemoveScript, UserScriptData /* scriptContents */) +IPC_MESSAGE_CONTROL0(UserScriptController_ClearScripts) + //----------------------------------------------------------------------------- // WebContents messages // These are messages sent from the renderer back to the browser process. diff --git a/src/core/common/user_script_data.cpp b/src/core/common/user_script_data.cpp new file mode 100644 index 000000000..f94ea640c --- /dev/null +++ b/src/core/common/user_script_data.cpp @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://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.LGPLv3 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.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 later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "user_script_data.h" +#include "base/pickle.h" + +UserScriptData::UserScriptData() : injectionPoint(AfterLoad) + , injectForSubframes(false) + , worldId(1) +{ + static uint64 idCount = 0; + scriptId = idCount++; +} diff --git a/src/core/common/user_script_data.h b/src/core/common/user_script_data.h new file mode 100644 index 000000000..3dfec0ec3 --- /dev/null +++ b/src/core/common/user_script_data.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://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.LGPLv3 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.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 later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef USER_SCRIPT_DATA_H +#define USER_SCRIPT_DATA_H + +#include <QtCore/QHash> +#include <string> +#include "base/basictypes.h" +#include "ipc/ipc_message_utils.h" +#include "url/gurl.h" + +struct UserScriptData { + enum InjectionPoint { + AfterLoad, + DocumentLoadFinished, + DocumentElementCreation + }; + + UserScriptData(); + + std::string source; + GURL url; + /*InjectionPoint*/uint8 injectionPoint; + bool injectForSubframes; + uint worldId; + uint64 scriptId; +}; + +#endif // USER_SCRIPT_DATA_H |