Tobias Taschner
3d568c7105
Create wxWebViewEdge implementation in constructor
...
This helps with various potential error when using two step creation
2021-03-17 09:42:01 +01:00
Tobias Taschner
80c04e3941
Merge branch 'master' into webview_script_message
2021-03-01 09:57:13 +01:00
Maarten Bent
b43803703d
Move Callback implementation to separate header file
2021-03-01 00:09:23 +01:00
Maarten Bent
66d314c232
Implement QueryInterface of wxWebViewEdge CInvokable
2021-03-01 00:09:23 +01:00
Maarten Bent
156eda92d7
Use WRL when building with MSVC
2021-03-01 00:09:23 +01:00
Maarten Bent
a8b726359b
Format wxWebViewEdge Callback code
2021-03-01 00:09:23 +01:00
Maarten Bent
ad1219d0a2
Fix building with MSVC 32 bit
2021-03-01 00:09:23 +01:00
Maarten Bent
84b19a0ce0
Use the same function signature as the WebView2 SDK
2021-03-01 00:09:23 +01:00
nns52k
b465a95dcc
Make it possible to compile wxWebView Edge backend with gcc
...
Remove the requirement to include wrl/event.h so that GNU C++ (maybe
Clang C++ as well) can compile this file without error.
2021-03-01 00:08:08 +01:00
Tobias Taschner
5e35e6c635
Clear script ids in RemoveAllUserScripts()
2021-02-28 22:38:09 +01:00
Tobias Taschner
2a16638e2a
Fix EOL issues
2021-02-28 20:03:31 +01:00
Tobias Taschner
29bfcdfd5e
Add common web message identifier
2021-02-27 11:55:50 +01:00
Tobias Taschner
4d78437a77
Implement AddUserScript() for edge backend
2021-02-26 23:41:39 +01:00
Tobias Taschner
b1d558a612
Disabled dev tools per default for Edge
...
This unifies the behavior among backends and is probably
the more useful default for most applications.
2021-02-26 21:55:10 +01:00
Tobias Taschner
2d007ff3f1
Add named script handler to edge
2021-02-26 21:51:15 +01:00
Tobias Taschner
a09713de5f
Decode web message result like RunScript() result
2021-02-26 21:37:23 +01:00
Tobias Taschner
302ae644dd
Fix mixed EOL
2021-02-26 17:11:33 +01:00
Tobias Taschner
edcaf5210e
Implement script message for edge backend
2021-02-26 15:41:42 +01:00
Tobias Taschner
5512089d5b
Apply suggestions from code review
...
Co-authored-by: VZ <vz-github@zeitlins.org >
2021-02-09 23:35:01 +01:00
Tobias Taschner
1aad333ab9
Don't send wxWebViewEdge cancel event on veto
...
When vetoing a wxEVT_WEBVIEW_NAVIGATING a wxEVT_WEBVIEW_ERROR was send
this was unexpected and unnecessary.
2021-02-09 22:28:29 +01:00
Tobias Taschner
f6a23a0431
Add wxEVT_WEBVIEW_FULLSCREEN_CHANGED event
...
The event is triggered by wxWebView when the page requests fullscreen view.
It's currently only implemented for the edge backend.
2021-02-09 22:28:29 +01:00
Tobias Taschner
fea23a0be4
Handle in-document navigation with wxWebViewEdge
...
Send EVT_WEBVIEW_NAVIGATING, EVT_WEBVIEW_NAVIGATED and EVT_WEBVIEW_LOADED
when an anchor is clicked within a document. This kind of navigation
cannot be vetoed.
Fixes : #19074
2021-02-09 17:55:37 +01:00
Tobias Taschner
1cd0904260
Fix mixed line breaks in webview sources
2021-02-08 11:27:49 +01:00
Tobias Taschner
334872e726
Notify WebView2 API when minimizing a window with wxWebView
...
As suggested by the ICoreWebView2Controller documentation
call put_isVisible() when the window containing the
wxWebViewEdge is minimized/restored.
2021-02-07 21:48:02 +01:00
PB
623e6a4fc3
Make wxWebViewEdge visible after creating
...
Fixes : #18851
2021-02-07 21:33:28 +01:00
Tobias Taschner
d17e8978a6
Make wxWebView::RunScript() const
2021-02-05 22:18:31 +01:00
Vadim Zeitlin
e88b55bfe1
Apply suggestions from code review
2021-02-05 22:18:30 +01:00
Tobias Taschner
b351e7762d
Move common wxWebView code to base class
...
Removes duplicate code in the various webview backends
2021-02-05 22:18:29 +01:00
Tobias Taschner
0d82348328
Add wxWebView::GetBackendVersionInfo()
...
Allows to get the WebView backend version if available
Currently implemented for IE, Edge and webkit2.
2021-02-05 22:18:28 +01:00
Tobias Taschner
489afb3336
Allow using a fixed version with wxWebViewEdge
...
A fixed version may be distributed with the application
and wxWebViewEdge::MSWSetBrowserExecutableDir() allows
it's usage with wxWebViewEdge.
2021-02-05 22:18:28 +01:00
Vadim Zeitlin
bc825de1fe
Simplify and make more robust wxWebViewEdge initialization
...
Get rid of ms_isInitialized as it must be kept synchronized with
ms_loaderDll.IsLoaded() anyhow, and it's simpler to not have it at all
rather than ensuring this.
Also ensure that calling Initialize() again, after doing it first
unsuccessfully, doesn't assert because ms_loaderDll is already loaded,
by only leaving it with a valid handle if the initialization succeeded.
Closes #19041 .
2021-01-25 00:15:24 +01:00
Tobias Taschner
a0848c2a45
WebView Edge: Disable status bar
...
No other webview backend shows it's own integrated status bar
it's safe to assume applications would not expect it.
2020-12-16 15:11:48 +01:00
Tobias Taschner
46d123b953
WebViewEdge: Allow edge webview2 installation during runtime
...
Check if edge webview runtime is available in the call to
wxWebView::IsBackendAvailable() instead of only doing it during
process initialization. This allows an application to install
the Edge WebView2 Runtime during runtime and use the edge webview
afterwards without restarting the process.
2020-11-06 09:19:17 +01:00
Tobias Taschner
2d9c08e0cc
WebViewEdge: Forward window visibility to SDK
...
Tell the SDK controller if the control is shown or hidden.
This allows creating a hidden webview which will be shown later
and might fix other potential issues.
2020-11-06 09:19:12 +01:00
Tobias Taschner
412de05407
Allow settings modification before WebView Edge init
...
Setting EnableContextMenu and EnableAccessToDevTools where
ignored before the webview loaded content. This would often
be set directly after creation and work like this with other
backends.
2020-11-06 09:19:11 +01:00
PB
f57f214122
Remove BCC-specific hdrstop pragma from everywhere
2020-10-12 21:58:37 +02:00
Vadim Zeitlin
564676e773
Don't crash if wxWebView::EnableContextMenu() is called too early
...
Although caller of wxWebViewEdgeImpl::GetSettings() check if it returns
NULL and handle it gracefully, this function itself can crash if it's
called too early, i.e. if ICoreWebView2 hasn't been created yet.
Add a check to avoid this and just return NULL settings in this case.
Closes #18840 .
2020-07-19 13:10:08 +02:00
Vadim Zeitlin
fca9460522
Fix typo in wxWebViewEdgeImpl::Uninitialize() name
...
As this is a private header, we can fix this without any compatibility
concerns.
Thanks codespell for finding it.
2020-06-27 22:56:22 +02:00
Hertatijanto Hartono
895424ecc0
Add wxWebView::SetZoomFactor(float) and GetZoomFactor()
...
The new method allows to set the zoom level more precisely than the
existing SetZoom(wxWebViewZoom).
Also improve the webview sample by using radio menu items instead of
check items and manually resetting them.
Closes https://github.com/wxWidgets/wxWidgets/pull/1894
Closes #18769 .
2020-06-18 03:13:00 +02:00
PB
9ff095a852
Use wxCoTaskMemPtr
...
Use RAII class wxCoTaskMemPtr to manage pointers that must
be freed with ::CoTaskMemFree().
2020-06-09 20:17:25 +02:00
Tobias Taschner
26aa9c492e
Implement wxWebViewEvent::GetNavigationAction() for Edge
...
Set the user initiated flag from the SDK
2020-04-20 23:20:23 +02:00
Tobias Taschner
7d1c40ecf5
Updated wxWebViewEdge for SDK to 0.9.488
...
Requires Edge 84.0.488.0 or newer
Another SDK release before 1.0 includes some
breaking changes regarding naming
2020-04-20 23:00:10 +02:00
Tobias Taschner
613687ecb5
Updated wxWebViewEdge for SDK 0.9.430
...
This first beta release of the WebView2 SDK has many identifiers
renamed and webview interfaces split to Host and WebView.
Closes https://github.com/wxWidgets/wxWidgets/pull/1743
2020-02-29 15:40:45 +01:00
Tobias Taschner
caf9285609
Improved JSON string parsing
2020-01-19 21:32:11 +01:00
Tobias Taschner
26c82d43d1
Decode strings returned by ExecuteScript()
...
ExecuteScript returns strings as fully
quoted JSON strings so they have to be decoded
to a binary string.
2020-01-17 21:11:26 +01:00
Tobias Taschner
fb0e82e9d1
Implement GetPageSource() and GetPageText()
2020-01-17 21:09:51 +01:00
Tobias Taschner
bb508dc347
Implement text selection in wxWebViewEdge
...
Text selection/copy/paste etc implemented via javascript
2020-01-16 20:50:26 +01:00
Tobias Taschner
048c1c4321
Fix javascript return values
...
Return values where wrapped by quotes because of
wrapper code used for IE compatibility.
2020-01-16 20:49:00 +01:00
Tobias Taschner
20c155e67f
Send wxEVT_WEBVIEW_NAVIGATED after updating history
2020-01-16 19:59:37 +01:00
Tobias Taschner
1a72654d69
Send wxEVT_WEBVIEW_LOADED
2020-01-16 19:59:37 +01:00