summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorPierre Rossi <pierre.rossi@theqtcompany.com>2015-02-18 18:08:14 +0100
committerPierre Rossi <pierre.rossi@theqtcompany.com>2015-02-19 12:20:15 +0000
commite263449d32e9392985c1587f2a0b4e0e77e605a2 (patch)
tree9c00f24771315c22bf0e228429e6691884ead463 /src/core
parentb26f697dbed3c2d12db0254a67cdf23396b91c23 (diff)
WebChannel: don't mess with the navigator object
The navigator object is actually exposed later on from WebCore using a different mechanism, so the V8 extension approach won't work with it. Better take the chrome extensions approach and expose our own. This should "un-break" the part of the web that was broken by eee482929a. Change-Id: I991be2e12bb9ebcf60ace02721497c3fcd923c7f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/renderer/web_channel_ipc_transport.cpp24
-rw-r--r--src/core/renderer/web_channel_ipc_transport.h6
2 files changed, 15 insertions, 15 deletions
diff --git a/src/core/renderer/web_channel_ipc_transport.cpp b/src/core/renderer/web_channel_ipc_transport.cpp
index 6adff45d5..ebebb01e9 100644
--- a/src/core/renderer/web_channel_ipc_transport.cpp
+++ b/src/core/renderer/web_channel_ipc_transport.cpp
@@ -51,11 +51,11 @@
static const char kWebChannelTransportExtensionName[] = "v8/WebChannelTransport";
static const char kWebChannelTransportApi[] =
- "if (typeof(navigator) === 'undefined')" \
- " navigator = {};" \
- "if (typeof(navigator.qtWebChannelTransport) === 'undefined')" \
- " navigator.qtWebChannelTransport = {};" \
- "navigator.qtWebChannelTransport.send = function(message) {" \
+ "if (typeof(qt) === 'undefined')" \
+ " qt = {};" \
+ "if (typeof(qt.webChannelTransport) === 'undefined')" \
+ " qt.webChannelTransport = {};" \
+ "qt.webChannelTransport.send = function(message) {" \
" native function NativeQtSendMessage();" \
" NativeQtSendMessage(message);" \
"};";
@@ -135,15 +135,15 @@ void WebChannelIPCTransport::dispatchWebChannelMessage(const std::vector<char> &
v8::Context::Scope contextScope(context);
v8::Handle<v8::Object> global(context->Global());
- v8::Handle<v8::Value> navigatorValue(global->Get(v8::String::NewFromUtf8(isolate, "navigator")));
- if (!navigatorValue->IsObject())
+ v8::Handle<v8::Value> qtObjectValue(global->Get(v8::String::NewFromUtf8(isolate, "qt")));
+ if (!qtObjectValue->IsObject())
return;
- v8::Handle<v8::Value> navigatorQtValue(navigatorValue->ToObject()->Get(v8::String::NewFromUtf8(isolate, "qtWebChannelTransport")));
- if (!navigatorQtValue->IsObject())
+ v8::Handle<v8::Value> webChannelObjectValue(qtObjectValue->ToObject()->Get(v8::String::NewFromUtf8(isolate, "webChannelTransport")));
+ if (!webChannelObjectValue->IsObject())
return;
- v8::Handle<v8::Value> onmessageCallbackValue(navigatorQtValue->ToObject()->Get(v8::String::NewFromUtf8(isolate, "onmessage")));
+ v8::Handle<v8::Value> onmessageCallbackValue(webChannelObjectValue->ToObject()->Get(v8::String::NewFromUtf8(isolate, "onmessage")));
if (!onmessageCallbackValue->IsFunction()) {
- qWarning("onmessage is not a callable property of navigator.qtWebChannelTransport. Some things might not work as expected.");
+ qWarning("onmessage is not a callable property of qt.webChannelTransport. Some things might not work as expected.");
return;
}
@@ -156,7 +156,7 @@ void WebChannelIPCTransport::dispatchWebChannelMessage(const std::vector<char> &
const int argc = 1;
v8::Handle<v8::Value> argv[argc];
argv[0] = messageObject;
- frame->callFunctionEvenIfScriptDisabled(callback, navigatorQtValue->ToObject(), argc, argv);
+ frame->callFunctionEvenIfScriptDisabled(callback, webChannelObjectValue->ToObject(), argc, argv);
}
v8::Extension *WebChannelIPCTransport::getV8Extension()
diff --git a/src/core/renderer/web_channel_ipc_transport.h b/src/core/renderer/web_channel_ipc_transport.h
index 71886f4b2..8074c2302 100644
--- a/src/core/renderer/web_channel_ipc_transport.h
+++ b/src/core/renderer/web_channel_ipc_transport.h
@@ -34,8 +34,8 @@
**
****************************************************************************/
-#ifndef NAVIGATOR_QT_EXTENSION_H
-#define NAVIGATOR_QT_EXTENSION_H
+#ifndef WEB_CHANNEL_IPC_TRANSPORT_H
+#define WEB_CHANNEL_IPC_TRANSPORT_H
#include "base/values.h"
#include "content/public/renderer/render_view_observer.h"
@@ -56,4 +56,4 @@ private:
virtual bool OnMessageReceived(const IPC::Message &message) Q_DECL_OVERRIDE;
};
-#endif // NAVIGATOR_QT_EXTENSION_H
+#endif // WEB_CHANNEL_IPC_TRANSPORT