gecko-dev/toolkit/library
Toshihito Kikuchi d5a7d77f4f Bug 1573051 - Use both SHParseDisplayName and CreateUri to validate a uri. r=aklotz
For launching with an external protocol handler on Windows, we validate a uri
before sending it to `ShellExecute`, by converting a string into `PIDL` using
`SHParseDisplayName` and extract a string back from PIDL using
`IShellFolder::GetDisplayNameOf`.  The problem was that if a fragment, a
string following a hash mark (#), is always dropped after this validation.
This is caused by the intended design of Windows.

A proposed fix is to use `CreateUri` for validation, which is used behind
`IShellFolder::GetDisplayNameOf`.  However, we also keep `SHParseDisplayName`
because there are cases where `CreateUri` succeeds while `SHParseDisplayName`
fails such as a non-existent `file:` uri and we want to keep the same
validation result for those cases.

Adding `CreateUri` broke MinGW build because of our toolkit issue.  We use
dynamic linking for MinGW build in the meantime.

This patch adds a new unittest to make sure the new validation logic
behaves the same as the old one except the fragment issue.

Differential Revision: https://phabricator.services.mozilla.com/D42041

--HG--
extra : moz-landing-system : lando
2019-08-19 22:10:32 +00:00
..
build Bug 1573566 - Move the real libxul definition in a subdirectory. r=froydnj 2019-08-16 21:44:10 +00:00
dummydll Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
gtest Bug 1573566 - Move the real libxul definition in a subdirectory. r=froydnj 2019-08-16 21:44:10 +00:00
rust Bug 1574914 - Bump audio_thread_priority to 0.18. r=pehrsons 2019-08-19 13:50:08 +00:00
Makefile.in Bug 1542746 - use a static MOZ_PROFILE_ORDER_FILE; r=nalexander,chmanchester 2019-05-24 01:54:59 +00:00
gecko.natvis
gen_buildid.py Bug 1562642 - Part 3 - Add missing MPL2 headers in browser & toolkit r=Gijs 2019-07-10 12:03:37 +00:00
libxul.so-gdb.py.in
moz.build Bug 1573051 - Use both SHParseDisplayName and CreateUri to validate a uri. r=aklotz 2019-08-19 22:10:32 +00:00
nsDllMain.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
symverscript.in
xulrunner.rc Bug 1520177 - Fixed MinGW build's accessibility r=froydnj 2019-04-05 18:14:16 +00:00