msxml3: Ignore IActiveScript interface for IXMLHTTPRequest

Jacek Caban jacek at codeweavers.com
Fri Feb 11 06:56:40 CST 2011


On 2/11/11 12:02 PM, Nikolay Sivov wrote:
> On 2/11/2011 13:30, Alistair Leslie-Hughes wrote:
>> Hi,
>>
>> --------------------------------------------------
>> From: "Nikolay Sivov" <bunglehead at gmail.com>
>> Sent: Friday, February 11, 2011 9:27 PM
>> To: "Alistair Leslie-Hughes" <leslie_alistair at hotmail.com>
>> Cc: <wine-devel at winehq.org>
>> Subject: Re: msxml3: Ignore IActiveScript interface for IXMLHTTPRequest
>>
>>> On 2/11/2011 12:25, Alistair Leslie-Hughes wrote:
>>>> Hi,
>>>>
>>>> On 11/02/2011 8:12 PM, Nikolay Sivov wrote:
>>>>> On 2/11/2011 10:51, Alistair Leslie-Hughes wrote:
>>>>>> Hi,
>>>>>>
>>>>>>
>>>>>> Changelog:
>>>>>> msxml3: Ignore IActiveScript interface for IXMLHTTPRequest
>>>>> What's a purpose of this?
>>>> To remove the FIXME from appearing in the logs.
>>> What application is that? Does it appear running in browser 
>>> scripting by any chance?
>> Yes, it was a website that uses XMLHTTPRequest to load files off the 
>> local
>> filesystem.
> My point is that browser scripting engine shouldn't query for that 
> interface in a first place probably, so it's interesting to figure out 
> why it's queried instead of silence it. Is it possible to reproduce 
> that with wine-gecko or I need IE?
>
> P.S. cc-ing Jacek, as he knows probably why such dead queries happen.

It's queried by mshtml security manager and the query is right. It's 
just the way to check if created object (usually via ActiveXObject call 
in jscript) is a script engine. Once script engine owns an objects, it 
queries for a few more ifaces for which returning E_NOINTERFACE is 
perfectly valid and expected behavior. I think the right fix in this 
case is silencing the FIXME (downgrading to WARN or TRACE). FIXME in 
QueryInterface implementation is a good thing for objects that implement 
a lot different ifaces and it's likely that lack of some will cause app 
failure or objects that are unlikely to be queried for unimplemented 
ifaces. I think it's not the case here.

Cheers,
     Jacek



More information about the wine-devel mailing list