Diff
Modified: trunk/Source/WebCore/ChangeLog (139638 => 139639)
--- trunk/Source/WebCore/ChangeLog 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/ChangeLog 2013-01-14 20:17:58 UTC (rev 139639)
@@ -1,3 +1,36 @@
+2013-01-14 Elliott Sprehn <[email protected]>
+
+ Clean up WebVTTNodeType code
+ https://bugs.webkit.org/show_bug.cgi?id=106714
+
+ Reviewed by Tony Chang.
+
+ There's no reason for so many methods just to compare some enums.
+ The existing code can also be simplified quite a bit.
+
+ No new tests, just refactoring.
+
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkOne):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRules):
+ (WebCore::StyleResolver::canShareStyleWithElement):
+ * dom/Element.cpp:
+ (WebCore::Element::webVTTNodeType):
+ (WebCore::Element::setWebVTTNodeType):
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::setWebVTTNodeType):
+ (WebCore::ElementRareData::webVTTNodeType):
+ (ElementRareData):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ (NodeRareData):
+ * html/track/TextTrack.h:
+ * html/track/TextTrackCue.cpp:
+ (WebCore::TextTrackCue::markFutureAndPastNodes):
+
2013-01-14 Antti Koivisto <[email protected]>
REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (139638 => 139639)
--- trunk/Source/WebCore/css/SelectorChecker.cpp 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp 2013-01-14 20:17:58 UTC (rev 139639)
@@ -941,9 +941,7 @@
return element->isOutOfRange();
#if ENABLE(VIDEO_TRACK)
case CSSSelector::PseudoFutureCue:
- if (element->isWebVTTFutureNode())
- return true;
- return false;
+ return element->webVTTNodeType() == WebVTTNodeTypeFuture;
#endif
case CSSSelector::PseudoHorizontal:
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (139638 => 139639)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2013-01-14 20:17:58 UTC (rev 139639)
@@ -654,7 +654,7 @@
}
#if ENABLE(VIDEO_TRACK)
- if (m_element->isWebVTTNode())
+ if (m_element->webVTTNodeType())
collectMatchingRulesForList(rules->cuePseudoRules(), firstRuleIndex, lastRuleIndex, options);
#endif
// Check whether other types of rules are applicable in the current tree scope. Criteria for this:
@@ -1241,11 +1241,8 @@
return false;
#if ENABLE(VIDEO_TRACK)
- if (element->isWebVTTNode() && m_element->isWebVTTNode() && element->isWebVTTFutureNode() != m_element->isWebVTTFutureNode())
+ if (element->webVTTNodeType() != m_element->webVTTNodeType())
return false;
- // Deny sharing styles between WebVTT nodes and non-WebVTT nodes.
- if (element->isWebVTTNode() != m_element->isWebVTTNode())
- return false;
#endif
return true;
Modified: trunk/Source/WebCore/dom/Element.cpp (139638 => 139639)
--- trunk/Source/WebCore/dom/Element.cpp 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/dom/Element.cpp 2013-01-14 20:17:58 UTC (rev 139639)
@@ -2308,25 +2308,15 @@
#endif
#if ENABLE(VIDEO_TRACK)
-bool Element::isWebVTTNode() const
+WebVTTNodeType Element::webVTTNodeType() const
{
- return hasRareData() && elementRareData()->isWebVTTNode();
+ return hasRareData() ? elementRareData()->webVTTNodeType() : WebVTTNodeTypeNone;
}
-void Element::setIsWebVTTNode()
+void Element::setWebVTTNodeType(WebVTTNodeType type)
{
- ensureElementRareData()->setIsWebVTTNode();
+ ensureElementRareData()->setWebVTTNodeType(type);
}
-
-bool Element::isWebVTTFutureNode() const
-{
- return hasRareData() && elementRareData()->isWebVTTFutureNode();
-}
-
-void Element::setIsWebVTTFutureNode()
-{
- ensureElementRareData()->setIsWebVTTFutureNode();
-}
#endif
#if ENABLE(FULLSCREEN_API)
Modified: trunk/Source/WebCore/dom/Element.h (139638 => 139639)
--- trunk/Source/WebCore/dom/Element.h 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/dom/Element.h 2013-01-14 20:17:58 UTC (rev 139639)
@@ -31,6 +31,9 @@
#include "FragmentScriptingPermission.h"
#include "HTMLNames.h"
#include "ScrollTypes.h"
+#if ENABLE(VIDEO_TRACK)
+#include "TextTrack.h"
+#endif
namespace WebCore {
@@ -447,12 +450,10 @@
#endif
#if ENABLE(VIDEO_TRACK)
- bool isWebVTTNode() const;
- void setIsWebVTTNode();
- bool isWebVTTFutureNode() const;
- void setIsWebVTTFutureNode();
+ WebVTTNodeType webVTTNodeType() const;
+ void setWebVTTNodeType(WebVTTNodeType);
#endif
-
+
#if ENABLE(FULLSCREEN_API)
enum {
ALLOW_KEYBOARD_INPUT = 1 << 0,
Modified: trunk/Source/WebCore/dom/ElementRareData.h (139638 => 139639)
--- trunk/Source/WebCore/dom/ElementRareData.h 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/dom/ElementRareData.h 2013-01-14 20:17:58 UTC (rev 139639)
@@ -55,11 +55,10 @@
void setIsInCanvasSubtree(bool value) { m_isInCanvasSubtree = value; }
#if ENABLE(VIDEO_TRACK)
- using NodeRareData::isWebVTTNode;
- using NodeRareData::setIsWebVTTNode;
- using NodeRareData::isWebVTTFutureNode;
- using NodeRareData::setIsWebVTTFutureNode;
+ void setWebVTTNodeType(WebVTTNodeType type) { m_webVTTNodeType = type; }
+ WebVTTNodeType webVTTNodeType() const { return static_cast<WebVTTNodeType>(m_webVTTNodeType); }
#endif
+
#if ENABLE(FULLSCREEN_API)
bool containsFullScreenElement() { return m_containsFullScreenElement; }
void setContainsFullScreenElement(bool value) { m_containsFullScreenElement = value; }
Modified: trunk/Source/WebCore/dom/NodeRareData.h (139638 => 139639)
--- trunk/Source/WebCore/dom/NodeRareData.h 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/dom/NodeRareData.h 2013-01-14 20:17:58 UTC (rev 139639)
@@ -272,7 +272,7 @@
, m_childrenAffectedByForwardPositionalRules(false)
, m_childrenAffectedByBackwardPositionalRules(false)
#if ENABLE(VIDEO_TRACK)
- , m_WebVTTNodeType(TextTrack::WebVTTNodeTypeNone)
+ , m_webVTTNodeType(WebVTTNodeTypeNone)
#endif
{
}
@@ -371,12 +371,6 @@
virtual void reportMemoryUsage(MemoryObjectInfo*) const;
protected:
-#if ENABLE(VIDEO_TRACK)
- bool isWebVTTNode() { return static_cast<TextTrack::WebVTTNodeType>(m_WebVTTNodeType) != TextTrack::WebVTTNodeTypeNone; }
- void setIsWebVTTNode() { m_WebVTTNodeType = TextTrack::WebVTTNodeTypePast; }
- bool isWebVTTFutureNode() { return static_cast<TextTrack::WebVTTNodeType>(m_WebVTTNodeType) == TextTrack::WebVTTNodeTypeFuture; }
- void setIsWebVTTFutureNode() { m_WebVTTNodeType = TextTrack::WebVTTNodeTypeFuture; }
-#endif
short m_tabIndex;
unsigned short m_childIndex;
unsigned m_tabIndexWasSetExplicitly : 1;
@@ -404,7 +398,7 @@
unsigned m_childrenAffectedByForwardPositionalRules : 1;
unsigned m_childrenAffectedByBackwardPositionalRules : 1;
#if ENABLE(VIDEO_TRACK)
- unsigned m_WebVTTNodeType : 2;
+ unsigned m_webVTTNodeType : 2; // WebVTTNodeType
#endif
private:
Modified: trunk/Source/WebCore/html/track/TextTrack.h (139638 => 139639)
--- trunk/Source/WebCore/html/track/TextTrack.h 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/html/track/TextTrack.h 2013-01-14 20:17:58 UTC (rev 139639)
@@ -53,6 +53,12 @@
virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) = 0;
};
+enum WebVTTNodeType {
+ WebVTTNodeTypeNone = 0,
+ WebVTTNodeTypeFuture,
+ WebVTTNodeTypePast
+};
+
class TextTrack : public TrackBase {
public:
static PassRefPtr<TextTrack> create(ScriptExecutionContext* context, TextTrackClient* client, const AtomicString& kind, const AtomicString& label, const AtomicString& language)
@@ -107,8 +113,6 @@
enum TextTrackType { TrackElement, AddTrack, InBand };
TextTrackType trackType() const { return m_trackType; }
-
- enum WebVTTNodeType {WebVTTNodeTypeNone, WebVTTNodeTypeFuture, WebVTTNodeTypePast};
int trackIndex();
void invalidateTrackIndex();
Modified: trunk/Source/WebCore/html/track/TextTrackCue.cpp (139638 => 139639)
--- trunk/Source/WebCore/html/track/TextTrackCue.cpp 2013-01-14 20:16:57 UTC (rev 139638)
+++ trunk/Source/WebCore/html/track/TextTrackCue.cpp 2013-01-14 20:17:58 UTC (rev 139639)
@@ -677,13 +677,9 @@
if (currentTimestamp > movieTime)
isPastNode = false;
}
-
- if (child->isElementNode()) {
- if (!isPastNode)
- toElement(child)->setIsWebVTTFutureNode();
- else
- toElement(child)->setIsWebVTTNode();
- }
+
+ if (child->isElementNode())
+ toElement(child)->setWebVTTNodeType(isPastNode ? WebVTTNodeTypePast : WebVTTNodeTypeFuture);
}
}