diff options
| author | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 | 
|---|---|---|
| committer | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 | 
| commit | 5f1ab04193ad0130ca8204aadaceae083aca9881 (patch) | |
| tree | 5a92cd389e2cfe7fb67197ce14b38469462379f8 /WebCore/bindings/objc | |
| parent | 194315e5a908cc8ed67d597010544803eef1ac59 (diff) | |
| download | external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.zip external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.gz external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.bz2 | |
Get WebKit r44544.
Diffstat (limited to 'WebCore/bindings/objc')
21 files changed, 639 insertions, 1071 deletions
| diff --git a/WebCore/bindings/objc/DOM.mm b/WebCore/bindings/objc/DOM.mm index 53be4ff..3fd28d1 100644 --- a/WebCore/bindings/objc/DOM.mm +++ b/WebCore/bindings/objc/DOM.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth (speth@end.com)   * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)   * @@ -26,34 +26,32 @@   */  #import "config.h" +#import "DOMInternal.h" // import first to make the private/public trick work  #import "DOM.h" +#import "DOMRangeInternal.h" +#import "DOMElementInternal.h" +#import "DOMNodeInternal.h"  #import "DOMHTMLCanvasElement.h" -#import "DOMInternal.h" -#import "ExceptionHandlers.h"  #import "Frame.h"  #import "HTMLNames.h" -#import "HTMLPlugInElement.h" -#import "NodeIterator.h" -#import "Range.h" +#import "HTMLElement.h"  #import "RenderImage.h" -#import "RenderView.h" -#import "ScriptController.h" -#import "SimpleFontData.h" -#import "TreeWalker.h" - +#import "NodeFilter.h" +#import "WebScriptObjectPrivate.h"  #import <wtf/HashMap.h> -#if ENABLE(SVG) -#import "SVGElement.h" -#import "SVGElementInstance.h" -#import "SVGNames.h" +#if ENABLE(SVG_DOM_OBJC_BINDINGS)  #import "DOMSVG.h" +#import "SVGElementInstance.h"  #endif  using namespace JSC;  using namespace WebCore; +// FIXME: Would be nice to break this up into separate files to match how other WebKit +// code is organized. +  //------------------------------------------------------------------------------------------  // DOMNode @@ -144,7 +142,7 @@ static void createElementClassMap()      addElementClass(HTMLNames::ulTag, [DOMHTMLUListElement class]);      addElementClass(HTMLNames::xmpTag, [DOMHTMLPreElement class]); -#if ENABLE(SVG) +#if ENABLE(SVG_DOM_OBJC_BINDINGS)      addElementClass(SVGNames::aTag, [DOMSVGAElement class]);      addElementClass(SVGNames::altGlyphTag, [DOMSVGAltGlyphElement class]);  #if ENABLE(SVG_ANIMATION) @@ -162,7 +160,7 @@ static void createElementClassMap()      addElementClass(SVGNames::defsTag, [DOMSVGDefsElement class]);      addElementClass(SVGNames::descTag, [DOMSVGDescElement class]);      addElementClass(SVGNames::ellipseTag, [DOMSVGEllipseElement class]); -#if ENABLE(SVG_FILTERS) +#if ENABLE(FILTERS)      addElementClass(SVGNames::feBlendTag, [DOMSVGFEBlendElement class]);      addElementClass(SVGNames::feColorMatrixTag, [DOMSVGFEColorMatrixElement class]);      addElementClass(SVGNames::feComponentTransferTag, [DOMSVGFEComponentTransferElement class]); @@ -260,7 +258,6 @@ static NSArray *kit(const Vector<IntRect>& rects)  @implementation DOMNode (WebCoreInternal) -// FIXME: should this go in the main implementation?  - (NSString *)description  {      if (!_internal) @@ -274,192 +271,125 @@ static NSArray *kit(const Vector<IntRect>& rects)      return [NSString stringWithFormat:@"<%@ [%@]: %p>", [[self class] description], [self nodeName], _internal];  } -- (id)_initWithNode:(WebCore::Node *)impl +- (JSC::Bindings::RootObject*)_rootObject  { -    ASSERT(impl); - -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; +    WebCore::Frame* frame = core(self)->document()->frame(); +    if (!frame) +        return 0; +    return frame->script()->bindingRootObject();  } -+ (DOMNode *)_wrapNode:(WebCore::Node *)impl -{ -    if (!impl) -        return nil; - -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; +@end -    Class wrapperClass = nil; +Class kitClass(WebCore::Node* impl) +{      switch (impl->nodeType()) {          case WebCore::Node::ELEMENT_NODE:              if (impl->isHTMLElement()) -                wrapperClass = WebCore::elementClass(static_cast<WebCore::HTMLElement*>(impl)->tagQName(), [DOMHTMLElement class]); -#if ENABLE(SVG) -            else if (impl->isSVGElement()) -                wrapperClass = WebCore::elementClass(static_cast<WebCore::SVGElement*>(impl)->tagQName(), [DOMSVGElement class]); +                return WebCore::elementClass(static_cast<WebCore::HTMLElement*>(impl)->tagQName(), [DOMHTMLElement class]); +#if ENABLE(SVG_DOM_OBJC_BINDINGS) +            if (impl->isSVGElement()) +                return WebCore::elementClass(static_cast<WebCore::SVGElement*>(impl)->tagQName(), [DOMSVGElement class]);  #endif -            else -                wrapperClass = [DOMElement class]; -            break; +            return [DOMElement class];          case WebCore::Node::ATTRIBUTE_NODE: -            wrapperClass = [DOMAttr class]; -            break; +            return [DOMAttr class];          case WebCore::Node::TEXT_NODE: -            wrapperClass = [DOMText class]; -            break; +            return [DOMText class];          case WebCore::Node::CDATA_SECTION_NODE: -            wrapperClass = [DOMCDATASection class]; -            break; +            return [DOMCDATASection class];          case WebCore::Node::ENTITY_REFERENCE_NODE: -            wrapperClass = [DOMEntityReference class]; -            break; +            return [DOMEntityReference class];          case WebCore::Node::ENTITY_NODE: -            wrapperClass = [DOMEntity class]; -            break; +            return [DOMEntity class];          case WebCore::Node::PROCESSING_INSTRUCTION_NODE: -            wrapperClass = [DOMProcessingInstruction class]; -            break; +            return [DOMProcessingInstruction class];          case WebCore::Node::COMMENT_NODE: -            wrapperClass = [DOMComment class]; -            break; +            return [DOMComment class];          case WebCore::Node::DOCUMENT_NODE:              if (static_cast<WebCore::Document*>(impl)->isHTMLDocument()) -                wrapperClass = [DOMHTMLDocument class]; -#if ENABLE(SVG) -            else if (static_cast<WebCore::Document*>(impl)->isSVGDocument()) -                wrapperClass = [DOMSVGDocument class]; +                return [DOMHTMLDocument class]; +#if ENABLE(SVG_DOM_OBJC_BINDINGS) +            if (static_cast<WebCore::Document*>(impl)->isSVGDocument()) +                return [DOMSVGDocument class];  #endif -            else -                wrapperClass = [DOMDocument class]; -            break; +            return [DOMDocument class];          case WebCore::Node::DOCUMENT_TYPE_NODE: -            wrapperClass = [DOMDocumentType class]; -            break; +            return [DOMDocumentType class];          case WebCore::Node::DOCUMENT_FRAGMENT_NODE: -            wrapperClass = [DOMDocumentFragment class]; -            break; +            return [DOMDocumentFragment class];          case WebCore::Node::NOTATION_NODE: -            wrapperClass = [DOMNotation class]; -            break; +            return [DOMNotation class];          case WebCore::Node::XPATH_NAMESPACE_NODE:              // FIXME: Create an XPath objective C wrapper              // See http://bugs.webkit.org/show_bug.cgi?id=8755              return nil;      } -    return [[[wrapperClass alloc] _initWithNode:impl] autorelease]; +    ASSERT_NOT_REACHED(); +    return nil;  } -+ (id <DOMEventTarget>)_wrapEventTarget:(WebCore::EventTarget *)eventTarget +id <DOMEventTarget> kit(WebCore::EventTarget* eventTarget)  {      if (!eventTarget)          return nil; -    // We don't have an ObjC binding for XMLHttpRequest -    return [DOMNode _wrapNode:eventTarget->toNode()]; -} +    if (WebCore::Node* node = eventTarget->toNode()) +        return kit(node); -- (WebCore::Node *)_node -{ -    return reinterpret_cast<WebCore::Node*>(_internal); -} - -- (JSC::Bindings::RootObject*)_rootObject -{ -    if (WebCore::Node *n = [self _node]) { -        if (WebCore::Frame* frame = n->document()->frame()) -            return frame->script()->bindingRootObject(); -    } -    return 0; -} - -@end +#if ENABLE(SVG_DOM_OBJC_BINDINGS) +    if (WebCore::SVGElementInstance* svgElementInstance = eventTarget->toSVGElementInstance()) +        return kit(svgElementInstance); +#endif -@implementation DOMNode (DOMNodeExtensions) +    // We don't have an ObjC binding for XMLHttpRequest. -// FIXME: This should be implemented in Node so we don't have to fetch the renderer. -// If it was, we could even autogenerate. -- (NSRect)boundingBox -{ -    [self _node]->document()->updateLayoutIgnorePendingStylesheets(); -    WebCore::RenderObject *renderer = [self _node]->renderer(); -    if (renderer) -        return renderer->absoluteBoundingBoxRect(); -    return NSZeroRect; -} - -// FIXME: This should be implemented in Node so we don't have to fetch the renderer. -// If it was, we could even autogenerate. -- (NSArray *)lineBoxRects -{ -    [self _node]->document()->updateLayoutIgnorePendingStylesheets(); -    WebCore::RenderObject *renderer = [self _node]->renderer(); -    if (renderer) { -        Vector<WebCore::IntRect> rects; -        renderer->absoluteRectsForRange(rects); -        return kit(rects); -    }      return nil;  } -@end - -#if ENABLE(SVG) -@implementation DOMSVGElementInstance (WebCoreInternal) - -- (id)_initWithSVGElementInstance:(WebCore::SVGElementInstance *)impl -{ -    ASSERT(impl); - -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} +@implementation DOMNode (DOMNodeExtensions) -+ (DOMSVGElementInstance *)_wrapSVGElementInstance:(WebCore::SVGElementInstance *)impl +- (NSRect)boundingBox  { -    if (!impl) -        return nil; -     -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; -     -    return [[[self alloc] _initWithSVGElementInstance:impl] autorelease]; +    // FIXME: Could we move this function to WebCore::Node and autogenerate? +    core(self)->document()->updateLayoutIgnorePendingStylesheets(); +    WebCore::RenderObject* renderer = core(self)->renderer(); +    if (!renderer) +        return NSZeroRect; +    return renderer->absoluteBoundingBoxRect();  } -+ (id <DOMEventTarget>)_wrapEventTarget:(WebCore::EventTarget *)eventTarget +- (NSArray *)textRects  { -    if (!eventTarget) +    // FIXME: Could we move this function to WebCore::Node and autogenerate? +    core(self)->document()->updateLayoutIgnorePendingStylesheets(); +    if (!core(self)->renderer())          return nil; - -    return [DOMSVGElementInstance _wrapSVGElementInstance:eventTarget->toSVGElementInstance()]; +    RefPtr<Range> range = Range::create(core(self)->document()); +    WebCore::ExceptionCode ec = 0; +    range->selectNodeContents(core(self), ec); +    Vector<WebCore::IntRect> rects; +    range->textRects(rects); +    return kit(rects);  } -- (WebCore::SVGElementInstance *)_SVGElementInstance +- (NSArray *)lineBoxRects  { -    return reinterpret_cast<WebCore::SVGElementInstance*>(_internal); +    return [self textRects];  }  @end -#endif  @implementation DOMNode (DOMNodeExtensionsPendingPublic)  - (NSImage *)renderedImage  { -    if (WebCore::Node *node = [self _node]) -        if (WebCore::Frame* frame = node->document()->frame()) -            return frame->nodeImage(node); -    return nil; +    // FIXME: Could we move this function to WebCore::Node and autogenerate? +    WebCore::Node* node = core(self); +    WebCore::Frame* frame = node->document()->frame(); +    if (!frame) +        return nil; +    return frame->nodeImage(node);  }  @end @@ -468,84 +398,88 @@ static NSArray *kit(const Vector<IntRect>& rects)  - (NSRect)boundingBox  { -    [self _range]->ownerDocument()->updateLayoutIgnorePendingStylesheets(); -    return [self _range]->boundingBox(); +    // FIXME: The call to updateLayoutIgnorePendingStylesheets should be moved into WebCore::Range. +    core(self)->ownerDocument()->updateLayoutIgnorePendingStylesheets(); +    return core(self)->boundingBox();  } -- (NSArray *)lineBoxRects +- (NSArray *)textRects  { +    // FIXME: The call to updateLayoutIgnorePendingStylesheets should be moved into WebCore::Range.      Vector<WebCore::IntRect> rects; -    [self _range]->ownerDocument()->updateLayoutIgnorePendingStylesheets(); -    [self _range]->addLineBoxRects(rects); +    core(self)->ownerDocument()->updateLayoutIgnorePendingStylesheets(); +    core(self)->textRects(rects);      return kit(rects);  } +- (NSArray *)lineBoxRects +{ +    // FIXME: Remove this once all clients stop using it and we drop Leopard support. +    return [self textRects]; +} +  @end  //------------------------------------------------------------------------------------------  // DOMElement -// FIXME: this should be auto-generated in DOMElement.mm  @implementation DOMElement (DOMElementAppKitExtensions) -// FIXME: this should be implemented in the implementation  - (NSImage*)image  { -    WebCore::RenderObject* renderer = [self _element]->renderer(); -    if (renderer && renderer->isImage()) { -        WebCore::RenderImage* img = static_cast<WebCore::RenderImage*>(renderer); -        if (img->cachedImage() && !img->cachedImage()->errorOccurred()) -            return img->cachedImage()->image()->getNSImage(); -    } -    return nil; +    // FIXME: Could we move this function to WebCore::Node and autogenerate? +    WebCore::RenderObject* renderer = core(self)->renderer(); +    if (!renderer || !renderer->isImage()) +        return nil; +    WebCore::CachedImage* cachedImage = static_cast<WebCore::RenderImage*>(renderer)->cachedImage(); +    if (!cachedImage || cachedImage->errorOccurred()) +        return nil; +    return cachedImage->image()->getNSImage();  }  @end  @implementation DOMElement (WebPrivate) -// FIXME: this should be implemented in the implementation  - (NSFont *)_font  { -    WebCore::RenderObject* renderer = [self _element]->renderer(); -    if (renderer) -        return renderer->style()->font().primaryFont()->getNSFont(); -    return nil; +    // FIXME: Could we move this function to WebCore::Element and autogenerate? +    WebCore::RenderObject* renderer = core(self)->renderer(); +    if (!renderer) +        return nil; +    return renderer->style()->font().primaryFont()->getNSFont();  } -// FIXME: this should be implemented in the implementation  - (NSData *)_imageTIFFRepresentation  { -    WebCore::RenderObject* renderer = [self _element]->renderer(); -    if (renderer && renderer->isImage()) { -        WebCore::RenderImage* img = static_cast<WebCore::RenderImage*>(renderer); -        if (img->cachedImage() && !img->cachedImage()->errorOccurred()) -            return (NSData*)(img->cachedImage()->image()->getTIFFRepresentation()); -    } -    return nil; +    // FIXME: Could we move this function to WebCore::Element and autogenerate? +    WebCore::RenderObject* renderer = core(self)->renderer(); +    if (!renderer || !renderer->isImage()) +        return nil; +    WebCore::CachedImage* cachedImage = static_cast<WebCore::RenderImage*>(renderer)->cachedImage(); +    if (!cachedImage || cachedImage->errorOccurred()) +        return nil; +    return (NSData *)cachedImage->image()->getTIFFRepresentation();  } -// FIXME: this should be implemented in the implementation  - (NSURL *)_getURLAttribute:(NSString *)name  { +    // FIXME: Could we move this function to WebCore::Element and autogenerate?      ASSERT(name); -    WebCore::Element* element = [self _element]; +    WebCore::Element* element = core(self);      ASSERT(element);      return element->document()->completeURL(parseURL(element->getAttribute(name)));  } -// FIXME: this should be implemented in the implementation  - (BOOL)isFocused  { -    WebCore::Element* impl = [self _element]; -    if (impl->document()->focusedNode() == impl) -        return YES; -    return NO; +    // FIXME: Could we move this function to WebCore::Element and autogenerate? +    WebCore::Element* element = core(self); +    return element->document()->focusedNode() == element;  }  @end -  //------------------------------------------------------------------------------------------  // DOMRange @@ -559,7 +493,7 @@ static NSArray *kit(const Vector<IntRect>& rects)                 [self startContainer], [self startOffset], [self endContainer], [self endOffset]];  } -// FIXME: this should be removed as soon as all internal Apple uses of it have been replaced with +// FIXME: This should be removed as soon as all internal Apple uses of it have been replaced with  // calls to the public method - (NSString *)text.  - (NSString *)_text  { @@ -568,43 +502,31 @@ static NSArray *kit(const Vector<IntRect>& rects)  @end -  //------------------------------------------------------------------------------------------  // DOMNodeFilter -// FIXME: This implementation should be in it's own file. - -@implementation DOMNodeFilter - -- (id)_initWithNodeFilter:(WebCore::NodeFilter *)impl -{ -    ASSERT(impl); - -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMNodeFilter *)_wrapNodeFilter:(WebCore::NodeFilter *)impl +DOMNodeFilter *kit(WebCore::NodeFilter* impl)  {      if (!impl)          return nil; - -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; - -    return [[[self alloc] _initWithNodeFilter:impl] autorelease]; +     +    if (DOMNodeFilter *wrapper = getDOMWrapper(impl)) +        return [[wrapper retain] autorelease]; +     +    DOMNodeFilter *wrapper = [[DOMNodeFilter alloc] _init]; +    wrapper->_internal = reinterpret_cast<DOMObjectInternal*>(impl); +    impl->ref(); +    addDOMWrapper(wrapper, impl); +    return [wrapper autorelease];  } -- (WebCore::NodeFilter *)_nodeFilter +WebCore::NodeFilter* core(DOMNodeFilter *wrapper)  { -    return reinterpret_cast<WebCore::NodeFilter*>(_internal); +    return wrapper ? reinterpret_cast<WebCore::NodeFilter*>(wrapper->_internal) : 0;  } +@implementation DOMNodeFilter +  - (void)dealloc  {      if (_internal) @@ -621,7 +543,7 @@ static NSArray *kit(const Vector<IntRect>& rects)  - (short)acceptNode:(DOMNode *)node  { -    return [self _nodeFilter]->acceptNode([node _node]); +    return core(self)->acceptNode(core(node));  }  @end diff --git a/WebCore/bindings/objc/DOMAbstractView.mm b/WebCore/bindings/objc/DOMAbstractView.mm index 7bfe7f1..0b79aa9 100644 --- a/WebCore/bindings/objc/DOMAbstractView.mm +++ b/WebCore/bindings/objc/DOMAbstractView.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2008 Apple Inc. All rights reserved. + * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.   *   * Redistribution and use in source and binary forms, with or without   * modification, are permitted provided that the following conditions @@ -27,16 +27,14 @@   */  #import "config.h" -#import "DOMAbstractView.h" +#import "DOMInternal.h" // import first to make the private/public trick work +#import "DOMAbstractViewInternal.h" -#import "DOMDocument.h" -#import "DOMInternal.h" -#import "DOMWindow.h" -#import "Document.h" +#import "DOMDocumentInternal.h"  #import "ExceptionHandlers.h"  #import "Frame.h"  #import "ThreadCheck.h" -#import <wtf/GetPtr.h> +#import "WebScriptObjectPrivate.h"  #define IMPL reinterpret_cast<WebCore::Frame*>(_internal) @@ -52,7 +50,7 @@  {      if (!_internal)          return nil; -    return [DOMDocument _wrapDocument:WTF::getPtr(IMPL->domWindow()->document())]; +    return kit(IMPL->domWindow()->document());  }  @end @@ -62,44 +60,34 @@  - (void)_disconnectFrame  {      ASSERT(_internal); -    WebCore::removeDOMWrapper(_internal); +    removeDOMWrapper(_internal);      _internal = 0;  }  @end -@implementation DOMAbstractView (WebCoreInternal) - -- (WebCore::DOMWindow *)_abstractView +WebCore::DOMWindow* core(DOMAbstractView *wrapper)  { -    if (!_internal) -        return nil; -    return IMPL->domWindow(); +    if (!wrapper) +        return 0; +    if (!wrapper->_internal) +        return 0; +    return reinterpret_cast<WebCore::Frame*>(wrapper->_internal)->domWindow();  } -- (id)_initWithFrame:(WebCore::Frame *)impl +DOMAbstractView *kit(WebCore::DOMWindow* value)  {      { DOM_ASSERT_MAIN_THREAD(); WebCoreThreadViolationCheckRoundOne(); }; -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    WebCore::addDOMWrapper(self, impl); -    return self; -} -+ (DOMAbstractView *)_wrapAbstractView:(WebCore::DOMWindow *)impl -{ -    { DOM_ASSERT_MAIN_THREAD(); WebCoreThreadViolationCheckRoundOne(); }; - -    if (!impl) +    if (!value)          return nil; -    WebCore::Frame* frame = impl->frame(); +    WebCore::Frame* frame = value->frame();      if (!frame)          return nil; -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(frame); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; -    return [[[self alloc] _initWithFrame:frame] autorelease]; +    if (DOMAbstractView *wrapper = getDOMWrapper(frame)) +        return [[wrapper retain] autorelease]; +    DOMAbstractView *wrapper = [[DOMAbstractView alloc] _init]; +    wrapper->_internal = reinterpret_cast<DOMObjectInternal*>(frame); +    addDOMWrapper(wrapper, frame); +    return [wrapper autorelease];  } - -@end diff --git a/WebCore/bindings/objc/DOMCSS.mm b/WebCore/bindings/objc/DOMCSS.mm index 4e9cd0c..0149273 100644 --- a/WebCore/bindings/objc/DOMCSS.mm +++ b/WebCore/bindings/objc/DOMCSS.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004-2006 Apple Computer, Inc.  All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth (speth@end.com)   * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)   * @@ -26,194 +26,99 @@   */  #import "config.h" -#import "DOMCSS.h" - -#import "CSSCharsetRule.h" -#import "CSSFontFaceRule.h" -#import "CSSImportRule.h" -#import "CSSMediaRule.h" -#import "CSSPageRule.h" -#import "CSSPrimitiveValue.h" +  #import "CSSRule.h" -#import "CSSRuleList.h" -#import "CSSStyleDeclaration.h" -#import "CSSStyleRule.h" -#import "CSSStyleSheet.h" -#import "CSSValueList.h" +#import "CSSValue.h" +#import "DOMCSSCharsetRule.h" +#import "DOMCSSFontFaceRule.h" +#import "DOMCSSImportRule.h" +#import "DOMCSSMediaRule.h" +#import "DOMCSSPageRule.h" +#import "DOMCSSPrimitiveValue.h" +#import "DOMCSSRuleInternal.h" +#import "DOMCSSStyleDeclaration.h" +#import "DOMCSSStyleRule.h" +#import "DOMCSSStyleSheet.h" +#import "DOMCSSUnknownRule.h" +#import "DOMCSSValueInternal.h" +#import "DOMCSSValueList.h" +#import "DOMCSSVariablesRule.h"  #import "DOMInternal.h" -#import "DOMPrivate.h" -#import "StyleSheet.h" -#import <objc/objc-class.h> +#import "DOMStyleSheetInternal.h" +#import "DOMWebKitCSSKeyframeRule.h" +#import "DOMWebKitCSSKeyframesRule.h" -#if ENABLE(SVG) -#import "DOMSVGColor.h" +#if ENABLE(SVG_DOM_OBJC_BINDINGS)  #import "DOMSVGPaint.h"  #endif  //------------------------------------------------------------------------------------------  // DOMStyleSheet -@implementation DOMStyleSheet (WebCoreInternal) - -- (WebCore::StyleSheet *)_styleSheet -{ -    return reinterpret_cast<WebCore::StyleSheet*>(_internal); -} - -- (id)_initWithStyleSheet:(WebCore::StyleSheet *)impl +Class kitClass(WebCore::StyleSheet* impl)  { -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMStyleSheet *)_wrapStyleSheet:(WebCore::StyleSheet *)impl -{ -    if (!impl) -        return nil; - -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; -     -    Class wrapperClass;      if (impl->isCSSStyleSheet()) -        wrapperClass = [DOMCSSStyleSheet class]; -    else -        wrapperClass = [DOMStyleSheet class]; -    return [[[wrapperClass alloc] _initWithStyleSheet:impl] autorelease]; +        return [DOMCSSStyleSheet class]; +    return [DOMStyleSheet class];  } -@end -  //------------------------------------------------------------------------------------------  // DOMCSSRule -@implementation DOMCSSRule (WebCoreInternal) - -- (WebCore::CSSRule *)_CSSRule -{ -    return reinterpret_cast<WebCore::CSSRule*>(_internal); -} - -- (id)_initWithCSSRule:(WebCore::CSSRule *)impl -{ -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMCSSRule *)_wrapCSSRule:(WebCore::CSSRule *)impl +Class kitClass(WebCore::CSSRule* impl)  { -    if (!impl) -        return nil; - -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; - -    Class wrapperClass = nil;      switch (impl->type()) {          case DOM_UNKNOWN_RULE: -            wrapperClass = [DOMCSSUnknownRule class]; -            break; +            return [DOMCSSUnknownRule class];          case DOM_STYLE_RULE: -            wrapperClass = [DOMCSSStyleRule class]; -            break; +            return [DOMCSSStyleRule class];          case DOM_CHARSET_RULE: -            wrapperClass = [DOMCSSCharsetRule class]; -            break; +            return [DOMCSSCharsetRule class];          case DOM_IMPORT_RULE: -            wrapperClass = [DOMCSSImportRule class]; -            break; +            return [DOMCSSImportRule class];          case DOM_MEDIA_RULE: -            wrapperClass = [DOMCSSMediaRule class]; -            break; +            return [DOMCSSMediaRule class];          case DOM_FONT_FACE_RULE: -            wrapperClass = [DOMCSSFontFaceRule class]; -            break; +            return [DOMCSSFontFaceRule class];          case DOM_PAGE_RULE: -            wrapperClass = [DOMCSSPageRule class]; -            break; +            return [DOMCSSPageRule class];          case DOM_VARIABLES_RULE: -            wrapperClass = [DOMCSSVariablesRule class]; -            break; +            return [DOMCSSVariablesRule class];          case DOM_WEBKIT_KEYFRAMES_RULE: -            wrapperClass = [DOMWebKitCSSKeyframesRule class]; -            break; +            return [DOMWebKitCSSKeyframesRule class];          case DOM_WEBKIT_KEYFRAME_RULE: -            wrapperClass = [DOMWebKitCSSKeyframeRule class]; -            break; +            return [DOMWebKitCSSKeyframeRule class];      } -    return [[[wrapperClass alloc] _initWithCSSRule:impl] autorelease]; +    ASSERT_NOT_REACHED(); +    return nil;  } -@end - -  //------------------------------------------------------------------------------------------  // DOMCSSValue -@implementation DOMCSSValue (WebCoreInternal) - -- (WebCore::CSSValue *)_CSSValue -{ -    return reinterpret_cast<WebCore::CSSValue*>(_internal); -} - -- (id)_initWithCSSValue:(WebCore::CSSValue *)impl +Class kitClass(WebCore::CSSValue* impl)  { -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMCSSValue *)_wrapCSSValue:(WebCore::CSSValue *)impl -{ -    if (!impl) -        return nil; - -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; - -    Class wrapperClass = nil;      switch (impl->cssValueType()) { -        case DOM_CSS_PRIMITIVE_VALUE: -            wrapperClass = [DOMCSSPrimitiveValue class]; -            break; -        case DOM_CSS_VALUE_LIST: -            wrapperClass = [DOMCSSValueList class]; -            break; -        case DOM_CSS_INHERIT: -            wrapperClass = [DOMCSSValue class]; -            break; -        case DOM_CSS_CUSTOM: -#if ENABLE(SVG) +        case WebCore::CSSValue::CSS_PRIMITIVE_VALUE: +            return [DOMCSSPrimitiveValue class]; +        case WebCore::CSSValue::CSS_VALUE_LIST: +            return [DOMCSSValueList class]; +        case WebCore::CSSValue::CSS_INHERIT: +        case WebCore::CSSValue::CSS_INITIAL: +            return [DOMCSSValue class]; +        case WebCore::CSSValue::CSS_CUSTOM: +#if ENABLE(SVG_DOM_OBJC_BINDINGS)              if (impl->isSVGPaint()) -                wrapperClass = [DOMSVGPaint class]; -            else if (impl->isSVGColor()) -                wrapperClass = [DOMSVGColor class]; -            else +                return [DOMSVGPaint class]; +            if (impl->isSVGColor()) +                return [DOMSVGColor class];  #endif -                wrapperClass = [DOMCSSValue class]; -            break; +            return [DOMCSSValue class];      } -    return [[[wrapperClass alloc] _initWithCSSValue:impl] autorelease]; +    ASSERT_NOT_REACHED(); +    return nil;  } -@end - -  //------------------------------------------------------------------------------------------  // DOMCSSStyleDeclaration CSS2 Properties diff --git a/WebCore/bindings/objc/DOMEvents.mm b/WebCore/bindings/objc/DOMEvents.mm index 6f7f72d..c901e12 100644 --- a/WebCore/bindings/objc/DOMEvents.mm +++ b/WebCore/bindings/objc/DOMEvents.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 Jonas Witt <jonas.witt@gmail.com>   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   * @@ -26,85 +26,46 @@   */  #import "config.h" -#import "DOMEvents.h" +#import "DOMEventInternal.h" -#import "DOMInternal.h" +#import "DOMKeyboardEvent.h"  #import "DOMMessageEvent.h" -#import "DOMPrivate.h" +#import "DOMMouseEvent.h" +#import "DOMMutationEvent.h" +#import "DOMOverflowEvent.h"  #import "DOMProgressEvent.h" +#import "DOMTextEvent.h" +#import "DOMWheelEvent.h"  #import "Event.h" -#import "KeyboardEvent.h" -#import "MessageEvent.h" -#import "MouseEvent.h" -#import "MutationEvent.h" -#import "OverflowEvent.h" -#import "ProgressEvent.h" -#import "UIEvent.h" -#if ENABLE(SVG) +#if ENABLE(SVG_DOM_OBJC_BINDINGS)  #import "DOMSVGZoomEvent.h" -#import "SVGZoomEvent.h"  #endif -//------------------------------------------------------------------------------------------ -// DOMEvent - -@implementation DOMEvent (WebCoreInternal) - -- (WebCore::Event *)_event -{ -    return reinterpret_cast<WebCore::Event*>(_internal); -} - -- (id)_initWithEvent:(WebCore::Event *)impl -{ -    ASSERT(impl); - -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal *>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMEvent *)_wrapEvent:(WebCore::Event *)impl +Class kitClass(WebCore::Event* impl)  { -    if (!impl) -        return nil; -     -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; - -    Class wrapperClass = nil;      if (impl->isUIEvent()) {          if (impl->isKeyboardEvent()) -            wrapperClass = [DOMKeyboardEvent class]; -        else if (impl->isTextEvent()) -            wrapperClass = [DOMTextEvent class]; -        else if (impl->isMouseEvent()) -            wrapperClass = [DOMMouseEvent class]; -        else if (impl->isWheelEvent()) -            wrapperClass = [DOMWheelEvent class];         -#if ENABLE(SVG) -        else if (impl->isSVGZoomEvent()) -            wrapperClass = [DOMSVGZoomEvent class]; +            return [DOMKeyboardEvent class]; +        if (impl->isTextEvent()) +            return [DOMTextEvent class]; +        if (impl->isMouseEvent()) +            return [DOMMouseEvent class]; +        if (impl->isWheelEvent()) +            return [DOMWheelEvent class];         +#if ENABLE(SVG_DOM_OBJC_BINDINGS) +        if (impl->isSVGZoomEvent()) +            return [DOMSVGZoomEvent class];  #endif -        else -            wrapperClass = [DOMUIEvent class]; -    } else if (impl->isMutationEvent()) -        wrapperClass = [DOMMutationEvent class]; -    else if (impl->isOverflowEvent()) -        wrapperClass = [DOMOverflowEvent class]; -    else if (impl->isMessageEvent()) -        wrapperClass = [DOMMessageEvent class]; -    else if (impl->isProgressEvent()) -        wrapperClass = [DOMProgressEvent class]; -    else -        wrapperClass = [DOMEvent class]; - -    return [[[wrapperClass alloc] _initWithEvent:impl] autorelease]; +        return [DOMUIEvent class]; +    } +    if (impl->isMutationEvent()) +        return [DOMMutationEvent class]; +    if (impl->isOverflowEvent()) +        return [DOMOverflowEvent class]; +    if (impl->isMessageEvent()) +        return [DOMMessageEvent class]; +    if (impl->isProgressEvent()) +        return [DOMProgressEvent class]; +    return [DOMEvent class];  } - -@end diff --git a/WebCore/bindings/objc/DOMHTML.h b/WebCore/bindings/objc/DOMHTML.h index cd80612..c336c04 100644 --- a/WebCore/bindings/objc/DOMHTML.h +++ b/WebCore/bindings/objc/DOMHTML.h @@ -26,6 +26,8 @@  #import <WebCore/DOMCore.h> +#import <WebCore/DOMFile.h> +#import <WebCore/DOMFileList.h>  #import <WebCore/DOMHTMLAnchorElement.h>  #import <WebCore/DOMHTMLAppletElement.h>  #import <WebCore/DOMHTMLAreaElement.h> diff --git a/WebCore/bindings/objc/DOMHTML.mm b/WebCore/bindings/objc/DOMHTML.mm index baf5774..8c0d30b 100644 --- a/WebCore/bindings/objc/DOMHTML.mm +++ b/WebCore/bindings/objc/DOMHTML.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004-2006 Apple Computer, Inc.  All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   *   * Redistribution and use in source and binary forms, with or without @@ -25,20 +25,27 @@   */  #import "config.h" -#import "DOMHTML.h" -#import "CSSHelper.h" +#import "DOMDocumentFragmentInternal.h"  #import "DOMExtensions.h" -#import "DOMInternal.h" +#import "DOMHTMLCollectionInternal.h" +#import "DOMHTMLDocumentInternal.h" +#import "DOMHTMLInputElementInternal.h" +#import "DOMHTMLSelectElementInternal.h" +#import "DOMHTMLTextAreaElementInternal.h" +#import "DOMNodeInternal.h"  #import "DOMPrivate.h"  #import "DocumentFragment.h"  #import "FrameView.h" +#import "HTMLCollection.h"  #import "HTMLDocument.h"  #import "HTMLInputElement.h" -#import "HTMLObjectElement.h"  #import "HTMLSelectElement.h" +#import "HTMLTextAreaElement.h" +#import "Page.h"  #import "Range.h"  #import "RenderTextControl.h" +#import "Settings.h"  #import "markup.h"  //------------------------------------------------------------------------------------------ @@ -48,13 +55,13 @@  - (DOMDocumentFragment *)createDocumentFragmentWithMarkupString:(NSString *)markupString baseURL:(NSURL *)baseURL  { -    return [DOMDocumentFragment _wrapDocumentFragment:createFragmentFromMarkup([self _document], markupString, [baseURL absoluteString]).get()]; +    return kit(createFragmentFromMarkup(core(self), markupString, [baseURL absoluteString]).get());  }  - (DOMDocumentFragment *)createDocumentFragmentWithText:(NSString *)text  {      // FIXME: Since this is not a contextual fragment, it won't handle whitespace properly. -    return [DOMDocumentFragment _wrapDocumentFragment:createFragmentFromText([self _document]->createRange().get(), text).get()]; +    return kit(createFragmentFromText(core(self)->createRange().get(), text).get());  }  @end @@ -63,7 +70,7 @@  - (DOMDocumentFragment *)_createDocumentFragmentWithMarkupString:(NSString *)markupString baseURLString:(NSString *)baseURLString  { -    NSURL *baseURL = [self _document]->completeURL(WebCore::parseURL(baseURLString)); +    NSURL *baseURL = core(self)->completeURL(WebCore::parseURL(baseURLString));      return [self createDocumentFragmentWithMarkupString:markupString baseURL:baseURL];  } @@ -74,49 +81,40 @@  @end -#pragma mark DOM EXTENSIONS +#ifdef BUILDING_ON_TIGER +@implementation DOMHTMLDocument (DOMHTMLDocumentOverrides) -@implementation DOMHTMLInputElement(FormAutoFillTransition) +- (DOMNode *)firstChild +{ +    WebCore::HTMLDocument* coreHTMLDocument = core(self); +    if (!coreHTMLDocument->page() || !coreHTMLDocument->page()->settings()->needsTigerMailQuirks()) +        return kit(coreHTMLDocument->firstChild()); + +    WebCore::Node* child = coreHTMLDocument->firstChild(); +    while (child && child->nodeType() == WebCore::Node::DOCUMENT_TYPE_NODE) +        child = child->nextSibling(); +     +    return kit(child); +} + +@end +#endif + +@implementation DOMHTMLInputElement (FormAutoFillTransition)  - (BOOL)_isTextField  { -    // We could make this public API as-is, or we could change it into a method that returns whether -    // the element is a text field or a button or ... ? -    static NSArray *textInputTypes = nil; -#ifndef NDEBUG -    static NSArray *nonTextInputTypes = nil; -#endif -     -    NSString *fieldType = [self type]; -     -    // No type at all is treated as text type -    if ([fieldType length] == 0) -        return YES; -     -    if (textInputTypes == nil) -        textInputTypes = [[NSSet alloc] initWithObjects:@"text", @"password", @"search", @"isindex", nil]; -     -    BOOL isText = [textInputTypes containsObject:[fieldType lowercaseString]]; -     -#ifndef NDEBUG -    if (nonTextInputTypes == nil) -        nonTextInputTypes = [[NSSet alloc] initWithObjects:@"checkbox", @"radio", @"submit", @"reset", @"file", @"hidden", @"image", @"button", @"range", nil]; -     -    // Catch cases where a new input type has been added that's not in these lists. -    ASSERT(isText || [nonTextInputTypes containsObject:[fieldType lowercaseString]]); -#endif     -     -    return isText; +    return core(self)->isTextField();  }  - (NSRect)_rectOnScreen  {      // Returns bounding rect of text field, in screen coordinates.      NSRect result = [self boundingBox]; -    if (![self _HTMLInputElement]->document()->view()) +    if (!core(self)->document()->view())          return result; -    NSView* view = [self _HTMLInputElement]->document()->view()->documentView(); +    NSView* view = core(self)->document()->view()->documentView();      result = [view convertRect:result toView:nil];      result.origin = [[view window] convertBaseToScreen:result.origin];      return result; @@ -124,7 +122,7 @@  - (void)_replaceCharactersInRange:(NSRange)targetRange withString:(NSString *)replacementString selectingFromIndex:(int)index  { -    WebCore::HTMLInputElement* inputElement = [self _HTMLInputElement]; +    WebCore::HTMLInputElement* inputElement = core(self);      if (inputElement) {          WebCore::String newValue = inputElement->value();          newValue.replace(targetRange.location, targetRange.length, replacementString); @@ -135,7 +133,7 @@  - (NSRange)_selectedRange  { -    WebCore::HTMLInputElement* inputElement = [self _HTMLInputElement]; +    WebCore::HTMLInputElement* inputElement = core(self);      if (inputElement) {          int start = inputElement->selectionStart();          int end = inputElement->selectionEnd(); @@ -149,9 +147,7 @@      // This notifies the input element that the content has been autofilled      // This allows WebKit to obey the -webkit-autofill pseudo style, which      // changes the background color. -    WebCore::HTMLInputElement* inputElement = [self _HTMLInputElement]; -    if (inputElement) -        inputElement->setAutofilled(filled); +    core(self)->setAutofilled(filled);  }  @end @@ -160,30 +156,35 @@  - (void)_activateItemAtIndex:(int)index  { -    if (WebCore::HTMLSelectElement* select = [self _HTMLSelectElement]) +    if (WebCore::HTMLSelectElement* select = core(self))          select->setSelectedIndex(index);  }  @end  @implementation DOMHTMLInputElement (FormPromptAdditions) +  - (BOOL)_isEdited  { -    WebCore::RenderObject *renderer = [self _node]->renderer(); -    if (renderer && [self _isTextField]) -        return static_cast<WebCore::RenderTextControl *>(renderer)->isUserEdited(); -     -    return NO; +    WebCore::RenderObject *renderer = core(self)->renderer(); +    return renderer && [self _isTextField] && static_cast<WebCore::RenderTextControl *>(renderer)->isUserEdited();  } +  @end  @implementation DOMHTMLTextAreaElement (FormPromptAdditions) +  - (BOOL)_isEdited  { -    WebCore::RenderObject *renderer = [self _node]->renderer(); -    if (renderer) -        return static_cast<WebCore::RenderTextControl *>(renderer)->isUserEdited(); -     -    return NO; +    WebCore::RenderObject* renderer = core(self)->renderer(); +    return renderer && static_cast<WebCore::RenderTextControl*>(renderer)->isUserEdited();  } +  @end + +Class kitClass(WebCore::HTMLCollection* collection) +{ +    if (collection->type() == WebCore::SelectOptions) +        return [DOMHTMLOptionsCollection class]; +    return [DOMHTMLCollection class]; +} diff --git a/WebCore/bindings/objc/DOMInternal.h b/WebCore/bindings/objc/DOMInternal.h index 9ddcada..48f5d2f 100644 --- a/WebCore/bindings/objc/DOMInternal.h +++ b/WebCore/bindings/objc/DOMInternal.h @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth (speth@end.com)   * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)   * @@ -25,272 +25,18 @@   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    */ -#import "DOM.h" - +// This is lets our internals access DOMObject's _internal field while having +// it be private for clients outside WebKit. +#define private public  #import "DOMObject.h" -#import "HitTestResult.h" +#undef private -#if ENABLE(XPATH) -#import "DOMXPathExpressionInternal.h" +#import "DOMNodeFilter.h"  #import "DOMXPathNSResolver.h" -#import "DOMXPathResultInternal.h" -#endif // ENABLE(XPATH) - -// Auto-generated internal interfaces -#import "DOMAbstractViewInternal.h" -#import "DOMAttrInternal.h" -#import "DOMCDATASectionInternal.h" -#import "DOMCSSCharsetRuleInternal.h" -#import "DOMCSSFontFaceRuleInternal.h" -#import "DOMCSSImportRuleInternal.h" -#import "DOMCSSMediaRuleInternal.h" -#import "DOMCSSPageRuleInternal.h" -#import "DOMCSSPrimitiveValueInternal.h" -#import "DOMCSSRuleInternal.h" -#import "DOMCSSRuleListInternal.h" -#import "DOMCSSStyleDeclarationInternal.h" -#import "DOMCSSStyleRuleInternal.h" -#import "DOMCSSStyleSheetInternal.h" -#import "DOMCSSUnknownRuleInternal.h" -#import "DOMCSSValueInternal.h" -#import "DOMCSSValueListInternal.h" -#import "DOMCSSVariablesRuleInternal.h" -#import "DOMCSSVariablesDeclarationInternal.h" -#import "DOMCharacterDataInternal.h" -#import "DOMCommentInternal.h" -#import "DOMCounterInternal.h" -#import "DOMDOMImplementationInternal.h" -#import "DOMDocumentFragmentInternal.h" -#import "DOMDocumentInternal.h" -#import "DOMDocumentTypeInternal.h" -#import "DOMElementInternal.h" -#import "DOMEntityInternal.h" -#import "DOMEntityReferenceInternal.h" -#import "DOMEventInternal.h" -#import "DOMFileInternal.h" -#import "DOMFileListInternal.h" -#import "DOMHTMLAnchorElementInternal.h" -#import "DOMHTMLAppletElementInternal.h" -#import "DOMHTMLAreaElementInternal.h" -#import "DOMHTMLBRElementInternal.h" -#import "DOMHTMLBaseElementInternal.h" -#import "DOMHTMLBaseFontElementInternal.h" -#import "DOMHTMLBodyElementInternal.h" -#import "DOMHTMLButtonElementInternal.h" -#import "DOMHTMLCollectionInternal.h" -#import "DOMHTMLDListElementInternal.h" -#import "DOMHTMLDirectoryElementInternal.h" -#import "DOMHTMLDivElementInternal.h" -#import "DOMHTMLDocumentInternal.h" -#import "DOMHTMLElementInternal.h" -#import "DOMHTMLEmbedElementInternal.h" -#import "DOMHTMLFieldSetElementInternal.h" -#import "DOMHTMLFontElementInternal.h" -#import "DOMHTMLFormElementInternal.h" -#import "DOMHTMLFrameElementInternal.h" -#import "DOMHTMLFrameSetElementInternal.h" -#import "DOMHTMLHRElementInternal.h" -#import "DOMHTMLHeadElementInternal.h" -#import "DOMHTMLHeadingElementInternal.h" -#import "DOMHTMLHtmlElementInternal.h" -#import "DOMHTMLIFrameElementInternal.h" -#import "DOMHTMLImageElementInternal.h" -#import "DOMHTMLInputElementInternal.h" -#import "DOMHTMLIsIndexElementInternal.h" -#import "DOMHTMLLIElementInternal.h" -#import "DOMHTMLLabelElementInternal.h" -#import "DOMHTMLLegendElementInternal.h" -#import "DOMHTMLLinkElementInternal.h" -#import "DOMHTMLMapElementInternal.h" -#import "DOMHTMLMarqueeElementInternal.h" -#import "DOMHTMLMenuElementInternal.h" -#import "DOMHTMLMetaElementInternal.h" -#import "DOMHTMLModElementInternal.h" -#import "DOMHTMLOListElementInternal.h" -#import "DOMHTMLObjectElementInternal.h" -#import "DOMHTMLOptGroupElementInternal.h" -#import "DOMHTMLOptionElementInternal.h" -#import "DOMHTMLOptionsCollectionInternal.h" -#import "DOMHTMLParagraphElementInternal.h" -#import "DOMHTMLParamElementInternal.h" -#import "DOMHTMLPreElementInternal.h" -#import "DOMHTMLQuoteElementInternal.h" -#import "DOMHTMLScriptElementInternal.h" -#import "DOMHTMLSelectElementInternal.h" -#import "DOMHTMLStyleElementInternal.h" -#import "DOMHTMLTableCaptionElementInternal.h" -#import "DOMHTMLTableCellElementInternal.h" -#import "DOMHTMLTableColElementInternal.h" -#import "DOMHTMLTableElementInternal.h" -#import "DOMHTMLTableRowElementInternal.h" -#import "DOMHTMLTableSectionElementInternal.h" -#import "DOMHTMLTextAreaElementInternal.h" -#import "DOMHTMLTitleElementInternal.h" -#import "DOMHTMLUListElementInternal.h" -#import "DOMKeyboardEventInternal.h" -#import "DOMMediaListInternal.h" -#import "DOMMessagePortInternal.h" -#import "DOMMouseEventInternal.h" -#import "DOMMutationEventInternal.h" -#import "DOMNamedNodeMapInternal.h" -#import "DOMNodeInternal.h" -#import "DOMNodeIteratorInternal.h" -#import "DOMNodeListInternal.h" -#import "DOMNotationInternal.h" -#import "DOMOverflowEventInternal.h" -#import "DOMProcessingInstructionInternal.h" -#import "DOMRGBColorInternal.h" -#import "DOMRangeInternal.h" -#import "DOMRectInternal.h" -#import "DOMStyleSheetInternal.h" -#import "DOMStyleSheetListInternal.h" -#import "DOMTextEventInternal.h" -#import "DOMTextInternal.h" -#import "DOMTreeWalkerInternal.h" -#import "DOMUIEventInternal.h" -#import "DOMWebKitCSSKeyframeRuleInternal.h" -#import "DOMWebKitCSSKeyframesRuleInternal.h" -#import "DOMWebKitCSSMatrixInternal.h" -#import "DOMWebKitCSSTransformValueInternal.h" -#import "DOMWheelEventInternal.h" - -#if ENABLE(SVG) -#import "DOMSVGAElementInternal.h" -#import "DOMSVGAltGlyphElementInternal.h" -#import "DOMSVGAngleInternal.h" -#import "DOMSVGAnimateColorElementInternal.h" -#import "DOMSVGAnimateElementInternal.h" -#import "DOMSVGAnimateTransformElementInternal.h" -#import "DOMSVGAnimatedAngleInternal.h" -#import "DOMSVGAnimatedBooleanInternal.h" -#import "DOMSVGAnimatedEnumerationInternal.h" -#import "DOMSVGAnimatedIntegerInternal.h" -#import "DOMSVGAnimatedLengthInternal.h" -#import "DOMSVGAnimatedLengthListInternal.h" -#import "DOMSVGAnimatedNumberInternal.h" -#import "DOMSVGAnimatedNumberListInternal.h" -#import "DOMSVGAnimatedPreserveAspectRatioInternal.h" -#import "DOMSVGAnimatedRectInternal.h" -#import "DOMSVGAnimatedStringInternal.h" -#import "DOMSVGAnimatedTransformListInternal.h" -#import "DOMSVGAnimationElementInternal.h" -#import "DOMSVGCircleElementInternal.h" -#import "DOMSVGClipPathElementInternal.h" -#import "DOMSVGColorInternal.h" -#import "DOMSVGComponentTransferFunctionElementInternal.h" -#import "DOMSVGCursorElementInternal.h" -#import "DOMSVGDefsElementInternal.h" -#import "DOMSVGDefinitionSrcElementInternal.h" -#import "DOMSVGDescElementInternal.h" -#import "DOMSVGDocumentInternal.h" -#import "DOMSVGElementInternal.h" -#import "DOMSVGElementInstanceInternal.h" -#import "DOMSVGElementInstanceListInternal.h" -#import "DOMSVGEllipseElementInternal.h" -#import "DOMSVGFEBlendElementInternal.h" -#import "DOMSVGFEColorMatrixElementInternal.h" -#import "DOMSVGFEComponentTransferElementInternal.h" -#import "DOMSVGFECompositeElementInternal.h" -#import "DOMSVGFEDiffuseLightingElementInternal.h" -#import "DOMSVGFEDisplacementMapElementInternal.h" -#import "DOMSVGFEDistantLightElementInternal.h" -#import "DOMSVGFEFloodElementInternal.h" -#import "DOMSVGFEFuncAElementInternal.h" -#import "DOMSVGFEFuncBElementInternal.h" -#import "DOMSVGFEFuncGElementInternal.h" -#import "DOMSVGFEFuncRElementInternal.h" -#import "DOMSVGFEGaussianBlurElementInternal.h" -#import "DOMSVGFEImageElementInternal.h" -#import "DOMSVGFEMergeElementInternal.h" -#import "DOMSVGFEMergeNodeElementInternal.h" -#import "DOMSVGFEOffsetElementInternal.h" -#import "DOMSVGFEPointLightElementInternal.h" -#import "DOMSVGFESpecularLightingElementInternal.h" -#import "DOMSVGFESpotLightElementInternal.h" -#import "DOMSVGFETileElementInternal.h" -#import "DOMSVGFETurbulenceElementInternal.h" -#import "DOMSVGFilterElementInternal.h" -#import "DOMSVGFontElementInternal.h" -#import "DOMSVGFontFaceElementInternal.h" -#import "DOMSVGFontFaceFormatElementInternal.h" -#import "DOMSVGFontFaceNameElementInternal.h" -#import "DOMSVGFontFaceSrcElementInternal.h" -#import "DOMSVGFontFaceUriElementInternal.h" -#import "DOMSVGForeignObjectElementInternal.h" -#import "DOMSVGGElementInternal.h" -#import "DOMSVGGlyphElementInternal.h" -#import "DOMSVGGradientElementInternal.h" -#import "DOMSVGImageElementInternal.h" -#import "DOMSVGLengthInternal.h" -#import "DOMSVGLengthListInternal.h" -#import "DOMSVGLineElementInternal.h" -#import "DOMSVGLinearGradientElementInternal.h" -#import "DOMSVGMarkerElementInternal.h" -#import "DOMSVGMaskElementInternal.h" -#import "DOMSVGMatrixInternal.h" -#import "DOMSVGMetadataElementInternal.h" -#import "DOMSVGMissingGlyphElementInternal.h" -#import "DOMSVGNumberInternal.h" -#import "DOMSVGNumberListInternal.h" -#import "DOMSVGPaintInternal.h" -#import "DOMSVGPathElementInternal.h" -#import "DOMSVGPathSegArcAbsInternal.h" -#import "DOMSVGPathSegArcRelInternal.h" -#import "DOMSVGPathSegClosePathInternal.h" -#import "DOMSVGPathSegCurvetoCubicAbsInternal.h" -#import "DOMSVGPathSegCurvetoCubicRelInternal.h" -#import "DOMSVGPathSegCurvetoCubicSmoothAbsInternal.h" -#import "DOMSVGPathSegCurvetoCubicSmoothRelInternal.h" -#import "DOMSVGPathSegCurvetoQuadraticAbsInternal.h" -#import "DOMSVGPathSegCurvetoQuadraticRelInternal.h" -#import "DOMSVGPathSegCurvetoQuadraticSmoothAbsInternal.h" -#import "DOMSVGPathSegCurvetoQuadraticSmoothRelInternal.h" -#import "DOMSVGPathSegInternal.h" -#import "DOMSVGPathSegLinetoAbsInternal.h" -#import "DOMSVGPathSegLinetoHorizontalAbsInternal.h" -#import "DOMSVGPathSegLinetoHorizontalRelInternal.h" -#import "DOMSVGPathSegLinetoRelInternal.h" -#import "DOMSVGPathSegLinetoVerticalAbsInternal.h" -#import "DOMSVGPathSegLinetoVerticalRelInternal.h" -#import "DOMSVGPathSegListInternal.h" -#import "DOMSVGPathSegMovetoAbsInternal.h" -#import "DOMSVGPathSegMovetoRelInternal.h" -#import "DOMSVGPatternElementInternal.h" -#import "DOMSVGPointInternal.h" -#import "DOMSVGPointListInternal.h" -#import "DOMSVGPolygonElementInternal.h" -#import "DOMSVGPolylineElementInternal.h" -#import "DOMSVGPreserveAspectRatioInternal.h" -#import "DOMSVGRadialGradientElementInternal.h" -#import "DOMSVGRectElementInternal.h" -#import "DOMSVGRectInternal.h" -#import "DOMSVGRenderingIntentInternal.h" -#import "DOMSVGSVGElementInternal.h" -#import "DOMSVGScriptElementInternal.h" -#import "DOMSVGSetElementInternal.h" -#import "DOMSVGStopElementInternal.h" -#import "DOMSVGStringListInternal.h" -#import "DOMSVGStyleElementInternal.h" -#import "DOMSVGSwitchElementInternal.h" -#import "DOMSVGSymbolElementInternal.h" -#import "DOMSVGTRefElementInternal.h" -#import "DOMSVGTSpanElementInternal.h" -#import "DOMSVGTextContentElementInternal.h" -#import "DOMSVGTextElementInternal.h" -#import "DOMSVGTextPathElementInternal.h" -#import "DOMSVGTextPositioningElementInternal.h" -#import "DOMSVGTitleElementInternal.h" -#import "DOMSVGTransformInternal.h" -#import "DOMSVGTransformListInternal.h" -#import "DOMSVGUnitTypesInternal.h" -#import "DOMSVGUseElementInternal.h" -#import "DOMSVGViewElementInternal.h" -#import "DOMSVGZoomEventInternal.h" -#endif // ENABLE(SVG) +#import <wtf/Forward.h>  namespace JSC {      class JSObject; -          namespace Bindings {          class RootObject;      } @@ -298,65 +44,47 @@ namespace JSC {  namespace WebCore {      class NodeFilter; - -#if ENABLE(SVG) -    class TransformationMatrix; -    class FloatPoint; -    class FloatRect; -#endif // ENABLE(SVG) -  #if ENABLE(XPATH)      class XPathNSResolver; -#endif // ENABLE(XPATH) +#endif  } -// Core Internal Interfaces - -@interface DOMObject (WebCoreInternal) -- (id)_init; -@end - -// Traversal Internal Interfaces -  @interface DOMNodeFilter : DOMObject <DOMNodeFilter> -+ (DOMNodeFilter *)_wrapNodeFilter:(WebCore::NodeFilter *)impl;  @end  #if ENABLE(XPATH) - -// XPath Internal Interfaces -  @interface DOMNativeXPathNSResolver : DOMObject <DOMXPathNSResolver> -+ (DOMNativeXPathNSResolver *)_wrapXPathNSResolver:(WebCore::XPathNSResolver *)impl; -- (WebCore::XPathNSResolver *)_xpathNSResolver;  @end -  #endif // ENABLE(XPATH)  // Helper functions for DOM wrappers and gluing to Objective-C -namespace WebCore { +// Create an NSMapTable mapping from pointers to ObjC objects held with zeroing weak references. +NSMapTable* createWrapperCache(); +NSMapTable* createWrapperCacheWithIntegerKeys(); // Same, but from integers to ObjC objects. -    // Create an NSMapTable mapping from pointers to ObjC objects held with zeroing weak references. -    NSMapTable* createWrapperCache(); -    NSMapTable* createWrapperCacheWithIntegerKeys(); // Same, but from integers to ObjC objects. +id createDOMWrapper(JSC::JSObject*, PassRefPtr<JSC::Bindings::RootObject> origin, PassRefPtr<JSC::Bindings::RootObject> current); -    id createDOMWrapper(JSC::JSObject*, PassRefPtr<JSC::Bindings::RootObject> origin, PassRefPtr<JSC::Bindings::RootObject> current); +NSObject* getDOMWrapper(DOMObjectInternal*); +void addDOMWrapper(NSObject* wrapper, DOMObjectInternal*); +void removeDOMWrapper(DOMObjectInternal*); -    NSObject* getDOMWrapper(DOMObjectInternal*); -    void addDOMWrapper(NSObject* wrapper, DOMObjectInternal*); -    void removeDOMWrapper(DOMObjectInternal*); +template <class Source> +inline id getDOMWrapper(Source impl) +{ +    return getDOMWrapper(reinterpret_cast<DOMObjectInternal*>(impl)); +} -    template <class Source> -    inline id getDOMWrapper(Source impl) -    { -        return getDOMWrapper(reinterpret_cast<DOMObjectInternal*>(impl)); -    } +template <class Source> +inline void addDOMWrapper(NSObject* wrapper, Source impl) +{ +    addDOMWrapper(wrapper, reinterpret_cast<DOMObjectInternal*>(impl)); +} -    template <class Source> -    inline void addDOMWrapper(NSObject* wrapper, Source impl) -    { -        addDOMWrapper(wrapper, reinterpret_cast<DOMObjectInternal*>(impl)); -    } +DOMNodeFilter *kit(WebCore::NodeFilter*); +WebCore::NodeFilter* core(DOMNodeFilter *); -} // namespace WebCore +#if ENABLE(XPATH) +DOMNativeXPathNSResolver *kit(WebCore::XPathNSResolver*); +WebCore::XPathNSResolver* core(DOMNativeXPathNSResolver *); +#endif // ENABLE(XPATH) diff --git a/WebCore/bindings/objc/DOMInternal.mm b/WebCore/bindings/objc/DOMInternal.mm index ea26d5e..eb98a8a 100644 --- a/WebCore/bindings/objc/DOMInternal.mm +++ b/WebCore/bindings/objc/DOMInternal.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   *   * Redistribution and use in source and binary forms, with or without   * modification, are permitted provided that the following conditions @@ -26,25 +26,15 @@  #import "config.h"  #import "DOMInternal.h" -#import "Document.h" -#import "Event.h" +#import "DOMNodeInternal.h"  #import "Frame.h"  #import "JSNode.h" -#import "Node.h" -#import "PlatformString.h" -#import "Range.h" -#import "RangeException.h" -#import "SVGException.h"  #import "WebScriptObjectPrivate.h" -#import "XPathEvaluator.h" -#import "ScriptController.h"  #import "runtime_root.h"  //------------------------------------------------------------------------------------------  // Wrapping WebCore implementation objects -namespace WebCore { -  static NSMapTable* DOMWrapperCache;  NSMapTable* createWrapperCache() @@ -92,8 +82,6 @@ void removeDOMWrapper(DOMObjectInternal* impl)      NSMapRemove(DOMWrapperCache, impl);  } -} // namespace WebCore -  //------------------------------------------------------------------------------------------  @implementation WebScriptObject (WebScriptObjectInternal) @@ -127,7 +115,7 @@ void removeDOMWrapper(DOMObjectInternal* impl)      // Extract the WebCore::Node from the ObjectiveC wrapper.      DOMNode *n = (DOMNode *)self; -    WebCore::Node *nodeImpl = [n _node]; +    WebCore::Node *nodeImpl = core(n);      // Dig up Interpreter and ExecState.      WebCore::Frame *frame = 0; diff --git a/WebCore/bindings/objc/DOMObject.h b/WebCore/bindings/objc/DOMObject.h index 166637d..c4a3f6f 100644 --- a/WebCore/bindings/objc/DOMObject.h +++ b/WebCore/bindings/objc/DOMObject.h @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved. + * Copyright (C) 2004, 2006, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   *   * Redistribution and use in source and binary forms, with or without @@ -37,6 +37,7 @@ typedef struct DOMObjectInternal DOMObjectInternal;  @interface DOMObject : WebScriptObject <NSCopying>  { +@private      DOMObjectInternal *_internal;  }  @end diff --git a/WebCore/bindings/objc/DOMObject.mm b/WebCore/bindings/objc/DOMObject.mm index 8510ae9..d88e86b 100644 --- a/WebCore/bindings/objc/DOMObject.mm +++ b/WebCore/bindings/objc/DOMObject.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2006, 2006, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2006, 2006, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth <speth@end.com>   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   * @@ -28,11 +28,11 @@  #import "config.h"  #import "DOMObject.h" -#import "DOMHTMLLinkElement.h" -#import "DOMHTMLStyleElement.h" +#import "DOMHTMLLinkElementInternal.h" +#import "DOMHTMLStyleElementInternal.h"  #import "DOMInternal.h" -#import "DOMProcessingInstruction.h" -#import "DOMStyleSheet.h" +#import "DOMProcessingInstructionInternal.h" +#import "DOMStyleSheetInternal.h"  #import "HTMLLinkElement.h"  #import "HTMLStyleElement.h"  #import "ProcessingInstruction.h" @@ -53,7 +53,7 @@  - (void)dealloc  {      if (_internal) -        WebCore::removeDOMWrapper(_internal); +        removeDOMWrapper(_internal);      [super dealloc];  } @@ -69,27 +69,18 @@  - (DOMStyleSheet *)sheet  { -    WebCore::StyleSheet *styleSheet; +    WebCore::StyleSheet* styleSheet;      if ([self isKindOfClass:[DOMProcessingInstruction class]]) -        styleSheet = static_cast<WebCore::ProcessingInstruction*>([(DOMProcessingInstruction *)self _node])->sheet(); +        styleSheet = core(static_cast<DOMProcessingInstruction *>(self))->sheet();      else if ([self isKindOfClass:[DOMHTMLLinkElement class]]) -        styleSheet = static_cast<WebCore::HTMLLinkElement*>([(DOMHTMLLinkElement *)self _node])->sheet(); +        styleSheet = core(static_cast<DOMHTMLLinkElement *>(self))->sheet();      else if ([self isKindOfClass:[DOMHTMLStyleElement class]]) -        styleSheet = static_cast<WebCore::HTMLStyleElement*>([(DOMHTMLStyleElement *)self _node])->sheet(); +        styleSheet = core(static_cast<DOMHTMLStyleElement *>(self))->sheet();      else          return nil; -    return [DOMStyleSheet _wrapStyleSheet:styleSheet]; -} - -@end - -@implementation DOMObject (WebCoreInternal) - -- (id)_init -{ -    return [super _init]; +    return kit(styleSheet);  }  @end diff --git a/WebCore/bindings/objc/DOMPrivate.h b/WebCore/bindings/objc/DOMPrivate.h index ba95ce3..4291cbc 100644 --- a/WebCore/bindings/objc/DOMPrivate.h +++ b/WebCore/bindings/objc/DOMPrivate.h @@ -24,45 +24,11 @@   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    */ -#import <WebCore/DOMCSS.h> -#import <WebCore/DOMCSSStyleDeclaration.h> -#import <WebCore/DOMElement.h> -#import <WebCore/DOMEvents.h> -#import <WebCore/DOMHTML.h> -#import <WebCore/DOMHTMLDocument.h> -#import <WebCore/DOMHTMLInputElement.h> -#import <WebCore/DOMHTMLSelectElement.h> -#import <WebCore/DOMNode.h> -#import <WebCore/DOMRGBColor.h> -#import <WebCore/DOMRange.h> - -#import <WebCore/DOMDocumentPrivate.h> -#import <WebCore/DOMElementPrivate.h> -#import <WebCore/DOMHTMLAnchorElementPrivate.h> -#import <WebCore/DOMHTMLAreaElementPrivate.h> -#import <WebCore/DOMHTMLBodyElementPrivate.h> -#import <WebCore/DOMHTMLButtonElementPrivate.h> -#import <WebCore/DOMHTMLDocumentPrivate.h> -#import <WebCore/DOMHTMLFormElementPrivate.h> -#import <WebCore/DOMHTMLFrameElementPrivate.h> -#import <WebCore/DOMHTMLImageElementPrivate.h> -#import <WebCore/DOMHTMLInputElementPrivate.h> -#import <WebCore/DOMHTMLLinkElementPrivate.h> -#import <WebCore/DOMHTMLOptionsCollectionPrivate.h> -#import <WebCore/DOMHTMLPreElementPrivate.h> -#import <WebCore/DOMHTMLStyleElementPrivate.h> -#import <WebCore/DOMHTMLTextAreaElementPrivate.h> -#import <WebCore/DOMKeyboardEventPrivate.h> -#import <WebCore/DOMMouseEventPrivate.h> -#import <WebCore/DOMNodeIteratorPrivate.h> -#import <WebCore/DOMNodePrivate.h> -#import <WebCore/DOMProcessingInstructionPrivate.h> -#import <WebCore/DOMRangePrivate.h> -#import <WebCore/DOMUIEventPrivate.h> -#import <WebCore/DOMWheelEventPrivate.h> +#import <WebCore/DOM.h>  @interface DOMNode (DOMNodeExtensionsPendingPublic)  - (NSImage *)renderedImage; +- (NSArray *)textRects;  @end  // FIXME: this should be removed as soon as all internal Apple uses of it have been replaced with @@ -79,7 +45,8 @@  @interface DOMRange (DOMRangeExtensions)  - (NSRect)boundingBox; -- (NSArray *)lineBoxRects; +- (NSArray *)lineBoxRects; // Deprecated. Use textRects instead. +- (NSArray *)textRects;  @end  @interface DOMElement (WebPrivate) diff --git a/WebCore/bindings/objc/DOMRGBColor.mm b/WebCore/bindings/objc/DOMRGBColor.mm index 5921b8e..27f8966 100644 --- a/WebCore/bindings/objc/DOMRGBColor.mm +++ b/WebCore/bindings/objc/DOMRGBColor.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)   *   * Redistribution and use in source and binary forms, with or without @@ -25,18 +25,15 @@   */  #import "config.h" -#import "DOMRGBColor.h" +#import "DOMInternal.h" // import first to make the private/public trick work +#import "DOMRGBColorInternal.h"  #import "CSSPrimitiveValue.h" -#import "Color.h"  #import "ColorMac.h" -#import "DOMCSSPrimitiveValue.h" -#import "DOMInternal.h" +#import "DOMCSSPrimitiveValueInternal.h"  #import "WebCoreObjCExtras.h" +#import "WebScriptObjectPrivate.h"  #import <runtime/InitializeThreading.h> -#import <wtf/GetPtr.h> - -namespace WebCore {  static NSMapTable* RGBColorWrapperCache; @@ -63,9 +60,6 @@ static void removeWrapperForRGB(WebCore::RGBA32 value)      NSMapRemove(RGBColorWrapperCache, reinterpret_cast<const void*>(value));  } -} // namespace WebCore - -  @implementation DOMRGBColor  + (void)initialize @@ -81,7 +75,7 @@ static void removeWrapperForRGB(WebCore::RGBA32 value)      if (WebCoreObjCScheduleDeallocateOnMainThread([DOMRGBColor class], self))          return; -    WebCore::removeWrapperForRGB(reinterpret_cast<uintptr_t>(_internal)); +    removeWrapperForRGB(reinterpret_cast<uintptr_t>(_internal));      _internal = 0;      [super dealloc];  } @@ -90,28 +84,28 @@ static void removeWrapperForRGB(WebCore::RGBA32 value)  {      WebCore::RGBA32 rgb = reinterpret_cast<uintptr_t>(_internal);      int value = (rgb >> 16) & 0xFF; -    return [DOMCSSPrimitiveValue _wrapCSSPrimitiveValue:WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get()]; +    return kit(WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get());  }  - (DOMCSSPrimitiveValue *)green  {      WebCore::RGBA32 rgb = reinterpret_cast<uintptr_t>(_internal);      int value = (rgb >> 8) & 0xFF; -    return [DOMCSSPrimitiveValue _wrapCSSPrimitiveValue:WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get()]; +    return kit(WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get());  }  - (DOMCSSPrimitiveValue *)blue  {      WebCore::RGBA32 rgb = reinterpret_cast<uintptr_t>(_internal);      int value = rgb & 0xFF; -    return [DOMCSSPrimitiveValue _wrapCSSPrimitiveValue:WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get()]; +    return kit(WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get());  }  - (DOMCSSPrimitiveValue *)alpha  {      WebCore::RGBA32 rgb = reinterpret_cast<uintptr_t>(_internal);      float value = static_cast<float>(WebCore::Color(rgb).alpha()) / 0xFF; -    return [DOMCSSPrimitiveValue _wrapCSSPrimitiveValue:WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get()]; +    return kit(WebCore::CSSPrimitiveValue::create(value, WebCore::CSSPrimitiveValue::CSS_NUMBER).get());  } @@ -134,28 +128,18 @@ static void removeWrapperForRGB(WebCore::RGBA32 value)  @end -@implementation DOMRGBColor (WebCoreInternal) - -- (WebCore::RGBA32)_RGBColor +WebCore::RGBA32 core(DOMRGBColor *color)  { -     return static_cast<WebCore::RGBA32>(reinterpret_cast<uintptr_t>(_internal)); +     return color ? static_cast<WebCore::RGBA32>(reinterpret_cast<uintptr_t>(color->_internal)) : 0;  } -- (id)_initWithRGB:(WebCore::RGBA32)value +DOMRGBColor *kit(WebCore::RGBA32 value)  { -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(value); -    WebCore::setWrapperForRGB(self, value); -    return self; -} +    if (DOMRGBColor *wrapper = getWrapperForRGB(value)) +        return [[wrapper retain] autorelease]; -+ (DOMRGBColor *)_wrapRGBColor:(WebCore::RGBA32)value -{ -    id cachedInstance; -    cachedInstance = WebCore::getWrapperForRGB(value); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; -    return [[[self alloc] _initWithRGB:value] autorelease]; +    DOMRGBColor *wrapper = [[DOMRGBColor alloc] _init]; +    wrapper->_internal = reinterpret_cast<DOMObjectInternal*>(value); +    setWrapperForRGB(wrapper, value); +    return [wrapper autorelease];  } - -@end diff --git a/WebCore/bindings/objc/DOMSVGPathSegInternal.mm b/WebCore/bindings/objc/DOMSVGPathSegInternal.mm index cbbe6bd..1710f88 100644 --- a/WebCore/bindings/objc/DOMSVGPathSegInternal.mm +++ b/WebCore/bindings/objc/DOMSVGPathSegInternal.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. + * Copyright (C) 2006, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   *   * Redistribution and use in source and binary forms, with or without @@ -30,8 +30,6 @@  #import "DOMSVGPathSegInternal.h" -#import "DOMInternal.h" -#import "DOMSVGPathSeg.h"  #import "DOMSVGPathSegArcAbs.h"  #import "DOMSVGPathSegArcRel.h"  #import "DOMSVGPathSegClosePath.h" @@ -53,102 +51,53 @@  #import "DOMSVGPathSegMovetoAbs.h"  #import "DOMSVGPathSegMovetoRel.h"  #import "SVGPathSeg.h" -#import <objc/objc-class.h> -@implementation DOMSVGPathSeg (WebCoreInternal) - -- (WebCore::SVGPathSeg *)_SVGPathSeg -{ -    return reinterpret_cast<WebCore::SVGPathSeg*>(_internal); -} - -- (id)_initWithSVGPathSeg:(WebCore::SVGPathSeg *)impl +Class kitClass(WebCore::SVGPathSeg* impl)  { -    ASSERT(impl); - -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self; -} - -+ (DOMSVGPathSeg *)_wrapSVGPathSeg:(WebCore::SVGPathSeg *)impl -{ -    if (!impl) -        return nil; -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; - -    Class wrapperClass = nil;      switch (impl->pathSegType()) {          case WebCore::SVGPathSeg::PATHSEG_UNKNOWN: -            wrapperClass = [DOMSVGPathSeg class]; -            break; +            return [DOMSVGPathSeg class];          case WebCore::SVGPathSeg::PATHSEG_CLOSEPATH: -            wrapperClass = [DOMSVGPathSegClosePath class]; -            break; +            return [DOMSVGPathSegClosePath class];          case WebCore::SVGPathSeg::PATHSEG_MOVETO_ABS: -            wrapperClass = [DOMSVGPathSegMovetoAbs class]; -            break; +            return [DOMSVGPathSegMovetoAbs class];          case WebCore::SVGPathSeg::PATHSEG_MOVETO_REL: -            wrapperClass = [DOMSVGPathSegMovetoRel class]; -            break; +            return [DOMSVGPathSegMovetoRel class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_ABS: -            wrapperClass = [DOMSVGPathSegLinetoAbs class]; -            break; +            return [DOMSVGPathSegLinetoAbs class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_REL: -            wrapperClass = [DOMSVGPathSegLinetoRel class]; -            break; +            return [DOMSVGPathSegLinetoRel class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS: -            wrapperClass = [DOMSVGPathSegCurvetoCubicAbs class]; -            break; +            return [DOMSVGPathSegCurvetoCubicAbs class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL: -            wrapperClass = [DOMSVGPathSegCurvetoCubicRel class]; -            break; +            return [DOMSVGPathSegCurvetoCubicRel class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS: -            wrapperClass = [DOMSVGPathSegCurvetoQuadraticAbs class]; -            break; +            return [DOMSVGPathSegCurvetoQuadraticAbs class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL: -            wrapperClass = [DOMSVGPathSegCurvetoQuadraticRel class]; -            break; +            return [DOMSVGPathSegCurvetoQuadraticRel class];          case WebCore::SVGPathSeg::PATHSEG_ARC_ABS: -            wrapperClass = [DOMSVGPathSegArcAbs class]; -            break; +            return [DOMSVGPathSegArcAbs class];          case WebCore::SVGPathSeg::PATHSEG_ARC_REL: -            wrapperClass = [DOMSVGPathSegArcRel class]; -            break; +            return [DOMSVGPathSegArcRel class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS: -            wrapperClass = [DOMSVGPathSegLinetoHorizontalAbs class]; -            break; +            return [DOMSVGPathSegLinetoHorizontalAbs class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL: -            wrapperClass = [DOMSVGPathSegLinetoHorizontalRel class]; -            break; +            return [DOMSVGPathSegLinetoHorizontalRel class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS: -            wrapperClass = [DOMSVGPathSegLinetoVerticalAbs class]; -            break; +            return [DOMSVGPathSegLinetoVerticalAbs class];          case WebCore::SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL: -            wrapperClass = [DOMSVGPathSegLinetoVerticalRel class]; -            break; +            return [DOMSVGPathSegLinetoVerticalRel class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: -            wrapperClass = [DOMSVGPathSegCurvetoCubicSmoothAbs class]; -            break; +            return [DOMSVGPathSegCurvetoCubicSmoothAbs class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL: -            wrapperClass = [DOMSVGPathSegCurvetoCubicSmoothRel class]; -            break; +            return [DOMSVGPathSegCurvetoCubicSmoothRel class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: -            wrapperClass = [DOMSVGPathSegCurvetoQuadraticSmoothAbs class]; -            break; +            return [DOMSVGPathSegCurvetoQuadraticSmoothAbs class];          case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: -            wrapperClass = [DOMSVGPathSegCurvetoQuadraticSmoothRel class]; -            break; +            return [DOMSVGPathSegCurvetoQuadraticSmoothRel class];      } - -    return [[[wrapperClass alloc] _initWithSVGPathSeg:impl] autorelease]; +    ASSERT_NOT_REACHED(); +    return nil;  } -@end -  #endif // ENABLE(SVG) diff --git a/WebCore/bindings/objc/DOMUtility.mm b/WebCore/bindings/objc/DOMUtility.mm index e346c9e..2b8c474 100644 --- a/WebCore/bindings/objc/DOMUtility.mm +++ b/WebCore/bindings/objc/DOMUtility.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth (speth@end.com)   *   * Redistribution and use in source and binary forms, with or without @@ -26,8 +26,27 @@  #import "config.h" +#import "DOMAbstractViewInternal.h" +#import "DOMCSSRuleInternal.h" +#import "DOMCSSRuleListInternal.h" +#import "DOMCSSStyleDeclarationInternal.h" +#import "DOMCSSValueInternal.h" +#import "DOMCounterInternal.h" +#import "DOMEventInternal.h" +#import "DOMHTMLCollectionInternal.h"  #import "DOMImplementationFront.h"  #import "DOMInternal.h" +#import "DOMMediaListInternal.h" +#import "DOMNamedNodeMapInternal.h" +#import "DOMNodeInternal.h" +#import "DOMNodeIteratorInternal.h" +#import "DOMNodeListInternal.h" +#import "DOMRGBColorInternal.h" +#import "DOMRangeInternal.h" +#import "DOMRectInternal.h" +#import "DOMStyleSheetInternal.h" +#import "DOMStyleSheetListInternal.h" +#import "DOMTreeWalkerInternal.h"  #import "JSCSSRule.h"  #import "JSCSSRuleList.h"  #import "JSCSSStyleDeclaration.h" @@ -52,20 +71,25 @@  #import "JSTreeWalker.h"  #import "JSXPathExpression.h"  #import "JSXPathResult.h" -#import "Node.h"  #import "WebScriptObjectPrivate.h"  #import "runtime_root.h" -#import <objc/objc-runtime.h> + +#if ENABLE(XPATH) +#import "DOMXPathExpressionInternal.h" +#import "DOMXPathResultInternal.h" +#endif + +// FIXME: Couldn't get an include of "DOMDOMImplementationInternal.h" to work here. +DOMImplementation *kit(WebCore::DOMImplementationFront*);  // This file makes use of both the ObjC DOM API and the C++ DOM API, so we need to be careful about what  // headers are included and what namespaces we use to avoid naming conflicts. -// FIXME: This has to be in the KJS namespace to avoid an Objective-C++ ambiguity with C++ and -// Objective-C classes of the same name (even when not in the same namespace). That's also the -// reason for the use of objc_getClass in the WRAP_OLD macro below. +// FIXME: This has to be in the JSC namespace to avoid an Objective-C++ ambiguity with C++ and +// Objective-C classes of the same name (even when not in the same namespace).  // Some day if the compiler is fixed, or if all the JS wrappers are named with a "JS" prefix, -// we could move the function into the WebCore namespace where it belongs. +// we could move the function out of the JSC namespace.  namespace JSC { @@ -73,7 +97,7 @@ static inline id createDOMWrapper(JSC::JSObject* object)  {      #define WRAP(className) \          if (object->inherits(&WebCore::JS##className::s_info)) \ -            return [DOM##className _wrap##className:static_cast<WebCore::JS##className*>(object)->impl()]; +            return kit(static_cast<WebCore::JS##className*>(object)->impl());      WRAP(CSSRule)      WRAP(CSSRuleList) @@ -105,18 +129,16 @@ static inline id createDOMWrapper(JSC::JSObject* object)      #undef WRAP      if (object->inherits(&WebCore::JSDOMWindowShell::s_info)) -        return [DOMAbstractView _wrapAbstractView:static_cast<WebCore::JSDOMWindowShell*>(object)->impl()]; +        return kit(static_cast<WebCore::JSDOMWindowShell*>(object)->impl());      if (object->inherits(&WebCore::JSDOMImplementation::s_info)) -        return [DOMImplementation _wrapDOMImplementation:implementationFront(static_cast<WebCore::JSDOMImplementation*>(object))]; +        return kit(implementationFront(static_cast<WebCore::JSDOMImplementation*>(object)));      return nil;  }  } -namespace WebCore { -  id createDOMWrapper(JSC::JSObject* object, PassRefPtr<JSC::Bindings::RootObject> origin, PassRefPtr<JSC::Bindings::RootObject> current)  {      id wrapper = JSC::createDOMWrapper(object); @@ -124,5 +146,3 @@ id createDOMWrapper(JSC::JSObject* object, PassRefPtr<JSC::Bindings::RootObject>          [wrapper _setImp:object originRootObject:origin rootObject:current];      return wrapper;  } - -} diff --git a/WebCore/bindings/objc/DOMXPath.mm b/WebCore/bindings/objc/DOMXPath.mm index 0d008f1..d1c07d7 100644 --- a/WebCore/bindings/objc/DOMXPath.mm +++ b/WebCore/bindings/objc/DOMXPath.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved. + * Copyright (C) 2006, 2009 Apple Inc.  All rights reserved.   * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>   *   * Redistribution and use in source and binary forms, with or without @@ -28,10 +28,11 @@  #if ENABLE(XPATH) +#import "DOMInternal.h" // import first to make the private/public trick work  #import "DOMXPath.h" -#import "DOMInternal.h"  #import "PlatformString.h" +#import "WebScriptObjectPrivate.h"  #import "XPathNSResolver.h"  //------------------------------------------------------------------------------------------ @@ -55,40 +56,31 @@      [super finalize];  } -- (WebCore::XPathNSResolver *)_xpathNSResolver +- (NSString *)lookupNamespaceURI:(NSString *)prefix  { -    return IMPL; +    return IMPL->lookupNamespaceURI(prefix);  } -- (id)_initWithXPathNSResolver:(WebCore::XPathNSResolver *)impl +@end + +WebCore::XPathNSResolver* core(DOMNativeXPathNSResolver *wrapper)  { -    ASSERT(impl); -     -    [super _init]; -    _internal = reinterpret_cast<DOMObjectInternal*>(impl); -    impl->ref(); -    WebCore::addDOMWrapper(self, impl); -    return self;     +    return wrapper ? reinterpret_cast<WebCore::XPathNSResolver*>(wrapper->_internal) : 0;  } -+ (DOMNativeXPathNSResolver *)_wrapXPathNSResolver:(WebCore::XPathNSResolver *)impl +DOMNativeXPathNSResolver *kit(WebCore::XPathNSResolver* impl)  {      if (!impl)          return nil; -    id cachedInstance; -    cachedInstance = WebCore::getDOMWrapper(impl); -    if (cachedInstance) -        return [[cachedInstance retain] autorelease]; +    if (DOMNativeXPathNSResolver *wrapper = getDOMWrapper(impl)) +        return [[wrapper retain] autorelease]; -    return [[[DOMNativeXPathNSResolver alloc] _initWithXPathNSResolver:impl] autorelease];     -} - -- (NSString *)lookupNamespaceURI:(NSString *)prefix -{ -    return IMPL->lookupNamespaceURI(prefix); +    DOMNativeXPathNSResolver *wrapper = [[DOMNativeXPathNSResolver alloc] _init]; +    wrapper->_internal = reinterpret_cast<DOMObjectInternal*>(impl); +    impl->ref(); +    addDOMWrapper(wrapper, impl); +    return [wrapper autorelease];      } -@end -  #endif // ENABLE(XPATH) diff --git a/WebCore/bindings/objc/ExceptionHandlers.mm b/WebCore/bindings/objc/ExceptionHandlers.mm index e9e42a8..96ba2c9 100644 --- a/WebCore/bindings/objc/ExceptionHandlers.mm +++ b/WebCore/bindings/objc/ExceptionHandlers.mm @@ -28,11 +28,14 @@  #include "ExceptionCode.h" -NSString * DOMException = @"DOMException"; -NSString * DOMRangeException = @"DOMRangeException"; -NSString * DOMEventException = @"DOMEventException"; -NSString * DOMSVGException = @"DOMSVGException"; -NSString * DOMXPathException = @"DOMXPathException"; +NSString *DOMException = @"DOMException"; +NSString *DOMRangeException = @"DOMRangeException"; +NSString *DOMEventException = @"DOMEventException"; +NSString *DOMXPathException = @"DOMXPathException"; + +#if ENABLE(SVG_DOM_OBJC_BINDINGS) +NSString *DOMSVGException = @"DOMSVGException"; +#endif  namespace WebCore { @@ -48,8 +51,10 @@ void raiseDOMException(ExceptionCode ec)          exceptionName = DOMRangeException;      else if (strcmp(description.typeName, "DOM Events") == 0)          exceptionName = DOMEventException; +#if ENABLE(SVG_DOM_OBJC_BINDINGS)      else if (strcmp(description.typeName, "DOM SVG") == 0)          exceptionName = DOMSVGException; +#endif      else if (strcmp(description.typeName, "DOM XPath") == 0)          exceptionName = DOMXPathException;      else diff --git a/WebCore/bindings/objc/ObjCEventListener.mm b/WebCore/bindings/objc/ObjCEventListener.mm index 46c04c1..77c6ad2 100644 --- a/WebCore/bindings/objc/ObjCEventListener.mm +++ b/WebCore/bindings/objc/ObjCEventListener.mm @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.   * Copyright (C) 2006 James G. Speth (speth@end.com)   * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)   * @@ -26,15 +26,12 @@   */  #import "config.h" -  #import "ObjCEventListener.h"  #import "DOMEventInternal.h"  #import "DOMEventListener.h"  #import "Event.h"  #import "EventListener.h" - -#import <objc/objc-class.h>  #import <wtf/HashMap.h>  namespace WebCore { @@ -44,9 +41,10 @@ static ListenerMap* listenerMap;  ObjCEventListener* ObjCEventListener::find(id <DOMEventListener> listener)  { -    if (ListenerMap* map = listenerMap) -        return map->get(listener); -    return 0; +    ListenerMap* map = listenerMap; +    if (!map) +        return 0; +    return map->get(listener);  }  PassRefPtr<ObjCEventListener> ObjCEventListener::wrap(id <DOMEventListener> listener) @@ -76,7 +74,7 @@ ObjCEventListener::~ObjCEventListener()  void ObjCEventListener::handleEvent(Event* event, bool)  { -    [m_listener handleEvent:[DOMEvent _wrapEvent:event]]; +    [m_listener handleEvent:kit(event)];  }  } // namespace WebCore diff --git a/WebCore/bindings/objc/ObjCNodeFilterCondition.mm b/WebCore/bindings/objc/ObjCNodeFilterCondition.mm index 982cfe0..825c247 100644 --- a/WebCore/bindings/objc/ObjCNodeFilterCondition.mm +++ b/WebCore/bindings/objc/ObjCNodeFilterCondition.mm @@ -41,7 +41,7 @@ short ObjCNodeFilterCondition::acceptNode(ExecState*, Node* node) const  {      if (!node)          return NodeFilter::FILTER_REJECT; -    return [m_filter.get() acceptNode:[DOMNode _wrapNode:node]]; +    return [m_filter.get() acceptNode:kit(node)];  }  } // namespace WebCore diff --git a/WebCore/bindings/objc/PublicDOMInterfaces.h b/WebCore/bindings/objc/PublicDOMInterfaces.h index 349abaf..9221037 100644 --- a/WebCore/bindings/objc/PublicDOMInterfaces.h +++ b/WebCore/bindings/objc/PublicDOMInterfaces.h @@ -91,6 +91,18 @@  @property(readonly, copy) NSString *URL;  @property(retain) DOMHTMLElement *body;  @property(copy) NSString *cookie; +@property(readonly, copy) NSString *inputEncoding AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *xmlEncoding AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *xmlVersion AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property BOOL xmlStandalone AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *documentURI AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *charset AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *defaultCharset AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *readyState AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *characterSet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *preferredStylesheetSet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *selectedStylesheetSet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *lastModified AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (DOMElement *)createElement:(NSString *)tagName;  - (DOMDocumentFragment *)createDocumentFragment;  - (DOMText *)createTextNode:(NSString *)data; @@ -132,6 +144,18 @@  - (DOMXPathResult *)evaluate:(NSString *)expression :(DOMNode *)contextNode :(id <DOMXPathNSResolver>)resolver :(unsigned short)type :(DOMXPathResult *)inResult AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED;  - (DOMXPathResult *)evaluate:(NSString *)expression contextNode:(DOMNode *)contextNode resolver:(id <DOMXPathNSResolver>)resolver type:(unsigned short)type inResult:(DOMXPathResult *)inResult AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  #endif +- (BOOL)execCommand:(NSString *)command userInterface:(BOOL)userInterface value:(NSString *)value AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)execCommand:(NSString *)command userInterface:(BOOL)userInterface AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)execCommand:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)queryCommandEnabled:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)queryCommandIndeterm:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)queryCommandState:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)queryCommandSupported:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (NSString *)queryCommandValue:(NSString *)command AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (DOMElement *)elementFromPoint:(int)x y:(int)y AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (DOMNodeList *)getElementsByClassName:(NSString *)tagname AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMElement *)querySelector:(NSString *)selectors AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMNodeList *)querySelectorAll:(NSString *)selectors AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMDocumentFragment : DOMNode WEBKIT_VERSION_1_3 @@ -160,6 +184,14 @@  @property int scrollTop;  @property(readonly) int scrollWidth;  @property(readonly) int scrollHeight; +@property(readonly) int clientLeft AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int clientTop AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *innerText AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMElement *firstElementChild AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly, retain) DOMElement *lastElementChild AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly, retain) DOMElement *previousElementSibling AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly, retain) DOMElement *nextElementSibling AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly) unsigned childElementCount AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (NSString *)getAttribute:(NSString *)name;  - (void)setAttribute:(NSString *)name :(NSString *)value;  - (void)setAttribute:(NSString *)name value:(NSString *)value AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; @@ -184,6 +216,14 @@  - (BOOL)hasAttributeNS:(NSString *)namespaceURI localName:(NSString *)localName AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)scrollIntoView:(BOOL)alignWithTop AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)scrollIntoViewIfNeeded:(BOOL)centerIfNeeded AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)contains:(DOMElement *)element AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)scrollByLines:(int)lines AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)scrollByPages:(int)pages AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)focus AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (void)blur AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMNodeList *)getElementsByClassName:(NSString *)name AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMElement *)querySelector:(NSString *)selectors AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMNodeList *)querySelectorAll:(NSString *)selectors AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMEntity : DOMNode WEBKIT_VERSION_1_3 @@ -195,6 +235,16 @@  @interface DOMEntityReference : DOMNode WEBKIT_VERSION_1_3  @end +@interface DOMFile : DOMObject WEBKIT_VERSION_4_0 +@property(readonly, copy) NSString *fileName; +@property(readonly) unsigned long long fileSize; +@end + +@interface DOMFileList : DOMObject WEBKIT_VERSION_4_0 +@property(readonly) unsigned length; +- (DOMFile *)item:(unsigned)index; +@end +  @interface DOMNamedNodeMap : DOMObject WEBKIT_VERSION_1_3  @property(readonly) unsigned length;  - (DOMNode *)getNamedItem:(NSString *)name; @@ -224,6 +274,9 @@  @property(copy) NSString *prefix;  @property(readonly, copy) NSString *localName;  @property(copy) NSString *textContent AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *baseURI AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMElement *parentElement AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) BOOL isContentEditable AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (DOMNode *)insertBefore:(DOMNode *)newChild :(DOMNode *)refChild;  - (DOMNode *)insertBefore:(DOMNode *)newChild refChild:(DOMNode *)refChild AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (DOMNode *)replaceChild:(DOMNode *)newChild :(DOMNode *)oldChild; @@ -238,6 +291,10 @@  - (BOOL)hasAttributes;  - (BOOL)isSameNode:(DOMNode *)other AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (BOOL)isEqualNode:(DOMNode *)other AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (NSString *)lookupPrefix:(NSString *)namespaceURI AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)isDefaultNamespace:(NSString *)namespaceURI AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (NSString *)lookupNamespaceURI:(NSString *)prefix AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (unsigned short)compareDocumentPosition:(DOMNode *)other AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMNodeList : DOMObject WEBKIT_VERSION_1_3 @@ -253,10 +310,13 @@  @interface DOMProcessingInstruction : DOMNode WEBKIT_VERSION_1_3  @property(readonly, copy) NSString *target;  @property(copy) NSString *data; +@property(readonly, retain) DOMStyleSheet *sheet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMText : DOMCharacterData WEBKIT_VERSION_1_3 +@property(readonly, copy) NSString *wholeText AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (DOMText *)splitText:(unsigned)offset; +- (DOMText *)replaceWholeText:(NSString *)content AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMHTMLAnchorElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -272,6 +332,14 @@  @property(copy) NSString *target;  @property(copy) NSString *type;  @property(readonly, copy) NSURL *absoluteLinkURL AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *hashName AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *host AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *hostname AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *pathname AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *port AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *protocol AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *search AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *text AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLAppletElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -297,6 +365,13 @@  @property(copy) NSString *shape;  @property(copy) NSString *target;  @property(readonly, copy) NSURL *absoluteLinkURL AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *hashName AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *host AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *hostname AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *pathname AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *port AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *protocol AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, copy) NSString *search AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLBRElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -330,6 +405,9 @@  @property(copy) NSString *name;  @property(readonly, copy) NSString *type;  @property(copy) NSString *value; +@property BOOL autofocus AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly) BOOL willValidate AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (void)click AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLCanvasElement : DOMHTMLElement WEBKIT_VERSION_3_0 @@ -341,6 +419,7 @@  @property(readonly) unsigned length;  - (DOMNode *)item:(unsigned)index;  - (DOMNode *)namedItem:(NSString *)name; +- (DOMNodeList *)tags:(NSString *)name AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMHTMLDListElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -356,6 +435,24 @@  @end  @interface DOMHTMLDocument : DOMDocument WEBKIT_VERSION_1_3 +@property(readonly, retain) DOMHTMLCollection *embeds AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMHTMLCollection *plugins AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMHTMLCollection *scripts AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int width AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int height AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *dir AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *designMode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *bgColor AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *fgColor AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *alinkColor AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *linkColor AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *vlinkColor AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMElement *activeElement AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly, copy) NSString *compatMode AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (void)captureEvents AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)releaseEvents AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)clear AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (BOOL)hasFocus AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (void)open;  - (void)close;  - (void)write:(NSString *)text; @@ -377,8 +474,6 @@  @property(readonly) BOOL isContentEditable;  @property(readonly, copy) NSString *titleDisplayString AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @property int tabIndex; -- (void)blur; -- (void)focus;  @end  @interface DOMHTMLEmbedElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -409,6 +504,7 @@  @property(copy) NSString *enctype;  @property(copy) NSString *method;  @property(copy) NSString *target; +@property(copy) NSString *encoding AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)submit;  - (void)reset;  @end @@ -423,6 +519,10 @@  @property(copy) NSString *scrolling;  @property(copy) NSString *src;  @property(readonly, retain) DOMDocument *contentDocument; +@property(readonly, retain) DOMAbstractView *contentWindow AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *location AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int width AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int height AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLFrameSetElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -461,6 +561,7 @@  @property(copy) NSString *src;  @property(copy) NSString *width;  @property(readonly, retain) DOMDocument *contentDocument; +@property(readonly, retain) DOMAbstractView *contentWindow AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMHTMLImageElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -478,6 +579,12 @@  @property int width;  @property(readonly, copy) NSString *altDisplayString AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @property(readonly, copy) NSURL *absoluteImageURL AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) BOOL complete AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(copy) NSString *lowsrc AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int naturalHeight AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int naturalWidth AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int x AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int y AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLInputElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -500,8 +607,16 @@  @property(copy) NSString *value;  @property(readonly, copy) NSString *altDisplayString AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @property(readonly, copy) NSURL *absoluteImageURL AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property BOOL indeterminate AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property int selectionStart AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property int selectionEnd AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property BOOL autofocus AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property BOOL multiple AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly) BOOL willValidate AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly, retain) DOMFileList *files AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (void)select;  - (void)click; +- (void)setSelectionRange:(int)start end:(int)end AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLIsIndexElement : DOMHTMLInputElement WEBKIT_VERSION_1_3 @@ -537,6 +652,7 @@  @property(copy) NSString *target;  @property(copy) NSString *type;  @property(readonly, copy) NSURL *absoluteLinkURL AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMStyleSheet *sheet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLMapElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -611,8 +727,11 @@  @interface DOMHTMLOptionsCollection : DOMObject WEBKIT_VERSION_1_3  @property unsigned length; +@property int selectedIndex AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (DOMNode *)item:(unsigned)index;  - (DOMNode *)namedItem:(NSString *)name; +- (void)add:(DOMHTMLOptionElement *)option index:(unsigned)index AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)remove:(unsigned)index AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMHTMLParagraphElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -628,6 +747,7 @@  @interface DOMHTMLPreElement : DOMHTMLElement WEBKIT_VERSION_1_3  @property int width; +@property BOOL wrap AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLQuoteElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -655,15 +775,20 @@  @property BOOL multiple;  @property(copy) NSString *name;  @property int size; +@property(readonly) BOOL willValidate AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property BOOL autofocus AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (void)add:(DOMHTMLElement *)element :(DOMHTMLElement *)before;  - (void)add:(DOMHTMLElement *)element before:(DOMHTMLElement *)before AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)remove:(int)index; +- (DOMNode *)item:(unsigned)index AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (DOMNode *)namedItem:(NSString *)name AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMHTMLStyleElement : DOMHTMLElement WEBKIT_VERSION_1_3  @property BOOL disabled;  @property(copy) NSString *media;  @property(copy) NSString *type; +@property(readonly, retain) DOMStyleSheet *sheet AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLTableCaptionElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -756,7 +881,12 @@  @property int rows;  @property(readonly, copy) NSString *type;  @property(copy) NSString *value; +@property int selectionStart AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property int selectionEnd AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property BOOL autofocus AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property(readonly) BOOL willValidate AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (void)select; +- (void)setSelectionRange:(int)start end:(int)end AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMHTMLTitleElement : DOMHTMLElement WEBKIT_VERSION_1_3 @@ -866,9 +996,12 @@  @interface DOMCSSStyleSheet : DOMStyleSheet WEBKIT_VERSION_1_3  @property(readonly, retain) DOMCSSRule *ownerRule;  @property(readonly, retain) DOMCSSRuleList *cssRules; +@property(readonly, retain) DOMCSSRuleList *rules AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (unsigned)insertRule:(NSString *)rule :(unsigned)index;  - (unsigned)insertRule:(NSString *)rule index:(unsigned)index AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)deleteRule:(unsigned)index; +- (int)addRule:(NSString *)selector style:(NSString *)style index:(unsigned)index AVAILABLE_IN_WEBKIT_VERSION_4_0; +- (void)removeRule:(unsigned)index AVAILABLE_IN_WEBKIT_VERSION_4_0;  @end  @interface DOMCSSValue : DOMObject WEBKIT_VERSION_1_3 @@ -905,6 +1038,9 @@  @property(readonly) BOOL bubbles;  @property(readonly) BOOL cancelable;  @property(readonly) DOMTimeStamp timeStamp; +@property(readonly, retain) id <DOMEventTarget> srcElement AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property BOOL returnValue AVAILABLE_IN_WEBKIT_VERSION_4_0; +@property BOOL cancelBubble AVAILABLE_IN_WEBKIT_VERSION_4_0;  - (void)stopPropagation;  - (void)preventDefault;  - (void)initEvent:(NSString *)eventTypeArg canBubbleArg:(BOOL)canBubbleArg cancelableArg:(BOOL)cancelableArg AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; @@ -914,6 +1050,13 @@  @interface DOMUIEvent : DOMEvent WEBKIT_VERSION_1_3  @property(readonly, retain) DOMAbstractView *view;  @property(readonly) int detail; +@property(readonly) int keyCode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int charCode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int layerX AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int layerY AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int pageX AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int pageY AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int which AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)initUIEvent:(NSString *)type canBubble:(BOOL)canBubble cancelable:(BOOL)cancelable view:(DOMAbstractView *)view detail:(int)detail AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)initUIEvent:(NSString *)type :(BOOL)canBubble :(BOOL)cancelable :(DOMAbstractView *)view :(int)detail;  @end @@ -946,6 +1089,13 @@  @property(readonly) BOOL metaKey;  @property(readonly) BOOL isHorizontal;  @property(readonly) int wheelDelta; +@property(readonly) int wheelDeltaX AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int wheelDeltaY AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int offsetX AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int offsetY AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int x AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int y AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)initWheelEvent:(int)wheelDeltaX wheelDeltaY:(int)wheelDeltaY view:(DOMAbstractView *)view screenX:(int)screenX screenY:(int)screenY clientX:(int)clientX clientY:(int)clientY ctrlKey:(BOOL)ctrlKey altKey:(BOOL)altKey shiftKey:(BOOL)shiftKey metaKey:(BOOL)metaKey AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMKeyboardEvent : DOMUIEvent WEBKIT_VERSION_3_0 @@ -957,7 +1107,10 @@  @property(readonly) BOOL metaKey;  @property(readonly) int keyCode;  @property(readonly) int charCode; +@property(readonly) BOOL altGraphKey AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (BOOL)getModifierState:(NSString *)keyIdentifierArg; +- (void)initKeyboardEvent:(NSString *)type canBubble:(BOOL)canBubble cancelable:(BOOL)cancelable view:(DOMAbstractView *)view keyIdentifier:(NSString *)keyIdentifier keyLocation:(unsigned)keyLocation ctrlKey:(BOOL)ctrlKey altKey:(BOOL)altKey shiftKey:(BOOL)shiftKey metaKey:(BOOL)metaKey altGraphKey:(BOOL)altGraphKey AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (void)initKeyboardEvent:(NSString *)type canBubble:(BOOL)canBubble cancelable:(BOOL)cancelable view:(DOMAbstractView *)view keyIdentifier:(NSString *)keyIdentifier keyLocation:(unsigned)keyLocation ctrlKey:(BOOL)ctrlKey altKey:(BOOL)altKey shiftKey:(BOOL)shiftKey metaKey:(BOOL)metaKey AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMMouseEvent : DOMUIEvent WEBKIT_VERSION_1_3 @@ -971,6 +1124,12 @@  @property(readonly) BOOL metaKey;  @property(readonly) unsigned short button;  @property(readonly, retain) id <DOMEventTarget> relatedTarget; +@property(readonly) int offsetX AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int offsetY AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int x AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) int y AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMNode *fromElement AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly, retain) DOMNode *toElement AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)initMouseEvent:(NSString *)type canBubble:(BOOL)canBubble cancelable:(BOOL)cancelable view:(DOMAbstractView *)view detail:(int)detail screenX:(int)screenX screenY:(int)screenY clientX:(int)clientX clientY:(int)clientY ctrlKey:(BOOL)ctrlKey altKey:(BOOL)altKey shiftKey:(BOOL)shiftKey metaKey:(BOOL)metaKey button:(unsigned short)button relatedTarget:(id <DOMEventTarget>)relatedTarget AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (void)initMouseEvent:(NSString *)type :(BOOL)canBubble :(BOOL)cancelable :(DOMAbstractView *)view :(int)detail :(int)screenX :(int)screenY :(int)clientX :(int)clientY :(BOOL)ctrlKey :(BOOL)altKey :(BOOL)shiftKey :(BOOL)metaKey :(unsigned short)button :(id <DOMEventTarget>)relatedTarget;  @end @@ -1004,6 +1163,11 @@  - (DOMRange *)cloneRange;  - (NSString *)toString;  - (void)detach; +- (DOMDocumentFragment *)createContextualFragment:(NSString *)html AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)intersectsNode:(DOMNode *)refNode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (short)compareNode:(DOMNode *)refNode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (short)comparePoint:(DOMNode *)refNode offset:(int)offset AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +- (BOOL)isPointInRange:(DOMNode *)refNode offset:(int)offset AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  @end  @interface DOMNodeIterator : DOMObject WEBKIT_VERSION_1_3 @@ -1011,6 +1175,8 @@  @property(readonly) unsigned whatToShow;  @property(readonly, retain) id <DOMNodeFilter> filter;  @property(readonly) BOOL expandEntityReferences; +@property(readonly, retain) DOMNode *referenceNode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER; +@property(readonly) BOOL pointerBeforeReferenceNode AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER;  - (DOMNode *)nextNode;  - (DOMNode *)previousNode;  - (void)detach; diff --git a/WebCore/bindings/objc/WebScriptObject.mm b/WebCore/bindings/objc/WebScriptObject.mm index 3cdae86..8889eac 100644 --- a/WebCore/bindings/objc/WebScriptObject.mm +++ b/WebCore/bindings/objc/WebScriptObject.mm @@ -113,7 +113,7 @@ static void addExceptionToConsole(ExecState* exec)  + (id)scriptObjectForJSObject:(JSObjectRef)jsObject originRootObject:(RootObject*)originRootObject rootObject:(RootObject*)rootObject  { -    if (id domWrapper = WebCore::createDOMWrapper(toJS(jsObject), originRootObject, rootObject)) +    if (id domWrapper = createDOMWrapper(toJS(jsObject), originRootObject, rootObject))          return domWrapper;      return WebCore::createJSWrapper(toJS(jsObject), originRootObject, rootObject); @@ -265,7 +265,7 @@ static void _didExecute(WebScriptObject *obj)      return YES;  } -static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* rootObject, ArgList& aList) +static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* rootObject, MarkedArgumentBuffer& aList)  {      int i, numObjects = array ? [array count] : 0; @@ -286,20 +286,20 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root      ExecState* exec = [self _rootObject]->globalObject()->globalExec();      ASSERT(!exec->hadException()); -    JSValuePtr function = [self _imp]->get(exec, Identifier(exec, String(name))); +    JSValue function = [self _imp]->get(exec, Identifier(exec, String(name)));      CallData callData;      CallType callType = function.getCallData(callData);      if (callType == CallTypeNone)          return nil; -    ArgList argList; +    MarkedArgumentBuffer argList;      getListFromNSArray(exec, args, [self _rootObject], argList);      if (![self _isSafeScript])          return nil;      [self _rootObject]->globalObject()->globalData()->timeoutChecker.start(); -    JSValuePtr result = call(exec, function, callType, callData, [self _imp], argList); +    JSValue result = call(exec, function, callType, callData, [self _imp], argList);      [self _rootObject]->globalObject()->globalData()->timeoutChecker.stop();      if (exec->hadException()) { @@ -324,7 +324,7 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root      ExecState* exec = [self _rootObject]->globalObject()->globalExec();      ASSERT(!exec->hadException()); -    JSValuePtr result; +    JSValue result;      JSLock lock(false);      [self _rootObject]->globalObject()->globalData()->timeoutChecker.start(); @@ -388,7 +388,7 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root          // leaving the lock permanently held          JSLock lock(false); -        JSValuePtr result = [self _imp]->get(exec, Identifier(exec, String(key))); +        JSValue result = [self _imp]->get(exec, Identifier(exec, String(key)));          if (exec->hadException()) {              addExceptionToConsole(exec); @@ -455,7 +455,7 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root      ASSERT(!exec->hadException());      JSLock lock(false); -    JSValuePtr result = [self _imp]->get(exec, index); +    JSValue result = [self _imp]->get(exec, index);      if (exec->hadException()) {          addExceptionToConsole(exec); @@ -504,7 +504,7 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root      return toRef([self _imp]);  } -+ (id)_convertValueToObjcValue:(JSValuePtr)value originRootObject:(RootObject*)originRootObject rootObject:(RootObject*)rootObject ++ (id)_convertValueToObjcValue:(JSValue)value originRootObject:(RootObject*)originRootObject rootObject:(RootObject*)rootObject  {      if (value.isObject()) {          JSObject* object = asObject(value); @@ -512,7 +512,7 @@ static void getListFromNSArray(ExecState *exec, NSArray *array, RootObject* root          JSLock lock(false);          if (object->classInfo() != &RuntimeObjectImp::s_info) { -            JSValuePtr runtimeObject = object->get(exec, Identifier(exec, "__apple_runtime_object")); +            JSValue runtimeObject = object->get(exec, Identifier(exec, "__apple_runtime_object"));              if (runtimeObject && runtimeObject.isObject())                  object = asObject(runtimeObject);          } diff --git a/WebCore/bindings/objc/WebScriptObjectPrivate.h b/WebCore/bindings/objc/WebScriptObjectPrivate.h index 6810de6..3a424ce 100644 --- a/WebCore/bindings/objc/WebScriptObjectPrivate.h +++ b/WebCore/bindings/objc/WebScriptObjectPrivate.h @@ -46,7 +46,7 @@ namespace WebCore {  }  @interface WebScriptObject (Private) -+ (id)_convertValueToObjcValue:(JSC::JSValuePtr)value originRootObject:(JSC::Bindings::RootObject*)originRootObject rootObject:(JSC::Bindings::RootObject*)rootObject; ++ (id)_convertValueToObjcValue:(JSC::JSValue)value originRootObject:(JSC::Bindings::RootObject*)originRootObject rootObject:(JSC::Bindings::RootObject*)rootObject;  + (id)scriptObjectForJSObject:(JSObjectRef)jsObject originRootObject:(JSC::Bindings::RootObject*)originRootObject rootObject:(JSC::Bindings::RootObject*)rootObject;  - (id)_init;  - (id)_initWithJSObject:(JSC::JSObject*)imp originRootObject:(PassRefPtr<JSC::Bindings::RootObject>)originRootObject rootObject:(PassRefPtr<JSC::Bindings::RootObject>)rootObject; | 
