| Index: third_party/WebKit/Source/core/page/FocusController.cpp
|
| diff --git a/third_party/WebKit/Source/core/page/FocusController.cpp b/third_party/WebKit/Source/core/page/FocusController.cpp
|
| index c75f524ac1ac4de629c2045c739a8667a6e8457c..2f3a06a6c6b0db27ecaa8f19b11767a2b04ce932 100644
|
| --- a/third_party/WebKit/Source/core/page/FocusController.cpp
|
| +++ b/third_party/WebKit/Source/core/page/FocusController.cpp
|
| @@ -338,24 +338,31 @@ bool ScopedFocusNavigation::isSlotFallbackScopedForThisSlot(
|
|
|
| inline void dispatchBlurEvent(const Document& document,
|
| Element& focusedElement) {
|
| - focusedElement.dispatchBlurEvent(nullptr, WebFocusTypePage);
|
| + focusedElement.dispatchBlurEvent(nullptr, WebFocusTypePage,
|
| + InputDeviceCapabilities::Null);
|
| if (focusedElement == document.focusedElement()) {
|
| - focusedElement.dispatchFocusOutEvent(EventTypeNames::focusout, nullptr);
|
| - if (focusedElement == document.focusedElement())
|
| - focusedElement.dispatchFocusOutEvent(EventTypeNames::DOMFocusOut,
|
| - nullptr);
|
| + focusedElement.dispatchFocusOutEvent(EventTypeNames::focusout, nullptr,
|
| + InputDeviceCapabilities::Null);
|
| + if (focusedElement == document.focusedElement()) {
|
| + focusedElement.dispatchFocusOutEvent(EventTypeNames::DOMFocusOut, nullptr,
|
| + InputDeviceCapabilities::Null);
|
| + }
|
| }
|
| }
|
|
|
| inline void dispatchFocusEvent(const Document& document,
|
| Element& focusedElement) {
|
| - focusedElement.dispatchFocusEvent(0, WebFocusTypePage);
|
| + focusedElement.dispatchFocusEvent(0, WebFocusTypePage,
|
| + InputDeviceCapabilities::Null);
|
| if (focusedElement == document.focusedElement()) {
|
| focusedElement.dispatchFocusInEvent(EventTypeNames::focusin, nullptr,
|
| - WebFocusTypePage);
|
| - if (focusedElement == document.focusedElement())
|
| + WebFocusTypePage,
|
| + InputDeviceCapabilities::Null);
|
| + if (focusedElement == document.focusedElement()) {
|
| focusedElement.dispatchFocusInEvent(EventTypeNames::DOMFocusIn, nullptr,
|
| - WebFocusTypePage);
|
| + WebFocusTypePage,
|
| + InputDeviceCapabilities::Null);
|
| + }
|
| }
|
| }
|
|
|
| @@ -877,7 +884,8 @@ void FocusController::setFocused(bool focused) {
|
| }
|
|
|
| bool FocusController::setInitialFocus(WebFocusType type) {
|
| - bool didAdvanceFocus = advanceFocus(type, true);
|
| + bool didAdvanceFocus =
|
| + advanceFocus(type, true, InputDeviceCapabilities::Null);
|
|
|
| // If focus is being set initially, accessibility needs to be informed that
|
| // system focus has moved into the web area again, even if focus did not
|
| @@ -896,7 +904,7 @@ bool FocusController::setInitialFocus(WebFocusType type) {
|
| bool FocusController::advanceFocus(
|
| WebFocusType type,
|
| bool initialFocus,
|
| - InputDeviceCapabilities* sourceCapabilities) {
|
| + const InputDeviceCapabilitiesValue& sourceCapabilities) {
|
| switch (type) {
|
| case WebFocusTypeForward:
|
| case WebFocusTypeBackward: {
|
| @@ -923,7 +931,7 @@ bool FocusController::advanceFocusAcrossFrames(
|
| WebFocusType type,
|
| RemoteFrame* from,
|
| LocalFrame* to,
|
| - InputDeviceCapabilities* sourceCapabilities) {
|
| + const InputDeviceCapabilitiesValue& sourceCapabilities) {
|
| // If we are shifting focus from a child frame to its parent, the
|
| // child frame has no more focusable elements, and we should continue
|
| // looking for focusable elements in the parent, starting from the <iframe>
|
| @@ -949,7 +957,7 @@ bool FocusController::advanceFocusInDocumentOrder(
|
| Element* start,
|
| WebFocusType type,
|
| bool initialFocus,
|
| - InputDeviceCapabilities* sourceCapabilities) {
|
| + const InputDeviceCapabilitiesValue& sourceCapabilities) {
|
| DCHECK(frame);
|
| Document* document = frame->document();
|
| document->updateDistribution();
|
| @@ -1098,7 +1106,8 @@ bool FocusController::setFocusedElement(Element* element,
|
| Frame* newFocusedFrame) {
|
| return setFocusedElement(
|
| element, newFocusedFrame,
|
| - FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone, nullptr));
|
| + FocusParams(SelectionBehaviorOnFocus::None, WebFocusTypeNone,
|
| + InputDeviceCapabilities::Null));
|
| }
|
|
|
| bool FocusController::setFocusedElement(Element* element,
|
| @@ -1350,7 +1359,8 @@ bool FocusController::advanceFocusDirectionallyInContainer(
|
| Element* element = toElement(focusCandidate.focusableNode);
|
| DCHECK(element);
|
|
|
| - element->focus(FocusParams(SelectionBehaviorOnFocus::Reset, type, nullptr));
|
| + element->focus(FocusParams(SelectionBehaviorOnFocus::Reset, type,
|
| + InputDeviceCapabilities::Null));
|
| return true;
|
| }
|
|
|
|
|