diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 11:40:17 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 12:42:11 +0000 |
commit | 5d87695f37678f96492b258bbab36486c59866b4 (patch) | |
tree | be9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h | |
parent | 6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff) | |
download | qtwebengine-chromium-5d87695f37678f96492b258bbab36486c59866b4.tar.gz |
BASELINE: Update Chromium to 75.0.3770.56
Change-Id: I86d2007fd27a45d5797eee06f4c9369b8b50ac4f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h b/chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h index 0034de06718..05ee39d5615 100644 --- a/chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h +++ b/chromium/third_party/blink/renderer/core/page/spatial_navigation_controller.h @@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_SPATIAL_NAVIGATION_CONTROLLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_SPATIAL_NAVIGATION_CONTROLLER_H_ +#include "third_party/blink/public/mojom/page/spatial_navigation.mojom-blink.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/page/spatial_navigation.h" #include "third_party/blink/renderer/platform/heap/handle.h" @@ -22,10 +23,9 @@ class Page; // way, e.g. keyboard arrows. We use the term "interest" to specify which // element the user is currently on. class CORE_EXPORT SpatialNavigationController - : public GarbageCollected<SpatialNavigationController> { + : public GarbageCollectedFinalized<SpatialNavigationController> { public: - static SpatialNavigationController* Create(Page& page); - SpatialNavigationController(Page& page); + explicit SpatialNavigationController(Page& page); bool HandleArrowKeyboardEvent(KeyboardEvent* event); bool HandleEnterKeyboardEvent(KeyboardEvent* event); @@ -37,6 +37,11 @@ class CORE_EXPORT SpatialNavigationController void DidDetachFrameView(); + void OnSpatialNavigationSettingChanged(); + void FocusedNodeChanged(Document*); + + void ResetMojoBindings(); + void Trace(blink::Visitor*); private: @@ -76,13 +81,33 @@ class CORE_EXPORT SpatialNavigationController Node* StartingNode(); void MoveInterestTo(Node* next_node); + // Dispatches a fake mouse move event at the center of the given element to + // produce hover state and mouse enter/exit events. If no element is given, + // we dispatch a mouse event outside of the page to simulate the pointer + // leaving the page (and clearing hover, producing mouse leave). + void DispatchMouseMoveAt(Element* element); + // Returns true if the element should be considered for navigation. - bool IsValidCandidate(const Element& element) const; + bool IsValidCandidate(const Element* element) const; + + Element* GetFocusedElement() const; + + void UpdateSpatialNavigationState(Element* element); + void OnSpatialNavigationStateChanged(); + bool UpdateCanExitFocus(Element* element); + bool UpdateCanSelectInterestedElement(Element* element); + bool UpdateHasNextFormElement(Element* element); + bool UpdateHasDefaultVideoControls(Element* element); + + const mojom::blink::SpatialNavigationHostPtr& GetSpatialNavigationHost(); // The currently indicated element or nullptr if no node is indicated by // spatial navigation. WeakMember<Element> interest_element_; Member<Page> page_; + + mojom::blink::SpatialNavigationStatePtr spatial_navigation_state_; + mojom::blink::SpatialNavigationHostPtr spatial_navigation_host_; }; } // namespace blink |