Home | History | Annotate | Download | only in xml
      1 /*
      2  * Copyright (C) 2008 Apple Inc. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  *
      8  * 1.  Redistributions of source code must retain the above copyright
      9  *     notice, this list of conditions and the following disclaimer.
     10  * 2.  Redistributions in binary form must reproduce the above copyright
     11  *     notice, this list of conditions and the following disclaimer in the
     12  *     documentation and/or other materials provided with the distribution.
     13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
     14  *     its contributors may be used to endorse or promote products derived
     15  *     from this software without specific prior written permission.
     16  *
     17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  */
     28 
     29 module xml {
     30 
     31     interface [
     32         CanBeConstructed,
     33         CustomConstructFunction,
     34         V8CustomConstructor,
     35         CustomMarkFunction,
     36         EventTarget,
     37         NoStaticTables
     38     ] XMLHttpRequest {
     39         // From XMLHttpRequestEventTarget
     40         // event handler attributes
     41         attribute EventListener onabort;
     42         attribute EventListener onerror;
     43         attribute EventListener onload;
     44         attribute EventListener onloadstart;
     45         attribute EventListener onprogress;
     46 
     47         // event handler attributes
     48         attribute EventListener onreadystatechange;
     49 
     50         // state
     51         const unsigned short UNSENT = 0;
     52         const unsigned short OPENED = 1;
     53         const unsigned short HEADERS_RECEIVED = 2;
     54         const unsigned short LOADING = 3;
     55         const unsigned short DONE = 4;
     56 
     57         readonly attribute unsigned short readyState;
     58 
     59         // request
     60 #if defined(ENABLE_XHR_RESPONSE_BLOB) && ENABLE_XHR_RESPONSE_BLOB
     61         attribute [EnabledAtRuntime] boolean asBlob
     62             setter raises(DOMException);
     63 #endif
     64 
     65         attribute boolean withCredentials
     66             setter raises(DOMException);
     67         // void open(in DOMString method, in DOMString url);
     68         // void open(in DOMString method, in DOMString url, in boolean async);
     69         // void open(in DOMString method, in DOMString url, in boolean async, in DOMString user);
     70         [Custom] void open(in DOMString method, in DOMString url, in boolean async, in DOMString user, in DOMString password)
     71             raises(DOMException);
     72 
     73         [RequiresAllArguments=Raise] void setRequestHeader(in DOMString header, in DOMString value)
     74             raises(DOMException);
     75 
     76         // void send();
     77         // void send(in DOMString data);
     78         [Custom] void send(in Document data)
     79             raises(DOMException);
     80 
     81         void abort();
     82 
     83         readonly attribute XMLHttpRequestUpload upload;
     84 
     85         // response
     86         [ConvertNullStringTo=Undefined] DOMString getAllResponseHeaders()
     87             raises(DOMException);
     88         [RequiresAllArguments=Raise, ConvertNullStringTo=Null] DOMString getResponseHeader(in DOMString header)
     89             raises(DOMException);
     90         readonly attribute [CustomGetter] DOMString responseText // The custom getter implements ConvertNullStringTo=Null
     91             getter raises(DOMException);
     92         readonly attribute Document responseXML
     93             getter raises(DOMException);
     94 #if defined(ENABLE_XHR_RESPONSE_BLOB) && ENABLE_XHR_RESPONSE_BLOB
     95         readonly attribute [EnabledAtRuntime] Blob responseBlob
     96             getter raises(DOMException);
     97 #endif
     98 
     99         attribute DOMString responseType
    100             setter raises(DOMException);
    101         readonly attribute [CustomGetter] Object response
    102             getter raises(DOMException);
    103 
    104         readonly attribute unsigned short status
    105             getter raises(DOMException);
    106         readonly attribute DOMString statusText
    107             getter raises(DOMException);
    108 
    109         // Extension
    110         [RequiresAllArguments=Raise] void overrideMimeType(in DOMString override);
    111 
    112         // EventTarget interface
    113         void addEventListener(in DOMString type,
    114                               in EventListener listener,
    115                               in boolean useCapture);
    116         void removeEventListener(in DOMString type,
    117                                  in EventListener listener,
    118                                  in boolean useCapture);
    119         boolean dispatchEvent(in Event evt)
    120             raises(EventException);
    121     };
    122 
    123 }
    124