Commit Graph

141 Commits

Author SHA1 Message Date
Tobias Taschner
cf6a947dab Use new JS wrapper with edge and IE 2021-11-03 11:19:00 +01:00
Tobias Taschner
1cd0904260 Fix mixed line breaks in webview sources 2021-02-08 11:27:49 +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
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
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Maarten Bent
785c448870 Fix checking size of security URL in wxWebviewIE
Allows to utilize the entire buffer when necessary.
2020-07-28 21:22:21 +02:00
Maarten Bent
43f84a9c18 Use security URL from wxWebViewHandler in wxWebViewIE
Don't use hard-coded 'http://localhost', but use the URL specified in the
wxWebViewHandler.

By default, the security URL is empty and no modifications are made when
parsing a URL. This fixes using JavaScript in pages loaded with a custom
protocol, e.g. from wxWebViewFSHandler or wxWebViewArchiveHandler.

Closes #17893
2020-07-28 21:22:21 +02:00
Maarten Bent
bcadef5e2c Remove obsolete VirtualProtocol IID table
The IIDs are now checked inside VirtualProtocol::QueryInterface.
2020-07-28 21:19:28 +02:00
Maarten Bent
0885057b70 Fix typo in wxWebViewIE failure message 2020-07-28 21:19:28 +02:00
Paul Cornett
6f968105b5 Avoid -Wwrite-strings warning 2020-07-23 10:29:43 -07:00
Vadim Zeitlin
cd2cd6a617 Avoid using IE-related symbols not present in old MinGW headers
Define INET_E_DEFAULT_ACTION ourselves and provide stand-ins for the
enums not present in MinGW SDK.

See #17893.
2020-07-21 22:44:49 +02:00
michael
5c1f7733ab Mark IE-based wxWebView as being DPI aware
This makes it work (better) in high DPI.

Closes #17894.
2020-07-19 14:28:33 +02:00
michael
6023925ef6 Allow using XMLHTTP ActiveX object with custom scheme handlers
Fix the problem of the access-denied error when using a 'new
window.ActiveXObject("Microsoft.XMLHTTP")' to access URIs from custom
WebView scheme handler of the Internet Explorer WebView.

The solution here is to implement PARSE_SECURITY_URL and
PARSE_SECURITY_DOMAIN in ParseUrl of the IInternetProtocolInfo interface
of the Internet Explorer Control.

The direct implementation of VirtualProtocol::QueryInterface() instead
of using IMPLEMENT_IUNKNOWN_METHODS works, but is not nice. The better
approach would be probably enhancing ADD_RAW_IID to support multiple
inheritance.

Closes #17893.
2020-07-19 14:28:33 +02:00
Vadim Zeitlin
505a6f0807 Fix double-to-float conversion warnings in wxWebViewIE
Avoid warnings about truncating double literals to float introduced by
the recent 895424ecc0 (Add wxWebView::SetZoomFactor(float) and
GetZoomFactor(), 2020-06-13) by using float literals in the first place.

See https://github.com/wxWidgets/wxWidgets/pull/1894

See #18769.
2020-06-30 02:36:49 +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
Maarten Bent
67ace7b243 Move wxWebViewIE classes to private header
Cleanup includes.
2019-11-13 23:56:40 +01:00
Maarten Bent
7e682a09d6 Add wxWebViewIEImpl class for all private wxWebViewIE members and functions
Move wxWebViewIE::Find implementation to wxWebViewIEImpl because it has a lot
of member accesses.
2019-11-13 23:46:13 +01:00
oneeyeman1
14bcf09924 Move URL<->filename conversion functions to wxFileName
This ensures that they are always available and can be used in
wxLaunchDefaultBrowser() in all build variants, whereas before this
function didn't handle file:// URLs correctly when the library was built
with wxUSE_FILESYSTEM==0.

Closes https://github.com/wxWidgets/wxWidgets/pull/1469

Closes #10414.
2019-08-25 00:48:39 +02:00
Chilau He
3aa6aec620 Add wxWebViewIE::MSWSetEmulationLevel()
This extends and replaces MSWSetModernEmulationLevel() by allowing a
more fine-grained choice of the emulation level used by wxWebViewIE.

Closes https://github.com/wxWidgets/wxWidgets/pull/1133
2019-01-14 23:25:14 +01:00
Chilau He
c8b977314e Change default wxWebViewIE offline behavior
Allow opening web pages using this backend on systems without any
network connection too.

See https://github.com/wxWidgets/wxWidgets/pull/1133
2019-01-14 23:16:33 +01:00
Josue Andrade Gomes
0bd8fe91e7 Fire wxEVT_WEBVIEW_NAVIGATING when redirecting
When using IE wxWebView backend, this event wasn't generated as expected
when the client was redirected.

Fix this by using DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION flag.

Closes https://github.com/wxWidgets/wxWidgets/pull/893
2018-09-11 14:32:14 +02:00
Vadim Zeitlin
d70b515216 Remove <shobjidl.h> inclusion to fix MinGW TDM 32 bit build
This header, added in b61123cd7d, doesn't
seem to be needed and breaks compilation with TDM gcc 4.8 and 5.1, so
just avoid including it.

See #15402.
2018-08-31 19:23:43 +02:00
Maarten Bent
190cb0e025 Remove trailing spaces in webview code 2018-08-22 20:02:42 +02:00
Maarten Bent
bfafb74761 Fix missing enum in MinGW 2018-08-22 20:01:02 +02:00
Steven Lamerton
b61123cd7d Allow distinguishing user- from script-opened wxWebView windows
Add wxWebViewEvent::GetNavigationAction() returning a value that can be
either wxWEBVIEW_NAV_ACTION_USER for the links opened by the user, or
wxWEBVIEW_NAV_ACTION_OTHER for the other ones (e.g. opened from
JavaScript code on the page).

Closes #15402.
2018-08-19 22:27:34 +02:00
Vadim Zeitlin
ae88141fa0 Don't define unnecessary constants in public webview_ie.h
There is no need to check that calling MSWSetModernEmulationLevel()
changed the registry key in the test, this is just an implementation
detail of this function.

This makes it unnecessary to define wxIE_EMULATION_LEVEL and
wxREGISTRY_IE_PATH (which are both badly named) in the public header.

Finally, improve the error message in MSWSetModernEmulationLevel() and
add another one for failing to reset the emulation level too.
2017-10-22 23:37:42 +02:00
Vadim Zeitlin
1bb8cd860a Improve and harmonize error reporting in RunScript()
Errors were reported in different ways (including not being reported at
all in wxMSW) in different ports. Try to consistently do it in the same
way now and use exactly the same sentences to facilitate translators
life.
2017-10-22 23:37:32 +02:00
Vadim Zeitlin
b3bd9c77af No changes, just declare the variable before its use
Move variable declaration where it's really needed.
2017-10-22 23:37:28 +02:00
Vadim Zeitlin
d047bf2beb Make CallEval() simpler to use by taking a string in it
Don't force the caller to convert the string to wxVariant when we can
perfectly well do it ourselves.
2017-10-22 23:37:26 +02:00
Vadim Zeitlin
8f42fec21a Pass wxAutomationObject by reference to CallEval()
Using pointer here makes no sense: this parameter can never be null and
we don't even have the excuse of making it simpler to call like this as
the caller has an object and not a pointer to it, so this even results
in extra typing.
2017-10-22 23:37:24 +02:00
Vadim Zeitlin
408ee0523c Move RunScriptInternal() out of wxWebViewIE and rename
There is no need for this function to be a class member.
2017-10-22 23:37:22 +02:00
Vadim Zeitlin
74e60b39f8 No changes, just get rid of gratuitous difference
Don't add an extra line unrelated to JavaScript changes on this branch.
2017-10-22 23:37:10 +02:00
Vadim Zeitlin
ee9615b9ac Consistently capitalize "JavaScript"
This is the proper name of the language, not "Javascript".
2017-10-22 00:26:33 +02:00
Jose Lorenzo
af8f7f33c3 Merge wxWebView JavaScript improvements branch
This is a squashed commit of the SOC2017_WEBVIEW_JS branch from
https://github.com/joseeloren/wxWidgets.git

Closes https://github.com/wxWidgets/wxWidgets/pull/538
2017-10-21 22:42:30 +02:00
PB
362b1220b4 Fix a few more BSTR leaks in wxWebViewIE
Use wxBasicString to ensure that temporary BSTRs are correctly freed.
2017-07-16 23:04:22 +02:00
PB
4ebef67e3e Update update constructing wxBasicString from literal strings
No real changes, just replace wxT() with wxS() as wxBasicString ctor now
that it takes wxString and not "const wchar_t*" and remove the now
unnecessary explicit "wxString()".
2017-07-16 16:32:51 +02:00
PB
ca3f919da9 Make wxBasicString safer and easier to use as a BSTR RAII wrapper. 2017-07-01 12:50:24 +02:00
PB
564c0aafa5 Use wxBasicString instead of BSTR in wxWebViewIE to prevent memory leaks. 2017-06-23 18:16:44 +02:00
PB
684f0146f1 Revert "Introduces wxBSTR, an RAII wrapper for MSW BSTR type. wxBSTR also supersedes wxBasicString."
This reverts commit db22c91d44.
2017-06-23 17:05:03 +02:00
pbfordev
82104e0e54 Use wxBSTR to prevent leaking BSTRs in wxWebViewIE. 2017-06-16 21:38:13 +02:00
Paul Cornett
01909a20c8 Remove initializations of wxString with wxEmptyString
An empty string is the default
2017-05-28 23:53:44 -07:00
Markus Juergens
4489ec80e0 Add better error checking to wxWebViewIE
Verify that accessing a property really succeeded before using the returned
value.

This should fix at least one crash due to the use of uninitialized BSTR in
wxWebViewIE::GetCurrentTitle().

Closes #17204.
2015-10-15 16:35:58 +02:00
Vadim Zeitlin
b6fa548d80 Simplify wxWebViewIE code further by using wxSafeArray<>.
Use the existing class instead of using SAFEARRAY directly.

See f5d2bfa880.
2015-07-17 14:40:16 +02:00
Vadim Zeitlin
f5d2bfa880 Add better error checking and simplify wxWebViewIE::DoSetPage().
Don't ignore errors (this resulted in warnings in optimized builds because
variable "hr" containing the error code to was assigned but never used) and
don't leak memory in the (admittedly unlikely) case an error really occurs.

Also don't duplicate the code for creating a one element SAFEARRAY<VARIANT>,
extract it into a helper function.
2015-06-14 19:52:28 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Dimitri Schoolwerth
75964c3afa Fix non-MSVS compilation of webview_ie.cpp.
Use wxCRT_StricmpW instead of the Visual C++ specific _wcsicmp.

See #14382.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-06-24 02:46:24 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
1b48beaaf0 Fix wrong return value from wxWebViewIE::Find() in 64 bit build.
Using wxNOT_FOUND and an unsigned size() return value in the same operator ?:
resulted in wxNOT_FOUND being converted to an unsigned size_t type and while
converting it back to (signed) long worked in 32 bit builds where long and
size_t have the same size, it was broken in 64 bit builds where their sizes
are different.

Thanks g++ for catching this one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-12 14:12:38 +00:00
Steve Lamerton
938506b1f7 Use wxCOMPtr throughout the wxWebViewIE Find code.
As well as making the code a bit neater this seems to fix some memory issues.

See #15207.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-18 14:07:58 +00:00