summaryrefslogtreecommitdiffstats
path: root/src/webengine
Commit message (Collapse)AuthorAgeFilesLines
* Update QML download API to match widgets and add documentationAndras Becsi2015-02-065-56/+203
| | | | | | | | | | | | | Rename the download signal to downloadRequested and only start a download if it has been explicitly accepted by the user, else cancel it by default. Replace the downloadPercentage property with totalBytes and receivedBytes to also give the user information about download size. Additionally this patch adds missing documentation. Change-Id: I9d895386cf033f2efffe3ebac6f08f94c6fe0c19 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com> Reviewed-by: Jocelyn Turcotte <jturcotte@woboq.com>
* Revert the QJSValue parameter type in UIDelegateAdam Kallai2015-02-061-8/+5
| | | | | | | | | | | | | The mapping of var signal parameters to QJSValue was reverted in qtdeclarative, commit 605777e6cf557dbaf2835c63562bf3fe1620ee45. Change the FilePickerController::accepted() slot parameter type from QJSValue to QVariant in UIDelegate. Task-number: QTBUG-44307 Change-Id: I373b37b6eb4c32e91fd92701ecad685eab9cb804 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com> Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Move settings out of experimental.Michael Brüning2015-02-065-10/+12
| | | | | Change-Id: Ida74680a4180f4366746874a656041364563d548 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Add settings to WebEngineProfilesAllan Sandfeld Jensen2015-02-059-193/+94
| | | | | | | | | 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/+8
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Forbid mismatching profiles when adopting web contentAllan Sandfeld Jensen2015-02-021-0/+5
| | | | | | | | | | | To avoid crashing due to a mismatch of browser-contexts used by webcontent and webcontent adapters and clients, we refuse to open content in a new window witha different profile and prints a warning so the developers may fix their software. Change-Id: I704266a96de2d7a5f8e1fa3ccf49a50f1d2307c9 Task-number: QTBUG-43898 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Add Qt WebEngine Quick API for allowing certificate errorsPaulo Pinheiro2015-02-027-4/+288
| | | | | | | | | 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>
* Fix the build of tst_publicapiJocelyn Turcotte2015-02-021-1/+1
| | | | | Change-Id: If703ff2e5d8fd8ebfe92ad1ac3603c1abe5c7e53 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* Rename HttpCacheMaxSize to HttpCacheMaximumSizeAllan Sandfeld Jensen2015-01-292-9/+9
| | | | | | | | The rename was only done in QWebEngineProfile but is missing in QQuickWebEngineProfile. Change-Id: Ib90d075fe3f4ddf5dbc7e22861d8e76574abb8dd Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Update the expected list of public API testcaseAdam Kallai2015-01-281-1/+1
| | | | | | | | - Also fix the qtwebengineglobal_p.h header include in quickwebneignedownloaditem_p.h, because it is searched for wrong manner from the tst_publicapi testcase. Change-Id: I8997fafbf198f19a3d54b194f3408def6370417e Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Document QQuickWebEngineProfileAllan Sandfeld Jensen2015-01-271-0/+101
| | | | | Change-Id: I63621cec0f307fc3c0e71c84f99c68c0372d2992 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Move newViewRequested to the public APISzabolcs David2015-01-239-9/+166
| | | | | | | | | | | | | This moves the API to public, with proper versioning, adds documentation and adjust the warning to also report an null parameter to openIn that would cause the load to fail. The experimental example code is copied from quicktestbrowser to quicknanobrowser. Change-Id: I23b06c7a5add0323d0540a783873584438d85ea8 Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Enable building Qt WebEngine without accessiblity enabled.Michael Brüning2015-01-233-1/+18
| | | | | | | | | | | | | 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>
* Replace the inspectable property with an environment variableJocelyn Turcotte2015-01-222-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation would enable or disable the inspector globally when the inspectable property was set on a WebEngineView, overwriting the value previously set by other pages. Instead of havind default port for the debugging server and having to enable debugging on individual pages, use an environment variable, QTWEBENGINE_REMOTE_DEBUGGING, to enable the debugging server for the whole application at the same time as specifying the port. The format is the same as for QTWEBKIT_INSPECTOR_SERVER in QtWebKit. QTWEBENGINE_REMOTE_DEBUGGING is set by default in quicktestbrowser to ease development. This also keeps the input reading from the --remote-debugging-port command line switch for convenience, but its usage should be considered internal. This patch also take the opportunity to remove the unused DevToolsHttpHandlerDelegateQt::m_browserContext and to move the ownership from ContentBrowserClientQt to WebEngineContext since the list of inspectable pages isn't bound to the BrowserContext anyway. Change-Id: I772687f88f4feee0cc14dd182b0129cc0ea384dd Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* Fix the tst_navigationHistory QML testcaseAdam Kallai2015-01-221-0/+4
| | | | | | | | | | | | When the ListView component is created from the QQuickWebEngineHistoryListModel model. It requires an adapter to get the currentNavigationEntryIndex and navigationEntryCount for the QQuickWebEngineHistoryListModel::rowCount. Add the default rowCount value while the adapter is not unavailable because of the lazy adapter initialization. Change-Id: Id80d6f56adfea613bdc2c13d9caa1a12f50fddca Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Add DownloadItemInfo to BrowserContextAdapterClientAndras Becsi2015-01-203-18/+20
| | | | | | | | | | | This extends the carried information from Chromium's content::DownloadItem with url, totalBytes and receivedBytes in preparation of adding a Widget API for downloads. DownloadItemInfo struct is now constructed to carry information about individual downloads from the content layer to the Qt API layer. Change-Id: I3ee7aea02b74994e612e1b3709195776d5e7570b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devPierre Rossi2015-01-162-19/+14
|\ | | | | | | | | | | | | Conflicts: src/3rdparty Change-Id: Ied43de29444d4803218e250b096b9c72bc017af7
| * UIDelegatesManager: Remove creationContextForComponent.Robin Burchell2015-01-062-15/+6
| | | | | | | | | | | | | | | | | | This doesn't seem to be too much sense, and according to the QQmlContext documentation, may not work as expected: "This is only valid for components created directly from QML." Change-Id: I49db5dad49288d196e8519b1a60dcf2192147672 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
| * UIDelegatesManager: Communicate load failure back to the dialog controller.Robin Burchell2015-01-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | If the dialog controller has asked to show a dialog, then if we cannot show a dialog, we should reject its request. Not doing this results in the WebView becoming frozen for input if the load fails, seemingly. Change-Id: I7dddd5357c712f896499cdebb142e60b5e80b4f2 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
| * UIDelegatesManager: Always print errors if component loading fails.Robin Burchell2015-01-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | This setting is useful when developing a new UI set, and one may not initially know about the suppression of errors, which is a painful problem to run into. Furthermore, make sure to delete the failed component so that subsequent attempted use of it doesn't succeed if UI_DELEGATES_DEBUG isn't enabled. Change-Id: I3d2abc19fb4a007d06795d2e8149ae78d7c9c020 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* | Widgets: Implement mouse lock permission APISzabolcs David2015-01-162-0/+10
| | | | | | | | | | | | | | | | | | 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-163-0/+14
| | | | | | | | | | | | | | | | | | | | 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/+2
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-022-2/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Force active focus for touch beginAndras Becsi2014-12-081-0/+2
| | | | | | | | | | | | | | | | | | | | | This fixes the focusing issues on touch devices. Change-Id: I26c0080ea70aeabbd608e15fbd3705b907bdb68e Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | | Revert the version number in experimental back to 1.0Andras Becsi2015-01-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts the accidental version number update, since we provide no guarantees for the experimental API, we can update the version number as soon as we make the corresponding API public. Change-Id: I03d8ba83182f185bb42af0840880561d5e962043 Reviewed-by: Adam Kallai <kadam@inf.u-szeged.hu> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | | Add QML download APIAndras Becsi2015-01-129-4/+404
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch exposes downloadStarted and downloadFinished signals on the WebEngineProfile to notify about downloads. The WebEngineDownloadItem exposes a subset of Chromium's content::DownloadItem functionality. For now we expose minimal requirements to be able to control downloads in QML but this can be extended in the future. This patch also adds a DownloadView to quicktestbrowser to demonstrate the usage of the new API. [ChangeLog][QtWebEngineQML] Add QtQuick download API Change-Id: I8d8f0daf02c4e0151000427fc2a4b37d28b9db52 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | QML API for WebEngineProfilesAllan Sandfeld Jensen2014-12-1210-12/+516
| | | | | | | | | | | | | | | | | | | | | | Introduces the QML API for the WebEngineProfiles already implemented for QtWebEngineWidgets. [ChangeLog][QtWebEngineQML][QQuickWebEngineProfile] New API for profiles applying to groups of QQuickWebEnginePages. Change-Id: Ideccddb9f1fb19628297592fe0cec504c9890e46 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devAndras Becsi2014-12-011-0/+1
|\| | | | | | | | | | | | | | | | | 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
| * Fix crashes in QQuickWebEngineSettingsPeter Varga2014-11-061-0/+1
| | | | | | | | | | | | | | | | Remove QQuickWebEngineSettingsPrivate object's pointer from the global setting list before the object is destructed. Change-Id: I1cca6bf8aa2438903692d9e2ef863c8fc543adbd Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* | Support TransferableResource::is_softwareJocelyn Turcotte2014-11-254-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-255-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | QtQuick: rename the media feature permission enum valuesPierre Rossi2014-11-242-10/+10
| | | | | | | | | | | | | | In the same way it was done for widgets. Change-Id: I03ff6ed587346b00c76cf7314483263fd4f90a2d Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | QtQuick: add geolocation permission APIPierre Rossi2014-11-242-4/+14
| | | | | | | | | | | | Change-Id: I1a5fedc4167dd780655b004811211e49631663c5 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* | Wire the geolocation API to QtPositioningPierre Rossi2014-11-241-0/+1
| | | | | | | | | | | | | | | | 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-202-8/+17
| | | | | | | | | | | | | | This patch prevents leaking these objects on shutdown. Change-Id: Ic4a628e0d4dc0b31716f885c1e904b6062cf3ef0 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Remove unneeded constructor declarationAndras Becsi2014-11-181-1/+0
| | | | | | | | | | Change-Id: Id7be078bdd96891adefe62b9666d8b66dd318903 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Remove arguments from QQuickWebEngineSettings signalsJocelyn Turcotte2014-11-182-24/+24
| | | | | | | | | | | | | | | | | | The convention in the rest of the QtQuick API is to not pass the new value of a changed signal as an argument since the signal handler can easily access the property itself. Change-Id: I0dbf70379f631135c5ad973b46a9f3936d4be115 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devAllan Sandfeld Jensen2014-11-117-7/+203
|\| | | | | | | | | | | | | | | Conflicts: src/core/browser_context_qt.cpp src/webengine/api/qquickwebengineview_p.h Change-Id: I73bdec03b627b282851d7dda12006d4ab631072c
| * Support Qt::AA_ShareOpenGLContextsPierre Rossi2014-10-291-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | QtWebEngine::initialize happens after QGuiApplication instantiation, so it is too late to simply set the application attribute. In that scenario, we don't want to override the shared context and risk a double free when both QGuiApplication and our cleanup handler try to delete it. Change-Id: Id52884abbb0c2380208876d9c00e8ddbfbc21eda Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
| * Make url handling consistent in widget and quick APIPeter Varga2014-10-282-1/+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 plugins.qmltypes for WebEngine APIMichael Brüning2014-10-151-0/+164
| | | | | | | | | | | | Task-number: QTBUG-41952 Change-Id: Ic21089a34364696c8ff7e68e397e39f8f0b7f5cc Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
| * Add setting ErrorPageEnabledAndras Becsi2014-10-142-0/+19
| | | | | | | | | | | | | | | | | | 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>
| * Notify canGoBack/canGoForward on urlChanged instead of loadingChanged.Jarred Nicholls2014-10-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | In order to support Fragment (#) based routing and history navigation together, canGoBack/canGoForward properties should be notified when the url is changed instead of when the page is loading. Task-number: QTBUG-41849 Change-Id: Ic995fffa5c683dade88fbd98ffea90527a77261b Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Jarred Nicholls <jarred.nicholls@gmail.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>
* | Distinguish between tab dispositions in NewViewRequest Quick API.Jarred Nicholls2014-10-212-3/+6
| | | | | | | | | | | | | | | | | | A tab's disposition can be foreground (e.g. target="_blank") or background (Ctrl+Click, or middle-click). API consumers should be able to discern between the two intents, so they can decide whether or not to focus their new view. Change-Id: Iab3ccb9e9f0b85256892f4f74204515bdeefa695 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* | Implement programatic zooming for QtQuickPierre Rossi2014-10-132-0/+21
|/ | | | | | | and add shortcuts in the examples (with a basic UI in the test browser) Change-Id: I237a04cf0b1fce2e0c6f8a19891ff3cb51727a40 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Replace QStringLiteral with QLatin1String where appropriateKai Koehne2014-10-072-3/+3
| | | | | | | | | 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-2/+2
| | | | | | | | | - 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>