Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Unified Diff: third_party/WebKit/Source/core/dom/DOMTokenList.h

Issue 1629403003: Merge DOMSettableTokensList into DOMTokensList (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed non-oilpan inheritance Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/DOMTokenList.h
diff --git a/third_party/WebKit/Source/core/dom/DOMTokenList.h b/third_party/WebKit/Source/core/dom/DOMTokenList.h
index 80bcfbf155293a682140bfaff2db2fb88dd90e8c..f0d36611b555dce17dedd76493f32a47a770ec55 100644
--- a/third_party/WebKit/Source/core/dom/DOMTokenList.h
+++ b/third_party/WebKit/Source/core/dom/DOMTokenList.h
@@ -27,6 +27,7 @@
#include "bindings/core/v8/Iterable.h"
#include "bindings/core/v8/ScriptWrappable.h"
+#include "core/dom/SpaceSplitString.h"
#include "platform/heap/Handle.h"
#include "wtf/Vector.h"
#include "wtf/text/AtomicString.h"
@@ -36,21 +37,30 @@ namespace blink {
class Element;
class ExceptionState;
-class CORE_EXPORT DOMTokenList : public NoBaseWillBeGarbageCollectedFinalized<DOMTokenList>, public ScriptWrappable, public ValueIterable<String> {
+class CORE_EXPORT DOMTokenListObserver : public WillBeGarbageCollectedMixin {
+public:
+ // Called when the value property is set, even if the tokens in
+ // the set have not changed.
+ virtual void valueWasSet() = 0;
+
+ DEFINE_INLINE_VIRTUAL_TRACE() { }
+};
+
+class CORE_EXPORT DOMTokenList : public RefCountedWillBeGarbageCollectedFinalized<DOMTokenList>,
+ public ScriptWrappable, public ValueIterable<String> {
DEFINE_WRAPPERTYPEINFO();
USING_FAST_MALLOC_WILL_BE_REMOVED(DOMTokenList);
WTF_MAKE_NONCOPYABLE(DOMTokenList);
public:
- DOMTokenList() { }
- virtual ~DOMTokenList() { }
+ static PassRefPtrWillBeRawPtr<DOMTokenList> create(DOMTokenListObserver* observer = nullptr)
+ {
+ return adoptRefWillBeNoop(new DOMTokenList(observer));
+ }
-#if !ENABLE(OILPAN)
- virtual void ref() = 0;
- virtual void deref() = 0;
-#endif
+ virtual ~DOMTokenList() { }
- virtual unsigned length() const = 0;
- virtual const AtomicString item(unsigned index) const = 0;
+ virtual unsigned length() const { return m_tokens.size(); }
+ virtual const AtomicString item(unsigned index) const;
bool contains(const AtomicString&, ExceptionState&) const;
virtual void add(const Vector<String>&, ExceptionState&);
@@ -61,19 +71,28 @@ public:
bool toggle(const AtomicString&, bool force, ExceptionState&);
bool supports(const AtomicString&, ExceptionState&);
+ virtual const AtomicString& value() const { return m_value; }
+ virtual void setValue(const AtomicString&);
+
+ const SpaceSplitString& tokens() const { return m_tokens; }
+ void setObserver(DOMTokenListObserver* observer) { m_observer = observer; }
+
const AtomicString& toString() const { return value(); }
virtual Element* element() { return 0; }
- DEFINE_INLINE_VIRTUAL_TRACE() { }
+ DEFINE_INLINE_VIRTUAL_TRACE() {
+ visitor->trace(m_observer);
+ }
protected:
-
- virtual const AtomicString& value() const = 0;
- virtual void setValue(const AtomicString&) = 0;
+ DOMTokenList(DOMTokenListObserver* observer)
+ : m_observer(observer)
+ {
+ }
virtual void addInternal(const AtomicString&);
- virtual bool containsInternal(const AtomicString&) const = 0;
+ virtual bool containsInternal(const AtomicString&) const;
virtual void removeInternal(const AtomicString&);
bool validateToken(const String&, ExceptionState&) const;
@@ -86,6 +105,9 @@ protected:
private:
IterationSource* startIteration(ScriptState*, ExceptionState&) override;
+ SpaceSplitString m_tokens;
+ AtomicString m_value;
+ RawPtrWillBeWeakMember<DOMTokenListObserver> m_observer;
};
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/dom/DOMSettableTokenList.idl ('k') | third_party/WebKit/Source/core/dom/DOMTokenList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698