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

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

Issue 1061063004: Revert of Don't keep recreating AXMenuListPopup (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@suppress_extra_events
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) 2010 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2010 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef AXMenuListOption_h 26 #ifndef AXMenuListOption_h
27 #define AXMenuListOption_h 27 #define AXMenuListOption_h
28 28
29 #include "core/html/HTMLOptionElement.h"
30 #include "modules/accessibility/AXMockObject.h" 29 #include "modules/accessibility/AXMockObject.h"
31 30
32 namespace blink { 31 namespace blink {
33 32
34 class AXObjectCacheImpl; 33 class AXObjectCacheImpl;
34 class HTMLElement;
35 35
36 class AXMenuListOption final : public AXMockObject { 36 class AXMenuListOption final : public AXMockObject {
37 public: 37 public:
38 static PassRefPtr<AXMenuListOption> create(HTMLOptionElement* element, AXObj ectCacheImpl* axObjectCache) { return adoptRef(new AXMenuListOption(element, axO bjectCache)); } 38 static PassRefPtr<AXMenuListOption> create(AXObjectCacheImpl* axObjectCache) { return adoptRef(new AXMenuListOption(axObjectCache)); }
39
40 void setElement(HTMLElement*);
39 41
40 private: 42 private:
41 explicit AXMenuListOption(HTMLOptionElement*, AXObjectCacheImpl*); 43 explicit AXMenuListOption(AXObjectCacheImpl*);
42 44
43 virtual bool isMenuListOption() const override { return true; } 45 virtual bool isMenuListOption() const override { return true; }
44 46
45 virtual Node* node() const override { return m_element; }
46 virtual void detach() override;
47 virtual bool isDetached() const override { return !m_element; }
48 virtual AccessibilityRole roleValue() const override { return MenuListOption Role; } 47 virtual AccessibilityRole roleValue() const override { return MenuListOption Role; }
49 virtual bool canHaveChildren() const override { return false; } 48 virtual bool canHaveChildren() const override { return false; }
50 49
51 virtual Element* actionElement() const override; 50 virtual Element* actionElement() const override;
52 virtual bool isEnabled() const override; 51 virtual bool isEnabled() const override;
53 virtual bool isVisible() const override; 52 virtual bool isVisible() const override;
54 virtual bool isOffScreen() const override; 53 virtual bool isOffScreen() const override;
55 virtual bool isSelected() const override; 54 virtual bool isSelected() const override;
56 virtual void setSelected(bool) override; 55 virtual void setSelected(bool) override;
57 virtual bool canSetSelectedAttribute() const override; 56 virtual bool canSetSelectedAttribute() const override;
58 virtual LayoutRect elementRect() const override; 57 virtual LayoutRect elementRect() const override;
59 virtual String stringValue() const override; 58 virtual String stringValue() const override;
60 virtual bool computeAccessibilityIsIgnored() const override; 59 virtual bool computeAccessibilityIsIgnored() const override;
61 60
62 HTMLOptionElement* m_element; 61 RefPtrWillBePersistent<HTMLElement> m_element;
63 }; 62 };
64 63
65 DEFINE_AX_OBJECT_TYPE_CASTS(AXMenuListOption, isMenuListOption()); 64 DEFINE_AX_OBJECT_TYPE_CASTS(AXMenuListOption, isMenuListOption());
66 65
67 } // namespace blink 66 } // namespace blink
68 67
69 #endif // AXMenuListOption_h 68 #endif // AXMenuListOption_h
OLDNEW
« no previous file with comments | « Source/modules/accessibility/AXMenuList.cpp ('k') | Source/modules/accessibility/AXMenuListOption.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698