[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
mjs
mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:40:23 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 50b6ac6a719989f4a7efcebe584594e472f584ab
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue May 18 22:18:06 2004 +0000
Reviewed by Ken.
<rdar://problem/3656719>: Implement outerHTML and setOuterHTML DOM extensions
They were already implemented (by Chris), all that was required
was exporting them to JavaScript.
* khtml/dom/html_element.cpp:
(HTMLElement::outerHTML): Call impl.
(HTMLElement::setOuterHTML): Ditto.
* khtml/dom/html_element.h: Prototype new methods.
* khtml/ecma/kjs_html.cpp:
(KJS::HTMLElement::getValueProperty): Add OuterHTML.
(KJS::HTMLElement::putValue): Add OuterHTML.
* khtml/ecma/kjs_html.h: Add new enum values.
* khtml/ecma/kjs_html.lut.h: Regenerated.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 50ac39a..6b3f8d8 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,22 @@
+2004-05-17 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by Ken.
+
+ <rdar://problem/3656719>: Implement outerHTML and setOuterHTML DOM extensions
+
+ They were already implemented (by Chris), all that was required
+ was exporting them to JavaScript.
+
+ * khtml/dom/html_element.cpp:
+ (HTMLElement::outerHTML): Call impl.
+ (HTMLElement::setOuterHTML): Ditto.
+ * khtml/dom/html_element.h: Prototype new methods.
+ * khtml/ecma/kjs_html.cpp:
+ (KJS::HTMLElement::getValueProperty): Add OuterHTML.
+ (KJS::HTMLElement::putValue): Add OuterHTML.
+ * khtml/ecma/kjs_html.h: Add new enum values.
+ * khtml/ecma/kjs_html.lut.h: Regenerated.
+
2004-05-18 Ken Kocienda <kocienda at apple.com>
Reviewed by Hyatt
diff --git a/WebCore/khtml/dom/html_element.cpp b/WebCore/khtml/dom/html_element.cpp
index 73a397a..0a45726 100644
--- a/WebCore/khtml/dom/html_element.cpp
+++ b/WebCore/khtml/dom/html_element.cpp
@@ -146,6 +146,21 @@ void HTMLElement::setInnerText( const DOMString &text )
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR);
}
+DOMString HTMLElement::outerHTML() const
+{
+ if ( !impl ) return DOMString();
+ return ((HTMLElementImpl *)impl)->outerHTML();
+}
+
+void HTMLElement::setOuterHTML( const DOMString &html )
+{
+ bool ok = false;
+ if( impl )
+ ok = ((HTMLElementImpl *)impl)->setOuterHTML( html );
+ if ( !ok )
+ throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR);
+}
+
HTMLCollection HTMLElement::children() const
{
if(!impl) return HTMLCollection();
diff --git a/WebCore/khtml/dom/html_element.h b/WebCore/khtml/dom/html_element.h
index cd35125..8fc53dd 100644
--- a/WebCore/khtml/dom/html_element.h
+++ b/WebCore/khtml/dom/html_element.h
@@ -176,6 +176,18 @@ public:
DOMString innerText() const;
/**
+ * The HTML code of this element, including the element itself.
+ * This function is not part of the DOM specifications as defined by the w3c.
+ */
+ DOMString outerHTML() const;
+
+ /**
+ * Replace the HTML code of this element, including the element itself.
+ * This function is not part of the DOM specifications as defined by the w3c.
+ */
+ void setOuterHTML( const DOMString &html );
+
+ /**
* Set the text content of this node.
*
* @exception DOMException
diff --git a/WebCore/khtml/ecma/kjs_html.cpp b/WebCore/khtml/ecma/kjs_html.cpp
index 727df6e..12fc40b 100644
--- a/WebCore/khtml/ecma/kjs_html.cpp
+++ b/WebCore/khtml/ecma/kjs_html.cpp
@@ -618,7 +618,7 @@ const ClassInfo* KJS::HTMLElement::classInfo() const
}
}
/*
- at begin HTMLElementTable 11
+ at begin HTMLElementTable 13
id KJS::HTMLElement::ElementId DontDelete
title KJS::HTMLElement::ElementTitle DontDelete
lang KJS::HTMLElement::ElementLang DontDelete
@@ -627,6 +627,7 @@ const ClassInfo* KJS::HTMLElement::classInfo() const
className KJS::HTMLElement::ElementClassName DontDelete
innerHTML KJS::HTMLElement::ElementInnerHTML DontDelete
innerText KJS::HTMLElement::ElementInnerText DontDelete
+ outerHTML KJS::HTMLElement::ElementOuterHTML DontDelete
document KJS::HTMLElement::ElementDocument DontDelete|ReadOnly
# IE extension
children KJS::HTMLElement::ElementChildren DontDelete|ReadOnly
@@ -1819,6 +1820,8 @@ Value KJS::HTMLElement::getValueProperty(ExecState *exec, int token) const
return String(element.innerHTML());
case ElementInnerText:
return String(element.innerText());
+ case ElementOuterHTML:
+ return String(element.outerHTML());
case ElementDocument:
return getDOMNode(exec,element.ownerDocument());
case ElementChildren:
@@ -2856,6 +2859,9 @@ void KJS::HTMLElement::putValue(ExecState *exec, int token, const Value& value,
case ElementInnerText:
element.setInnerText(str);
return;
+ case ElementOuterHTML:
+ element.setOuterHTML(str);
+ return;
case ElementContentEditable:
element.setContentEditable(str);
return;
diff --git a/WebCore/khtml/ecma/kjs_html.h b/WebCore/khtml/ecma/kjs_html.h
index ca10aa7..e1bfce8 100644
--- a/WebCore/khtml/ecma/kjs_html.h
+++ b/WebCore/khtml/ecma/kjs_html.h
@@ -148,7 +148,7 @@ namespace KJS {
MarqueeStart, MarqueeStop,
ElementInnerHTML, ElementTitle, ElementId, ElementDir, ElementLang,
ElementClassName, ElementInnerText, ElementDocument, ElementChildren, ElementContentEditable,
- ElementIsContentEditable};
+ ElementIsContentEditable, ElementOuterHTML};
DOM::HTMLElement toElement() const { return static_cast<DOM::HTMLElement>(node); }
};
diff --git a/WebCore/khtml/ecma/kjs_html.lut.h b/WebCore/khtml/ecma/kjs_html.lut.h
index 2945565..6bac8e7 100644
--- a/WebCore/khtml/ecma/kjs_html.lut.h
+++ b/WebCore/khtml/ecma/kjs_html.lut.h
@@ -51,25 +51,25 @@ const struct HashTable HTMLDocumentTable = { 2, 39, HTMLDocumentTableEntries, 30
namespace KJS {
const struct HashEntry HTMLElementTableEntries[] = {
- { "lang", KJS::HTMLElement::ElementLang, DontDelete, 0, &HTMLElementTableEntries[12] },
+ { "title", KJS::HTMLElement::ElementTitle, DontDelete, 0, 0 },
{ 0, 0, 0, 0, 0 },
+ { "lang", KJS::HTMLElement::ElementLang, DontDelete, 0, 0 },
+ { "isContentEditable", KJS::HTMLElement::ElementIsContentEditable, DontDelete|ReadOnly, 0, 0 },
{ "innerHTML", KJS::HTMLElement::ElementInnerHTML, DontDelete, 0, 0 },
+ { "document", KJS::HTMLElement::ElementDocument, DontDelete|ReadOnly, 0, 0 },
{ 0, 0, 0, 0, 0 },
- { "innerText", KJS::HTMLElement::ElementInnerText, DontDelete, 0, 0 },
- { "document", KJS::HTMLElement::ElementDocument, DontDelete|ReadOnly, 0, &HTMLElementTableEntries[13] },
- { "className", KJS::HTMLElement::ElementClassName, DontDelete, 0, &HTMLElementTableEntries[14] },
- { "id", KJS::HTMLElement::ElementId, DontDelete, 0, &HTMLElementTableEntries[11] },
- { 0, 0, 0, 0, 0 },
+ { "dir", KJS::HTMLElement::ElementDir, DontDelete, 0, 0 },
{ 0, 0, 0, 0, 0 },
+ { "className", KJS::HTMLElement::ElementClassName, DontDelete, 0, &HTMLElementTableEntries[14] },
+ { "id", KJS::HTMLElement::ElementId, DontDelete, 0, &HTMLElementTableEntries[13] },
{ 0, 0, 0, 0, 0 },
- { "title", KJS::HTMLElement::ElementTitle, DontDelete, 0, &HTMLElementTableEntries[15] },
- { "dir", KJS::HTMLElement::ElementDir, DontDelete, 0, 0 },
+ { "innerText", KJS::HTMLElement::ElementInnerText, DontDelete, 0, 0 },
+ { "outerHTML", KJS::HTMLElement::ElementOuterHTML, DontDelete, 0, &HTMLElementTableEntries[15] },
{ "children", KJS::HTMLElement::ElementChildren, DontDelete|ReadOnly, 0, 0 },
- { "contentEditable", KJS::HTMLElement::ElementContentEditable, DontDelete, 0, 0 },
- { "isContentEditable", KJS::HTMLElement::ElementIsContentEditable, DontDelete|ReadOnly, 0, 0 }
+ { "contentEditable", KJS::HTMLElement::ElementContentEditable, DontDelete, 0, 0 }
};
-const struct HashTable HTMLElementTable = { 2, 16, HTMLElementTableEntries, 11 };
+const struct HashTable HTMLElementTable = { 2, 16, HTMLElementTableEntries, 13 };
} // namespace
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list