[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