Home | History | Annotate | Download | only in objc
      1 /*
      2  *  Copyright (C) 2004, 2005, 2006, 2007 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  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 #ifndef _WEB_SCRIPT_OBJECT_PRIVATE_H_
     27 #define _WEB_SCRIPT_OBJECT_PRIVATE_H_
     28 
     29 #import "WebScriptObject.h"
     30 #import <runtime/JSValue.h>
     31 #import <wtf/PassRefPtr.h>
     32 
     33 namespace JSC {
     34 
     35     class JSObject;
     36 
     37     namespace Bindings {
     38         class RootObject;
     39     }
     40 }
     41 namespace WebCore {
     42     NSObject* getJSWrapper(JSC::JSObject*);
     43     void addJSWrapper(NSObject* wrapper, JSC::JSObject*);
     44     void removeJSWrapper(JSC::JSObject*);
     45     id createJSWrapper(JSC::JSObject*, PassRefPtr<JSC::Bindings::RootObject> origin, PassRefPtr<JSC::Bindings::RootObject> root);
     46 }
     47 
     48 @interface WebScriptObject (Private)
     49 + (id)_convertValueToObjcValue:(JSC::JSValue)value originRootObject:(JSC::Bindings::RootObject*)originRootObject rootObject:(JSC::Bindings::RootObject*)rootObject;
     50 + (id)scriptObjectForJSObject:(JSObjectRef)jsObject originRootObject:(JSC::Bindings::RootObject*)originRootObject rootObject:(JSC::Bindings::RootObject*)rootObject;
     51 - (id)_init;
     52 - (id)_initWithJSObject:(JSC::JSObject*)imp originRootObject:(PassRefPtr<JSC::Bindings::RootObject>)originRootObject rootObject:(PassRefPtr<JSC::Bindings::RootObject>)rootObject;
     53 - (void)_setImp:(JSC::JSObject*)imp originRootObject:(PassRefPtr<JSC::Bindings::RootObject>)originRootObject rootObject:(PassRefPtr<JSC::Bindings::RootObject>)rootObject;
     54 - (void)_setOriginRootObject:(PassRefPtr<JSC::Bindings::RootObject>)originRootObject andRootObject:(PassRefPtr<JSC::Bindings::RootObject>)rootObject;
     55 - (void)_initializeScriptDOMNodeImp;
     56 - (JSC::JSObject *)_imp;
     57 - (BOOL)_hasImp;
     58 - (JSC::Bindings::RootObject*)_rootObject;
     59 - (JSC::Bindings::RootObject*)_originRootObject;
     60 @end
     61 
     62 @interface WebScriptObject (StagedForPublic)
     63 /*!
     64  @method hasWebScriptKey:
     65  @param name The name of the property to check for.
     66  @discussion Checks for the existence of the property on the object in the script environment.
     67  @result Returns YES if the property exists, NO otherwise.
     68  */
     69 - (BOOL)hasWebScriptKey:(NSString *)name;
     70 @end
     71 
     72 @interface WebScriptObjectPrivate : NSObject
     73 {
     74 @public
     75     JSC::JSObject *imp;
     76     JSC::Bindings::RootObject* rootObject;
     77     JSC::Bindings::RootObject* originRootObject;
     78     BOOL isCreatedByDOMWrapper;
     79 }
     80 @end
     81 
     82 
     83 #endif
     84