Title: [154099] trunk
- Revision
- 154099
- Author
- [email protected]
- Date
- 2013-08-15 08:02:11 -0700 (Thu, 15 Aug 2013)
Log Message
ASSERTION FAILED: !m_adoptionIsRequired in void WebCore::TreeShared<NodeType>::ref()
https://bugs.webkit.org/show_bug.cgi?id=116979
Reviewed by Antti Koivisto.
Source/WebCore:
Make sure adoptRef is called before calling setPseudo, for all progress shadow elements.
* html/shadow/ProgressShadowElement.cpp:
(WebCore::ProgressInnerElement::ProgressInnerElement):
(WebCore::ProgressBarElement::ProgressBarElement):
(WebCore::ProgressValueElement::ProgressValueElement):
* html/shadow/ProgressShadowElement.h:
(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):
LayoutTests:
Add testcase from bug with small adjustments.
* svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt: Added.
* svg/custom/tref-with-progress-tag-setpseudo-assert.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (154098 => 154099)
--- trunk/LayoutTests/ChangeLog 2013-08-15 13:15:36 UTC (rev 154098)
+++ trunk/LayoutTests/ChangeLog 2013-08-15 15:02:11 UTC (rev 154099)
@@ -1,3 +1,15 @@
+2013-08-15 Rob Buis <[email protected]>
+
+ ASSERTION FAILED: !m_adoptionIsRequired in void WebCore::TreeShared<NodeType>::ref()
+ https://bugs.webkit.org/show_bug.cgi?id=116979
+
+ Reviewed by Antti Koivisto.
+
+ Add testcase from bug with small adjustments.
+
+ * svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt: Added.
+ * svg/custom/tref-with-progress-tag-setpseudo-assert.html: Added.
+
2013-08-15 Simon Pena <[email protected]>
[GTK] Unreviewed gardening. Skip failing test.
Added: trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt (0 => 154099)
--- trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt (rev 0)
+++ trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert-expected.txt 2013-08-15 15:02:11 UTC (rev 154099)
@@ -0,0 +1 @@
+PASS
Added: trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert.html (0 => 154099)
--- trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert.html (rev 0)
+++ trunk/LayoutTests/svg/custom/tref-with-progress-tag-setpseudo-assert.html 2013-08-15 15:02:11 UTC (rev 154099)
@@ -0,0 +1,11 @@
+<html>
+ <script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+ </script>
+ <a id="B">PASS</a>
+ <svg xmlns="http://www.w3.org/1999/xhtml">
+ <tref xlink:href=""
+ </svg>
+ <progress></progress>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (154098 => 154099)
--- trunk/Source/WebCore/ChangeLog 2013-08-15 13:15:36 UTC (rev 154098)
+++ trunk/Source/WebCore/ChangeLog 2013-08-15 15:02:11 UTC (rev 154099)
@@ -1,3 +1,21 @@
+2013-08-15 Rob Buis <[email protected]>
+
+ ASSERTION FAILED: !m_adoptionIsRequired in void WebCore::TreeShared<NodeType>::ref()
+ https://bugs.webkit.org/show_bug.cgi?id=116979
+
+ Reviewed by Antti Koivisto.
+
+ Make sure adoptRef is called before calling setPseudo, for all progress shadow elements.
+
+ * html/shadow/ProgressShadowElement.cpp:
+ (WebCore::ProgressInnerElement::ProgressInnerElement):
+ (WebCore::ProgressBarElement::ProgressBarElement):
+ (WebCore::ProgressValueElement::ProgressValueElement):
+ * html/shadow/ProgressShadowElement.h:
+ (WebCore::ProgressInnerElement::create):
+ (WebCore::ProgressBarElement::create):
+ (WebCore::ProgressValueElement::create):
+
2013-08-14 Ryuan Choi <[email protected]>
<https://webkit.org/b/119786> [EFL] decoration of search type is different from other platforms
Modified: trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp (154098 => 154099)
--- trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp 2013-08-15 13:15:36 UTC (rev 154098)
+++ trunk/Source/WebCore/html/shadow/ProgressShadowElement.cpp 2013-08-15 15:02:11 UTC (rev 154099)
@@ -59,15 +59,8 @@
ProgressInnerElement::ProgressInnerElement(Document* document)
: ProgressShadowElement(document)
{
- DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-progress-inner-element", AtomicString::ConstructFromLiteral));
- setPseudo(pseudoId);
}
-PassRefPtr<ProgressInnerElement> ProgressInnerElement::create(Document* document)
-{
- return adoptRef(new ProgressInnerElement(document));
-}
-
RenderObject* ProgressInnerElement::createRenderer(RenderArena* arena, RenderStyle*)
{
return new (arena) RenderProgress(this);
@@ -82,6 +75,16 @@
return progressRenderer && !progressRenderer->style()->hasAppearance() && HTMLDivElement::rendererIsNeeded(context);
}
+ProgressBarElement::ProgressBarElement(Document* document)
+ : ProgressShadowElement(document)
+{
+}
+
+ProgressValueElement::ProgressValueElement(Document* document)
+ : ProgressShadowElement(document)
+{
+}
+
void ProgressValueElement::setWidthPercentage(double width)
{
setInlineStyleProperty(CSSPropertyWidth, width, CSSPrimitiveValue::CSS_PERCENTAGE);
Modified: trunk/Source/WebCore/html/shadow/ProgressShadowElement.h (154098 => 154099)
--- trunk/Source/WebCore/html/shadow/ProgressShadowElement.h 2013-08-15 13:15:36 UTC (rev 154098)
+++ trunk/Source/WebCore/html/shadow/ProgressShadowElement.h 2013-08-15 15:02:11 UTC (rev 154099)
@@ -59,31 +59,30 @@
virtual bool rendererIsNeeded(const NodeRenderingContext&);
};
+inline PassRefPtr<ProgressInnerElement> ProgressInnerElement::create(Document* document)
+{
+ RefPtr<ProgressInnerElement> result = adoptRef(new ProgressInnerElement(document));
+ result->setPseudo(AtomicString("-webkit-progress-inner-element", AtomicString::ConstructFromLiteral));
+ return result;
+}
+
class ProgressBarElement FINAL : public ProgressShadowElement {
public:
- ProgressBarElement(Document* document)
- : ProgressShadowElement(document)
- {
- DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-progress-bar", AtomicString::ConstructFromLiteral));
- setPseudo(pseudoId);
- }
+ ProgressBarElement(Document*);
static PassRefPtr<ProgressBarElement> create(Document*);
};
inline PassRefPtr<ProgressBarElement> ProgressBarElement::create(Document* document)
{
- return adoptRef(new ProgressBarElement(document));
+ RefPtr<ProgressBarElement> result = adoptRef(new ProgressBarElement(document));
+ result->setPseudo(AtomicString("-webkit-progress-bar", AtomicString::ConstructFromLiteral));
+ return result;
}
class ProgressValueElement FINAL : public ProgressShadowElement {
public:
- ProgressValueElement(Document* document)
- : ProgressShadowElement(document)
- {
- DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-progress-value", AtomicString::ConstructFromLiteral));
- setPseudo(pseudoId);
- }
+ ProgressValueElement(Document*);
static PassRefPtr<ProgressValueElement> create(Document*);
void setWidthPercentage(double);
@@ -91,7 +90,9 @@
inline PassRefPtr<ProgressValueElement> ProgressValueElement::create(Document* document)
{
- return adoptRef(new ProgressValueElement(document));
+ RefPtr<ProgressValueElement> result = adoptRef(new ProgressValueElement(document));
+ result->setPseudo(AtomicString("-webkit-progress-value", AtomicString::ConstructFromLiteral));
+ return result;
}
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes