summaryrefslogtreecommitdiffstats
path: root/src/core/web_engine_context.h
Commit message (Collapse)AuthorAgeFilesLines
* Adaptations for 90-basedAllan Sandfeld Jensen2021-07-081-2/+2
| | | | | | Pick-to: 6.2 Change-Id: I8402b044d8e12d75e144a00984b856f3de10bffd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Add windows to the cmake buildMichal Klocek2021-05-221-4/+0
| | | | | | | | Fix cmake for windows builds and add QtWebEngineSandbox target. Task-number: QTBUG-91760 Change-Id: If962a81ddfb509d104ad8ffbfbf34f1150ae82ce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-03-161-0/+1
|\ | | | | | | Change-Id: I0dd7c64669f4b130047a4a3836f62f7ee5b5f8d9
| * Fix crashes on BrowserContext destructionMichal Klocek2021-02-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | When destroying WebEngineProile we send notifications like content::BrowserContext::NotifyWillBeDestroyed, this works well with global profile where there is no more render process around, moreover we still pump ui messages before we destroy profile. However, with user profiles we destruct BorwserContext and there can be still RenderProcessHost using it. Flush messages before running BrowserContext destructor. Change-Id: I4d8cda2bc1e2ae3dc0781bf3570a36db7d07223a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-02-171-0/+7
|\| | | | | | | Change-Id: Idee0142b0e33fdf8ca663f1ef1bcd8b932985043
| * Enable webrtc logging and the corresponding WebUIPeter Varga2021-02-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The corresponding WebUI is chrome://webrtc-logs It only makes sense with the hangout services extension. It seems to be only useable with meet.google.com. The behavior is same for Chrome. Uploading logs to Google is disabled in the Chromium patch. It is an extension API functionality. The WebUI only lists the previously generated logs. Pulls in the following changes: 1dda5314b02 Enable webrtcLoggingPrivate extension API for hangout extension 7d71aca116d FIXUP: Enable webrtcLoggingPrivate extension API for hangout extension Change-Id: I455fce7c8081e71967e55ab1f889df6ef91ed253 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Fix ScopedGLContextChecker with QTWEBENGINE_DISABLE_GPU_THREAD=1Jüri Valdmann2020-08-261-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | The ScopedGLContextChecker, which deactivates the current QOpenGLContext when executing Chromium tasks, is currently enabled only if QOpenGLContext::supportsThreadedOpenGL() is false. But the gpu thread can nowadays be disabled also with an environment variable and ScopedGLContextChecker needs to take this into account. Change-Id: I012524538b49b033ed053dbc41ed4350db916542 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 5988cec1a1b59aa163042a419c4c2e978bb814bb)
* | Use QList instead of QVectorJarek Kobus2020-07-151-2/+2
| | | | | | | | | | | | Task-number: QTBUG-84469 Change-Id: I666a060351f73783e15e3f96884c9393a5cd7e46 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix ScopedGLContextChecker with QTWEBENGINE_DISABLE_GPU_THREAD=1Jüri Valdmann2020-07-071-1/+3
|/ | | | | | | | | | | The ScopedGLContextChecker, which deactivates the current QOpenGLContext when executing Chromium tasks, is currently enabled only if QOpenGLContext::supportsThreadedOpenGL() is false. But the gpu thread can nowadays be disabled also with an environment variable and ScopedGLContextChecker needs to take this into account. Change-Id: I012524538b49b033ed053dbc41ed4350db916542 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix -no-accessibility buildPeter Varga2020-04-291-1/+2
| | | | | | | | | | | | WebEngine is built without -DQT_NO_ACCESSIBILITY. qtgui-config.h defines it but accessibility_activation_observer.h didn't include it if accessibility was disabled. Also replace all occurrences of QT_NO_ACCESSIBILITY by QT_CONFIG(accessibility) in core. Change-Id: I5e5e14885e04cd542ec9e52d770f7070e8edbf8b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix deadlocks on WebEngineContext destructionMichal Klocek2020-03-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch aims to handle 3 deadlocks on exit: (1) Do not attempt to restart Viz thread on shutdown, this will make deadlock with no separate gpu thread, since force shut down of FrameSinkManager requires interaction with gpu process. (2) QCoreApplication, QGuiApplication, QApplication behave differently when doing qt post routine, ~QGuiApplication calls the post routine handler after closing event dispatcher, which will on windows stop processing timer events, which we need to pump message loop when shuting down viz. Do not use QEventLoop and switch to active pulling. The proper solution is to fix QGuiApplication destructor to call post routine first, but this change might have side effects on already existing user code. (3) Since 7f1649b438329e we delete root frame sink asynchronously, which will in gpu thread running in separate thread create a deadlock. Viz requires gpu to destruct root frame sink, however if main process tries to close gpu process this will in turn try close viz, but viz calls back gpu now since the root frame sink is not destroyed. Use the same solution as in (1). Change-Id: Ic6bc904bdac90ee01a5c5b9398a2e2746be3bbd8 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Cleanup FrameSinkManagerImpl before shutting down GPU serviceJüri Valdmann2020-01-301-1/+2
| | | | | | | | | | | | | | | We changed RootCompositorFrameSinks to be destroyed asynchronously (in HostFrameSinkManager::InvalidateFrameSinkId) which means that one can still exist during shutdown in GpuThreadControllerQt::destroyGpuProcess. This results in a deadlock in single threaded GPU mode: in destroyGpuProcess we wait for the viz thread to exit, but the FrameSinkManagerImpl on the viz thread will try to destroy the RootCompositorFrameSink, which waits for work to be done on the GPU=UI thread, which is waiting for the viz thread to exit. Fix by destroying all RootCompositorFrameSinks before destroyGpuProcess. Change-Id: I4cf135f29b90ae0bf78525d5747567dc10a775e6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Enable Windows sandboxAllan Sandfeld Jensen2019-12-191-0/+13
| | | | | | | | | | | | | | | | | Enable sandboxing on Windows. Enable heterogeneous sandbox symbol resolution and statically link the sandboxing code into the helper process. This means we have two copies of the sandboxing code, one statically linked in the executable and one in the shared library. Since they are not exported they don't conflict, but we need to take to initialize the right version in the helper process binary, and pass its sandbox interface to shared library using it. For sandbox debug output, we also need to initialize the second copy of the commandlineparser and logging system. Fixes: QTBUG-51170 Change-Id: I8f503c8d6b40674465f32772ef906817dad2b449 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Adaptations for Chromium 77Allan Sandfeld Jensen2019-10-111-0/+9
| | | | | | Fixes: QTBUG-77267 Change-Id: I181e24cf80ebee6991b95dde6c636f0d169b40a4 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Try using authentication from QNetworkProxyMichal Klocek2019-02-191-0/+3
| | | | | | | | | Use credentials for QNetworkProxy if set. Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io> Task-number: QTBUG-58121 Change-Id: I9c7328af90f3c60144c5ecf385529f663f0e46b2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add proxy switches handlingMichal Klocek2019-02-041-0/+2
| | | | | | | | | | | This change adds switches for proxy: https://www.chromium.org/developers/design-documents/network-settings [ChangeLog] Uses proxy switches for initial proxy configuration Fixes: QTBUG-71229 Change-Id: I1bc02f20c20d737234c650a18f0e0f7c1c63a464 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 71Allan Sandfeld Jensen2019-01-281-3/+2
| | | | | | | Change-Id: Ib650113b05dfd4771240804f94e33c07aa317bf2 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devMichael Brüning2019-01-181-3/+3
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/net/network_delegate_qt.cpp src/core/profile_io_data_qt.cpp src/core/web_engine_context.h tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp Change-Id: Id98e3f52f548ceb5b68abd80aedd6ae59db72cc0
| * Rename leftovers of BrowserContext to ProfileAdapterMichal Klocek2019-01-071-3/+3
| | | | | | | | | | Change-Id: Ia86459503be86eb9b0d97affe94b7ce82d5e29f1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Make AccessiblityActivationObserver separate of RWHVAllan Sandfeld Jensen2019-01-091-1/+5
| | | | | | | | | | | | | | | | It is a global control anyway, and with future Chromium headers, there are conflicts with qaccessibility.h. Change-Id: Ife43340684b8b9498b1f4cd3f6fbe450d88794ec Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Fix recursion in WebEngineContext constructorMichal Klocek2018-12-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Gpu process startup needs sync point manager and it can ask for current web engine context, while is being created. Moreover this call will take place from GPU thread, so it leads to race condition. Done-With: Kirill Burtsev<kirill.burtsev@qt.io> Fixes: QTBUG-72113 Change-Id: I43bf37da0cf28ccb5c5cee0d82ed541053016e2e Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Implement ContentGpuClient for WebEngineAllan Sandfeld Jensen2018-11-241-0/+4
| | | | | | | | | | | | | | | | | | This is the way we are supposed to share a sync point manager with the content layer. Change-Id: I595caa863f8b9c8b4f4bc17df76211416a027a12 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Move thread setup out of the web_engine_context.cppAllan Sandfeld Jensen2018-11-161-6/+1
| | | | | | | | | | | | | | | | This helps avoid conflicts between Qt and Chromium OpenGL headers. Change-Id: Ib77d0d985397ef2b9792b26df4bec69bbfbe4611 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Support running GPU service on UI threadJüri Valdmann2018-10-231-0/+15
|/ | | | | | | | Create content::GpuProcess on UI thread if threaded OpenGL is not supported. Fixes: QTBUG-71126 Change-Id: I7965dec66c8b8e9c92d292731d21ee0df5056a2e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix leak which arises on querying GLOzone instance in SurfaceFactoryQtKirill Burtsev2018-10-081-1/+0
| | | | | | | | | Ownership of GLOzone instance assumed to be hold by factory, no new instance should be created on each GetGLOzone call. Task-number: QTBUG-69088 Change-Id: I7eb8575f1f35bd30292a8b4fc5ab1334ccb8e2bb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix running webengine without default profileMichal Klocek2018-08-031-0/+1
| | | | | | | | | If default profile is not needed do not create by accident one in ~QWebEngineProfilePrivate. Task-number: QTBUG-66068 Change-Id: Ib4131268686178560f3a89dce41e59eb57613e17 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rename BrowserContextAdapter to ProfileAdapterMichal Klocek2018-07-091-7/+7
| | | | | | | | | Follow change of BrowserContextQt to ProfileQt. Fix wrong naming usage of browserContext instead of browserContextAdapter. Change-Id: I75fdac685d9bffd44f0144921d3e87305d6d44c9 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Migrate from BUILDFLAG to QT_CONFIGMichal Klocek2018-07-021-12/+7
| | | | | | | | | | | During configuration we mapped qt webengine fetures to chromium ones and passed them to gn. We used BUILDFLAG to optionally compile code in core. Use QT_CONFIG directly for qt files and add config sanity checks to make sure requested features are present. Change-Id: I930df114ac9aec8e73139ea9135925fc3ad8e39c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Adaptations for Chromium 67Allan Sandfeld Jensen2018-06-261-1/+2
| | | | | Change-Id: I13cedba56012f74651a044d6fa8f0957487bf3eb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Track BrowserContextAdapter in WebEngineContextMichal Klocek2018-05-231-2/+5
| | | | | | | | Instead of keeping BrowserContextAdapter as a child of global object add them to the list kept by WebEngineContext. Change-Id: I626ca6ff6dec3eb76530e3cfb6d589cb961a5795 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Minor. Do cosmetics for web_engine_contextMichal Klocek2018-05-181-2/+5
| | | | | Change-Id: I00f174ed23013b9094077fa6de2504c8e870827c Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Change BrowserContextAdapter to be QPointerMichal Klocek2018-05-181-3/+4
| | | | | | | | | | | | | | | | | | | BrowserContextAdapter is living and accessed only in UI thread, remove QSharedPointer usage and change QWebengineProfile to use QPointer. Prevent BrowserContextAdapter outliving WebEngineContext by setting globalObject as a parent to track WebEngineContext destruction. This commits tries to simplify the life cycle handling of browser context, it removes profile shutdown methods and QWebEngineBrowserContext, which was used to track profile destruction. Task-number: QTBUG-62147 Change-Id: I79f2c38a123cd053e3a59f4900afbdc759a396fe Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 65-basedAllan Sandfeld Jensen2018-03-151-1/+1
| | | | | Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix access after free on shutdownAllan Sandfeld Jensen2018-01-051-2/+3
| | | | | | | | | | After we keep around the browser-context after the profile is deleted it was keeping pointers to deleted objects and would sometimes use them on shutdown. Change-Id: Ib67d0ee0b27cb1a1b64d9b8b4c348ed418b9bbc3 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Allow WebGL to work with a software OpenGL implementation on WindowsAlexandru Croitor2017-09-131-0/+2
| | | | | | | | | | | | | | | | | A user can explicitly request software OpenGL rendering via opengl32sw.dll instead of Skia rendering, by passing the --enable-webgl-software-rendering command line argument. This will make sure not to disable GPU processing if and only if software OpenGL rendering is used on Windows (via QT_OPENGL=software environment variable, or the Qt::AA_UseSoftwareOpenGL attribute), so that WebGL is not disabled. Software OpenGL rendering will still use Skia on platforms other than Windows. Change-Id: I8b3601b144e09e3a732abfb74dbbf6f924889b5a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 56Allan Sandfeld Jensen2017-03-271-6/+9
| | | | | Change-Id: I78240d7956de4716757761fc6517f031b4adb822 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adapt devtools to Chromium 55Allan Sandfeld Jensen2017-03-011-5/+2
| | | | | | | A restructuring of all our devtools integration classes. Change-Id: I2a32b9b2e66c17b72aaa3bbf246a22d211409aa5 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adaptations to Chromium 52Allan Sandfeld Jensen2016-09-141-7/+6
| | | | | Change-Id: Idf8a511ba26d263fd9d014d87d5e1101d706da71 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Work-around moc issueAllan Sandfeld Jensen2016-08-231-1/+4
| | | | | | | | | Recent moc appears to have trouble parsing http_status_code.h, but it is only included due to an unnecessary include in web_engine_context.h we should have used a forward declaration for. Change-Id: Idd586bdb7719627b951a32905e4207fa8db0393d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-04-251-3/+3
|\ | | | | | | Change-Id: I329397621f19ba3890be5daf44a6bb2d668ad2d8
| * Switch BrowserContextAdapter to QSharedPointerAllan Sandfeld Jensen2016-04-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | BrowserContextAdapter is not a form of shared data, and using QExplicitSharedDataPointer on it as always been a misuse of the class. Instead we should switch it to QSharedPointer, which also allows us to use QWeakPointer. Change-Id: I8eb489b4a12d3fdddcde55821be294814a156a9d Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
* | Include printing sources and enable printing for desktop platforms.Michael Bruning2016-02-101-1/+12
| | | | | | | | | | | | | | | | | | | | | | Also adds Qt specific core classes for printing as well as adding printing related objects to the web engine context and including the printing sources in the builds for the desktop platforms. Also updates src/3rdparty submodule SHA-1. Change-Id: I9c2631c59f63571c0840d838077e66122bacc741 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Unify license header usage.Jani Heikkinen2016-02-011-11/+14
| | | | | | | | | | | | | | | | | | Update files using old header.LGPL3 to use header.LGPL Update files using old header.FLD to use new header.FDL Update files using old header.BSD to use new header.BSD Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Adapting to Chromium 47Allan Sandfeld Jensen2015-10-271-3/+4
|/ | | | | | | Updating to Chromium 47 and adapting API. Change-Id: Id465bbcd4facd7c47cb8a9f4bd4e18cbdc0d1120 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Merge branch '5.5' into 5.6Allan Sandfeld Jensen2015-08-181-0/+3
|\ | | | | | | Change-Id: I9977663123560a22f493b8c02d02de8897b38666
| * Fix single-process modePeter Varga2015-07-141-0/+3
| | | | | | | | | | | | | | | | | | | | Destroy RenderprocesHostimpl first then the WebEngineContext. RenderProcessHostImpl's destructor may use the default BrowserContext stored by the WebEngineContext. Task-number: QTBUG-45722 Change-Id: Ide8875a89bd339ecf65ddd32a5f00842102c1c43 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Update remote inspector for Chromium 44Allan Sandfeld Jensen2015-06-231-2/+3
|/ | | | | | | | Handle changes in modules, API and ownership of inspector related classes. Change-Id: I8faa7f22b50828edeac450cc34c151fbb2c45a0c Reviewed-by: Jocelyn Turcotte (Woboq GmbH) <jturcotte@woboq.com>
* Remove eAndroid hooksAndras Becsi2015-04-141-3/+0
| | | | | | | | Support for the B2Qt/eAndroid platform is discontinued with Qt 5.5 so we can remove all remnants of the android platform. Change-Id: I93f15fcd4a345203e15010ddf1e8de3e8d28ab56 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Clean up global profiles and ownershipAllan Sandfeld Jensen2015-03-121-3/+8
| | | | | | | | | | | | | This patch removes the unused global off-the-record browser-contexts and changes all browser-contexts to be ref-counted by an API level profile. The API default profiles are now owned by a global QObject and are deleted on exit. Change-Id: Id7c9eafa24829118105f58b66663a6348216823d Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Fix namespace of SurfaceFactoryQtAllan Sandfeld Jensen2015-03-041-1/+1
| | | | | | | | Fix one class that didn't get refactored right. Change-Id: Id0f2f92d8f68453002524de3c182e572cd657c6a Reviewed-by: Stephan Binner <stephan.binner@basyskom.com> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>