summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
Commit message (Collapse)AuthorAgeFilesLines
* Update docs and test for runJavaScriptJüri Valdmann2019-05-091-0/+5
| | | | | | | Fixes: QTBUG-69567 Change-Id: Icdf5a200f7be1eb7a98cce62848e3a641c49e804 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Q(Quick)WebEngineProfile: Update list of internal schemesJüri Valdmann2019-05-071-30/+2
| | | | | | | | | | | Disallow installing handler for "about" and everything in kStandardURLSchemes of url/url_util.cc. Except for "gopher" which is used in tests. Suppress warning about custom schemes for "gopher" since it's not a custom scheme. Also lowercase the scheme in urlSchemeHandler() and removeUrlSchemeHandler(). Change-Id: I72b06d4fa6433882019405a0d600a593c8971bf1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Do not crash on QWebEnginePagePrivate::releaseProfile()Allan Sandfeld Jensen2019-05-031-5/+9
| | | | | | | | | Deregistering the widget or deleting the view should be able to handle a now missing d_ptr in the old page. Change-Id: Ic843f7bde12776b6aad4fad865ccf14a25695154 Fixes: QTBUG-75547 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Doc: Add notes about delegating navigation requestsLeena Miettinen2019-05-022-5/+22
| | | | | | | | ...by overloading QWebEnginePage::acceptNavigationRequest() Task-number: QTBUG-75185 Change-Id: Ieaf9cacd5dd9259159767edba319191cf93f19ad Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Handle corner case of assigning an implicit page to a new viewAllan Sandfeld Jensen2019-04-301-9/+13
| | | | | | | | Pass the ownership on to the the new view, so it is still handled like an implicit page. Change-Id: I76ad3cb349a492e60e3ad2bdd4aebaabed07bd4f Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix QWebEngineView::setPage not deleting old pageJüri Valdmann2019-04-173-0/+10
| | | | | | | | | | | Also fix QWebEnginePage::setView not deleting old page Also fix wrong page being deleted if it's parented to the view. Fixes: QTBUG-75131 Fixes: QTBUG-75175 Change-Id: Ie4dfb15b3182de7aa3a94cddcac54ea40a86121b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Avoid auto-linking the string 'WebEngine' to the QML typeLeena Miettinen2019-04-017-45/+45
| | | | | | | | | | Remove the previous workaround (internal \externalpage command) that was used for this purpose, and replace it with a \QWE macro that expands to the string 'Qt \WebEngine'. The backslash in the expanded string instructs QDoc not to attempt auto-linking the word. Change-Id: If4e1c95423fa07479b1af055e4760a890c0ac667 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Fix escaped characters in tooltipAllan Sandfeld Jensen2019-03-261-3/+5
| | | | | | | | | Go back to making the tooltip richtext, but set a white-space:pre to keep the tooltip mostly unwrapped. Fixes: QTBUG-74659 Change-Id: I5e30ee0098a608eda969b090355915a75f55405f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fixup focus implementationAllan Sandfeld Jensen2019-03-212-3/+4
| | | | | | | | | Follow the other implementation and pass TakeFocus to WebContents Delegate, and hook to our UI from there. Also fixes use of Blur instead of LostFocus, which means we now render unfocused more correctly. Change-Id: I34a1882489bc68b9ff36ed5139af0ee8a3a95b79 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Force destruction of webcontent client before profile adapterMichal Klocek2019-03-014-5/+33
| | | | | | | | | | | | | | Currently users might forget to delete webcontent client before profile adapter. This might be nasty if users are not aware of default profile. Instead of asserting badly in chromium, clean up and release chromium resources. This avoids the crash, but might leak memory if users never deletes page. Task-number: QTBUG-74021 Change-Id: I66f466f169d12f7ee08866d505260dca47800bb0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Always treat \brief as full sentenceKai Koehne2019-02-225-21/+21
| | | | | | | | | Make sure all \brief descriptions start with an upper-case letter and end with a . Also start descriptions of \class with the name of the class or struct. Change-Id: Ifd2656201f9c1dff092085508a5423ce516e2d3f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Clarify documentation of QWebEnginePage::title()Jüri Valdmann2019-02-222-2/+8
| | | | | | | | | | Explain what happens when the HTML has no proper <title> defined and clarify the meaning of 'by default': it refers to the state before load()/setUrl()/etc. Fixes: QTBUG-71799 Change-Id: Ib2669007573b3ea53e205d9228237bae392f6f78 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Remove download properly on profile destruction to avoid use after freeKirill Burtsev2019-02-193-13/+23
| | | | | | | | | | | | | In the Widgets API, download items are children of the profile and are destroyed when the parent profile destroys its children. The download item's destructor can therefore not access the profile, as it would cause a heap-use-after-free crashes. On quick side turn ongoing downloads cleanup to match widgets one. Fixes: QTBUG-73839 Change-Id: Iabb379e91187e3e68ebcd4693fec35883b72b1f2 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Set download state to finished when cancelling or destroying the download itemKirill Burtsev2019-02-192-6/+17
| | | | | | | Task-number: QTBUG-73839 Change-Id: Ieebaa802bdfe0c410618e4213a9bedbbae9d0f61 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Doc: Extend documentation of callbacksTamas Zakor2019-02-083-0/+29
| | | | | | | | Warn about callbacks on QWebEnginePage destruction. Task-number: QTBUG-72816 Change-Id: I8dbc297a8f364bc237b0672a63325af8da197e01 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.12.1' into 5.12Qt Forward Merge Bot2019-02-011-0/+1
|\ | | | | | | Change-Id: I4315127d8a329bcb65e6853d4f3625b6dbc55560
| * Fix hide/show of delegate widgetMichal Klocek2019-01-091-0/+1
| | | | | | | | | | | | | | | | | | | | For QQuickWidget::show does not work correctly if widget was not hidden. Fixes: QTBUG-72299 Change-Id: I12fba8c18cbf3f847d30de8b057a50e6d9917fde Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Remove QWebFrame commentsKai Koehne2019-01-301-2/+0
| | | | | | | | | | Change-Id: I82855788542dc7b659eb8d83565b6f32d89d0ea5 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Remove download items internally when API objects are deletedAllan Sandfeld Jensen2019-01-211-2/+4
| | | | | | | | | | | | | | | | | | | | We were never removing internal download item. [ChangeLog][Behavioral Changes] Deleting a download item will now also cancel it if it is still in progress. Change-Id: I2fab497d7acf7ca6ca17f4a61e106b1c18bfb333 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Do not force wrapping of tooltipsKai Koehne2019-01-081-3/+3
|/ | | | | | | | | | | QToolTip does wrap aggressively if HTML text is shown, which <p>...</p> enforces. Anyhow, this is not the default behavior for most browsers. This reverts part of b43774a9b89ed9. Fixes: QTBUG-72021 Change-Id: Iea0480c51f7c35c466bf3064423b2a81ee5b926c Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Document and safeguard usage of custom schemesAlexandru Croitor2018-12-121-1/+7
| | | | | | | | | | | | | | | | The change improves the documentation of QWebEngineUrlSchemeHandler to notify the requirement of registering a custom scheme before installing a custom scheme handler. Also start showing warnings when QWebEngineProfile::installUrlSchemeHandler() is called before a scheme is registered. Also show warnings when installing the handler using QML. Task-number: QTBUG-72079 Change-Id: If249592ea43fe2f9ad587a6ff4e8c9dedcc5d3d3 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix input method updatePeter Varga2018-11-292-8/+2
| | | | | | | | | | | | Do the update after the input properties are changed in RenderWidgetHostViewQt. Moreover, always update on input state changes, like cursor position, surrounding text and text selection (see QInputMethod::update() docs). Task-number: QTBUG-70158 Task-number: QTBUG-71995 Change-Id: I9d5c6e299826fbe66f5285b648013ef79aabed9b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Docs: Extend documentation of WebActionsSzabolcs David2018-11-281-11/+21
| | | | | | | | Add some useful information. Change-Id: I39290c8dfc6c4a1d87c6b24fe6c48cab93f805db Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.12.0' into 5.12Allan Sandfeld Jensen2018-11-132-14/+10
|\ | | | | | | Change-Id: I05a9474efe6b00cc18ad6e33e19a1eb1cbbe8afe
| * Fix opened webviews closing when opener closesAllan Sandfeld Jensen2018-11-082-14/+10
| | | | | | | | | | | | | | | | | | We apparently can't not rely on getting a QEvent::ParentAboutToChange event before every QEvent::ParentChange event. Change-Id: Ie55b51f8c75623bc4f1a943367fb0070078df55b Fixes: QTBUG-71565 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Implement CopyFromSurfaceAllan Sandfeld Jensen2018-11-082-0/+10
|/ | | | | | | Means we can get screenshots in devtools. Change-Id: I7b50d6ac5a54d236573bcf5f58ae872bd50dccad Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Keep visibility of WebContents when restoring historyPeter Varga2018-10-291-0/+2
| | | | | | | | | For restoring history a new WebContents is needed to be created. Make it visible if the old WebContents was. Task-number: QTBUG-71400 Change-Id: Ica10545e11413eb4da553f4976f9bf0c20125846 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Stop showing speculative framesJüri Valdmann2018-10-296-101/+174
| | | | | | | | | | | | | | | | | | | | | Chromium creates "speculative" frames (RenderFrameHost and company) for pending cross-process navigations (and maybe other navigations too). For example, a redirect from http://qt.io to https://qt.io will trigger this, as described in the bug report. These speculative frames are loading in the background and only shown once they are officially ready (as decided by the RenderFrameHostManager and signaled to WebContentsObserver::RenderViewHostChanged). At least, this is how it's supposed to work and how it works in Chrome. In WebEngine, however, we actually show these speculative frames as soon as they are created and before they are ready. This runs into the problem that the if the speculative frame is dropped (instead of committed), then Chromium will not ask us to re-show the old frame (since it hasn't actually asked to us to show the new frame, it naturally assumes we are still showing the old one). Fixes: QTBUG-68727 Change-Id: I9d53035ce60e3a002d5412d4473d940a32644b5d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Unify updating navigation actionsSzabolcs David2018-10-232-9/+2
| | | | | | | | | | On the Quick side, navigation actions were dependent on the context menu. They were only updated when requesting a new context menu and this is obviously wrong if an action is tied to a button or another type of UI element. Change-Id: I5f14b019b66215f16d027fb57d76f052b1604365 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Allow client certificates without opensslAllan Sandfeld Jensen2018-10-234-7/+7
| | | | | | | | | | | | We don't use OpenSSL, but only depended on it because QtNetwork didn't define QSslCertificate without an SSL backend. I changed that in QtNetwork 5.12, so we only rely on a QtNetwork SSL backend with older Qt versions. Task-number: QTBUG-54877 Change-Id: I16f3077235f5c48610597868608ef2e5ca2efa99 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Doc: Add link from QWEClientCertSelection to related signalLeena Miettinen2018-10-041-1/+5
| | | | | | Task-number: QTBUG-70496 Change-Id: I393001986714cd39dee2ac4fae8433cde1383ef8 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Cleanup scenegraph integrationAllan Sandfeld Jensen2018-10-022-4/+4
| | | | | | | | Get rid of old QSG type names, and also remove redundant setupTiledNode call. Change-Id: Ifbd83f6bdc0e029eb52899b20562ef6606f5562b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix QWebEngineView changed properties emit on setPageKirill Burtsev2018-10-013-18/+65
| | | | | | | | | | QWebEngineView now also emits url, title, icon and selection changes on setPage in the save way when url changes. Before, those updates were only forwarded from current page. Fixes: QTBUG-69300 Change-Id: If827205094423bc00064a123ddb143b6002d2e7c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-09-271-1/+8
|\ | | | | | | | | | | | | | | | | Conflicts: configure.json configure.pri src/3rdparty Change-Id: I2e0614b33596fe66999508556c464ed84acc8e2f
| * Doc: Mention that profile storage paths must be set before useLeena Miettinen2018-09-241-1/+8
| | | | | | | | | | | | Task-number: QTBUG-66871 Change-Id: I246d667dfe341a6bfe7a74b24286403bec4dde8b Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Fix QWebEnginePage emit zero loadProgress before loadStartedKirill Burtsev2018-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | Restore expected behavior for QWebEnginePage loading progress. This was missing after queuing progress notification signals change. Add missing state transition to loadSignalsOrder test. Change-Id: Id1d94f8391b83decc8057c5108d2d19c38258965 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into 5.12Allan Sandfeld Jensen2018-09-172-3/+5
|\| | | | | | | | | | | | | | | Conflicts: src/3rdparty src/core/core_common.pri Change-Id: I36dc3a70aa653e6c8a610c787b615034180a6127
| * Document world ID limitAllan Sandfeld Jensen2018-08-272-3/+5
| | | | | | | | | | | | | | | | | | The max was bumbed from 11 to 256, now document it. Task-number: QTBUG-69904 Change-Id: I6cbf64afe3409c4722d7a903d833124880b32bc0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Correct cert to certificateAllan Sandfeld Jensen2018-09-125-29/+29
| | | | | | | | | | Change-Id: I7534aa6cd0c2a95403ad997095d5de76216f228e Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Fix issues with qml bindings accessing non-existing adapterMichal Klocek2018-09-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have currently two levels of initialization for WebEngineView: the profile initialization and the adapter initialization. The adapter initialization is delayed to first navigation request to pick the right initial site instance and avoid creating dummy/blank WebContents, which in turn would start unnecessary render process. Profile initialization is delayed to make sure we avoid unnecessary default profile creations. Created profiles use filestorage. Unfortunately qml will call QQuickItem::componentComplete() only when the root element is completed and the bindings can be already in use by that time. Profile initialization has to take place before adapter initialization. Construct adapter together with WebEngineView, but create and initialize profile before adapter initialization. Go through WebEngineView and fix emitting signals based on adapter initialization. Most of the signals are emitted on initializationFinished(). Task-number: QTBUG-70248 Change-Id: I2acd8bff761c692a360733cbf537de53e1295695 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Improve QWebEngineUrlScheme APIJüri Valdmann2018-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following feedback from 5.12 API review: - Use enum class for Syntax - Add Q_FLAG for Flags - Mark constructor from name as explicit - Rename Secure to SecureScheme - Rename Local to LocalScheme - Rename addScheme to registerScheme - Rename findScheme to schemeByName Task-number: QTBUG-70247 Change-Id: Iae332c8d9843349506e8a4b07d70f0d234597375 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Avoid reattach of page before deleting itAllan Sandfeld Jensen2018-09-053-9/+10
| | | | | | | | | | | | | | | | | | Also fixes potential double delete if you do delete a view's implied page. Change-Id: Ib74128c0801f992694f4a5d8c148974039a6c7b2 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Zakor Tamas <ztamas@inf.u-szeged.hu>
* | Merge remote-tracking branch 'origin/5.11' into 5.12Michael Brüning2018-08-215-10/+28
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf configure.json examples/webenginewidgets/markdowneditor/resources/3rdparty/marked.js examples/webenginewidgets/markdowneditor/resources/3rdparty/qt_attribution.json examples/webenginewidgets/markdowneditor/resources/markdowneditor.qrc mkspecs/features/platform.prf src/3rdparty src/core/media_capture_devices_dispatcher.cpp src/core/net/url_request_context_getter_qt.cpp src/core/net/url_request_context_getter_qt.h src/core/web_contents_adapter.cpp Change-Id: I467133ba455b1f85f6bb61793794c31cb1094541
| * Clarify how key / mouse QEvents are propagated to a popup RWHVQD objectAlexandru Croitor2018-07-311-0/+6
| | | | | | | | | | | | Change-Id: I74f6a607d96733fa379526be40c6a13c31203d4e Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Close popups when parent window is movedAlexandru Croitor2018-07-272-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an HTML select box was clicked inside of a QWebEngineView and the parent QWebEngineView window was moved using the mouse (via window decoration toolbar for example) the popup window would stay around instead of being closed. This happened because of the usage of the Qt:Tool window flag for the popup window, which implies a tool that floats near its parent window. The fix is threefold: 1) Use Qt::Popup instead, similarly to how QMenu does it. Whenever the parent window is moved, the popup will now get a CloseEvent. 2) Handle the CloseEvent by telling Chromium to close and destroy the popup. 3) On Windows the OS might send mouse move events to the popup RWHVQD instance after its parent QWebEngineView, RWHVQD, QWebEnginePagePrivate (client adapter) is destroyed. We need to guard the mouse forwarding code not to access the client adapter if it has already been destroyed. The second point is done by telling Chromium that its popup lost focus which it interprets as a sign to hide it, and automatically destroy it. This will destroy the underlying RWHVQtDelegateWidget and RWHVQt instances. Task-number: QTBUG-59891 Change-Id: I47f94a93c495a6caa5de92a6022eaca154994eda Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| * Add threading and security note for print()Michal Klocek2018-07-201-0/+5
| | | | | | | | | | | | | | | | | | Adds note for QWebEnginePage::print(...) function. Change-Id: I52ec78ccfc5c4eeb98ee69f9aaab01b380f97a81 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| * Forward mouse and keyboard modifiers from QDropEventJüri Valdmann2018-07-131-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-69231 Change-Id: I35b503dae7e2d90b26b6e61a4c7c260e45df2b62 Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| * Doc: Mark \snippet entries with .pro filesVenugopal Shivashankar2018-07-031-0/+2
| | | | | | | | | | | | | | | | This should enable excluding such snippets from documentation in some cases. Change-Id: I46854412546e3774889e09831254828d18362f29 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Make WebChannel an optional featureMichal Klocek2018-08-091-0/+12
| | | | | | | | | | | | | | Add webengine-webchannel feature. Change-Id: I600572180f8169aafe79cf0408527cc087d9a007 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Add printRequest()Michal Klocek2018-08-093-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | Adds printRequested() signal for web content. This signal is emitted on javascript window.print(). This change updates also qt printview manager implementation, fixes a corner case and warnings about ipc unconsumed attachments. Task-number: QTBUG-69237 Task-number: QTBUG-53745 Change-Id: I0c47b732e27e929ac6db237fb562b7d5f9b959c2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>