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

Side by Side Diff: Source/modules/accessibility/AXScrollView.h

Issue 1072273006: Oilpan: Prepare moving AXObject to heap (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 19 matching lines...) Expand all
30 30
31 namespace blink { 31 namespace blink {
32 32
33 class AXObjectCacheImpl; 33 class AXObjectCacheImpl;
34 class AXScrollbar; 34 class AXScrollbar;
35 class Scrollbar; 35 class Scrollbar;
36 class FrameView; 36 class FrameView;
37 37
38 class AXScrollView final : public AXObject { 38 class AXScrollView final : public AXObject {
39 public: 39 public:
40 static PassRefPtr<AXScrollView> create(FrameView*, AXObjectCacheImpl*); 40 static PassRefPtrWillBeRawPtr<AXScrollView> create(FrameView*, AXObjectCache Impl*);
41 virtual AccessibilityRole roleValue() const override { return ScrollAreaRole ; } 41 virtual AccessibilityRole roleValue() const override { return ScrollAreaRole ; }
42 FrameView* scrollView() const { return m_scrollView; } 42 FrameView* scrollView() const { return m_scrollView; }
43 43
44 virtual ~AXScrollView(); 44 virtual ~AXScrollView();
45 DECLARE_VIRTUAL_TRACE();
45 virtual void detach() override; 46 virtual void detach() override;
46 47
47 protected: 48 protected:
48 virtual ScrollableArea* getScrollableAreaIfScrollable() const override; 49 virtual ScrollableArea* getScrollableAreaIfScrollable() const override;
49 virtual void scrollTo(const IntPoint&) const override; 50 virtual void scrollTo(const IntPoint&) const override;
50 51
51 private: 52 private:
52 AXScrollView(FrameView*, AXObjectCacheImpl*); 53 AXScrollView(FrameView*, AXObjectCacheImpl*);
53 54
54 virtual bool computeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const override; 55 virtual bool computeAccessibilityIsIgnored(IgnoredReasons* = nullptr) const override;
(...skipping 24 matching lines...) Expand all
79 // FIXME: Oilpan: Frame/ScrollView is on the heap and its 80 // FIXME: Oilpan: Frame/ScrollView is on the heap and its
80 // AXScrollView is detached&removed from the AX cache when the 81 // AXScrollView is detached&removed from the AX cache when the
81 // FrameView is disposed. Which clears m_scrollView, hence this 82 // FrameView is disposed. Which clears m_scrollView, hence this
82 // bare pointer will not be stale, so the bare pointer use is safe 83 // bare pointer will not be stale, so the bare pointer use is safe
83 // & acceptable. 84 // & acceptable.
84 // 85 //
85 // However, it would be preferable to have it be normally traced 86 // However, it would be preferable to have it be normally traced
86 // as part of moving the AX objects to the heap. Temporarily using 87 // as part of moving the AX objects to the heap. Temporarily using
87 // a Persistent risks creating a FrameView leak, and brings no 88 // a Persistent risks creating a FrameView leak, and brings no
88 // real benefits overall. 89 // real benefits overall.
89 FrameView* m_scrollView; 90 RawPtrWillBeWeakMember<FrameView> m_scrollView;
90 RefPtr<AXObject> m_horizontalScrollbar; 91 RefPtrWillBeMember<AXObject> m_horizontalScrollbar;
91 RefPtr<AXObject> m_verticalScrollbar; 92 RefPtrWillBeMember<AXObject> m_verticalScrollbar;
92 bool m_childrenDirty; 93 bool m_childrenDirty;
93 }; 94 };
94 95
95 DEFINE_AX_OBJECT_TYPE_CASTS(AXScrollView, isAXScrollView()); 96 DEFINE_AX_OBJECT_TYPE_CASTS(AXScrollView, isAXScrollView());
96 97
97 } // namespace blink 98 } // namespace blink
98 99
99 #endif // AXScrollView_h 100 #endif // AXScrollView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698