- From: Jonas Sicking <jonas@sicking.cc>
- Date: Mon, 10 Apr 2006 11:50:32 -0700
- To: Maciej Stachowiak <mjs@apple.com>
- Cc: Ian Hickson <ian@hixie.ch>, Cameron McCormack <cam@mcc.id.au>, Web APIs WG <public-webapi@w3.org>
Maciej Stachowiak wrote:
>
>
> On Apr 6, 2006, at 6:46 PM, Ian Hickson wrote:
>
>>
>> On Fri, 7 Apr 2006, Cameron McCormack wrote:
>>>
>>> Web APIs Issue Tracker:
>>>>> [re creating an XHR object in non-ES languages]
>>> ...
>>>>> (a) Leave it up to the language
>>>>> (b) Create a method on some object (like Window or Document) that
>>>>> returns an
>>>>> the object.
>>>>> (c) Do it through DOMImplementation
>>>
>>> Ian Hickson:
>>>> If you do either (b) or (c), please make it specific to that language
>>>> binding and no _not_ permit a JS implementation to expose that API.
>>>
>>> Why?
>>
>> Because every single code path adds a new set of bugs, with its own set
>> of Web pages that depend on it, with its own set of confused authors,
>> with time spent implementing it, fixing it, testing it, etc.
>>
>> We already have at least three ways of obtaining an XMLHttpRequest
>> object,
>> we don't need a fourth.
>
> On the other hand, for implementations that provide bindings to multiple
> languages, it is a burden to exclude a particular API from only one of
> them. (WebKit is such an implementation, we have an Objective-C mapping
> to the DOM for use as part of the embedding API).
>
> Here's a possibly too cute solution that would make things
> language-independent but add nothing new for JavaScript:
>
> interface WindowXMLHttpRequest {
> XMLHttpRequest XMLHttpRequest();
> }
No, that would mean that people in javascript should write:
myXHR = XMLHttpRequest();
(note the lack of 'new').
For it to work you'd have to do something like:
interface WindowXMLHttpRequest {
readonly attribute XMLHttpRequestCreatorFunction;
}
where XMLHttpRequestCreatorFunction is a function that when called
returns an XHR. Unfortunately I don't think that really maps well to Java.
/ Jonas
Received on Monday, 10 April 2006 18:50:49 UTC