summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/objc
diff options
context:
space:
mode:
authorFeng Qian <fqian@google.com>2009-06-17 12:12:20 -0700
committerFeng Qian <fqian@google.com>2009-06-17 12:12:20 -0700
commit5f1ab04193ad0130ca8204aadaceae083aca9881 (patch)
tree5a92cd389e2cfe7fb67197ce14b38469462379f8 /WebCore/bindings/objc
parent194315e5a908cc8ed67d597010544803eef1ac59 (diff)
downloadexternal_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.zip
external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.gz
external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.bz2
Get WebKit r44544.
Diffstat (limited to 'WebCore/bindings/objc')
-rw-r--r--WebCore/bindings/objc/DOM.mm346
-rw-r--r--WebCore/bindings/objc/DOMAbstractView.mm56
-rw-r--r--WebCore/bindings/objc/DOMCSS.mm201
-rw-r--r--WebCore/bindings/objc/DOMEvents.mm101
-rw-r--r--WebCore/bindings/objc/DOMHTML.h2
-rw-r--r--WebCore/bindings/objc/DOMHTML.mm111
-rw-r--r--WebCore/bindings/objc/DOMInternal.h334
-rw-r--r--WebCore/bindings/objc/DOMInternal.mm18
-rw-r--r--WebCore/bindings/objc/DOMObject.h3
-rw-r--r--WebCore/bindings/objc/DOMObject.mm31
-rw-r--r--WebCore/bindings/objc/DOMPrivate.h41
-rw-r--r--WebCore/bindings/objc/DOMRGBColor.mm54
-rw-r--r--WebCore/bindings/objc/DOMSVGPathSegInternal.mm99
-rw-r--r--WebCore/bindings/objc/DOMUtility.mm48
-rw-r--r--WebCore/bindings/objc/DOMXPath.mm42
-rw-r--r--WebCore/bindings/objc/ExceptionHandlers.mm15
-rw-r--r--WebCore/bindings/objc/ObjCEventListener.mm14
-rw-r--r--WebCore/bindings/objc/ObjCNodeFilterCondition.mm2
-rw-r--r--WebCore/bindings/objc/PublicDOMInterfaces.h170
-rw-r--r--WebCore/bindings/objc/WebScriptObject.mm20
-rw-r--r--WebCore/bindings/objc/WebScriptObjectPrivate.h2
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;