summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
Commit message (Collapse)AuthorAgeFilesLines
* Add settings to WebEngineProfilesAllan Sandfeld Jensen2015-02-058-146/+68
| | | | | | | | | This patch adds settings to profiles so common settings might be shared among all pages in a profile. The former global settings are now replaced by the settings of the default profile. Change-Id: I544420e07beeb52ef29b2360bc7929402650cd07 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Propagate unhandled key events to the QtWebEngine view's parentJocelyn Turcotte2015-02-052-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | This allows applications to receive unhandled key events from the page by setting an event handler on the view's parent widget/item, like it was possible with QtWebKit. This is different in that events first have to asynchronously go through the QtWebEngineProcess. If the WebEngine view has the keyboard focus, the events will be consumed inconditionally by the RenderWidgetHostViewQtDelegates, and a copy will be resent to the view's parent if it wasn't consumed. This sends it to the parent instead of the QWebEngineView directly since those are only unhandled events, unlike with other widgets where you can first intercept events. It is done that way also in cases where the QWebEngineView would be be the focus widget directly in the future, instead of the RWHV. If applications want to intercept key events before they reach the page, they need to use an event filter on the QWebEngineView's children or globally on the application. Change-Id: I3b48f5212d3f238a1c0497cec1db6ae3badbad26 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Fix widgets download state updateAndras Becsi2015-02-022-1/+2
| | | | | | | | | | | | Since the DownloadState enum of core does not match the DownloadState enum of QWebEngineDownloadItem we should never directly compare it, instead we should convert with the toDownloadState() function, to fix the missing emission of the finished() signal. This patch also adds static asserts to verify the match of chromium's DownloadItem::DownloadState and our core DownloadState. Change-Id: I51110f55598230e380e15948f75219976d3a68a0 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Add widgets download APIAndras Becsi2015-02-027-2/+580
| | | | | | | | | | | This patch adds a QWebEngineDownloadItem class to the widget API and extends QWebEngineProfile with a signal to notify about initiated downloads, similar to the QML API. [ChangeLog][QtWebEngineWidgets] Add widgets download API Change-Id: I532de640934e1e93d63dfc347efb4113cb4a3d66 Reviewed-by: Jocelyn Turcotte <jturcotte@woboq.com>
* Add Qt WebEngine Quick API for allowing certificate errorsPaulo Pinheiro2015-02-022-2/+2
| | | | | | | | | This adds API for overriding some certificate errors. Once overridden any identical error for the same hostname and certificate will use the same override. Change-Id: Idf9e968edca18751cbdab744880480750d0c1bd4 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Document geolocation featureAllan Sandfeld Jensen2015-01-282-1/+2
| | | | | | | | | When the geolocation feature was activated, the feature request was not documented along with it. Change-Id: I8cb1b60015c3cffe7f3d035ea4f61625d81be5b0 Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org> Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* Enable building Qt WebEngine without accessiblity enabled.Michael Brüning2015-01-235-2/+14
| | | | | | | | | | | | | This adds guards that for QT_NO_ACCESSIBILITY being not defined around the code that uses accessibility types. It disables the quicknanobrowser and quicktestbrowser examples which need Qt QuickControls, which has a hard dependency to accessibility being enabled. Task-number: QTBUG-43305 Change-Id: Ifa39e3ce447ebc2124f52e00b29b1d7d2231035e Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Introduce ASSERT_ENUMS_MATCH macroPierre Rossi2015-01-222-12/+12
| | | | | | | | For our common use case of compile-time checking enums that we want to keep in sync. Change-Id: I102d737ad986bf3dfff4d11a91afa3f3819a7947 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Widgets: Implement mouse lock permission APISzabolcs David2015-01-163-1/+15
| | | | | | | | | If the user grants the permission with mouse click on the feature permission bar, the RenderWidgetHostView loses the focus but the focus is necessary for the pointer lock. Change-Id: Ifafd86b472e400c5690194dce2ea8a829a51c313 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Add Pointer Lock supportSzabolcs David2015-01-162-0/+12
| | | | | | | | | | While the mouse is locked, the cursor is hidden from the user and mouse events are still generated. The movement which is reported by the event indicates what would be the position change if the mouse would not have been locked. Change-Id: I79b3df5d7d644cd675a27e6c5a0da54e00b69da3 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devFrederik Gladhorn2015-01-142-2/+33
|\
| * Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-022-2/+33
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/3rdparty src/core/content_browser_client_qt.h src/core/core_module.pro Change-Id: Ia05a6564a4d17ca14ff9b76ae018c3f4ef33d535
| | * Enable cmake config files generationJocelyn Turcotte2014-12-121-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | As QtWebEngine now uses 5.x as its version number, we can just provide cmake tests and let qmake scripts do the rest. Task-number: QTBUG-42073 Change-Id: I28ccddbd1849980074dfbeefb5cb5a70c9209ab1 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
| | * Add class and enum documentation to QWebEngineCertificateErrorAllan Sandfeld Jensen2014-12-031-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | Without the class description the methods documentation was never generated. Change-Id: I0d7232e8f5cc6765908cb28b77d0fe0f514d359d Task-number: QTBUG-42996 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | | API for controlling tracking of visited linksAllan Sandfeld Jensen2015-01-082-0/+37
|/ / | | | | | | | | | | | | | | | | Also fixes updating the visited links manager when off-the-record changes or a storage path is set or changed. Change-Id: Iffa90edde35f2d84146f3ab3b3861ef113e321f3 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Introduce QWebEngineProfile APIAllan Sandfeld Jensen2014-12-127-6/+529
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces initial widgets API for the Chromium BrowserContext. Adds API for controlling cookie jar policy, user-agent string and cache and persistent data paths. Similar QML API will follow in another patch. [ChangeLog][QtWebEngineWidgets][QWebEngineProfile] New API for profiles applying to groups of QWebEnginePages. Change-Id: I3c4ef4053fde7564af29178c91a0aca8a2b61a5f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devAndras Becsi2014-12-011-0/+6
|\| | | | | | | | | | | | | | | | | Conflicts: src/core/access_token_store_qt.cpp src/core/access_token_store_qt.h src/core/content_browser_client_qt.cpp Change-Id: Id319ad0d87ce071e63d9c6c22b4fc35523ddfa74
| * Doc: Fix issues related to example docsTopi Reinio2014-11-171-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | - Add documentation for Quick Nano Browser - Add all examples to the correct group - Add instructions to run the examples - Qt WebEngine Widgets index page: Add examples section Task-number: QTBUG-42668 Change-Id: Ie60f8708336b9c147d0c22afb555fe87287deddc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
* | Support TransferableResource::is_softwareJocelyn Turcotte2014-11-252-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When the GPU process fails to initialize, or when the --disable-gpu switch is provided, the delegating renderer will transfer resource mailboxes through shared memory pixel data instead of through shared texture IDs in the GPU process. Handle this by uploading the pixel data ourselves with createTextureFromImage, also allowing us to render tiles in the QtQuick 2D Renderer. Change-Id: I70ad7122cd0e52dd5ab435ae01e7f032b8e1194e Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* | Avoid relying on QOpenGL classes to handle RenderPassesJocelyn Turcotte2014-11-253-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QSGLayer and get rid of RenderPassTexture so that we can render intermediate layers with the QtQuick 2D Renderer. This reintroduces the private dependency on QtQuick since the QSGLayer factory methods aren't available publically, and also that we need to use QSGImageNode instead of QSGSimpleTextureNode to use them. Since we can't subclass QSGLayer to hold a reference to SG objects directly in the nodes that use them, store them all in the wrapping DelegatedFrameNode in a SGObjects structs. This works assuming that the DelegatedFrameNode will always be at the root of our nodes, layers and textures; if the scene graph destroys the DelegatedFrameNode all child nodes will be destroyed with it. Change-Id: Iedeceb8f98eb54fd8228a677c366d6df9a270e11 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* | Wire the geolocation API to QtPositioningPierre Rossi2014-11-242-0/+13
| | | | | | | | | | | | | | | | If QtPositioning is available, provide chromium with a LocationProvider that uses it as a backend. Change-Id: I53ad3b45e49d0d2d181c1a6459b7be764293c2a6 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* | Use Q_GLOBAL_STATIC instead of local statics for singletonsAndras Becsi2014-11-203-16/+21
| | | | | | | | | | | | | | This patch prevents leaking these objects on shutdown. Change-Id: Ic4a628e0d4dc0b31716f885c1e904b6062cf3ef0 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devAllan Sandfeld Jensen2014-11-118-29/+35
|\| | | | | | | | | | | | | | | Conflicts: src/core/browser_context_qt.cpp src/webengine/api/qquickwebengineview_p.h Change-Id: I73bdec03b627b282851d7dda12006d4ab631072c
| * Fix enum names of audio/video featuresAllan Sandfeld Jensen2014-11-073-19/+21
| | | | | | | | | | | | | | | | | | | | | | | | The feature enum names and documentation gave the impression it could control audio and video output, while they only control input. Also removed documentation of non connected feature permissions for Notifications and GeoLocation. Change-Id: Ia35142ca691ebd6059b7472e9803fda8cbd84813 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
| * Make url handling consistent in widget and quick APIPeter Varga2014-10-282-5/+5
| | | | | | | | | | | | | | | | Use explicit url in quick API too and use GetLastCommittedURL instead of GetVisibleURL for getting the expected urls in tests. Change-Id: If3251323645979643f3dc0e16491fe35b584f51c Reviewed-by: Andras Becsi <andras.becsi@digia.com>
| * Add setting ErrorPageEnabledAndras Becsi2014-10-143-1/+5
| | | | | | | | | | | | | | | | | | This is required so that embedders can implement custom error pages, and is also needed for tests, where error-page loading has side-effects on subsequent page loads. Change-Id: I5ae276a58864a2fa9d7b608bea3340b482a92f4e Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * Doc: Correct snippets for QWebEngineView API doc.Michael Brüning2014-10-091-4/+4
| | | | | | | | | | | | | | | | Those were using wrong action names and also the wrong trigger methods in the wrong context. Change-Id: If124bf7836a553dc4a632db208cee41fb998c622 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Unglobalize browserContextAllan Sandfeld Jensen2014-11-062-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes it possible to have more than one BrowserContext, for instance for off-the-record browsering but also to enable any other configuration on browser context level. This will make it possible to add page-groups settings and API for settingsthat can only be done on BrowserContext level. This patch does not expose any new API. Change-Id: I0a0e194449cfb5a096a4ac6e2f2b3882b6b4cfa2 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Implement acceptNavigationRequest for the widgets API.Andras Becsi2014-10-204-1/+51
|/ | | | | | | | | This is the equivalent API for navigationRequested in QtQuick. This patch also enables and updates tests that depended on this API, and removes the ones that we will not support. Change-Id: I28970c11225420a9680fbd767880130492664179 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Replace QStringLiteral with QLatin1String where appropriateKai Koehne2014-10-071-1/+1
| | | | | | | | | It's faster to use QLatin1String in places where we don't actually need a QString object (like for comparison, or when creating a string with QStringBuilder). Change-Id: I9b8e28040dc2b79a767e15015b85822d06141bbe Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Doc: Fix issues in .qdocconf filesTopi Reinio2014-10-031-1/+1
| | | | | | | | | - Remove url variable (it's included from global doc config) - Fix qhp selector for QML types - Sort the examples in qhp Change-Id: I7f72aebe4f5482ac922a294ad156f8a73e4ccc6e Reviewed-by: Martin Smith <martin.smith@digia.com>
* Doc: Use proper module name for Qt WebEngine WidgetsTopi Reinio2014-10-035-6/+12
| | | | | | | | | | Fix the name used for the \module command to include the module name to properly generate the C++ class reference page for Qt WebEngine Widgets, and link to the new page from the module landing page. Change-Id: If0814650fa16ecf1b5c66e8e46e598d576a8c21d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Import the Qt WebKit porting guide from the wikiJocelyn Turcotte2014-09-293-1/+295
| | | | | | | | Also added a link to it in a new section briefly explaining the difference between Qt WebKit and Qt WebEngine. Change-Id: I89529c701e7f9faae1e4b7d15d5e5d6aec0c8f9f Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Various doc tweaksJocelyn Turcotte2014-09-293-20/+9
| | | | | | | | | | | | - Fix the example pages titles to match the qdocconf files - Remove information not as relevant for QtWebEngine as it was for QtWebKit - Fix the QtWebEngineWidgets snippet not to refer to webengine - Remove the dead link and the reference to Arora from QtWebEngine Change-Id: Ib3c57c8dd534330b3323c94fb2217374b3e52cf9 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix issues on HiDPI displaysAndras Becsi2014-09-241-2/+3
| | | | | | | | | | | This patch fixes widgets rendering on HiDPI displays and notifies about the a potential device pixel ratio change when the window is moved. This addresses the blurriness when a web view is moved between an attached LoDPI screen and HiDPI screen resulting from the device pixel ratio not being updated. Change-Id: I97af0199c07deac8bbe4688c665aaa6df1608ae9 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Hide QWebEngineCallback from the docsPierre Rossi2014-09-185-7/+91
| | | | | | | | | In the same fashion as what is done in QObject::connect's documentation, we can keep it simple here and simply document what is expected. Change-Id: I98a09280870cf0aab935fd0cb69401bb98134145 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add widgets settings doc plus revive QWeb(Engine)View::settingsPierre Rossi2014-09-178-2/+246
| | | | | | | Also silence some warnings by tagging functions as reimplemented. Change-Id: I0572e466709d433a44c7a154ff37e43178a6013f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove unnecessary private header includesJocelyn Turcotte2014-09-111-1/+1
| | | | | | | | Most importantly, get rid of QOpenGLContextPrivate::globalShareContext which will be removed before the final. Change-Id: I5796fa822d2962c21fd8b6d8d3c196686d536e3d Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix url stored in LoadRequestPeter Varga2014-09-052-4/+5
| | | | | | | | | | The test_urlProperty() qml test has failed because the active url was stored in LoadRequest in case of LoadFailedStatus. With this fix the loadRequest stores the url of that page which implies the request. Change-Id: I6aab814a4a7d3b47043b03fccde3d9995b40d8fa Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Don't forward loading of error pages to the API layerPierre Rossi2014-09-022-2/+6
| | | | | | | | | | | | | | | | | | The fact that the error pages are HTML and get loaded through the same mechanism should be kept an implementation detail and not be considered as a new load in the API sense. Also implement HasErrorPage for good measure and remove an anoying warning from the demo browser. The issue of the url not being changed remains in the QML test (but it doesn't affect a typical browser-like UI since the user input is still there untouched in the address bar), just make sure that failure does not affect the later checks. It also seems like we have a focus problem somehow, but the test should probably use a click for that matter. Change-Id: Ib5e363981a11287fdf4bfe84b93c999d96ed8087 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add Qt WebEngine Widgets API for allowing certificate errorsAllan Sandfeld Jensen2014-08-296-0/+219
| | | | | | | | | | | This adds API for overriding some certificate errors. Once overridden any identical error for the same hostname and certificate will use the same override. Similar API for QtWebEngine QML should be added in a later patch. Change-Id: I144147b86d9b592e3f87346a1e48890acee0c670 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Update license headers.Pierre Rossi2014-08-282-28/+18
| | | | | | | | Because the files were recent additions or for other unclear reasons, not all the files were updated to reflect the license change. Change-Id: I6898f6f4f993f1efa9489382f0b94af285f8c4f5 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* [OSX] Buildfix: Classes used with templates must be fully qualified.Zeno Albisser2014-08-212-7/+5
| | | | | Change-Id: Idf1cd3990e2cfd9e2ed3b017370e689c1126bb48 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Update License Headers for Qt WebEngine to LGPLv3.Zeno Albisser2014-08-2112-194/+196
| | | | | | | Change-Id: Idbe0eafb51d77cc00e3a93179b81770724d5bfaa Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Propagate the page's screen coordinates when the top-level window movedJocelyn Turcotte2014-08-204-10/+30
| | | | | | | | | | | | | | | | This fixes a regression after the 37 upgrade where the select popups would have the wrong position. Adjust to the new behavior and also avoid doing a mapToGlobal of the position received in InitAsPopup. RWHV::SetBounds has been giving us screen coordinates since the Chromium 33 update, but popup locations somehow managed to work properly through some side-effect sorcery. This also fixes the value of window.screen[XY] in JavaScript which wasn't updated when the window was moved. Change-Id: I544499bafedccfb7d389b4abc48f1386c398473f Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Add iconUrl() to QWebEngineHistoryItemAllan Sandfeld Jensen2014-08-192-0/+7
| | | | | Change-Id: I61bda1aafc7513acdaeda99ef493ce50363d352e Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove unsupport DeveloperExtrasEnabled settingAllan Sandfeld Jensen2014-08-191-1/+0
| | | | | Change-Id: I2e21c19c193d94d2ebbaed0bc3b9b0aaa28e6e85 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add missing include to qwebenginesettings.hAllan Sandfeld Jensen2014-08-181-0/+1
| | | | | Change-Id: I9c0dd4e2da5452e6d90f177f4c5d5edd735294e5 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Use Q_DECLARE_PRIVATE to wrap the p-impl in QWebEngineSettingsJocelyn Turcotte2014-08-153-10/+20
| | | | | | | This follows the same pattern now used in other public classes. Change-Id: I999c6ba7fc594cdb77da47482e1060542fe86861 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix a crash in WebEngineSettings when opening a new windowJocelyn Turcotte2014-08-154-17/+7
| | | | | | | | | | | | | | | | | | A new window means that the QWebEnginePage gets its WebContentsAdapter swapped and that the pointer in WebEngineSettings must be updated. Do the WebContentsAdapter-to-WebEngineSettings binding in WebContentsAdapter::initialize to cover both cases. This also refactors the way that QWebEngineSettings is created by removing the need to pass a QWebEngineSettingsPrivate instance to be adopted, and also move the global settings construction logic in the singleton accessor instead of relying on the fact that it uses a different contructor. Change-Id: I6f8a2ed1407a4b25f9898526db9432721c354ddf Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>