[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

ap at apple.com ap at apple.com
Wed Dec 22 16:08:41 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7ac88d0bac071cf2b4551a862c91e92fe500414e
Author: ap at apple.com <ap at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 19 00:23:41 2010 +0000

            Reviewed by Geoffrey Garen.
    
            https://bugs.webkit.org/show_bug.cgi?id=49762
            Stylesheet wrappers are not GC protected
    
            Tests: fast/dom/StyleSheet/gc-inline-style-cssvalues.html
                   fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
    
            * Android.jscbindings.mk:
            * CMakeLists.txt:
            * GNUmakefile.am:
            * WebCore.gypi:
            * WebCore.pro:
            * WebCore.vcproj/WebCore.vcproj:
            Added the new custom bindings files.
    
            * WebCore.xcodeproj/project.pbxproj: Added the new custom bindings files. Also, added some
            existing headers.
    
            * bindings/js/JSDOMBinding.cpp: (WebCore::isObservableThroughDOM): If a node has a stylesheet
            with a wrapper, it may be the only thing having the stylesheet's wrapper alive, so its own
            wrapper has to stay alive, too.
            While at it, also fixed the same issue with inline style declarations.
            Also, added a FIXME comment about one with attribute nodes. We implement a less conservative
            approach for nodes, so perhaps fixing this is not as easy as removing a hasCustomProperties()
            check.
    
            * bindings/js/JSHTMLLinkElementCustom.cpp: Added.
            (WebCore::JSHTMLLinkElement::markChildren):
            * bindings/js/JSHTMLStyleElementCustom.cpp: Added.
            (WebCore::JSHTMLStyleElement::markChildren):
            * bindings/js/JSProcessingInstructionCustom.cpp: Added.
            (WebCore::JSProcessingInstruction::markChildren):
            Mark stylesheets owned by these nodes. As always in markChildren() functions, we do it
            conservatively, without checking whether the stylesheet or any of its children have custom
            properties.
    
            * dom/ProcessingInstruction.idl:
            * html/HTMLLinkElement.idl:
            * html/HTMLStyleElement.idl:
            These have custom mark functions now.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72344 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 90f3626..7adfd6c 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-11-18  Alexey Proskuryakov  <ap at apple.com>
+
+        Reviewed by Geoffrey Garen.
+
+        https://bugs.webkit.org/show_bug.cgi?id=49762
+        Stylesheet wrappers are not GC protected
+
+        * fast/dom/StyleSheet/gc-inline-style-cssvalues-expected.txt: Added.
+        * fast/dom/StyleSheet/gc-inline-style-cssvalues.html: Added.
+        * fast/dom/StyleSheet/gc-styleheet-wrapper-expected.txt: Added.
+        * fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml: Added.
+
 2010-11-18  Kent Tamura  <tkent at chromium.org>
 
         Unreviewed, test expectation update.
diff --git a/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues-expected.txt b/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues-expected.txt
new file mode 100644
index 0000000..fa016ed
--- /dev/null
+++ b/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues-expected.txt
@@ -0,0 +1,11 @@
+Test that custom properties on CSSValues of inline style declarations survive GC
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS document.body.style.getPropertyCSSValue("color").cssText is "black"
+PASS document.body.style.getPropertyCSSValue("color").foo is 'bar'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues.html b/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues.html
new file mode 100644
index 0000000..2665162
--- /dev/null
+++ b/LayoutTests/fast/dom/StyleSheet/gc-inline-style-cssvalues.html
@@ -0,0 +1,23 @@
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body style="color:black">
+<p id="description"></p>
+<div id="console"></div>
+<script>
+    description("Test that custom properties on CSSValues of inline style declarations survive GC");
+
+    var expr = 'document.body.style.getPropertyCSSValue("color")';
+    shouldBe(expr + ".cssText", '"black"');
+    eval(expr).foo = "bar"
+    gc();
+    shouldBe(expr + ".foo", "'bar'");
+
+    successfullyParsed = true;
+
+</script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper-expected.txt b/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper-expected.txt
new file mode 100644
index 0000000..bb6ce88
--- /dev/null
+++ b/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper-expected.txt
@@ -0,0 +1,15 @@
+Test that custom properties on stylesheets survive GC
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS document.firstChild.sheet.title is 'testSheet'
+PASS document.firstChild.sheet.foo is 'bar'
+PASS document.getElementsByTagName('link')[0].sheet.title is 'testSheet'
+PASS document.getElementsByTagName('link')[0].sheet.foo is 'bar'
+PASS document.getElementsByTagName('style')[0].sheet.title is 'testSheet'
+PASS document.getElementsByTagName('style')[0].sheet.foo is 'bar'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml b/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
new file mode 100644
index 0000000..478abc3
--- /dev/null
+++ b/LayoutTests/fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
@@ -0,0 +1,44 @@
+<?xml-stylesheet href="resources/detached-style.css" title="testSheet"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title/>
+<link rel="stylesheet" href="resources/detached-style.css" type="text/css" title="testSheet"/>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css"/>
+<script src="../../js/resources/js-test-pre.js"></script>
+<style title="testSheet">
+* { }
+</style>
+</head>
+<body onload="start()">
+<p id="description"></p>
+<div id="console"></div>
+<script>
+    window.jsTestIsAsync = true;
+
+    description("Test that custom properties on stylesheets survive GC");
+
+    function test(expr)
+    {
+        shouldBe(expr + ".title", "'testSheet'");
+
+        eval(expr).foo = "bar";
+        
+        gc();
+
+        shouldBe(expr + ".foo", "'bar'");
+    }
+
+    function start()
+    {
+        test("document.firstChild.sheet");
+        test("document.getElementsByTagName('link')[0].sheet");
+        test("document.getElementsByTagName('style')[0].sheet");
+        finishJSTest();
+    }
+
+    successfullyParsed = true;
+
+</script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/WebCore/Android.jscbindings.mk b/WebCore/Android.jscbindings.mk
index f304bd3..3d0d83e 100644
--- a/WebCore/Android.jscbindings.mk
+++ b/WebCore/Android.jscbindings.mk
@@ -115,10 +115,12 @@ LOCAL_SRC_FILES += \
 	bindings/js/JSHTMLFrameElementCustom.cpp \
 	bindings/js/JSHTMLFrameSetElementCustom.cpp \
 	bindings/js/JSHTMLInputElementCustom.cpp \
+	bindings/js/JSHTMLLinkElementCustom.cpp \
 	bindings/js/JSHTMLObjectElementCustom.cpp \
 	bindings/js/JSHTMLOptionsCollectionCustom.cpp \
 	bindings/js/JSHTMLOutputElementCustom.cpp \
 	bindings/js/JSHTMLSelectElementCustom.cpp \
+	bindings/js/JSHTMLStyleElementCustom.cpp \
 	bindings/js/JSHistoryCustom.cpp \
 	bindings/js/JSIDBAnyCustom.cpp \
 	bindings/js/JSIDBKeyCustom.cpp \
@@ -142,6 +144,7 @@ LOCAL_SRC_FILES += \
 	bindings/js/JSPluginArrayCustom.cpp \
 	bindings/js/JSPluginCustom.cpp \
 	bindings/js/JSPluginElementFunctions.cpp \
+	bindings/js/JSProcessingInstructionCustom.cpp \
 	bindings/js/JSSQLResultSetRowListCustom.cpp \
 	bindings/js/JSSQLTransactionCustom.cpp \
 	bindings/js/JSSVGElementInstanceCustom.cpp \
diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index 08f8809..71b4571 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -632,10 +632,12 @@ SET(WebCore_SOURCES
     bindings/js/JSHTMLFrameElementCustom.cpp
     bindings/js/JSHTMLFrameSetElementCustom.cpp
     bindings/js/JSHTMLInputElementCustom.cpp
+    bindings/js/JSHTMLLinkElementCustom.cpp
     bindings/js/JSHTMLObjectElementCustom.cpp
     bindings/js/JSHTMLOptionsCollectionCustom.cpp
     bindings/js/JSHTMLOutputElementCustom.cpp
     bindings/js/JSHTMLSelectElementCustom.cpp
+    bindings/js/JSHTMLStyleElementCustom.cpp
     bindings/js/JSImageConstructor.cpp
     bindings/js/JSImageDataCustom.cpp
     bindings/js/JSInjectedScriptHostCustom.cpp
@@ -660,6 +662,7 @@ SET(WebCore_SOURCES
     bindings/js/JSDOMPluginCustom.cpp
     bindings/js/JSPluginElementFunctions.cpp
     bindings/js/JSPopStateEventCustom.cpp
+    bindings/js/JSProcessingInstructionCustom.cpp
     bindings/js/JSScriptProfileNodeCustom.cpp
     bindings/js/JSSharedWorkerCustom.cpp
     bindings/js/JSSQLResultSetRowListCustom.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index fefe174..963b02c 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,47 @@
+2010-11-18  Alexey Proskuryakov  <ap at apple.com>
+
+        Reviewed by Geoffrey Garen.
+
+        https://bugs.webkit.org/show_bug.cgi?id=49762
+        Stylesheet wrappers are not GC protected
+
+        Tests: fast/dom/StyleSheet/gc-inline-style-cssvalues.html
+               fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
+
+        * Android.jscbindings.mk:
+        * CMakeLists.txt:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.pro:
+        * WebCore.vcproj/WebCore.vcproj:
+        Added the new custom bindings files.
+
+        * WebCore.xcodeproj/project.pbxproj: Added the new custom bindings files. Also, added some
+        existing headers.
+
+        * bindings/js/JSDOMBinding.cpp: (WebCore::isObservableThroughDOM): If a node has a stylesheet
+        with a wrapper, it may be the only thing having the stylesheet's wrapper alive, so its own
+        wrapper has to stay alive, too.
+        While at it, also fixed the same issue with inline style declarations.
+        Also, added a FIXME comment about one with attribute nodes. We implement a less conservative
+        approach for nodes, so perhaps fixing this is not as easy as removing a hasCustomProperties()
+        check.
+
+        * bindings/js/JSHTMLLinkElementCustom.cpp: Added.
+        (WebCore::JSHTMLLinkElement::markChildren):
+        * bindings/js/JSHTMLStyleElementCustom.cpp: Added.
+        (WebCore::JSHTMLStyleElement::markChildren):
+        * bindings/js/JSProcessingInstructionCustom.cpp: Added.
+        (WebCore::JSProcessingInstruction::markChildren):
+        Mark stylesheets owned by these nodes. As always in markChildren() functions, we do it
+        conservatively, without checking whether the stylesheet or any of its children have custom
+        properties.
+
+        * dom/ProcessingInstruction.idl:
+        * html/HTMLLinkElement.idl:
+        * html/HTMLStyleElement.idl:
+        These have custom mark functions now.
+
 2010-11-18  Jian Li  <jianli at chromium.org>
 
         Reviewed by Kenneth Russell.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 5dcc468..a211c18 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -746,12 +746,14 @@ webcore_sources += \
 	WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLInputElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLInputElementCustom.h \
+	WebCore/bindings/js/JSHTMLLinkElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLObjectElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLObjectElementCustom.h \
 	WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp \
 	WebCore/bindings/js/JSHTMLOutputElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLSelectElementCustom.cpp \
 	WebCore/bindings/js/JSHTMLSelectElementCustom.h \
+	WebCore/bindings/js/JSHTMLStyleElementCustom.cpp \
 	WebCore/bindings/js/JSImageConstructor.cpp \
 	WebCore/bindings/js/JSImageConstructor.h \
 	WebCore/bindings/js/JSImageDataCustom.cpp \
@@ -782,6 +784,7 @@ webcore_sources += \
 	WebCore/bindings/js/JSPluginElementFunctions.cpp \
 	WebCore/bindings/js/JSPluginElementFunctions.h \
 	WebCore/bindings/js/JSPopStateEventCustom.cpp \
+	WebCore/bindings/js/JSProcessingInstructionCustom.cpp \
 	WebCore/bindings/js/JSScriptProfileNodeCustom.cpp \
 	WebCore/bindings/js/JSSharedWorkerCustom.cpp \
 	WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp \
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 615f40a..d9f1ef3 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -621,12 +621,14 @@
             'bindings/js/JSHTMLFrameSetElementCustom.cpp',
             'bindings/js/JSHTMLInputElementCustom.cpp',
             'bindings/js/JSHTMLInputElementCustom.h',
+            'bindings/js/JSHTMLLinkElementCustom.cpp',
             'bindings/js/JSHTMLObjectElementCustom.cpp',
             'bindings/js/JSHTMLObjectElementCustom.h',
             'bindings/js/JSHTMLOptionsCollectionCustom.cpp',
             'bindings/js/JSHTMLOutputElementCustom.cpp',
             'bindings/js/JSHTMLSelectElementCustom.cpp',
             'bindings/js/JSHTMLSelectElementCustom.h',
+            'bindings/js/JSHTMLStyleElementCustom.cpp',
             'bindings/js/JSImageConstructor.cpp',
             'bindings/js/JSImageConstructor.h',
             'bindings/js/JSImageDataCustom.cpp',
@@ -661,6 +663,7 @@
             'bindings/js/JSDOMPluginCustom.cpp',
             'bindings/js/JSPluginElementFunctions.cpp',
             'bindings/js/JSPluginElementFunctions.h',
+            'bindings/js/JSProcessingInstructionCustom.cpp',
             'bindings/js/JSRGBColor.cpp',
             'bindings/js/JSRGBColor.h',
             'bindings/js/JSSharedWorkerCustom.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 74f2cac..12d632c 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -531,10 +531,12 @@ v8 {
         bindings/js/JSHTMLFrameElementCustom.cpp \
         bindings/js/JSHTMLFrameSetElementCustom.cpp \
         bindings/js/JSHTMLInputElementCustom.cpp \
+        bindings/js/JSHTMLLinkElementCustom.cpp \
         bindings/js/JSHTMLObjectElementCustom.cpp \
         bindings/js/JSHTMLOptionsCollectionCustom.cpp \
         bindings/js/JSHTMLOutputElementCustom.cpp \
         bindings/js/JSHTMLSelectElementCustom.cpp \
+        bindings/js/JSHTMLStyleElementCustom.cpp \
         bindings/js/JSImageConstructor.cpp \
         bindings/js/JSImageDataCustom.cpp \
         bindings/js/JSInjectedScriptHostCustom.cpp \
@@ -572,6 +574,7 @@ v8 {
         bindings/js/JSMainThreadExecState.cpp \
         bindings/js/JSPluginElementFunctions.cpp \
         bindings/js/JSPopStateEventCustom.cpp \
+        bindings/js/JSProcessingInstructionCustom.cpp \
         bindings/js/JSWorkerContextErrorHandler.cpp \
         bindings/js/ScriptCachedFrameData.cpp \
         bindings/js/ScriptCallStackFactory.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index 0f06034..e41b55b 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -57306,6 +57306,66 @@
 					>
 				</File>
 				<File
+					RelativePath="..\bindings\js\JSHTMLLinkElementCustom.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Internal|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_All|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_LTCG|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="..\bindings\js\JSHTMLObjectElementCustom.cpp"
 					>
 					<FileConfiguration
@@ -57518,6 +57578,66 @@
 					>
 				</File>
 				<File
+					RelativePath="..\bindings\js\JSHTMLStyleElementCustom.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Internal|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_All|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_LTCG|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSIDBAny.cpp"
 					>
 					<FileConfiguration
@@ -59690,6 +59810,66 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath="..\bindings\js\JSProcessingInstructionCustom.cpp"
+					>
+					<FileConfiguration
+						Name="Debug|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Internal|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_Cairo|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug_All|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Release_LTCG|Win32"
+						ExcludedFromBuild="true"
+						>
+						<Tool
+							Name="VCCLCompilerTool"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath="..\bindings\js\JSScriptProfileNodeCustom.cpp"
 					>
 					<FileConfiguration
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index c3a8626..29659ac 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -5395,6 +5395,13 @@
 		E1A643FD0EC097A000779668 /* WorkerScriptController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1A643FC0EC097A000779668 /* WorkerScriptController.cpp */; };
 		E1ACAF4C0E791AAF0087D12B /* DOMMessagePort.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1ACAF4A0E791AAF0087D12B /* DOMMessagePort.mm */; };
 		E1ACAF4D0E791AAF0087D12B /* DOMMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = E1ACAF4B0E791AAF0087D12B /* DOMMessagePort.h */; };
+		E1AD12D61295D0BD00ACA989 /* JSProcessingInstructionCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1AD12D51295D0BD00ACA989 /* JSProcessingInstructionCustom.cpp */; };
+		E1AD139B1295D92600ACA989 /* JSHTMLLinkElementCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1AD139A1295D92600ACA989 /* JSHTMLLinkElementCustom.cpp */; };
+		E1AD139E1295D96100ACA989 /* JSHTMLStyleElementCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1AD139D1295D96100ACA989 /* JSHTMLStyleElementCustom.cpp */; };
+		E1AD141E1295EA4F00ACA989 /* JSHTMLAppletElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AD141D1295EA4F00ACA989 /* JSHTMLAppletElementCustom.h */; };
+		E1AD14211295EA6B00ACA989 /* JSHTMLEmbedElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AD14201295EA6B00ACA989 /* JSHTMLEmbedElementCustom.h */; };
+		E1AD14231295EA7F00ACA989 /* JSHTMLInputElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AD14221295EA7F00ACA989 /* JSHTMLInputElementCustom.h */; };
+		E1AD14251295EA9500ACA989 /* JSHTMLObjectElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AD14241295EA9500ACA989 /* JSHTMLObjectElementCustom.h */; };
 		E1ADECBF0E76ACF1004A1A5E /* MessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = E1ADECBD0E76ACF1004A1A5E /* MessagePort.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		E1ADECC00E76ACF1004A1A5E /* MessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1ADECBE0E76ACF1004A1A5E /* MessagePort.cpp */; };
 		E1ADECCE0E76AD8B004A1A5E /* MessageChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = E1ADECCC0E76AD8B004A1A5E /* MessageChannel.h */; };
@@ -11459,6 +11466,13 @@
 		E1A643FC0EC097A000779668 /* WorkerScriptController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerScriptController.cpp; sourceTree = "<group>"; };
 		E1ACAF4A0E791AAF0087D12B /* DOMMessagePort.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMMessagePort.mm; sourceTree = "<group>"; };
 		E1ACAF4B0E791AAF0087D12B /* DOMMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMMessagePort.h; sourceTree = "<group>"; };
+		E1AD12D51295D0BD00ACA989 /* JSProcessingInstructionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSProcessingInstructionCustom.cpp; sourceTree = "<group>"; };
+		E1AD139A1295D92600ACA989 /* JSHTMLLinkElementCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLLinkElementCustom.cpp; sourceTree = "<group>"; };
+		E1AD139D1295D96100ACA989 /* JSHTMLStyleElementCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLStyleElementCustom.cpp; sourceTree = "<group>"; };
+		E1AD141D1295EA4F00ACA989 /* JSHTMLAppletElementCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLAppletElementCustom.h; sourceTree = "<group>"; };
+		E1AD14201295EA6B00ACA989 /* JSHTMLEmbedElementCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLEmbedElementCustom.h; sourceTree = "<group>"; };
+		E1AD14221295EA7F00ACA989 /* JSHTMLInputElementCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLInputElementCustom.h; sourceTree = "<group>"; };
+		E1AD14241295EA9500ACA989 /* JSHTMLObjectElementCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLObjectElementCustom.h; sourceTree = "<group>"; };
 		E1ADECBD0E76ACF1004A1A5E /* MessagePort.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = MessagePort.h; sourceTree = "<group>"; };
 		E1ADECBE0E76ACF1004A1A5E /* MessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessagePort.cpp; sourceTree = "<group>"; };
 		E1ADECC60E76AD1F004A1A5E /* MessagePort.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MessagePort.idl; sourceTree = "<group>"; };
@@ -17083,21 +17097,27 @@
 				BCE7B1920D4E86960075A539 /* JSHistoryCustom.cpp */,
 				BC97E42B10915B060010D361 /* JSHTMLAllCollectionCustom.cpp */,
 				BC4EDEF30C08F3FB007EDD49 /* JSHTMLAppletElementCustom.cpp */,
+				E1AD141D1295EA4F00ACA989 /* JSHTMLAppletElementCustom.h */,
 				9392262C1032107B006E7D5D /* JSHTMLCanvasElementCustom.cpp */,
 				BCCBAD3A0C18BFF800CE890F /* JSHTMLCollectionCustom.cpp */,
 				BCBCAE530FF1A29E000762AE /* JSHTMLDataGridElementCustom.cpp */,
 				BC51580A0C03D404008BB0EE /* JSHTMLDocumentCustom.cpp */,
 				BC5823F40C0A98DF0053F1B5 /* JSHTMLElementCustom.cpp */,
 				BC6D44BD0C07EFB60072D2C9 /* JSHTMLEmbedElementCustom.cpp */,
+				E1AD14201295EA6B00ACA989 /* JSHTMLEmbedElementCustom.h */,
 				A8D065AD0A2446CD005E7203 /* JSHTMLFormElementCustom.cpp */,
 				BC2ED7A40C6C0F3600920BFF /* JSHTMLFrameElementCustom.cpp */,
 				BCD41ABA0C060DE800C0E446 /* JSHTMLFrameSetElementCustom.cpp */,
 				BCC438770E886CC700533DD5 /* JSHTMLInputElementCustom.cpp */,
+				E1AD14221295EA7F00ACA989 /* JSHTMLInputElementCustom.h */,
+				E1AD139A1295D92600ACA989 /* JSHTMLLinkElementCustom.cpp */,
 				BC305CA30C0781BB00CD20F0 /* JSHTMLObjectElementCustom.cpp */,
+				E1AD14241295EA9500ACA989 /* JSHTMLObjectElementCustom.h */,
 				448AD27A0A4813790023D179 /* JSHTMLOptionsCollectionCustom.cpp */,
 				4AD00FFF127E63100015035F /* JSHTMLOutputElementCustom.cpp */,
 				BC17F9650B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp */,
 				AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */,
+				E1AD139D1295D96100ACA989 /* JSHTMLStyleElementCustom.cpp */,
 				C585A65C11D4FAB2004C3E4B /* JSIDBAnyCustom.cpp */,
 				C585A65D11D4FAB2004C3E4B /* JSIDBKeyCustom.cpp */,
 				A7D0318D0E93540300E24ACD /* JSImageDataCustom.cpp */,
@@ -17120,6 +17140,7 @@
 				1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
 				BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
 				5189F01710B3781300F3C739 /* JSPopStateEventCustom.cpp */,
+				E1AD12D51295D0BD00ACA989 /* JSProcessingInstructionCustom.cpp */,
 				9FA37EE61172FCF000C4CD55 /* JSScriptProfileNodeCustom.cpp */,
 				51DCE8010CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp */,
 				1AD2316D0CD269E700C1F194 /* JSSQLTransactionCustom.cpp */,
@@ -21338,6 +21359,10 @@
 				BCB92D4F1293550B00C8387F /* FontBaseline.h in Headers */,
 				BCA257151293C010007A263D /* VerticalPositionCache.h in Headers */,
 				BCAE1FA712939DB7004CB026 /* ScrollAnimatorMac.h in Headers */,
+				E1AD141E1295EA4F00ACA989 /* JSHTMLAppletElementCustom.h in Headers */,
+				E1AD14211295EA6B00ACA989 /* JSHTMLEmbedElementCustom.h in Headers */,
+				E1AD14231295EA7F00ACA989 /* JSHTMLInputElementCustom.h in Headers */,
+				E1AD14251295EA9500ACA989 /* JSHTMLObjectElementCustom.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -23904,6 +23929,9 @@
 				499B3C5A128C641E00E726C2 /* GraphicsLayerMac.mm in Sources */,
 				3888F6EE128C9889000CA8E0 /* InspectorFileSystemAgent.cpp in Sources */,
 				BCAE1FA612939DB7004CB026 /* ScrollAnimatorMac.cpp in Sources */,
+				E1AD12D61295D0BD00ACA989 /* JSProcessingInstructionCustom.cpp in Sources */,
+				E1AD139B1295D92600ACA989 /* JSHTMLLinkElementCustom.cpp in Sources */,
+				E1AD139E1295D96100ACA989 /* JSHTMLStyleElementCustom.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebCore/bindings/js/JSDOMBinding.cpp b/WebCore/bindings/js/JSDOMBinding.cpp
index e4cff4a..e91ac27 100644
--- a/WebCore/bindings/js/JSDOMBinding.cpp
+++ b/WebCore/bindings/js/JSDOMBinding.cpp
@@ -35,8 +35,10 @@
 #include "HTMLCanvasElement.h"
 #include "HTMLFrameElementBase.h"
 #include "HTMLImageElement.h"
+#include "HTMLLinkElement.h"
 #include "HTMLNames.h"
 #include "HTMLScriptElement.h"
+#include "HTMLStyleElement.h"
 #include "JSBinding.h"
 #include "JSBindingState.h"
 #include "JSDOMCoreException.h"
@@ -50,6 +52,7 @@
 #include "JSXMLHttpRequestException.h"
 #include "KURL.h"
 #include "MessagePort.h"
+#include "ProcessingInstruction.h"
 #include "RangeException.h"
 #include "ScriptCachedFrameData.h"
 #include "ScriptController.h"
@@ -231,7 +234,7 @@ void cacheDOMNodeWrapper(JSC::ExecState* exec, Document* document, Node* node, J
 
 static inline bool isObservableThroughDOM(JSNode* jsNode, DOMWrapperWorld* world)
 {
-    // Certain conditions implicitly make a JS DOM node wrapper observable
+    // Certain conditions implicitly make existence of a JS DOM node wrapper observable
     // through the DOM, even if no explicit reference to it remains.
 
     Node* node = jsNode->impl();
@@ -253,19 +256,22 @@ static inline bool isObservableThroughDOM(JSNode* jsNode, DOMWrapperWorld* world
         // those objects through the DOM must reflect those properties.
         // FIXME: It would be better if this logic could be in the node next to
         // the custom markChildren functions rather than here.
+        // Note that for some compound objects like stylesheets and CSSStyleDeclarations,
+        // we don't descend to check children for custom properties, and just conservatively
+        // keep the node wrappers protecting them alive.
         if (node->isElementNode()) {
             if (NamedNodeMap* attributes = static_cast<Element*>(node)->attributeMap()) {
                 if (DOMObject* wrapper = world->m_wrappers.uncheckedGet(attributes)) {
+                    // FIXME: This check seems insufficient, because NamedNodeMap items can have custom properties themselves.
+                    // Maybe it would be OK to just keep the wrapper alive, as it is done for CSSOM objects below.
                     if (wrapper->hasCustomProperties())
                         return true;
                 }
             }
             if (node->isStyledElement()) {
                 if (CSSMutableStyleDeclaration* style = static_cast<StyledElement*>(node)->inlineStyleDecl()) {
-                    if (DOMObject* wrapper = world->m_wrappers.uncheckedGet(style)) {
-                        if (wrapper->hasCustomProperties())
-                            return true;
-                    }
+                    if (world->m_wrappers.uncheckedGet(style))
+                        return true;
                 }
             }
             if (static_cast<Element*>(node)->hasTagName(canvasTag)) {
@@ -275,6 +281,21 @@ static inline bool isObservableThroughDOM(JSNode* jsNode, DOMWrapperWorld* world
                             return true;
                     }
                 }
+            } else if (static_cast<Element*>(node)->hasTagName(linkTag)) {
+                if (StyleSheet* sheet = static_cast<HTMLLinkElement*>(node)->sheet()) {
+                    if (world->m_wrappers.uncheckedGet(sheet))
+                        return true;
+                }
+            } else if (static_cast<Element*>(node)->hasTagName(styleTag)) {
+                if (StyleSheet* sheet = static_cast<HTMLStyleElement*>(node)->sheet()) {
+                    if (world->m_wrappers.uncheckedGet(sheet))
+                        return true;
+                }
+            }
+        } else if (node->nodeType() == Node::PROCESSING_INSTRUCTION_NODE) {
+            if (StyleSheet* sheet = static_cast<ProcessingInstruction*>(node)->sheet()) {
+                if (world->m_wrappers.uncheckedGet(sheet))
+                    return true;
             }
         }
     } else {
diff --git a/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp b/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp
new file mode 100644
index 0000000..8cc8d5f
--- /dev/null
+++ b/WebCore/bindings/js/JSHTMLLinkElementCustom.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 "JSHTMLLinkElement.h"
+
+#include "HTMLLinkElement.h"
+
+using namespace JSC;
+
+namespace WebCore {
+
+void JSHTMLLinkElement::markChildren(MarkStack& markStack)
+{
+    Base::markChildren(markStack);
+
+    if (StyleSheet* sheet = static_cast<HTMLLinkElement*>(impl())->sheet())
+        markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
+}
+
+}
diff --git a/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp b/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp
new file mode 100644
index 0000000..9b0d1a7
--- /dev/null
+++ b/WebCore/bindings/js/JSHTMLStyleElementCustom.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 "JSHTMLStyleElement.h"
+
+#include "HTMLStyleElement.h"
+
+using namespace JSC;
+
+namespace WebCore {
+
+void JSHTMLStyleElement::markChildren(MarkStack& markStack)
+{
+    Base::markChildren(markStack);
+
+    if (StyleSheet* sheet = static_cast<HTMLStyleElement*>(impl())->sheet())
+        markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
+}
+
+}
diff --git a/WebCore/bindings/js/JSProcessingInstructionCustom.cpp b/WebCore/bindings/js/JSProcessingInstructionCustom.cpp
new file mode 100644
index 0000000..868e319
--- /dev/null
+++ b/WebCore/bindings/js/JSProcessingInstructionCustom.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 "JSProcessingInstruction.h"
+
+#include "ProcessingInstruction.h"
+
+using namespace JSC;
+
+namespace WebCore {
+
+void JSProcessingInstruction::markChildren(MarkStack& markStack)
+{
+    Base::markChildren(markStack);
+
+    if (StyleSheet* sheet = static_cast<ProcessingInstruction*>(impl())->sheet())
+        markDOMObjectWrapper(markStack, *Heap::heap(this)->globalData(), sheet);
+}
+
+}
diff --git a/WebCore/dom/ProcessingInstruction.idl b/WebCore/dom/ProcessingInstruction.idl
index efcc9c1..8c722d3 100644
--- a/WebCore/dom/ProcessingInstruction.idl
+++ b/WebCore/dom/ProcessingInstruction.idl
@@ -20,7 +20,7 @@
 
 module core {
 
-    interface ProcessingInstruction : Node {
+    interface [CustomMarkFunction] ProcessingInstruction : Node {
 
         // DOM Level 1
 
diff --git a/WebCore/html/HTMLLinkElement.idl b/WebCore/html/HTMLLinkElement.idl
index 734e8cc..9419e15 100644
--- a/WebCore/html/HTMLLinkElement.idl
+++ b/WebCore/html/HTMLLinkElement.idl
@@ -20,7 +20,7 @@
 
 module html {
 
-    interface HTMLLinkElement : HTMLElement {
+    interface [CustomMarkFunction] HTMLLinkElement : HTMLElement {
         attribute [Reflect] boolean disabled;
         attribute [Reflect] DOMString charset;
         attribute [Reflect, URL] DOMString href;
diff --git a/WebCore/html/HTMLStyleElement.idl b/WebCore/html/HTMLStyleElement.idl
index 29a8924..d78e9d3 100644
--- a/WebCore/html/HTMLStyleElement.idl
+++ b/WebCore/html/HTMLStyleElement.idl
@@ -20,7 +20,7 @@
 
 module html {
 
-    interface HTMLStyleElement : HTMLElement {
+    interface [CustomMarkFunction] HTMLStyleElement : HTMLElement {
         attribute [Reflect] boolean disabled;
         attribute [Reflect] DOMString media;
         attribute [Reflect] DOMString type;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list