summaryrefslogtreecommitdiffstats
path: root/src/core
Commit message (Collapse)AuthorAgeFilesLines
* Tie worker rights to cookie policy like Chromium doesv5.11.0-beta3Allan Sandfeld Jensen2018-04-033-0/+68
| | | | | | | | | | | Instead of always allowing all workers, disallow when similar cookies would have been disallowed. This is following the same logic as Chromium is using. Change-Id: I6b9d6c63b894287f64171b138fe03ec080af5115 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Don't recreate the position info source if we already have oneAndy Shaw2018-03-281-1/+2
| | | | | | Task-number: QTBUG-67279 Change-Id: Iff2466cfe3b8bbdb77066f3318014fcb51e2e402 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Doc: Replace type by class in QWERPHPRequestKai Koehne2018-03-231-1/+1
| | | | | | | | | qdoc has magic to remove the 'This XXX class' in the class overview, but not type. See e.g. http://doc-snapshots.qt.io/qt5-5.11/qtwebengine-modules.html Change-Id: Idd38a860ae08c7199c322d16c3ccc737972131a0 Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
* Fix multiple shortcut events being delivered on macOSMichael Brüning2018-03-231-2/+5
| | | | | | | | | | | | | | Commit ef1d61a3516182b0a39330b5ac5988f92c82bc4f introduced a regression where multiple shortcut events where delivered on macOS. Instead of using tryShortcut (which triggers shortcut events) to check if the shortcut needs to be overridden, check if the shortcut map has an entry for the key seqeunce in question. Task-number: QTBUG-66207 Change-Id: I8d277e2ac39de8a1f2d2c43dc8486e042c4ea458 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Move ozone to new subdirectoryMichal Klocek2018-03-2310-138/+341
| | | | | | | | | | | Move ozone related files to core/ozone. Split classes so they can be reused for new ozone platform backends. Change-Id: I98a2aac6807ef2b3eee92eea9ecfd8fce6dd9d16 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Make WebChannelIPCTransport into a RenderFrameObserverJüri Valdmann2018-03-226-203/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fixup after adaptionsAllan Sandfeld Jensen2018-03-221-1/+1
| | | | | | | | | The last argument was removed, we are now calling a different deprecated version of the ExecuteScriptInIsolatedWorld. Change-Id: Ie3d351bfdef7ae490cc94362facc12ae96144a34 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Move the last gn_arg over to the restAllan Sandfeld Jensen2018-03-222-4/+2
| | | | | | | is_debug was the only configuration argument still set in gn_run.pro Change-Id: I7b66888e6b936b44bafdad02f7974941d4e875ce Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Doc: Fix argument name in QWebEngineCookieStore::setCookieFilter()Leena Miettinen2018-03-221-1/+1
| | | | | | | | The argument "filter" was renamed to "filterCallback", but the docs were not updated accordingly. Change-Id: I8a45a0ea8074a854ac72df652921b3c895752f97 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Do not reuse render passes when we have dynamic 3D layersAllan Sandfeld Jensen2018-03-221-3/+9
| | | | | | | | | They can be clipped and culled based on visibility which is a property we do want to support changing. Task-number: QTBUG-67232 Change-Id: I6b670fd84d1e5c18283ea8f4ee1d8e81b94dcd57 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Improve QWebEngineCookieStore documentationKai Koehne2018-03-221-3/+3
| | | | | Change-Id: If11154d716b2ea98cc6b0b07c4fe2501fe27dcdb Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Remove some unused header includes from corePeter Varga2018-03-217-19/+1
| | | | | Change-Id: Ie5bcf9cfb249f364dbe01a8bee98aada2acdd38f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Pass silent on to ninjaAllan Sandfeld Jensen2018-03-201-1/+4
| | | | | | | | If NINJAFLAGS is not explicitly set, set its verbosity based on Qt's configuration. Change-Id: I49ef48f6bfa5461dcccba05709c74df6834e2e3a Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Doc: Describe use of QWebEngineQuotaPermissionRequest classLeena Miettinen2018-03-201-1/+4
| | | | | | | | | | It is only used by the QWebEnginePage::quotaPermissionRequested signal. Task-number: QTBUG-66779 Change-Id: I265cc1787a5470080706fee548c41624c741e540 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Cleanup file locationsAllan Sandfeld Jensen2018-03-2042-47/+47
| | | | | | | | Move printing and network specific classes to subdirectories so we have fewer files in the main dir. Change-Id: I675b1b8b8fd1588061104cec181087f305b44f98 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix overridable in certificate errorsAllan Sandfeld Jensen2018-03-201-1/+35
| | | | | | | | | | In Chromium 63 the decision of which errors were overridable was moved to the UI. Here we duplicate what Chrome has as their soft list of overridable errors which should match previous behavior. Task-number: QTBUG-66844 Change-Id: Icddff745d2323608487ecbfba4040b98c10f6e66 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Doc: Add documentation for parameters to fix QDoc errorsLeena Miettinen2018-03-182-4/+8
| | | | | | | | | | | In QWebEngineRegisterProtocolHandlerPermissionRequest::operator==(), QWebEngineRegisterProtocolHandlerPermissionRequest::operator!=(), QWebEngineQuotaPermissionRequest::operator==(), and QWebEngineQuotaPermissionRequest::operator!=(). Change-Id: I0eaf1136b67396b678cc743dffd1e35f585f0c0c Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Implement IsMostRecentDownloadItemAtFilePath callMichal Klocek2018-03-182-0/+22
| | | | | | | | | Implement IsMostRecentDownloadItemAtFilePath for download_manager_delegate_qt. This is required for CVE-2018-6033. Change-Id: I979b77042facf7d3acaef5eda7a6e842f715a1ef Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix unbundling of libpng in pdfiumAllan Sandfeld Jensen2018-03-181-2/+6
| | | | | | | It is a separate GN setting Change-Id: I0fdd9c631a0f9dac3cf63cad4c1eb0c4b97786cb Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Enable jumbo builds againAllan Sandfeld Jensen2018-03-171-5/+4
| | | | | | | | With the memory increased this should be possible again to get the build speed back. Change-Id: I321b739744833fdcc92a25c83e3ed5be0318407d Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Avoid crash when there is no QScreen attached to the QWindowAndy Shaw2018-03-171-1/+2
| | | | | | | | | Since QWindow::screen() can return 0 we need to account for this instead of assuming that it will always be valid. Task-number: QTBUG-65857 Change-Id: Ifb3a9fdecc76c5c930282101bf383802bf2f2464 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix HTTP authenticationAllan Sandfeld Jensen2018-03-172-12/+11
| | | | | | | | | Render Frame ID is no longer reliable, so use web-contents getter to get web-contents. Task-number: QTBUG-66845 Change-Id: Ic42a3fcaea381118bfd498b7c4f7d7e30b0f5f51 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Switch cookie-filter API to std::functionAllan Sandfeld Jensen2018-03-163-24/+27
| | | | | | | | | Allows us to use return value instead of magic properties Task-number: QTBUG-66825 Change-Id: I55202a7aca2e662bc214b05caf767d2da496f026 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations to form validationAllan Sandfeld Jensen2018-03-154-42/+0
| | | | | | | | Form validations messages has moved entirely to being done by Blink. Change-Id: I6742c111fc59f0baba75b8b37f5d0ec9ae2fb920 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 65-basedAllan Sandfeld Jensen2018-03-1533-162/+253
| | | | | Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* YUV colorspace adaptationsAllan Sandfeld Jensen2018-03-153-154/+90
| | | | | | | | Switch to using Chromium's Colorspace class and its generated shader code instead of our own enums. Change-Id: I89ee96adf68e2421efa2350cb0b78ce0fea7221f Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 64-basedAllan Sandfeld Jensen2018-03-1545-381/+266
| | | | | Change-Id: I11e2da206e4e59872a38c178f57a5879c1bbf229 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Remove credentials from view-source URLsPeter Varga2018-03-141-8/+19
| | | | | | Task-number: QTBUG-65997 Change-Id: Icb55326c51f1dfff77e8e862e9ced619be17ead1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix freezes of glx context, update ChromiumMichal Klocek2018-03-131-4/+2
| | | | | | | | Bring back switch for QSurfaceFormat::CompatibilityProfile. This commit pulls in corresponding change in Chromium. Change-Id: I1f1b139acdda8a2e7ce7e71f2675e797dcfdb9e3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix active URLRequest tracking in NetworkDelegateQtJüri Valdmann2018-03-132-88/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NetworkDelegateQt maintains a set of pointers QSet<net::URLRequest *> m_activeRequests Pointers are inserted in OnBeforeURLRequest, checked in CompleteURLRequestOnIOThread, and removed in OnURLRequestDestroyed. This design breaks however if malloc decides to reuse the address of a recently-freed URLRequest for a new one. For example: 1. A new URLRequest is created and passed to OnBeforeURLRequest. Inside this method a pointer is added to m_activeRequests and a task is posted to the UI thread. 2. The URLRequest is destroyed and OnURLRequestDestroyed is called. The pointer is removed from the set. 3. A new URLRequest is created at the same address and again passed to OnBeforeURLRequest. The pointer is added back to the set. 4. The task from step 1 finally returns from the UI thread to the IO thread by executing CompleteURLRequestOnIOThread. This method is supposed to invoke a callback, but only if the original URLRequest hasn't been destroyed yet. So it checks if the URLRequest is still in the m_activeRequests set, sees that it is, and invokes the callback. Of course this does not work since in actuality we are dealing with a completely different URLRequest object that just happens to live at the same address. Fix by changing the tracking to work per-task and not per-URLRequest. The new URLRequestNotification class encapsulates the logic for delivering the notification and completing the request while dealing with potential mid-sequence URLRequest destruction. Change-Id: I0f61df0dccb9cb2b60893cd4d8f1b4bba844a4cd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Clarify Windows build requirementsJoerg Bornemann2018-03-121-3/+1
| | | | | | | | [ChangeLog][QtWebEngine] QtWebEngine requires Visual Studio 2017. Task-number: QTBUG-66596 Change-Id: Ib9961afef17bc095bdf983cb06981e16963157c1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix loadStarted signal after an in-page navigationv5.11.0-beta2Peter Varga2018-03-081-1/+1
| | | | | | | | | | | In-page navigations does not trigger loadFinished thus m_lastLoadProgress is not reset to -1. Do not ignore loadStarted signal if m_lastLoadProgress is set to 100 because it can mean a new navigation after an in-page one. Task-number: QTBUG-66869 Change-Id: I2b556fe7e3e097c338bdd7ca47e7384722e7eca9 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Avoid use-after-free of ProtocolHandlerRegistryJüri Valdmann2018-03-083-8/+23
| | | | | Change-Id: Ib84a80472a93f53f3675cb8c2db6fa377322b86b Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Rename protocol() to scheme() in QWERPHPermissionRequestJüri Valdmann2018-03-083-9/+9
| | | | | | | | | Scheme refers to a part of a URL. Protocol refers to a formal standard for communication over a network. Therefore scheme is more accurate here, since registerProtocolHandler only defines simple aliases. Change-Id: I71a1511aa92e41c3e3aca4c0403f54af6d91c563 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Move quota and registerProtocolHandler permission classes to coreJüri Valdmann2018-03-085-0/+376
| | | | | | | | | | | | | | | | | | | | | | | - Move QWebEngineQuotaPermissionRequest and QWebEngineRegisterProtocolHandlerPermissionRequest to QtWebEngineCore. - Delete QQuickWebEngineQuotaPermissionRequest and QQuickWebEngineRegisterProtocolHandlerPermissionRequest. Miscellaneous cleanup: - Mark QWebEngineQuotaPermissionRequest constructors as internal for QDoc. - Remove superfluous Q_DECLARE_METATYPEs (implied by Q_GADGET). - Remove Q_UNREACHABLE from default constructor. For some reason QML seems to default construct an unused temporary object before throwing it away and copy constructing the actual object. This triggers Q_UNREACHABLE. Change-Id: Icf9f4e34996e4c64aec65b734bcb3bbd22b4dc51 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Doc: Add code snippet to QWebEngineCookieStore::setCookieFilter() docsLeena Miettinen2018-03-081-1/+12
| | | | | | Task-number: QTBUG-66723 Change-Id: Ic59f2bea41d6f5a4b0a1ca2b27ed7cce79b4a6ce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Explicitly use custom margins for printing to pdfMichael Brüning2018-03-064-10/+20
| | | | | | | | | | | | | | | 3cec2ccb0ffdd41a41ab55d4c1ba88d4866e71d1 introduced a regression because it was assumed that the page was only printed to pdf when a filename was given. This is not the case when the pdf data is handed to the callback, though. Correct this by explicitly stating when margins should be used. Task-number: QTBUG-66654 Change-Id: I663f578ff5d01c77cc62e6f3756a17f78168a9aa Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix reversed logic for glib dependencyAllan Sandfeld Jensen2018-03-051-1/+1
| | | | | | | We only used if we didn't have it? Change-Id: I56481cce514b7879857cc7fc0b0dc73e615f90d9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Doc: Fix docs for QWebEngineCookieStore::setCookieFilter()Leena Miettinen2018-03-052-5/+0
| | | | | | | | | By removing the Q_QDOC define and the \fn command. Required for the Clang doc parser to work. Task-number: QTBUG-66398 Change-Id: I7319e3966382a8f794b2c795f80b88b8129e5b3b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Make cursor position update more reliablePeter Varga2018-03-021-0/+7
| | | | | | | | | | | | | | | This patch makes the cursor position update independent from the order of calling RenderWidgetHostViewQt::OnUpdateTextInputStateCalled() and RenderWidgetHostViewQt::OnTextSelectionChanged(). This fixes the cursor position update after clearing text selection in 65-based Chromium update. From 65-based RenderWidget::WillBeginCompositorFrame() might not be called after text selection changes thus does not trigger an extra TextInputState update which hid this issue with earlier Chromium versions. Change-Id: I80c07e26b66c3a96cb004b9e3ceb57cd99234237 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix some QDoc warningsJüri Valdmann2018-03-021-0/+1
| | | | | Change-Id: I1af130982db78184fca763dd61568f350d8a2d42 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Don't percent-encode javascript messagesViktor Engelmann2018-02-261-1/+1
| | | | | | | | Don't percent-encode javascript messages. Task-number: QTBUG-66104 Change-Id: I9ca21cc8f87494b552427724aa6755ddf2620610 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Expose actual URL for data URLs instead of the virtual URL in the APIPeter Varga2018-02-211-1/+30
| | | | | | | | | | | Chromium considers the actual URL as "scary" therefore prefers to pass a simpler URL via the WebContents::GetVisibleURL() content API function. For data URLs, use the actual URL instead to keep their anchor information. Task-number: QTBUG-64972 Change-Id: I74db3e5dd22a728656a58e50a4e3fba93b82dae2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fixup merge of downloadType from 5.10.1Allan Sandfeld Jensen2018-02-214-4/+31
| | | | | | | | | | | | | In 5.11 we deprecated downloadType and at the same time ripped out most of the faulty logic. Later we partially fixed the logic in 5.10.1, but kept the 5.11 version during the merge. This restores the improved logic from 5.10.1, while keeping the property deprecated since it is still misleading at times. Change-Id: I12ee09a2b212506f7ba1a336c9c2e88aa3b1de24 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix embedded-linux -no-opengl buildAllan Sandfeld Jensen2018-02-211-1/+5
| | | | | | Change-Id: Iad7f3f21918fc8727a6fac3733cb6e35f4e1c4b0 Reviewed-by: Karim Pinter <karim.pinter@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Clear HTTP cache before disabling itSzabolcs David2018-02-161-0/+8
| | | | | | | | | | | It is a workaround to satisfy this online cache test: http://refreshyourcache.com/en/cache-test/ This way Chromium provides "cache-control: no-cache" headers and indicates the disabled state of our cache backend. Task-number: QTBUG-63606 Change-Id: I0fdaf0b8dcaa98891b3d0380f4deeaa28a8aba4b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Allow disabling cache of off-the-record profilesAllan Sandfeld Jensen2018-02-151-0/+2
| | | | | Change-Id: Ib319f46465e9f330ef5f2c7a5b2f6a3d50c33c00 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix linux-clang buildsv5.11.0-alpha1Allan Sandfeld Jensen2018-02-141-1/+2
| | | | | | | A gn linked with lld doesn't work at all. Change-Id: I488acb65b482cc1348ecd4909b20897e5edb8ef7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix AssertBrowserContextWasntDestroyed DCHECKJüri Valdmann2018-02-131-0/+14
| | | | | | | | Triggered sometimes in tst_qwebenginedownloads if the memory allocator reuses memory for a BrowserContextQt. Change-Id: Idb2db94cf0a8419dc45c25620708f3f3da8f9ec8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add support for registerProtocolHandlerJüri Valdmann2018-02-1310-0/+262
| | | | | | | | | | | | | | | | | | | Extend initialization of URLRequestContextGetterQt to create a content::ProtocolHandlerRegistry for each content::BrowserContext and add the registry's URL request interceptor to the front of the interceptor chain. Implement methods in WebContentsDelegateQt to add/remove protocol handlers to/from the ProtocolHandlerRegistry. Add permission request signal and classes for core, quick and widgets. Add widgets autotest. Add signal handlers to quicknanobrowser and simplebrowser. Task-number: QTBUG-62783 Change-Id: I808e7eb9a1cb4d7216686deed4895de14fe46310 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>