mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-16 05:36:35 +00:00
mshtml: Override document.URL's name when adding it from the mshtml typelib.
Because the typelib should contain the lowercase `url` symbol instead. Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
This commit is contained in:
parent
5663146890
commit
8a2883d3e9
|
@ -270,16 +270,20 @@ static BOOL is_arg_type_supported(VARTYPE vt)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_func_info(dispex_data_t *data, tid_t tid, const FUNCDESC *desc, ITypeInfo *dti,
|
static void add_func_info(dispex_data_t *data, tid_t tid, const FUNCDESC *desc, ITypeInfo *dti,
|
||||||
dispex_hook_invoke_t hook)
|
dispex_hook_invoke_t hook, const WCHAR *name_override)
|
||||||
{
|
{
|
||||||
func_info_t *info;
|
func_info_t *info;
|
||||||
BSTR name;
|
BSTR name;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
hres = ITypeInfo_GetDocumentation(dti, desc->memid, &name, NULL, NULL, NULL);
|
if(name_override)
|
||||||
if(FAILED(hres)) {
|
name = SysAllocString(name_override);
|
||||||
WARN("GetDocumentation failed: %08lx\n", hres);
|
else {
|
||||||
return;
|
hres = ITypeInfo_GetDocumentation(dti, desc->memid, &name, NULL, NULL, NULL);
|
||||||
|
if(FAILED(hres)) {
|
||||||
|
WARN("GetDocumentation failed: %08lx\n", hres);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(info = data->funcs; info < data->funcs+data->func_cnt; info++) {
|
for(info = data->funcs; info < data->funcs+data->func_cnt; info++) {
|
||||||
|
@ -441,9 +445,9 @@ static HRESULT process_interface(dispex_data_t *data, tid_t tid, ITypeInfo *disp
|
||||||
hook = NULL;
|
hook = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!hook || hook->invoke) {
|
if(!hook || hook->invoke || hook->name) {
|
||||||
add_func_info(data, tid, funcdesc, disp_typeinfo ? disp_typeinfo : typeinfo,
|
add_func_info(data, tid, funcdesc, disp_typeinfo ? disp_typeinfo : typeinfo,
|
||||||
hook ? hook->invoke : NULL);
|
hook ? hook->invoke : NULL, hook ? hook->name : NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ITypeInfo_ReleaseFuncDesc(typeinfo, funcdesc);
|
ITypeInfo_ReleaseFuncDesc(typeinfo, funcdesc);
|
||||||
|
|
|
@ -5975,6 +5975,7 @@ static const tid_t HTMLDocumentNode_iface_tids[] = {
|
||||||
static void HTMLDocumentNode_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
|
static void HTMLDocumentNode_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
|
||||||
{
|
{
|
||||||
static const dispex_hook_t document2_hooks[] = {
|
static const dispex_hook_t document2_hooks[] = {
|
||||||
|
{DISPID_IHTMLDOCUMENT2_URL, NULL, L"URL"},
|
||||||
{DISPID_IHTMLDOCUMENT2_LOCATION, HTMLDocumentNode_location_hook},
|
{DISPID_IHTMLDOCUMENT2_LOCATION, HTMLDocumentNode_location_hook},
|
||||||
{DISPID_UNKNOWN}
|
{DISPID_UNKNOWN}
|
||||||
};
|
};
|
||||||
|
@ -6307,6 +6308,7 @@ static const tid_t HTMLDocumentObj_iface_tids[] = {
|
||||||
static void HTMLDocumentObj_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
|
static void HTMLDocumentObj_init_dispex_info(dispex_data_t *info, compat_mode_t mode)
|
||||||
{
|
{
|
||||||
static const dispex_hook_t document2_hooks[] = {
|
static const dispex_hook_t document2_hooks[] = {
|
||||||
|
{DISPID_IHTMLDOCUMENT2_URL, NULL, L"URL"},
|
||||||
{DISPID_IHTMLDOCUMENT2_LOCATION, HTMLDocumentObj_location_hook},
|
{DISPID_IHTMLDOCUMENT2_LOCATION, HTMLDocumentObj_location_hook},
|
||||||
{DISPID_UNKNOWN}
|
{DISPID_UNKNOWN}
|
||||||
};
|
};
|
||||||
|
|
|
@ -359,6 +359,7 @@ typedef HRESULT (*dispex_hook_invoke_t)(DispatchEx*,WORD,DISPPARAMS*,VARIANT*,
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DISPID dispid;
|
DISPID dispid;
|
||||||
dispex_hook_invoke_t invoke;
|
dispex_hook_invoke_t invoke;
|
||||||
|
const WCHAR *name;
|
||||||
} dispex_hook_t;
|
} dispex_hook_t;
|
||||||
|
|
||||||
struct DispatchEx {
|
struct DispatchEx {
|
||||||
|
|
|
@ -18,6 +18,11 @@
|
||||||
|
|
||||||
var tests = [];
|
var tests = [];
|
||||||
|
|
||||||
|
sync_test("url", function() {
|
||||||
|
ok(document.URL === "http://winetest.example.org/index.html?dom.js", "document.URL = " + document.URL);
|
||||||
|
ok(!("documentURI" in document), "documentURI in document");
|
||||||
|
});
|
||||||
|
|
||||||
sync_test("input_selection", function() {
|
sync_test("input_selection", function() {
|
||||||
var input = document.createElement("input");
|
var input = document.createElement("input");
|
||||||
input.type = "text";
|
input.type = "text";
|
||||||
|
|
Loading…
Reference in a new issue