summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/shadow/DetailsMarkerControl.cpp')
-rw-r--r--Source/WebCore/html/shadow/DetailsMarkerControl.cpp29
1 files changed, 10 insertions, 19 deletions
diff --git a/Source/WebCore/html/shadow/DetailsMarkerControl.cpp b/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
index a48e29f49..6cdf65f1b 100644
--- a/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
+++ b/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2014 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
@@ -29,7 +30,6 @@
*/
#include "config.h"
-#if ENABLE(DETAILS_ELEMENT)
#include "DetailsMarkerControl.h"
#include "HTMLNames.h"
@@ -38,34 +38,25 @@
namespace WebCore {
-using namespace HTMLNames;
-
-DetailsMarkerControl::DetailsMarkerControl(Document& document)
- : HTMLDivElement(divTag, document)
-{
-}
-
-RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(PassRef<RenderStyle> style)
+Ref<DetailsMarkerControl> DetailsMarkerControl::create(Document& document)
{
- return createRenderer<RenderDetailsMarker>(*this, std::move(style));
+ return adoptRef(*new DetailsMarkerControl(document));
}
-bool DetailsMarkerControl::rendererIsNeeded(const RenderStyle& style)
+DetailsMarkerControl::DetailsMarkerControl(Document& document)
+ : HTMLDivElement(HTMLNames::divTag, document)
{
- return summaryElement()->isMainSummary() && HTMLDivElement::rendererIsNeeded(style);
+ setPseudo(AtomicString("-webkit-details-marker", AtomicString::ConstructFromLiteral));
}
-const AtomicString& DetailsMarkerControl::shadowPseudoId() const
+RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- DEFINE_STATIC_LOCAL(AtomicString, pseudId, ("-webkit-details-marker", AtomicString::ConstructFromLiteral));
- return pseudId;
+ return createRenderer<RenderDetailsMarker>(*this, WTFMove(style));
}
-HTMLSummaryElement* DetailsMarkerControl::summaryElement()
+bool DetailsMarkerControl::rendererIsNeeded(const RenderStyle& style)
{
- return toHTMLSummaryElement(shadowHost());
+ return downcast<HTMLSummaryElement>(shadowHost())->isActiveSummary() && HTMLDivElement::rendererIsNeeded(style);
}
}
-
-#endif