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

Unified Diff: Source/core/editing/FrameSelection.h

Issue 299353004: Oilpan: move editing objects to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Make test wrapper class finalized Created 6 years, 7 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
« no previous file with comments | « Source/core/editing/FormatBlockCommand.cpp ('k') | Source/core/editing/FrameSelection.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/FrameSelection.h
diff --git a/Source/core/editing/FrameSelection.h b/Source/core/editing/FrameSelection.h
index d4eefe515b79b5a6c179afcb842c55044e4abcde..9b1aeb59acc79d216bc2c6401ed88d6d90f8df57 100644
--- a/Source/core/editing/FrameSelection.h
+++ b/Source/core/editing/FrameSelection.h
@@ -34,6 +34,7 @@
#include "platform/Timer.h"
#include "platform/geometry/IntRect.h"
#include "platform/geometry/LayoutRect.h"
+#include "platform/heap/Handle.h"
#include "wtf/Noncopyable.h"
namespace WebCore {
@@ -56,10 +57,17 @@ enum RevealExtentOption {
DoNotRevealExtent
};
-class FrameSelection FINAL : public VisibleSelection::ChangeObserver, private CaretBase {
+class FrameSelection FINAL : public NoBaseWillBeGarbageCollectedFinalized<FrameSelection>, public VisibleSelection::ChangeObserver, private CaretBase {
WTF_MAKE_NONCOPYABLE(FrameSelection);
- WTF_MAKE_FAST_ALLOCATED;
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
+ WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FrameSelection);
public:
+ static PassOwnPtrWillBeRawPtr<FrameSelection> create(LocalFrame* frame = 0)
+ {
+ return adoptPtrWillBeNoop(new FrameSelection(frame));
+ }
+ virtual ~FrameSelection();
+
enum EAlteration { AlterationMove, AlterationExtend };
enum CursorAlignOnScroll { AlignCursorOnScrollIfNeeded,
AlignCursorOnScrollAlways };
@@ -77,9 +85,6 @@ public:
return static_cast<EUserTriggered>(options & UserTriggered);
}
- explicit FrameSelection(LocalFrame* = 0);
- virtual ~FrameSelection();
-
Element* rootEditableElement() const { return m_selection.rootEditableElement(); }
Element* rootEditableElementOrDocumentElement() const;
Node* rootEditableElementOrTreeScopeRootNode() const;
@@ -187,7 +192,7 @@ public:
void notifyRendererOfSelectionChange(EUserTriggered);
EditingStyle* typingStyle() const;
- void setTypingStyle(PassRefPtr<EditingStyle>);
+ void setTypingStyle(PassRefPtrWillBeRawPtr<EditingStyle>);
void clearTypingStyle();
String selectedText() const;
@@ -205,7 +210,11 @@ public:
// VisibleSelection::ChangeObserver interface.
virtual void didChangeVisibleSelection() OVERRIDE;
+ virtual void trace(Visitor*) OVERRIDE;
+
private:
+ explicit FrameSelection(LocalFrame*);
+
enum EPositionType { START, END, BASE, EXTENT };
void respondToNodeModification(Node&, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved);
@@ -258,11 +267,11 @@ private:
// The range specified by the user, which may not be visually canonicalized (hence "logical").
// This will be invalidated if the underlying VisibleSelection changes. If that happens, this variable will
// become null, in which case logical positions == visible positions.
- RefPtrWillBePersistent<Range> m_logicalRange;
+ RefPtrWillBeMember<Range> m_logicalRange;
- RefPtr<Node> m_previousCaretNode; // The last node which painted the caret. Retained for clearing the old caret when it moves.
+ RefPtrWillBeMember<Node> m_previousCaretNode; // The last node which painted the caret. Retained for clearing the old caret when it moves.
- RefPtr<EditingStyle> m_typingStyle;
+ RefPtrWillBeMember<EditingStyle> m_typingStyle;
Timer<FrameSelection> m_caretBlinkTimer;
// The painted bounds of the caret in absolute coordinates
@@ -284,7 +293,7 @@ inline void FrameSelection::clearTypingStyle()
m_typingStyle.clear();
}
-inline void FrameSelection::setTypingStyle(PassRefPtr<EditingStyle> style)
+inline void FrameSelection::setTypingStyle(PassRefPtrWillBeRawPtr<EditingStyle> style)
{
m_typingStyle = style;
}
« no previous file with comments | « Source/core/editing/FormatBlockCommand.cpp ('k') | Source/core/editing/FrameSelection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698