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

Side by Side Diff: ui/accessibility/platform/ax_platform_node.h

Issue 1762143002: Use unique IDs for accessibility nodes on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix null obj deref in DCHECK Created 4 years, 9 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_ 5 #ifndef UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_
6 #define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_ 6 #define UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "ui/accessibility/ax_enums.h" 9 #include "ui/accessibility/ax_enums.h"
10 #include "ui/accessibility/ax_export.h" 10 #include "ui/accessibility/ax_export.h"
(...skipping 28 matching lines...) Expand all
39 public: 39 public:
40 // Create an appropriate platform-specific instance. The delegate owns the 40 // Create an appropriate platform-specific instance. The delegate owns the
41 // AXPlatformNode instance (or manages its lifecycle in some other way). 41 // AXPlatformNode instance (or manages its lifecycle in some other way).
42 static AXPlatformNode* Create(AXPlatformNodeDelegate* delegate); 42 static AXPlatformNode* Create(AXPlatformNodeDelegate* delegate);
43 43
44 // Cast a gfx::NativeViewAccessible to an AXPlatformNode if it is one, 44 // Cast a gfx::NativeViewAccessible to an AXPlatformNode if it is one,
45 // or return NULL if it's not an instance of this class. 45 // or return NULL if it's not an instance of this class.
46 static AXPlatformNode* FromNativeViewAccessible( 46 static AXPlatformNode* FromNativeViewAccessible(
47 gfx::NativeViewAccessible accessible); 47 gfx::NativeViewAccessible accessible);
48 48
49 // Each platform accessibility object has a unique id that's guaranteed
50 // to be a positive number. (It's stored in an int32_t as opposed to
51 // uint32_t because some platforms want to negate it, so we want to ensure
52 // the range is below the signed int max.) This can be used when the
53 // id has to be unique across multiple frames, since node ids are
54 // only unique within one tree.
55 static int32_t GetNextUniqueId();
56
49 // Call Destroy rather than deleting this, because the subclass may 57 // Call Destroy rather than deleting this, because the subclass may
50 // use reference counting. 58 // use reference counting.
51 virtual void Destroy() = 0; 59 virtual void Destroy();
52 60
53 // Get the platform-specific accessible object type for this instance. 61 // Get the platform-specific accessible object type for this instance.
54 // On some platforms this is just a type cast, on others it may be a 62 // On some platforms this is just a type cast, on others it may be a
55 // wrapper object or handle. 63 // wrapper object or handle.
56 virtual gfx::NativeViewAccessible GetNativeViewAccessible() = 0; 64 virtual gfx::NativeViewAccessible GetNativeViewAccessible() = 0;
57 65
58 // Fire a platform-specific notification that an event has occurred on 66 // Fire a platform-specific notification that an event has occurred on
59 // this object. 67 // this object.
60 virtual void NotifyAccessibilityEvent(ui::AXEvent event_type) = 0; 68 virtual void NotifyAccessibilityEvent(ui::AXEvent event_type) = 0;
61 69
62 // Return this object's delegate. 70 // Return this object's delegate.
63 virtual AXPlatformNodeDelegate* GetDelegate() const = 0; 71 virtual AXPlatformNodeDelegate* GetDelegate() const = 0;
64 72
65 protected: 73 protected:
66 AXPlatformNode(); 74 AXPlatformNode();
67 virtual ~AXPlatformNode(); 75 virtual ~AXPlatformNode();
76
77 AXPlatformNode* GetFromUniqueId(int32_t unique_id);
78
79 int32_t unique_id_;
68 }; 80 };
69 81
70 } // namespace ui 82 } // namespace ui
71 83
72 #endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_ 84 #endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_H_
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.mm ('k') | ui/accessibility/platform/ax_platform_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698