| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mojoifies:
* WebChannelIPCTransport_SetWorldId
* WebChannelIPCTransport_Message
* WebChannelIPCTransportHost_SendMessage
This change is just the simple rewrite of IPC in web
channel transport, however ultimate goal here is
to use mojo directly in javascript land.
Change-Id: Ifcf84659b1d48d99cc4e87849b8a258303e8fedc
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As of version 63, Chromium creates proxy frames also for the main frame in the
frame tree during cross-process navigations. This leads to a segmentation fault
in WebChannelIPCTransport because we assume that all main frames are local.
See https://crrev.com/27caae83cb530daaf49f9a38793e427cdf493a65 for details.
This patch refactors the renderer-side WebChannelIPCTransport from a
RenderViewObserver into a RenderFrameObserver, which prevents the segmentation
fault since the RenderFrameObserver is not created for proxy frames. Most likely
this would have to be done eventually anyway since the RenderView and
RenderViewObserver classes are deprecated and will likely be removed as part of
the Site Isolation project.
Installation is changed to follow Chromium's RenderFrameImpl in the sense of
performing the installation from RenderFrameObserver::DidClearWindowObject
instead of ContentRendererClient::RunScriptsAtDocumentStart. This has the
benefit of avoiding the ScriptForbiddenScope DCHECK.
Additionally there are the following minor changes:
- The deprecated parameterless version of v8::Value::ToObject() method is
replaced with v8::Value::IsObject() check and v8::Local::Cast.
- The deprecated v8::Handle typedef is replaced with v8::Local.
- The deprecated single-parameter WebContentsObserver::OnMessageReceived is
replaced with the new two-parameter version.
- blink::MainThreadIsolate() is used instead of v8::Isolate::GetCurrent() for
Install/Uninstall since we know we are executing on the main thread.
- WebChannelIPCTransportHost is changed to ignore messages from unexpected
renderers in case something goes wrong with the renderers.
- Logging is added to WebChannelIPCTransportHost for debugging purposes.
Some new unit tests are added, all of which fail with the old version.
Task-number: QTBUG-66333
Change-Id: I936d142fb042d9f936a3f9d08d4328ecba595f1f
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This ensures the scripts and webchannel are added before
RunScriptsAtDocumentStart is called. It also means we shouldn't add
them later from the changed signal.
Task-number: QTBUG-62898
Change-Id: Ib4cd3a69134d0eafc7f2ac4b7927a1c79b63bfa6
Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
|
|
|
|
|
|
|
|
| |
Update our overrides to Qt coding standard getting rid of
Q_DECL_OVERRIDE and redundant virtual declarations.
Change-Id: Id8b0750eb05c51fc8f50cac4000a811eebcbf918
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
The src/core/renderer directory is meant to contain files that would be
in the renderer process and the chrome/renderer subdirectory in chromium,
but a few classes from the browser process and the renderer_host dir
has snuck in.
This patch cleans up the structure so that classes in the browser that
serves as host classes for renderer classes goes in renderer_host.
Change-Id: I9333b1322e2246d4da9b4e8cfe6be604f6d996bf
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|