[prev in list] [next in list] [prev in thread] [next in thread]
List: webkit-changes
Subject: [webkit-changes] [35822] branches/XBL2
From: jchaffraix () webkit ! org
Date: 2008-08-18 20:53:16
Message-ID: 20080818205318.900EB1F9843 () beta ! macosforge ! org
[Download RAW message or body]
[Attachment #2 (text/html)]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[35822] branches/XBL2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: \
bold} #msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
.info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a \
href="http://trac.webkit.org/projects/webkit/changeset/35822">35822</a></dd> \
<dt>Author</dt> <dd>jchaffraix@webkit.org</dd> <dt>Date</dt> <dd>2008-08-18 13:53:16 \
-0700 (Mon, 18 Aug 2008)</dd> </dl>
<h3>Log Message</h3>
<pre>WebCore:
2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>
Reviewed by Eric.
Bug 20347: [XBL] Add support for DocumentXBL interface
- Add a custom NamedNodeMap for document.bindingsDocument
as it is a static map that throws NO_MODIFICATIN_ALLOWED_ERR
on modification.
Test: fast/xbl/xbl-bindingDocuments.html
* GNUmakefile.am: Add NamedStaticDocumentMap.cpp.
* WebCore.pro: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/Document.cpp:
(WebCore::Document::Document): Initialize m_bindingDocuments.
(WebCore::Document::~Document): Zero m_bindingDocuments.
(WebCore::Document::bindingDocuments): Getter method.
(WebCore::Document::loadBindingDocument): Stub method as we need an helper
class to load bindings.
(WebCore::Document::createBindingDocumentsIfNeeded):
* dom/Document.h:
* dom/Document.idl: Add documentXBL interface.
* dom/NamedStaticDocumentMap.cpp: Added.
(WebCore::NamedStaticDocumentMap::NamedStaticDocumentMap):
(WebCore::NamedStaticDocumentMap::~NamedStaticDocumentMap):
(WebCore::NamedStaticDocumentMap::getNamedItem):
(WebCore::NamedStaticDocumentMap::removeNamedItem):
(WebCore::NamedStaticDocumentMap::getNamedItemNS):
(WebCore::NamedStaticDocumentMap::removeNamedItemNS):
(WebCore::NamedStaticDocumentMap::setNamedItem):
(WebCore::NamedStaticDocumentMap::item):
(WebCore::NamedStaticDocumentMap::addItem):
* dom/NamedStaticDocumentMap.h: Added.
(WebCore::NamedStaticDocumentMap::create):
(WebCore::NamedStaticDocumentMap::length):
(WebCore::NamedStaticDocumentMap::clear): Custom NamedNodeMap
that match the specification.
LayoutTests:
2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>
Reviewed by Eric.
Test case for bug 20347: [XBL] Add support for DocumentXBL interface
* fast/xbl/resources/bindingDocuments.js: Added.
* fast/xbl/xbl-bindingDocuments-expected.txt: Added.
* fast/xbl/xbl-bindingDocuments.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#branchesXBL2LayoutTestsChangeLog">branches/XBL2/LayoutTests/ChangeLog</a></li>
<li><a href="#branchesXBL2WebCoreChangeLog">branches/XBL2/WebCore/ChangeLog</a></li>
<li><a href="#branchesXBL2WebCoreGNUmakefileam">branches/XBL2/WebCore/GNUmakefile.am</a></li>
<li><a href="#branchesXBL2WebCoreWebCorepro">branches/XBL2/WebCore/WebCore.pro</a></li>
<li><a href="#branchesXBL2WebCoreWebCorexcodeprojprojectpbxproj">branches/XBL2/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#branchesXBL2WebCoredomDocumentcpp">branches/XBL2/WebCore/dom/Document.cpp</a></li>
<li><a href="#branchesXBL2WebCoredomDocumenth">branches/XBL2/WebCore/dom/Document.h</a></li>
<li><a href="#branchesXBL2WebCoredomDocumentidl">branches/XBL2/WebCore/dom/Document.idl</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#branchesXBL2LayoutTestsfastxblresourcesbindingDocumentsjs">branches/XBL2/LayoutTests/fast/xbl/resources/bindingDocuments.js</a></li>
<li><a href="#branchesXBL2LayoutTestsfastxblxblbindingDocumentsexpectedtxt">branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments-expected.txt</a></li>
<li><a href="#branchesXBL2LayoutTestsfastxblxblbindingDocumentshtml">branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments.html</a></li>
<li><a href="#branchesXBL2WebCoredomNamedStaticDocumentMapcpp">branches/XBL2/WebCore/dom/NamedStaticDocumentMap.cpp</a></li>
<li><a href="#branchesXBL2WebCoredomNamedStaticDocumentMaph">branches/XBL2/WebCore/dom/NamedStaticDocumentMap.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchesXBL2LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: branches/XBL2/LayoutTests/ChangeLog (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/LayoutTests/ChangeLog 2008-08-18 20:21:57 UTC \
(rev 35821)
+++ branches/XBL2/LayoutTests/ChangeLog 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -2,6 +2,16 @@
</span><span class="cx">
</span><span class="cx"> Reviewed by Eric.
</span><span class="cx">
</span><ins>+ Test case for bug 20347: [XBL] Add support for DocumentXBL \
interface +
+ * fast/xbl/resources/bindingDocuments.js: Added.
+ * fast/xbl/xbl-bindingDocuments-expected.txt: Added.
+ * fast/xbl/xbl-bindingDocuments.html: Added.
+
+2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Reviewed by Eric.
+
</ins><span class="cx"> Test case for bug 20263: [XBL] Add loading code for \
XBLBinding </span><span class="cx">
</span><span class="cx"> * fast/xbl/resources/xbl-failed-binding.xbl: Added.
</span></span></pre></div>
<a id="branchesXBL2LayoutTestsfastxblresourcesbindingDocumentsjs"></a>
<div class="addfile"><h4>Added: \
branches/XBL2/LayoutTests/fast/xbl/resources/bindingDocuments.js (0 => 35822)</h4> \
<pre class="diff"><span> <span class="info">--- \
branches/XBL2/LayoutTests/fast/xbl/resources/bindingDocuments.js \
(rev 0)
+++ branches/XBL2/LayoutTests/fast/xbl/resources/bindingDocuments.js 2008-08-18 \
20:53:16 UTC (rev 35822) </span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+description(
+"This test checks the behaviour of document.bindingDocuments as specified by \
the XBL specification." +);
+
+debug("Initial value of bindingDocuments");
+debug("");
+
+var bindingDocuments = document.bindingDocuments;
+shouldBeEqualToString("bindingDocuments.toString()", "[object \
NamedNodeMap]"); +shouldBe("bindingDocuments.length", "0");
+shouldBeNull("bindingDocuments.getNamedItem('foobar')");
+shouldBeNull("bindingDocuments.item(0)");
+
+debug("");
+debug("Try changing the empty bindingDocuments");
+debug("");
+
+shouldThrow("bindingDocuments.setNamedItem(bindingDocuments.item(0))", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.setNamedItemNS(bindingDocuments.item(0))", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.removeNamedItem('foobar')", '"Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.removeNamedItemNS('', 'foobar')", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); +
+debug("");
+debug("Add a value to bindingDocuments and check the results (This part should \
fail as the loading code is not implemented)"); +debug("");
+
+document.loadBindingDocument("resources/xbl-passed-binding.xbl");
+
+shouldBe("bindingDocuments.length", "1");
+shouldBeEqualToString("bindingDocuments.item(0).toString()", "[object \
Document]"); +shouldBeTrue("bindingDocuments.getNamedItem('resources/xbl-passed-binding.xbl')", \
"bindingDocuments.item(0)"); \
+shouldBe("bindingDocuments.getNamedItemNS('', \
'resources/xbl-passed-binding.xbl')", "bindingDocuments.item(0)"); \
+shouldBe("bindingDocuments.getNamedItemNS('', \
'resources/xbl-passed-binding.xbl')", "bindingDocuments.item(0)"); \
+shouldBeNull("bindingDocuments.getNamedItemNS('foobar', \
'resources/xbl-passed-binding.xbl')"); +
+debug("");
+debug("Try to change an existing value");
+debug("");
+
+shouldThrow("bindingDocuments.setNamedItem(bindingDocuments.item(0))", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.setNamedItemNS(bindingDocuments.item(0))", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.removeNamedItem('resources/xbl-passed-binding.xbl')", \
'"Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7"'); \
+shouldThrow("bindingDocuments.removeNamedItemNS('', \
'resources/xbl-passed-binding.xbl')", '"Error: NO_MODIFICATION_ALLOWED_ERR: \
DOM Exception 7"'); +
+successfullyParsed = true;
</ins></span></pre></div>
<a id="branchesXBL2LayoutTestsfastxblxblbindingDocumentsexpectedtxt"></a>
<div class="addfile"><h4>Added: \
branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments-expected.txt (0 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments-expected.txt \
(rev 0)
+++ branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments-expected.txt 2008-08-18 \
20:53:16 UTC (rev 35822) </span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+This test checks the behaviour of document.bindingDocuments as specified \
by the XBL specification. +
+On success, you will see a series of "PASS" messages, followed by \
"TEST COMPLETE". +
+
+Initial value of bindingDocuments
+
+PASS bindingDocuments.toString() is "[object NamedNodeMap]"
+PASS bindingDocuments.length is 0
+PASS bindingDocuments.getNamedItem('foobar') is null
+PASS bindingDocuments.item(0) is null
+
+Try changing the empty bindingDocuments
+
+PASS bindingDocuments.setNamedItem(bindingDocuments.item(0)) threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.setNamedItemNS(bindingDocuments.item(0)) threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.removeNamedItem('foobar') threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.removeNamedItemNS('', 'foobar') threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +
+Add a value to bindingDocuments and check the results (This part should fail as the \
loading code is not implemented) +
+FAIL bindingDocuments.length should be 1. Was 0.
+FAIL bindingDocuments.item(0).toString() should be [object Document]. Threw \
exception TypeError: Null value +FAIL \
bindingDocuments.getNamedItem('resources/xbl-passed-binding.xbl') should be true (of \
type boolean). Was null (of type object). +PASS bindingDocuments.getNamedItemNS('', \
'resources/xbl-passed-binding.xbl') is bindingDocuments.item(0) +PASS \
bindingDocuments.getNamedItemNS('', 'resources/xbl-passed-binding.xbl') is \
bindingDocuments.item(0) +PASS bindingDocuments.getNamedItemNS('foobar', \
'resources/xbl-passed-binding.xbl') is null +
+Try to change an existing value
+
+PASS bindingDocuments.setNamedItem(bindingDocuments.item(0)) threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.setNamedItemNS(bindingDocuments.item(0)) threw exception Error: \
NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.removeNamedItem('resources/xbl-passed-binding.xbl') threw exception \
Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
bindingDocuments.removeNamedItemNS('', 'resources/xbl-passed-binding.xbl') threw \
exception Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7. +PASS \
successfullyParsed is true +
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="branchesXBL2LayoutTestsfastxblxblbindingDocumentshtml"></a>
<div class="addfile"><h4>Added: \
branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments.html (0 => 35822)</h4> <pre \
class="diff"><span> <span class="info">--- \
branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments.html \
(rev 0)
+++ branches/XBL2/LayoutTests/fast/xbl/xbl-bindingDocuments.html 2008-08-18 20:53:16 \
UTC (rev 35822) </span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" \
href="../js/resources/js-test-style.css"> +<script \
src="../js/resources/js-test-pre.js"></script> +</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="resources/bindingDocuments.js"></script>
+<script src="../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins></span></pre></div>
<a id="branchesXBL2WebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/ChangeLog (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/ChangeLog 2008-08-18 20:21:57 UTC (rev \
35821)
+++ branches/XBL2/WebCore/ChangeLog 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -2,6 +2,46 @@
</span><span class="cx">
</span><span class="cx"> Reviewed by Eric.
</span><span class="cx">
</span><ins>+ Bug 20347: [XBL] Add support for DocumentXBL interface
+
+ - Add a custom NamedNodeMap for document.bindingsDocument
+ as it is a static map that throws NO_MODIFICATIN_ALLOWED_ERR
+ on modification.
+
+ Test: fast/xbl/xbl-bindingDocuments.html
+
+ * GNUmakefile.am: Add NamedStaticDocumentMap.cpp.
+ * WebCore.pro: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+ * dom/Document.cpp:
+ (WebCore::Document::Document): Initialize m_bindingDocuments.
+ (WebCore::Document::~Document): Zero m_bindingDocuments.
+ (WebCore::Document::bindingDocuments): Getter method.
+ (WebCore::Document::loadBindingDocument): Stub method as we need an helper
+ class to load bindings.
+ (WebCore::Document::createBindingDocumentsIfNeeded):
+ * dom/Document.h:
+ * dom/Document.idl: Add documentXBL interface.
+ * dom/NamedStaticDocumentMap.cpp: Added.
+ (WebCore::NamedStaticDocumentMap::NamedStaticDocumentMap):
+ (WebCore::NamedStaticDocumentMap::~NamedStaticDocumentMap):
+ (WebCore::NamedStaticDocumentMap::getNamedItem):
+ (WebCore::NamedStaticDocumentMap::removeNamedItem):
+ (WebCore::NamedStaticDocumentMap::getNamedItemNS):
+ (WebCore::NamedStaticDocumentMap::removeNamedItemNS):
+ (WebCore::NamedStaticDocumentMap::setNamedItem):
+ (WebCore::NamedStaticDocumentMap::item):
+ (WebCore::NamedStaticDocumentMap::addItem):
+ * dom/NamedStaticDocumentMap.h: Added.
+ (WebCore::NamedStaticDocumentMap::create):
+ (WebCore::NamedStaticDocumentMap::length):
+ (WebCore::NamedStaticDocumentMap::clear): Custom NamedNodeMap
+ that match the specification.
+
+2008-08-18 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Reviewed by Eric.
+
</ins><span class="cx"> Bug 20263: [XBL] Add loading code for XBLBinding
</span><span class="cx">
</span><span class="cx"> Test: fast/xbl/xbl-empty-fragment-loadBinding.html
</span></span></pre></div>
<a id="branchesXBL2WebCoreGNUmakefileam"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/GNUmakefile.am (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/GNUmakefile.am 2008-08-18 20:21:57 UTC \
(rev 35821)
+++ branches/XBL2/WebCore/GNUmakefile.am 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -1443,6 +1443,7 @@
</span><span class="cx"> DerivedSources/XBLNames.cpp
</span><span class="cx">
</span><span class="cx"> webcore_sources += \
</span><ins>+ WebCore/dom/NamedStaticDocumentMap.cpp \
</ins><span class="cx"> WebCore/loader/CachedXBLDocument.cpp \
</span><span class="cx"> WebCore/xbl/XBLBinding.cpp \
</span><span class="cx"> WebCore/xbl/XBLBindingElement.cpp \
</span></span></pre></div>
<a id="branchesXBL2WebCoreWebCorepro"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/WebCore.pro (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/WebCore.pro 2008-08-18 20:21:57 UTC (rev \
35821)
+++ branches/XBL2/WebCore/WebCore.pro 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -1235,6 +1235,7 @@
</span><span class="cx"> INCLUDEPATH += xbl
</span><span class="cx">
</span><span class="cx"> SOURCES += \
</span><ins>+ dom/NamedStaticDocumentMap.cpp \
</ins><span class="cx"> loader/CachedXBLDocument.cpp \
</span><span class="cx"> xbl/XBLBinding.cpp \
</span><span class="cx"> xbl/XBLBindingElement.cpp \
</span></span></pre></div>
<a id="branchesXBL2WebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: \
branches/XBL2/WebCore/WebCore.xcodeproj/project.pbxproj (35821 => 35822)</h4> <pre \
class="diff"><span> <span class="info">--- \
branches/XBL2/WebCore/WebCore.xcodeproj/project.pbxproj 2008-08-18 20:21:57 UTC (rev \
35821)
+++ branches/XBL2/WebCore/WebCore.xcodeproj/project.pbxproj 2008-08-18 20:53:16 UTC \
(rev 35822) </span><span class="lines">@@ -1831,6 +1831,8 @@
</span><span class="cx"> A1172D6E0E0C539E00175C88 /* XBLDocument.h in Headers */ = \
{isa = PBXBuildFile; fileRef = A1172D6D0E0C539E00175C88 /* XBLDocument.h */; }; \
</span><span class="cx"> A14EF7AC0E3F106900DA9F39 /* XBLBindingElement.cpp in \
Sources */ = {isa = PBXBuildFile; fileRef = A14EF7AB0E3F106900DA9F39 /* \
XBLBindingElement.cpp */; }; </span><span class="cx"> A15A3FFD0E4C80CE00C4335A /* \
XBLBinding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = \
A15A3FFC0E4C80CE00C4335A /* XBLBinding.cpp */; }; \
</span><ins>+ A17DE0170E50AD1D008CD116 /* NamedStaticDocumentMap.cpp in Sources */ = \
{isa = PBXBuildFile; fileRef = A17DE0150E50AD1D008CD116 /* NamedStaticDocumentMap.cpp \
*/; }; + A17DE0180E50AD1D008CD116 /* NamedStaticDocumentMap.h in Headers */ = {isa = \
PBXBuildFile; fileRef = A17DE0160E50AD1D008CD116 /* NamedStaticDocumentMap.h */; }; \
</ins><span class="cx"> A718760E0B2A120100A16ECE /* DragActions.h in Headers */ = \
{isa = PBXBuildFile; fileRef = A718760D0B2A120100A16ECE /* DragActions.h */; settings \
= {ATTRIBUTES = (Private, ); }; }; </span><span class="cx"> \
A71878900B2D04AC00A16ECE /* DragControllerMac.mm in Sources */ = {isa = PBXBuildFile; \
fileRef = A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */; }; </span><span \
class="cx"> A7352C190B1BB89D00A986D0 /* RenderSVGBlock.cpp in Sources */ = {isa = \
PBXBuildFile; fileRef = A7352C170B1BB89D00A986D0 /* RenderSVGBlock.cpp */; }; \
</span><span class="lines">@@ -6307,6 +6309,8 @@ </span><span class="cx"> \
A1172D6D0E0C539E00175C88 /* XBLDocument.h */ = {isa = PBXFileReference; fileEncoding \
= 4; lastKnownFileType = sourcecode.c.h; path = XBLDocument.h; sourceTree = \
"<group>"; }; </span><span class="cx"> A14EF7AB0E3F106900DA9F39 /* \
XBLBindingElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; \
lastKnownFileType = sourcecode.cpp.cpp; path = XBLBindingElement.cpp; sourceTree = \
"<group>"; }; </span><span class="cx"> A15A3FFC0E4C80CE00C4335A /* \
XBLBinding.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = \
sourcecode.cpp.cpp; path = XBLBinding.cpp; sourceTree = "<group>"; }; \
</span><ins>+ A17DE0150E50AD1D008CD116 /* NamedStaticDocumentMap.cpp */ = {isa = \
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = \
NamedStaticDocumentMap.cpp; sourceTree = "<group>"; }; \
+ A17DE0160E50AD1D008CD116 /* NamedStaticDocumentMap.h */ = {isa = PBXFileReference; \
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \
NamedStaticDocumentMap.h; sourceTree = "<group>"; }; </ins><span \
class="cx"> A718760D0B2A120100A16ECE /* DragActions.h */ = {isa = PBXFileReference; \
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragActions.h; \
sourceTree = "<group>"; }; </span><span class="cx"> \
A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */ = {isa = PBXFileReference; \
fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = \
DragControllerMac.mm; sourceTree = "<group>"; }; </span><span \
class="cx"> A7352C170B1BB89D00A986D0 /* RenderSVGBlock.cpp */ = {isa = \
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = \
RenderSVGBlock.cpp; sourceTree = "<group>"; }; </span><span \
class="lines">@@ -13226,6 +13230,8 @@ </span><span class="cx"> \
85ACA9F90A9B631000671E90 /* NamedNodeMap.idl */, </span><span class="cx"> \
A81872190977D3C0005826D9 /* NameNodeList.cpp */, </span><span class="cx"> \
A81872130977D3C0005826D9 /* NameNodeList.h */, \
</span><ins>+ A17DE0150E50AD1D008CD116 /* NamedStaticDocumentMap.cpp */, \
+ A17DE0160E50AD1D008CD116 /* NamedStaticDocumentMap.h */, </ins><span class="cx"> \
A8C4A7EE09D563270003AC8D /* Node.cpp */, </span><span class="cx"> \
14115B5109F84B7100CA4FC1 /* Node.h */, </span><span class="cx"> \
14DC0D0B09FECFA4007B0235 /* Node.idl */, </span><span class="lines">@@ -15333,6 \
+15339,7 @@ </span><span class="cx"> A10D20A80E386DCF007E500B /* \
XBLBindingManager.h in Headers */, </span><span class="cx"> \
A10D21400E389A0D007E500B /* XBLBindingElement.h in Headers */, </span><span \
class="cx"> A10D21420E389A18007E500B /* XBLTemplateElement.h in Headers */, \
</span><ins>+ A17DE0180E50AD1D008CD116 /* NamedStaticDocumentMap.h in Headers */, \
</ins><span class="cx"> ); </span><span class="cx"> \
runOnlyForDeploymentPostprocessing = 0; </span><span class="cx"> };
</span><span class="lines">@@ -17111,6 +17118,7 @@
</span><span class="cx"> A10D20A70E386DCF007E500B /* XBLBindingManager.cpp in \
Sources */, </span><span class="cx"> A14EF7AC0E3F106900DA9F39 /* \
XBLBindingElement.cpp in Sources */, </span><span class="cx"> \
A15A3FFD0E4C80CE00C4335A /* XBLBinding.cpp in Sources */, \
</span><ins>+ A17DE0170E50AD1D008CD116 /* NamedStaticDocumentMap.cpp in Sources \
*/, </ins><span class="cx"> );
</span><span class="cx"> runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx"> };
</span></span></pre></div>
<a id="branchesXBL2WebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/dom/Document.cpp (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/dom/Document.cpp 2008-08-18 20:21:57 UTC \
(rev 35821)
+++ branches/XBL2/WebCore/dom/Document.cpp 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(XBL)
</span><ins>+#include "NamedStaticDocumentMap.h"
</ins><span class="cx"> #include "XBLBindingManager.h"
</span><span class="cx"> #include "XBLElement.h"
</span><span class="cx"> #include "XBLElementFactory.h"
</span><span class="lines">@@ -280,6 +281,9 @@
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="cx"> , m_svgExtensions(0)
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(XBL)
+ , m_bindingDocuments(0)
+#endif
</ins><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx"> , m_hasDashboardRegions(false)
</span><span class="cx"> , m_dashboardRegionsDirty(false)
</span><span class="lines">@@ -406,6 +410,8 @@
</span><span class="cx"> #if ENABLE(XBL)
</span><span class="cx"> XBLBindingManager* manager = \
XBLBindingManager::sharedInstance(); </span><span class="cx"> \
manager->clearBindingSheets(this); </span><ins>+
+ m_bindingDocuments = 0;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> XMLHttpRequest::detachRequests(this);
</span><span class="lines">@@ -3650,6 +3656,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(XBL)
</span><ins>+
</ins><span class="cx"> void \
Document::addBindingSheet(PassRefPtr<CSSStyleSheet> sheet) </span><span \
class="cx"> { </span><span class="cx"> XBLBindingManager* manager = \
XBLBindingManager::sharedInstance(); </span><span class="lines">@@ -3661,6 +3668,30 \
@@ </span><span class="cx"> XBLBindingManager* manager = \
XBLBindingManager::sharedInstance(); </span><span class="cx"> \
manager->removeBindingSheet(this, sheet); </span><span class="cx"> }
</span><ins>+
+NamedNodeMap* Document::bindingDocuments()
+{
+ createBindingDocumentsIfNeeded();
+
+ return m_bindingDocuments.get();
+}
+
+Document* Document::loadBindingDocument(const String& documentURI)
+{
+ createBindingDocumentsIfNeeded();
+
+ // FIXME: we need to load the required document with
+ // some helper class.
+
+ return 0;
+}
+
+void Document::createBindingDocumentsIfNeeded()
+{
+ if (!m_bindingDocuments)
+ m_bindingDocuments = NamedStaticDocumentMap::create();
+}
+
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> PassRefPtr<HTMLCollection> Document::images()
</span></span></pre></div>
<a id="branchesXBL2WebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/dom/Document.h (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/dom/Document.h 2008-08-18 20:21:57 UTC \
(rev 35821)
+++ branches/XBL2/WebCore/dom/Document.h 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -86,6 +86,7 @@
</span><span class="cx"> class IntPoint;
</span><span class="cx"> class JSNode;
</span><span class="cx"> class MouseEventWithHitTestResults;
</span><ins>+ class NamedStaticDocumentMap;
</ins><span class="cx"> class NodeFilter;
</span><span class="cx"> class NodeIterator;
</span><span class="cx"> class Page;
</span><span class="lines">@@ -937,6 +938,9 @@
</span><span class="cx"> #if ENABLE(XBL)
</span><span class="cx"> void addBindingSheet(PassRefPtr<CSSStyleSheet>);
</span><span class="cx"> void removeBindingSheet(CSSStyleSheet*);
</span><ins>+
+ NamedNodeMap* bindingDocuments();
+ Document* loadBindingDocument(const String& documentURI);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> void initSecurityContext();
</span><span class="lines">@@ -1000,6 +1004,13 @@
</span><span class="cx"> SVGDocumentExtensions* m_svgExtensions;
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if ENABLE(XBL)
+ // The binding documents are lazily created.
+ void createBindingDocumentsIfNeeded();
+
+ RefPtr<NamedStaticDocumentMap> m_bindingDocuments;
+#endif
+
</ins><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx"> Vector<DashboardRegionValue> m_dashboardRegions;
</span><span class="cx"> bool m_hasDashboardRegions;
</span></span></pre></div>
<a id="branchesXBL2WebCoredomDocumentidl"></a>
<div class="modfile"><h4>Modified: branches/XBL2/WebCore/dom/Document.idl (35821 => \
35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/dom/Document.idl 2008-08-18 20:21:57 UTC \
(rev 35821)
+++ branches/XBL2/WebCore/dom/Document.idl 2008-08-18 20:53:16 UTC (rev 35822)
</span><span class="lines">@@ -240,6 +240,11 @@
</span><span class="cx"> raises(DOMException);
</span><span class="cx"> NodeList querySelectorAll(in \
[ConvertUndefinedOrNullToNullString] DOMString selectors) </span><span class="cx"> \
raises(DOMException); </span><ins>+
+#if ENABLE_XBL
+ readonly attribute NamedNodeMap bindingDocuments;
+ Document loadBindingDocument(in DOMString documentURI);
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesXBL2WebCoredomNamedStaticDocumentMapcpp"></a>
<div class="addfile"><h4>Added: branches/XBL2/WebCore/dom/NamedStaticDocumentMap.cpp \
(0 => 35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/dom/NamedStaticDocumentMap.cpp \
(rev 0)
+++ branches/XBL2/WebCore/dom/NamedStaticDocumentMap.cpp 2008-08-18 20:53:16 UTC (rev \
35822) </span><span class="lines">@@ -0,0 +1,112 @@
</span><ins>+/*
+ * Copyright (C) 2008 Julien Chaffraix <jchaffraix@webkit.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NamedStaticDocumentMap.h"
+
+#if ENABLE(XBL)
+
+#include "PlatformString.h"
+#include "QualifiedName.h"
+#include "ExceptionCode.h"
+
+namespace WebCore {
+
+NamedStaticDocumentMap::NamedStaticDocumentMap()
+{
+}
+
+NamedStaticDocumentMap::~NamedStaticDocumentMap()
+{
+ m_documents.clear();
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::getNamedItem(const String& \
documentURI) const +{
+ for (Vector<RefPtr<Document> >::const_iterator it = \
m_documents.begin(); it != m_documents.end(); ++it) + if ((*it)->url() == \
documentURI) + return (*it);
+ return 0;
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::removeNamedItem(const String& \
/*name*/, ExceptionCode& ec) +{
+ // For all modification, we throw NO_MODIFICATIOM_ALLOWED_ERR.
+ ec = NO_MODIFICATION_ALLOWED_ERR;
+ return 0;
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::getNamedItemNS(const String& \
namespaceURI, const String& documentURI) const +{
+ // According to the specification, we have to use 'null' as the namespace & \
prefix and the document URL + // as the name.
+ if (!namespaceURI.isNull())
+ return 0;
+
+ return getNamedItem(documentURI);
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::removeNamedItemNS(const String& \
/*namespaceURI*/, const String& /*localName*/, ExceptionCode& ec) +{
+ ec = NO_MODIFICATION_ALLOWED_ERR;
+ return 0;
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::getNamedItem(const QualifiedName& \
documentURI) const +{
+ if (!documentURI.namespaceURI().isNull() || !documentURI.prefix().isNull())
+ return 0;
+
+ return getNamedItem(documentURI.localName());
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::removeNamedItem(const \
QualifiedName& /*documentURI*/, ExceptionCode& ec) +{
+ ec = NO_MODIFICATION_ALLOWED_ERR;
+ return 0;
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::setNamedItem(Node*, \
ExceptionCode& ec) +{
+ ec = NO_MODIFICATION_ALLOWED_ERR;
+ return 0;
+}
+
+PassRefPtr<Node> NamedStaticDocumentMap::item(unsigned index) const
+{
+ if (index >= m_documents.size())
+ return 0;
+
+ return m_documents.at(index);
+}
+
+void NamedStaticDocumentMap::addItem(PassRefPtr<Document> document)
+{
+ m_documents.append(document);
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(XBL)
</ins></span></pre></div>
<a id="branchesXBL2WebCoredomNamedStaticDocumentMaph"></a>
<div class="addfile"><h4>Added: branches/XBL2/WebCore/dom/NamedStaticDocumentMap.h (0 \
=> 35822)</h4> <pre class="diff"><span>
<span class="info">--- branches/XBL2/WebCore/dom/NamedStaticDocumentMap.h \
(rev 0)
+++ branches/XBL2/WebCore/dom/NamedStaticDocumentMap.h 2008-08-18 20:53:16 UTC (rev \
35822) </span><span class="lines">@@ -0,0 +1,77 @@
</span><ins>+/*
+ * Copyright (C) 2008 Julien Chaffraix <jchaffraix@webkit.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef XBLNodeMap_h
+#define XBLNodeMap_h
+
+#include "config.h"
+
+// This class is used only for document.bindingDocuments
+// and that's why it requires XBL to be enabled.
+#if ENABLE(XBL)
+
+#include "Document.h"
+#include "NamedNodeMap.h"
+#include "Node.h"
+
+namespace WebCore {
+
+ class QualifiedName;
+
+ class NamedStaticDocumentMap : public NamedNodeMap {
+
+ public:
+ static PassRefPtr<NamedStaticDocumentMap> create() { return \
adoptRef(new NamedStaticDocumentMap()); } +
+ virtual PassRefPtr<Node> getNamedItem(const String& name) const;
+ virtual PassRefPtr<Node> removeNamedItem(const String& name, \
ExceptionCode&); +
+ virtual PassRefPtr<Node> getNamedItemNS(const String& \
namespaceURI, const String& localName) const; + virtual \
PassRefPtr<Node> removeNamedItemNS(const String& namespaceURI, const \
String& localName, ExceptionCode&); +
+ virtual PassRefPtr<Node> getNamedItem(const QualifiedName& \
attrName) const; + virtual PassRefPtr<Node> removeNamedItem(const \
QualifiedName& attrName, ExceptionCode&); + virtual \
PassRefPtr<Node> setNamedItem(Node*, ExceptionCode&); +
+ virtual PassRefPtr<Node> item(unsigned index) const;
+ virtual size_t length() const { return m_documents.size(); }
+
+ // Modification methods (not exported to the DOM)
+
+ void addItem(PassRefPtr<Document>);
+ void clear() { m_documents.clear(); }
+
+ private:
+ NamedStaticDocumentMap();
+ ~NamedStaticDocumentMap();
+
+ Vector<RefPtr<Document> > m_documents;
+ };
+
+} // namespace WebCore
+
+#endif // ENABLE(XBL)
+
+#endif // XBLNodeMap_h
</ins></span></pre>
</div>
</div>
</body>
</html>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic