summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_delegate_qt.h
Commit message (Collapse)AuthorAgeFilesLines
* Propagate unhandled key events to the QtWebEngine view's parentJocelyn Turcotte2015-02-051-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Handle multiple feature requestsAllan Sandfeld Jensen2015-02-041-5/+3
| | | | | | | | This patch makes it possible to have multiple outstanding feature requests and adds hooks for chromium to cancel requests. Change-Id: Icbeb30aa39ace090d853a29aefaeebbe726fe251 Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
* Add Qt WebEngine Quick API for allowing certificate errorsPaulo Pinheiro2015-02-021-2/+3
| | | | | | | | | 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>
* Improve geolocation permission securityAllan Sandfeld Jensen2015-01-221-1/+6
| | | | | | | | Ensure we only grant permission to the origin the user replied to, otherwise we might get a race exploit. Change-Id: I4f737148f4e41432c160b81c324531e9cde0edc6 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Update Chromium to version 40.0.2214.28 and ninja to 1.5.3.Zeno Albisser2015-01-201-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * scoped_refptr operator for implicit conversion to pointer has been disabled upstream: https://codereview.chromium.org/510323002 * Group permission API as done upstream: https://codereview.chromium.org/622793002 * content_worker gyp target has been removed upstream. * GetPageThumbnailData moved to DevToolsManagerDelegate. * ui/ui_resources has been renamed to ui/resources * WebPreferences and ResourceType have moved inside content. * Merge ResourceBundle's InitSharedInstanceLocaleOnly with InitSharedInstanceWithLocale(): https://codereview.chromium.org/457103003 * Remove obsolete accessibility events. * AX_EVENT_SELECTED_TEXT_CHANGED has been renamed to AX_EVENT_TEXT_SELECTION_CHANGED * AX_ROLE_MATH_ELEMENT was removed upstream. https://codereview.chromium.org/695133002 * Screen::IsDIPEnabled has been removed upstream. https://codereview.chromium.org/672823002 * Update DevToolsHttpHandlerDelegateQt according to ShellDevToolsManagerDelegate. * Various functionality from DevToolsHttpHandler was moved to DevToolsManagerDelegate https://codereview.chromium.org/560323005 * DevToolsHttpHandler::Start expects a scoped_ptr now. * Make sure event_factory_evdev.h is not included when USE_OZONE is not defined * ErrorPageParams was moved into namespace error_page. * Media Access is now handled by ContentBrowserClient::CheckMediaAccessPermission * SpecialStoragePolicy moved to namespace storage * Add implementation for new pure virtual function BrowserContext::GetSSLHostStateDelegate. * RenderPass::Id was renamed to RenderPass::RenderPassId * Include view_messages.h for ViewHostMsg_TextInputState_Param * CERT_UNABLE_TO_CHECK_REVOCATION has been deprecated by Chromium: https://codereview.chromium.org/449743002 * MailboxManager::ConsumeTexture only takes the mailbox as an argument * Replace RWHVQt::TextInputStateChanged with RWHVQt::TextInputTypeChanged. * RenderWidgetHostView::ScrollOffsetChanged has been removed. * SkBitmap::Config was removed upstream. * CopyFromCompositingSurfaceCallback has become an own type. * AcceleratedSurfaceInitialized only takes route_id as an argument. * ServerBoundCertService has been renamed to ChannelIDService. Related API has been renamed accordingly. * TextureImageTransportSurface was removed upstream. * Update MediaCaptureDispatcher::OnMediaRequestStateChanged signature. * AudioStream related functions are gone upstream. https://codereview.chromium.org/569713002 * Add implementation for RenderWidgetHostViewQt::GetLastScrollOffset. * Include generic touch_device implementation. * switches::kDisableDesktopNotifications was removed upstream. https://codereview.chromium.org/607843002 * PageTransition moved to ui. * Messages headers are not guarded. Including them multiple times does hurt. * ScaleGestureDetector does not create a standalone GestureDetector anymore. https://codereview.chromium.org/501503003 * MotionEvent::Cancel and Clone are not virtual anymore. https://codereview.chromium.org/502993004 * Exclude os_exchange_data_provider_mac from build. * Remove argument from ScopedClipboardWriter ctor. https://codereview.chromium.org/558913003 * Remove ShowPopupMenu override from WebContentsQt. The function is not pure virtual anymore, and we never implemented any specifics. * Do not use clang on desktop linux. * Request functions in ContentBrowserClient were merged into RequestPermission. * ninja: use configure.py --bootstrap instead of bootstrap.py Change-Id: I3575612826db7845461a949b4e737264bb4e8d88 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* Add Pointer Lock supportSzabolcs David2015-01-161-0/+1
| | | | | | | | | | 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>
* Wire the geolocation API to QtPositioningPierre Rossi2014-11-241-0/+4
| | | | | | | | 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>
* Fix an assertion in web_content_delegates_qt.cppAdam Kallai2014-09-231-1/+2
| | | | | | | | If we get a replacement content, we can see a DidFinishLoad event for a frame. This error page should be ignored based on the frame. Change-Id: I3e1cd1773e8c5fc608605197c957011ddf258123 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Don't forward loading of error pages to the API layerPierre Rossi2014-09-021-0/+1
| | | | | | | | | | | | | | | | | | 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-291-0/+3
| | | | | | | | | | | 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 for Qt WebEngine to LGPLv3.Zeno Albisser2014-08-211-15/+10
| | | | | | | 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>
* Handle new window/tab modifiers also on normal navigationsJocelyn Turcotte2014-08-151-0/+2
| | | | | | | | | | | | | | | | | AddNewContents is only called when window.open is called from JavaScript. We also want the shift/ctrl modifiers to trigger normal links to open in the requested disposition. In this case OpenURLFromTab will pass the detected disposition and we must create a new WebContents ourselves. Use the same code path going through WebContentsAdapterClient::adoptNewWindow except that we pass a null WebContents pointer to the WebContentsAdapter constructor and let it create its own when initialized. Change-Id: I817b0e72aec12723bf92d9b7ad85c1cecbf5e408 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix uncalled callbacks with findTextJocelyn Turcotte2014-08-151-0/+2
| | | | | | | | | | | | | | | | | Calling findText successively might prevent the previous pending FindReply to be sent, which would leak the callback on the application side. This would cause a crash in qupzilla since we empty all pending callbacks in the QWebEnginePage's destructor to catch this kind of issue. This also renames lastRequestId to nextRequestId to make it clear that this is the ID generator for everything, including findText, and that lastFindRequestId is only a tracker. Change-Id: Ia78d553a58ed31af7237aad8772fa9828560c6d4 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Update the QtWebEngineCore library to run on top of Chromium 37Jocelyn Turcotte2014-08-141-1/+1
| | | | | | | | | | | | | | | Most of the patch is about upstream classes/methods that changed. Other important details: - icu data files are now used by default - cygwin is no longer required to build on Windows - RenderFrameHost has been replacing RenderViewHost in a few places, following the separate process iframes support in Chromium - The user agent is accessed through ContentClient::GetUserAgent instead of from the command line switches Change-Id: I86cc93aff7ce31176a80b0b4a5d54025674a451c Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Ground work for Settings/PreferencesPierre Rossi2014-08-091-0/+3
| | | | | | | | | | | | Core interface to expose toggling some of the WebPreferences for now and most probably some of the WebRuntimeFeatures soon. The whole dummy settings business is meant to keep things from breaking too much when bisecting, because it is assumed that there are always valid settings for a given adapterClient. Change-Id: Ic0a62bcb5af8c0254436dc770b43cde5016c3bbd Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Use VisitedLinks component.Pierre Rossi2014-08-081-0/+1
| | | | | | | | | This allows to resolve visited links in the render process. The newly introduced API at the Core layer should allow exposing this functionality to our widgets and Qt quick API layers. Change-Id: I256376afcfe79014dc274e2dddbac1986a884a93 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* Fix "findNext" after having navigated to a new pageJocelyn Turcotte2014-05-281-0/+3
| | | | | | | | | | | | The findNext flag tells the frame to search starting from the current selection, but the code assumes that the flag won't be used when there isn't any find selection (like when the Frame changed). Make sure that we won't use that flag after we received a load committed signal. Change-Id: I10f0f84226232d150f19fd644d7afe78bc425f74 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Add linkHovered signal to the QQuickWebEngineViewSzabolcs David2014-05-051-0/+1
| | | | | | | | I dropped hovered title support from the QtWebKit API, it seems we don't need that logic. Change-Id: I5617c295344512a35aa526a6f1307f0b21f866d6 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add WebRTC supportPierre Rossi2014-04-291-0/+1
| | | | | | | | | | | | | Reuse the MediaCaptureDevicesDispatcher from the chrome layer, pretty much as is, and wire it in with WebContentsDelegateQt and WebContentsAdapter/WebContentsAdapterClient for API delegation. We also need to ensure that our user agent string mentions Chrome and the Chrome version we're based on, in order to please websites that detect feature support that way. Change-Id: I0ddf8cd34e4add96bc36f59adfe8e0384e728d93 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix links not opening on Google+ and GmailJocelyn Turcotte2014-04-151-0/+1
| | | | | | | | | We missed a very important overload of WebContentsDelegate used by window.open to navigate new pages. The logic is mostly taken from chromium/content/shell/browser/shell.cc. Change-Id: Ib359edb61c1ee6eab89e2ebdc2aad2d944fea712 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Add the base qualifier where base::string16 is usedArvid Nilsson2014-04-011-2/+2
| | | | | | | | | Be explicit about this since the "using base::string16" statement will be going away eventually. Change-Id: I292928345eec746bea04e15a3f25e46193704463 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Adapt to API changes in new stable branch 1750Andras Becsi2014-03-281-2/+2
| | | | | | Change-Id: If0cc263f36d396fd505c1d8b026e2493bfc29cc4 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Base load signals on Blink loader eventsJocelyn Turcotte2014-03-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | This mainly remove the use of the LoadingStateChanged callback, which is tied to DidStartLoading and DidStopLoading. Those signals are handled from the browser process side, also wrapping the time where the render process is initialized. We can't rely on those signals for loadStarted, but afterward rely on the Blink loader for loadFinished. We must use the same source for both. Instead only rely on Blink callbacks ultimately related to network events. This gives us a behavior closer to QtWebKit. The major compromise that this forces us to to accept is that loadStarted is now triggered asynchronously. This will basically break anything expecting loadStarted to be emitted synchronously from the load method. This also adjust autotests to get a few more passing. Initial-patch-by: Pierre Rossi <pierre.rossi@digia.com> Change-Id: Ib6c0170df891d1b7f8ed4dc1d483985523e267dc Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement QWebEnginePage::findTextJocelyn Turcotte2014-02-131-0/+1
| | | | | | | | | | | | | | | | | | | A few changes to the API: - Return the success result asynchronously. - FindWrapsAroundDocument and HighlightAllOccurrences are enabled by defaults and cannot be disabled. - Found text isn't updating the selection on the page like QtWebKit did, but triggers a separate state not available. A find count and current index could be exposed, but isn't in this case to keep the API delta lower. This also adds the possibility to pass bool results through the CallbackDirectory and add a new tst_QWebEnginePage::findTextResult test since the old test relied on the selection to be updated when the searched text is found. Change-Id: I8189b5aea8d832df183c6c1ae03e3f08198a9c45 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement requestFullscreen for QQuickWebEngineView.Zeno Albisser2014-02-111-0/+2
| | | | | | | | | | | | | | This patch adds a property isFullScreen and a signal fullScreenRequested to QQuickWebEngineViewExperimental. The signal fullScreenRequested is emitted when some web content requests fullscreen through the javascript API. The property isFullScreen is supposed to be set programmatically when the view is being shown fullscreen. This information is then available to the WebContentsDelegateQt when checking if the fullscreen request has been accepted. Change-Id: I04cbb45f263a188d26cc87d70ac53b0fbab63936 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* WebPage: Implement javaScriptConsoleMessagePierre Rossi2014-01-301-0/+1
| | | | | | | And unskip the corresponding autotest. Change-Id: Ida2dcee38b261b2ba4ad0c5c016f5510ed1590a4 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove a FIXME after Chromium update.Szabolcs David2014-01-281-2/+1
| | | | | | | Load progress is already available in the current snapshot. Change-Id: I997b25a1da284b43d442d3105105be3455628087 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* [Widgets] wire the file pickersPierre Rossi2014-01-151-0/+2
| | | | | | | | | | | | | | | Introduce a new version of chooseFiles in QWebEnginePage. The existing API in WebKit1 seemed a bit dusty in any case (multiple only supported via extensions). Changes are: * oldFile becomes oldFiles, so that we could at a later stage expose the already selected files in the "multiple" case. * a type is introduced, for now limited to multiple selection, but over time, we might consider additions such as directory upload. Change-Id: I14cfea64ce95e892a0a1877c8cb914c5a421409f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Implement DidFailProvisionalLoad functionAdam Kallai2013-12-021-0/+1
| | | | | | | | | | | The WebContentObserver::DidFailLoad event doesn't handle all of the errors during the web content loading (eg. network errors). Thus WebContentObserver::DidFailProvisionalLoad should be binded on Qt side to handle these errors too. This event is handled by the WebContentsDelegateQt::DidFailLoad function now. Change-Id: I1421214dd94481a1e27cda8d35a35d418289b604 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Moving sources to src part 1: Move files.Jocelyn Turcotte2013-11-281-0/+80
This only move files without adjusting any paths. This moves: - lib/quick -> src/webengine/api (API files) lib/quick -> src/webengine (other files) This contains the main QtWebEngine module library since <ec7b2ee70a8b2db7fb87f50671a001ddd54697b0>. - lib/widgets -> src/webenginewidgets Also rename this directory to match its module name and rename Api to api. - lib -> src/core - process -> src/process - resources -> src/core/resources - tools/* -> tools/scripts/ The build directory is spread as follow: - build/build.pro -> src/core/gyp_run.pro - build/qmake_extras/* -> src/core/ (for the host and target .pro files) - build/qmake -> tools/qmake - Build related scripts -> tools/buildscripts Change-Id: I0cded1de772c99c0c1da6536c9afea353236b4a1 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>