Diff
Modified: trunk/Source/WebKit/ChangeLog (281275 => 281276)
--- trunk/Source/WebKit/ChangeLog 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/ChangeLog 2021-08-19 22:48:25 UTC (rev 281276)
@@ -1,3 +1,53 @@
+2021-08-19 Simon Fraser <[email protected]>
+
+ Replace the uint64_t used to identify taps with an ObjectIdentifier<> type
+ https://bugs.webkit.org/show_bug.cgi?id=229278
+
+ Reviewed by Wenson Hsieh.
+
+ Interaction code used "uint64_t requestID" to identify taps, but there are other
+ things that used "uint64_t requestID", which may result in bugs.
+
+ Fix by using a strongly typed ObjectIdentifier<TapIdentifierType> to identify taps.
+ This is defined in IdentifierTypes.h since I expect to add more of them.
+
+ * Scripts/webkit/messages.py:
+ (types_that_cannot_be_forward_declared):
+ (headers_for_type):
+ * Shared/IdentifierTypes.h: Added.
+ * UIProcess/PageClient.h:
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/ios/PageClientImplIOS.h:
+ * UIProcess/ios/PageClientImplIOS.mm:
+ (WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary):
+ (WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
+ (WebKit::PageClientImpl::didGetTapHighlightGeometries):
+ * UIProcess/ios/WKContentViewInteraction.h:
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
+ (-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]):
+ (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):
+ (-[WKContentView nextTapIdentifier]):
+ (-[WKContentView _highlightLongPressRecognized:]):
+ (-[WKContentView _twoFingerSingleTapGestureRecognized:]):
+ (-[WKContentView _singleTapIdentified:]):
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
+ (WebKit::WebPageProxy::potentialTapAtPosition):
+ (WebKit::WebPageProxy::tapHighlightAtPosition):
+ (WebKit::WebPageProxy::didGetTapHighlightGeometries):
+ (WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary):
+ (WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
+ (WebKit::WebPage::handleTwoFingerTapAtPoint):
+ (WebKit::WebPage::potentialTapAtPosition):
+ (WebKit::WebPage::tapHighlightAtPosition):
+
2021-08-19 Alex Christensen <[email protected]>
Remove more non-inclusive language from Source
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (281275 => 281276)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2021-08-19 22:48:25 UTC (rev 281276)
@@ -342,6 +342,7 @@
'WebKit::StorageAreaIdentifier',
'WebKit::StorageAreaImplIdentifier',
'WebKit::StorageNamespaceIdentifier',
+ 'WebKit::TapIdentifier',
'WebKit::TrackPrivateRemoteIdentifier',
'WebKit::TransactionID',
'WebKit::UserContentControllerIdentifier',
@@ -778,6 +779,7 @@
'WebKit::RespectSelectionAnchor': ['"GestureTypes.h"'],
'WebKit::SelectionFlags': ['"GestureTypes.h"'],
'WebKit::SelectionTouch': ['"GestureTypes.h"'],
+ 'WebKit::TapIdentifier': ['"IdentifierTypes.h"'],
'WebCore::MediaEngineSupportParameters': ['<WebCore/MediaPlayer.h>'],
'WebCore::ISOWebVTTCue': ['<WebCore/ISOVTTCue.h>'],
'struct WebCore::Cookie': ['<WebCore/Cookie.h>'],
Added: trunk/Source/WebKit/Shared/IdentifierTypes.h (0 => 281276)
--- trunk/Source/WebKit/Shared/IdentifierTypes.h (rev 0)
+++ trunk/Source/WebKit/Shared/IdentifierTypes.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/ObjectIdentifier.h>
+
+namespace WebKit {
+
+enum TapIdentifierType { };
+using TapIdentifier = ObjectIdentifier<TapIdentifierType>;
+
+} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/PageClient.h (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/PageClient.h 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/PageClient.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -26,6 +26,7 @@
#pragma once
#include "DataReference.h"
+#include "IdentifierTypes.h"
#include "LayerTreeContext.h"
#include "PDFPluginIdentifier.h"
#include "PasteboardAccessIntent.h"
@@ -449,7 +450,7 @@
#if PLATFORM(IOS_FAMILY)
virtual void commitPotentialTapFailed() = 0;
- virtual void didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color&, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling) = 0;
+ virtual void didGetTapHighlightGeometries(WebKit::TapIdentifier requestID, const WebCore::Color&, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling) = 0;
virtual void didCommitLayerTree(const RemoteLayerTreeTransaction&) = 0;
virtual void layerTreeCommitComplete() = 0;
@@ -469,8 +470,8 @@
virtual void saveImageToLibrary(Ref<WebCore::SharedBuffer>&&) = 0;
virtual void showPlaybackTargetPicker(bool hasVideo, const WebCore::IntRect& elementRect, WebCore::RouteSharingPolicy, const String&) = 0;
virtual void showDataDetectorsUIForPositionInformation(const InteractionInformationAtPosition&) = 0;
- virtual void disableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID) = 0;
- virtual void handleSmartMagnificationInformationForPotentialTap(uint64_t requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel) = 0;
+ virtual void disableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier) = 0;
+ virtual void handleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel) = 0;
virtual double minimumZoomScale() const = 0;
virtual WebCore::FloatRect documentRect() const = 0;
virtual void scrollingNodeScrollViewWillStartPanGesture() = 0;
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -38,6 +38,7 @@
#include "GeolocationIdentifier.h"
#include "GeolocationPermissionRequestManagerProxy.h"
#include "HiddenPageThrottlingAutoIncreasesCounter.h"
+#include "IdentifierTypes.h"
#include "LayerTreeContext.h"
#include "MediaKeySystemPermissionRequestManagerProxy.h"
#include "MediaPlaybackState.h"
@@ -851,11 +852,11 @@
void didNotHandleTapAsClick(const WebCore::IntPoint&);
void didTapAtPoint(const WebCore::IntPoint&, TapHandlingResult);
void didCompleteSyntheticClick();
- void disableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID);
- void handleSmartMagnificationInformationForPotentialTap(uint64_t requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel);
+ void disableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier);
+ void handleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel);
void contentSizeCategoryDidChange(const String& contentSizeCategory);
void getSelectionContext(CompletionHandler<void(const String&, const String&, const String&)>&&);
- void handleTwoFingerTapAtPoint(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, uint64_t requestID);
+ void handleTwoFingerTapAtPoint(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, WebKit::TapIdentifier requestID);
void setForceAlwaysUserScalable(bool);
bool forceAlwaysUserScalable() const { return m_forceAlwaysUserScalable; }
double layoutSizeScaleFactor() const { return m_viewportConfigurationLayoutSizeScaleFactor; }
@@ -1413,10 +1414,10 @@
#if PLATFORM(IOS_FAMILY)
void willStartUserTriggeredZooming();
- void potentialTapAtPosition(const WebCore::FloatPoint&, bool shouldRequestMagnificationInformation, uint64_t& requestID);
+ void potentialTapAtPosition(const WebCore::FloatPoint&, bool shouldRequestMagnificationInformation, WebKit::TapIdentifier requestID);
void commitPotentialTap(OptionSet<WebKit::WebEvent::Modifier>, TransactionID layerTreeTransactionIdAtLastTouchStart, WebCore::PointerID);
void cancelPotentialTap();
- void tapHighlightAtPosition(const WebCore::FloatPoint&, uint64_t& requestID);
+ void tapHighlightAtPosition(const WebCore::FloatPoint&, WebKit::TapIdentifier requestID);
void attemptSyntheticClick(const WebCore::FloatPoint&, OptionSet<WebKit::WebEvent::Modifier>, TransactionID layerTreeTransactionIdAtLastTouchStart);
void didRecognizeLongPress();
void handleDoubleTapForDoubleClickAtPoint(const WebCore::IntPoint&, OptionSet<WebEvent::Modifier>, TransactionID layerTreeTransactionIdAtLastTouchStart);
@@ -2343,7 +2344,7 @@
void restorePageState(std::optional<WebCore::FloatPoint> scrollPosition, const WebCore::FloatPoint& scrollOrigin, const WebCore::FloatBoxExtent& obscuredInsetsOnSave, double scale);
void restorePageCenterAndScale(std::optional<WebCore::FloatPoint>, double scale);
- void didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color& color, const Vector<WebCore::FloatQuad>& geometries, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling);
+ void didGetTapHighlightGeometries(WebKit::TapIdentifier requestID, const WebCore::Color&, const Vector<WebCore::FloatQuad>& geometries, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling);
void elementDidFocus(const FocusedElementInformation&, bool userIsInteracting, bool blurPreviousNode, OptionSet<WebCore::ActivityState::Flag> activityStateChanges, const UserData&);
void elementDidBlur();
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2021-08-19 22:48:25 UTC (rev 281276)
@@ -172,8 +172,8 @@
DidNotHandleTapAsClick(WebCore::IntPoint point)
DidTapAtPoint(WebCore::IntPoint point, enum:uint8_t WebKit::TapHandlingResult result)
DidCompleteSyntheticClick()
- DisableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID)
- HandleSmartMagnificationInformationForPotentialTap(uint64_t requestID, WebCore::FloatRect renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
+ DisableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier requestID)
+ HandleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier requestID, WebCore::FloatRect renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
#endif
#if ENABLE(DATA_DETECTION)
SetDataDetectionResult(struct WebKit::DataDetectionResult dataDetectionResult)
@@ -392,7 +392,7 @@
CouldNotRestorePageState()
RestorePageState(std::optional<WebCore::FloatPoint> scrollPosition, WebCore::FloatPoint scrollOrigin, WebCore::RectEdges<float> obscuredInsetsOnSave, double scale)
RestorePageCenterAndScale(std::optional<WebCore::FloatPoint> unobscuredCenter, double scale)
- DidGetTapHighlightGeometries(uint64_t requestID, WebCore::Color color, Vector<WebCore::FloatQuad> geometries, WebCore::IntSize topLeftRadius, WebCore::IntSize topRightRadius, WebCore::IntSize bottomLeftRadius, WebCore::IntSize bottomRightRadius, bool nodeHasBuiltInClickHandling)
+ DidGetTapHighlightGeometries(WebKit::TapIdentifier requestID, WebCore::Color color, Vector<WebCore::FloatQuad> geometries, WebCore::IntSize topLeftRadius, WebCore::IntSize topRightRadius, WebCore::IntSize bottomLeftRadius, WebCore::IntSize bottomRightRadius, bool nodeHasBuiltInClickHandling)
ElementDidFocus(struct WebKit::FocusedElementInformation information, bool userIsInteracting, bool blurPreviousNode, OptionSet<WebCore::ActivityState::Flag> activityStateChanges, WebKit::UserData userData)
ElementDidBlur()
Modified: trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -164,7 +164,7 @@
void wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent&) override;
void commitPotentialTapFailed() override;
- void didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color&, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling) override;
+ void didGetTapHighlightGeometries(WebKit::TapIdentifier requestID, const WebCore::Color&, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling) override;
void didCommitLayerTree(const RemoteLayerTreeTransaction&) override;
void layerTreeCommitComplete() override;
@@ -195,8 +195,8 @@
bool showShareSheet(const WebCore::ShareDataWithParsedURL&, WTF::CompletionHandler<void(bool)>&&) override;
void showContactPicker(const WebCore::ContactsRequestData&, WTF::CompletionHandler<void(std::optional<Vector<WebCore::ContactInfo>>&&)>&&) override;
- void disableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID) override;
- void handleSmartMagnificationInformationForPotentialTap(uint64_t requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel) override;
+ void disableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier) override;
+ void handleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel) override;
double minimumZoomScale() const override;
WebCore::FloatRect documentRect() const override;
Modified: trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm 2021-08-19 22:48:25 UTC (rev 281276)
@@ -277,12 +277,12 @@
notImplemented();
}
-void PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID)
+void PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier requestID)
{
[m_contentView _disableDoubleTapGesturesDuringTapIfNecessary:requestID];
}
-void PageClientImpl::handleSmartMagnificationInformationForPotentialTap(uint64_t requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
+void PageClientImpl::handleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
{
[m_contentView _handleSmartMagnificationInformationForPotentialTap:requestID renderRect:renderRect fitEntireRect:fitEntireRect viewportMinimumScale:viewportMinimumScale viewportMaximumScale:viewportMaximumScale nodeIsRootLevel:nodeIsRootLevel];
}
@@ -585,7 +585,7 @@
[m_contentView _commitPotentialTapFailed];
}
-void PageClientImpl::didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color& color, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling)
+void PageClientImpl::didGetTapHighlightGeometries(WebKit::TapIdentifier requestID, const WebCore::Color& color, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling)
{
[m_contentView _didGetTapHighlightForRequest:requestID color:color quads:highlightedQuads topLeftRadius:topLeftRadius topRightRadius:topRightRadius bottomLeftRadius:bottomLeftRadius bottomRightRadius:bottomRightRadius nodeHasBuiltInClickHandling:nodeHasBuiltInClickHandling];
}
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -33,6 +33,7 @@
#import "FrameInfoData.h"
#import "GestureRecognizerConsistencyEnforcer.h"
#import "GestureTypes.h"
+#import "IdentifierTypes.h"
#import "InteractionInformationAtPosition.h"
#import "PasteboardAccessIntent.h"
#import "SyntheticEditingCommandType.h"
@@ -365,7 +366,7 @@
WeakObjCPtr<id <UITextInputDelegate>> _inputDelegate;
- uint64_t _latestTapID;
+ WebKit::TapIdentifier _latestTapID;
struct TapHighlightInformation {
BOOL nodeHasBuiltInClickHandling { false };
WebCore::Color color;
@@ -606,11 +607,12 @@
- (void)_commitPotentialTapFailed;
- (void)_didNotHandleTapAsClick:(const WebCore::IntPoint&)point;
- (void)_didCompleteSyntheticClick;
-- (void)_didGetTapHighlightForRequest:(uint64_t)requestID color:(const WebCore::Color&)color quads:(const Vector<WebCore::FloatQuad>&)highlightedQuads topLeftRadius:(const WebCore::IntSize&)topLeftRadius topRightRadius:(const WebCore::IntSize&)topRightRadius bottomLeftRadius:(const WebCore::IntSize&)bottomLeftRadius bottomRightRadius:(const WebCore::IntSize&)bottomRightRadius nodeHasBuiltInClickHandling:(BOOL)nodeHasBuiltInClickHandling;
+- (void)_didGetTapHighlightForRequest:(WebKit::TapIdentifier)requestID color:(const WebCore::Color&)color quads:(const Vector<WebCore::FloatQuad>&)highlightedQuads topLeftRadius:(const WebCore::IntSize&)topLeftRadius topRightRadius:(const WebCore::IntSize&)topRightRadius bottomLeftRadius:(const WebCore::IntSize&)bottomLeftRadius bottomRightRadius:(const WebCore::IntSize&)bottomRightRadius nodeHasBuiltInClickHandling:(BOOL)nodeHasBuiltInClickHandling;
+
- (BOOL)_mayDisableDoubleTapGesturesDuringSingleTap;
-- (void)_disableDoubleTapGesturesDuringTapIfNecessary:(uint64_t)requestID;
-- (void)_handleSmartMagnificationInformationForPotentialTap:(uint64_t)requestID renderRect:(const WebCore::FloatRect&)renderRect fitEntireRect:(BOOL)fitEntireRect viewportMinimumScale:(double)viewportMinimumScale viewportMaximumScale:(double)viewportMaximumScale nodeIsRootLevel:(BOOL)nodeIsRootLevel;
+- (void)_disableDoubleTapGesturesDuringTapIfNecessary:(WebKit::TapIdentifier)requestID;
+- (void)_handleSmartMagnificationInformationForPotentialTap:(WebKit::TapIdentifier)requestID renderRect:(const WebCore::FloatRect&)renderRect fitEntireRect:(BOOL)fitEntireRect viewportMinimumScale:(double)viewportMinimumScale viewportMaximumScale:(double)viewportMaximumScale nodeIsRootLevel:(BOOL)nodeIsRootLevel;
- (void)_elementDidFocus:(const WebKit::FocusedElementInformation&)information userIsInteracting:(BOOL)userIsInteracting blurPreviousNode:(BOOL)blurPreviousNode activityStateChanges:(OptionSet<WebCore::ActivityState::Flag>)activityStateChanges userObject:(NSObject <NSSecureCoding> *)userObject;
- (void)_updateInputContextAfterBlurringAndRefocusingElement;
- (void)_elementDidBlur;
Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2021-08-19 22:48:25 UTC (rev 281276)
@@ -2110,7 +2110,7 @@
[self _updateTapHighlight];
}
-- (void)_didGetTapHighlightForRequest:(uint64_t)requestID color:(const WebCore::Color&)color quads:(const Vector<WebCore::FloatQuad>&)highlightedQuads topLeftRadius:(const WebCore::IntSize&)topLeftRadius topRightRadius:(const WebCore::IntSize&)topRightRadius bottomLeftRadius:(const WebCore::IntSize&)bottomLeftRadius bottomRightRadius:(const WebCore::IntSize&)bottomRightRadius nodeHasBuiltInClickHandling:(BOOL)nodeHasBuiltInClickHandling
+- (void)_didGetTapHighlightForRequest:(WebKit::TapIdentifier)requestID color:(const WebCore::Color&)color quads:(const Vector<WebCore::FloatQuad>&)highlightedQuads topLeftRadius:(const WebCore::IntSize&)topLeftRadius topRightRadius:(const WebCore::IntSize&)topRightRadius bottomLeftRadius:(const WebCore::IntSize&)bottomLeftRadius bottomRightRadius:(const WebCore::IntSize&)bottomRightRadius nodeHasBuiltInClickHandling:(BOOL)nodeHasBuiltInClickHandling
{
if (!_isTapHighlightIDValid || _latestTapID != requestID)
return;
@@ -2149,7 +2149,7 @@
return _potentialTapInProgress;
}
-- (void)_disableDoubleTapGesturesDuringTapIfNecessary:(uint64_t)requestID
+- (void)_disableDoubleTapGesturesDuringTapIfNecessary:(WebKit::TapIdentifier)requestID
{
if (_latestTapID != requestID)
return;
@@ -2157,7 +2157,7 @@
[self _setDoubleTapGesturesEnabled:NO];
}
-- (void)_handleSmartMagnificationInformationForPotentialTap:(uint64_t)requestID renderRect:(const WebCore::FloatRect&)renderRect fitEntireRect:(BOOL)fitEntireRect viewportMinimumScale:(double)viewportMinimumScale viewportMaximumScale:(double)viewportMaximumScale nodeIsRootLevel:(BOOL)nodeIsRootLevel
+- (void)_handleSmartMagnificationInformationForPotentialTap:(WebKit::TapIdentifier)requestID renderRect:(const WebCore::FloatRect&)renderRect fitEntireRect:(BOOL)fitEntireRect viewportMinimumScale:(double)viewportMinimumScale viewportMaximumScale:(double)viewportMaximumScale nodeIsRootLevel:(BOOL)nodeIsRootLevel
{
const auto& preferences = _page->preferences();
@@ -3021,6 +3021,12 @@
return [self webSelectionRectsForSelectionGeometries:selectionGeometries];
}
+- (WebKit::TapIdentifier)nextTapIdentifier
+{
+ _latestTapID = WebKit::TapIdentifier::generate();
+ return _latestTapID;
+}
+
- (void)_highlightLongPressRecognized:(UILongPressGestureRecognizer *)gestureRecognizer
{
ASSERT(gestureRecognizer == _highlightLongPressGestureRecognizer);
@@ -3032,7 +3038,7 @@
case UIGestureRecognizerStateBegan:
_longPressCanClick = YES;
cancelPotentialTapIfNecessary(self);
- _page->tapHighlightAtPosition([gestureRecognizer startPoint], ++_latestTapID);
+ _page->tapHighlightAtPosition([gestureRecognizer startPoint], [self nextTapIdentifier]);
_isTapHighlightIDValid = YES;
break;
case UIGestureRecognizerStateEnded:
@@ -3061,7 +3067,7 @@
{
_isTapHighlightIDValid = YES;
_isExpectingFastSingleTapCommit = YES;
- _page->handleTwoFingerTapAtPoint(WebCore::roundedIntPoint(gestureRecognizer.centroid), WebKit::webEventModifierFlags(gestureRecognizer.modifierFlags | UIKeyModifierCommand), ++_latestTapID);
+ _page->handleTwoFingerTapAtPoint(WebCore::roundedIntPoint(gestureRecognizer.centroid), WebKit::webEventModifierFlags(gestureRecognizer.modifierFlags | UIKeyModifierCommand), [self nextTapIdentifier]);
}
- (void)_longPressRecognized:(UILongPressGestureRecognizer *)gestureRecognizer
@@ -3095,6 +3101,7 @@
_potentialTapInProgress = NO;
}
+
- (void)_singleTapIdentified:(UITapGestureRecognizer *)gestureRecognizer
{
ASSERT(gestureRecognizer == _singleTapGestureRecognizer);
@@ -3107,7 +3114,7 @@
if (shouldRequestMagnificationInformation)
RELEASE_LOG(ViewGestures, "Single tap identified. Request details on potential zoom. (%p)", self);
- _page->potentialTapAtPosition(gestureRecognizer.location, shouldRequestMagnificationInformation, ++_latestTapID);
+ _page->potentialTapAtPosition(gestureRecognizer.location, shouldRequestMagnificationInformation, [self nextTapIdentifier]);
_potentialTapInProgress = YES;
_isTapHighlightIDValid = YES;
_isExpectingFastSingleTapCommit = !_doubleTapGestureRecognizer.get().enabled;
Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (281275 => 281276)
--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2021-08-19 22:48:25 UTC (rev 281276)
@@ -534,7 +534,7 @@
sendWithAsyncReply(Messages::WebPage::GetSelectionContext(), WTFMove(callbackFunction));
}
-void WebPageProxy::handleTwoFingerTapAtPoint(const WebCore::IntPoint& point, OptionSet<WebEvent::Modifier> modifiers, uint64_t requestID)
+void WebPageProxy::handleTwoFingerTapAtPoint(const WebCore::IntPoint& point, OptionSet<WebEvent::Modifier> modifiers, WebKit::TapIdentifier requestID)
{
send(Messages::WebPage::HandleTwoFingerTapAtPoint(point, modifiers, requestID));
}
@@ -779,7 +779,7 @@
send(Messages::WebPage::WillStartUserTriggeredZooming());
}
-void WebPageProxy::potentialTapAtPosition(const WebCore::FloatPoint& position, bool shouldRequestMagnificationInformation, uint64_t& requestID)
+void WebPageProxy::potentialTapAtPosition(const WebCore::FloatPoint& position, bool shouldRequestMagnificationInformation, WebKit::TapIdentifier requestID)
{
hideValidationMessage();
send(Messages::WebPage::PotentialTapAtPosition(requestID, position, shouldRequestMagnificationInformation));
@@ -795,7 +795,7 @@
send(Messages::WebPage::CancelPotentialTap());
}
-void WebPageProxy::tapHighlightAtPosition(const WebCore::FloatPoint& position, uint64_t& requestID)
+void WebPageProxy::tapHighlightAtPosition(const WebCore::FloatPoint& position, WebKit::TapIdentifier requestID)
{
send(Messages::WebPage::TapHighlightAtPosition(requestID, position));
}
@@ -865,7 +865,7 @@
pageClient().restorePageCenterAndScale(center, scale);
}
-void WebPageProxy::didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color& color, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling)
+void WebPageProxy::didGetTapHighlightGeometries(WebKit::TapIdentifier requestID, const WebCore::Color& color, const Vector<WebCore::FloatQuad>& highlightedQuads, const WebCore::IntSize& topLeftRadius, const WebCore::IntSize& topRightRadius, const WebCore::IntSize& bottomLeftRadius, const WebCore::IntSize& bottomRightRadius, bool nodeHasBuiltInClickHandling)
{
pageClient().didGetTapHighlightGeometries(requestID, color, highlightedQuads, topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius, nodeHasBuiltInClickHandling);
}
@@ -1015,12 +1015,12 @@
pageClient().didCompleteSyntheticClick();
}
-void WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary(uint64_t requestID)
+void WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary(WebKit::TapIdentifier requestID)
{
pageClient().disableDoubleTapGesturesDuringTapIfNecessary(requestID);
}
-void WebPageProxy::handleSmartMagnificationInformationForPotentialTap(uint64_t requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
+void WebPageProxy::handleSmartMagnificationInformationForPotentialTap(WebKit::TapIdentifier requestID, const WebCore::FloatRect& renderRect, bool fitEntireRect, double viewportMinimumScale, double viewportMaximumScale, bool nodeIsRootLevel)
{
pageClient().handleSmartMagnificationInformationForPotentialTap(requestID, renderRect, fitEntireRect, viewportMinimumScale, viewportMaximumScale, nodeIsRootLevel);
}
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (281275 => 281276)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2021-08-19 22:48:25 UTC (rev 281276)
@@ -2561,6 +2561,7 @@
0FCB4E6B18BBF26A000FCFC9 /* WKContentViewInteraction.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKContentViewInteraction.mm; path = ios/WKContentViewInteraction.mm; sourceTree = "<group>"; };
0FCD094E24C79F5B000C6D39 /* RemoteScrollingUIState.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteScrollingUIState.cpp; sourceTree = "<group>"; };
0FCD094F24C79F5B000C6D39 /* RemoteScrollingUIState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteScrollingUIState.h; sourceTree = "<group>"; };
+ 0FD2CB2526CDD7A30008B11C /* IdentifierTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdentifierTypes.h; sourceTree = "<group>"; };
0FDCD7F61D47E92A009F08BC /* LogInitialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogInitialization.h; sourceTree = "<group>"; };
0FF24A2B1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp; path = DerivedSources/WebKit2/RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
0FF24A2B1879E4BC003ABF0D /* RemoteCaptureSampleManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteCaptureSampleManagerMessageReceiver.cpp; path = DerivedSources/WebKit2/RemoteCaptureSampleManagerMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -6806,6 +6807,7 @@
46AC532425DED81E003B57EC /* GPUProcessConnectionParameters.h */,
F40BBB40257FF46E0067463A /* GPUProcessWakeupMessageArguments.h */,
1AC75A1A1B3368270056745B /* HangDetectionDisabler.h */,
+ 0FD2CB2526CDD7A30008B11C /* IdentifierTypes.h */,
BCCF6B2312C93E7A008F9C35 /* ImageOptions.h */,
999B7ED82550E4A800F450A4 /* InspectorExtensionTypes.cpp */,
99BE3B1625433B9400C6551C /* InspectorExtensionTypes.h */,
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (281275 => 281276)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2021-08-19 22:48:25 UTC (rev 281276)
@@ -40,6 +40,7 @@
#include "EditingRange.h"
#include "FocusedElementInformation.h"
#include "GeolocationIdentifier.h"
+#include "IdentifierTypes.h"
#include "InjectedBundlePageContextMenuClient.h"
#include "InjectedBundlePageFullScreenClient.h"
#include "InjectedBundlePagePolicyClient.h"
@@ -747,12 +748,12 @@
bool hasStablePageScaleFactor() const { return m_hasStablePageScaleFactor; }
void attemptSyntheticClick(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, TransactionID lastLayerTreeTransactionId);
- void potentialTapAtPosition(uint64_t requestID, const WebCore::FloatPoint&, bool shouldRequestMagnificationInformation);
+ void potentialTapAtPosition(WebKit::TapIdentifier, const WebCore::FloatPoint&, bool shouldRequestMagnificationInformation);
void commitPotentialTap(OptionSet<WebKit::WebEvent::Modifier>, TransactionID lastLayerTreeTransactionId, WebCore::PointerID);
void commitPotentialTapFailed();
void cancelPotentialTap();
void cancelPotentialTapInFrame(WebFrame&);
- void tapHighlightAtPosition(uint64_t requestID, const WebCore::FloatPoint&);
+ void tapHighlightAtPosition(WebKit::TapIdentifier, const WebCore::FloatPoint&);
void didRecognizeLongPress();
void handleDoubleTapForDoubleClickAtPoint(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, TransactionID lastLayerTreeTransactionId);
@@ -796,7 +797,7 @@
bool isShowingInputViewForFocusedElement() const { return m_isShowingInputViewForFocusedElement; }
void updateSelectionAppearance();
void getSelectionContext(CompletionHandler<void(const String&, const String&, const String&)>&&);
- void handleTwoFingerTapAtPoint(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, uint64_t requestID);
+ void handleTwoFingerTapAtPoint(const WebCore::IntPoint&, OptionSet<WebKit::WebEvent::Modifier>, WebKit::TapIdentifier);
void getRectsForGranularityWithSelectionOffset(WebCore::TextGranularity, int32_t, CompletionHandler<void(const Vector<WebCore::SelectionGeometry>&)>&&);
void getRectsAtSelectionOffsetWithText(int32_t, const String&, CompletionHandler<void(const Vector<WebCore::SelectionGeometry>&)>&&);
void storeSelectionForAccessibility(bool);
@@ -1516,7 +1517,7 @@
void generateSyntheticEditingCommand(SyntheticEditingCommandType);
void handleSyntheticClick(WebCore::Node& nodeRespondingToClick, const WebCore::FloatPoint& location, OptionSet<WebKit::WebEvent::Modifier>, WebCore::PointerID = WebCore::mousePointerID);
void completeSyntheticClick(WebCore::Node& nodeRespondingToClick, const WebCore::FloatPoint& location, OptionSet<WebKit::WebEvent::Modifier>, WebCore::SyntheticClickType, WebCore::PointerID = WebCore::mousePointerID);
- void sendTapHighlightForNodeIfNecessary(uint64_t requestID, WebCore::Node*);
+ void sendTapHighlightForNodeIfNecessary(WebKit::TapIdentifier, WebCore::Node*);
WebCore::VisiblePosition visiblePositionInFocusedNodeForPoint(const WebCore::Frame&, const WebCore::IntPoint&, bool isInteractingWithFocusedElement);
std::optional<WebCore::SimpleRange> rangeForGranularityAtPoint(WebCore::Frame&, const WebCore::IntPoint&, WebCore::TextGranularity, bool isInteractingWithFocusedElement);
void setFocusedFrameBeforeSelectingTextAtLocation(const WebCore::IntPoint&);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (281275 => 281276)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2021-08-19 22:48:25 UTC (rev 281276)
@@ -57,10 +57,10 @@
SetScreenIsBeingCaptured(bool captured)
AttemptSyntheticClick(WebCore::IntPoint point, OptionSet<WebKit::WebEvent::Modifier> modifiers, WebKit::TransactionID lastLayerTreeTransactionId)
- PotentialTapAtPosition(uint64_t requestID, WebCore::FloatPoint point, bool shouldRequestMagnificationInformation)
+ PotentialTapAtPosition(WebKit::TapIdentifier requestID, WebCore::FloatPoint point, bool shouldRequestMagnificationInformation)
CommitPotentialTap(OptionSet<WebKit::WebEvent::Modifier> modifiers, WebKit::TransactionID lastLayerTreeTransactionId, WebCore::PointerID pointerId)
CancelPotentialTap()
- TapHighlightAtPosition(uint64_t requestID, WebCore::FloatPoint point)
+ TapHighlightAtPosition(WebKit::TapIdentifier requestID, WebCore::FloatPoint point)
DidRecognizeLongPress()
HandleDoubleTapForDoubleClickAtPoint(WebCore::IntPoint point, OptionSet<WebKit::WebEvent::Modifier> modifiers, WebKit::TransactionID lastLayerTreeTransactionId)
InspectorNodeSearchMovedToPosition(WebCore::FloatPoint point)
@@ -107,7 +107,7 @@
ContentSizeCategoryDidChange(String contentSizeCategory)
GetSelectionContext() -> (String selectedText, String textBefore, String textAfter) Async
SetAllowsMediaDocumentInlinePlayback(bool allows)
- HandleTwoFingerTapAtPoint(WebCore::IntPoint point, OptionSet<WebKit::WebEvent::Modifier> modifiers, uint64_t requestID)
+ HandleTwoFingerTapAtPoint(WebCore::IntPoint point, OptionSet<WebKit::WebEvent::Modifier> modifiers, WebKit::TapIdentifier requestID)
SetForceAlwaysUserScalable(bool userScalable)
GetRectsForGranularityWithSelectionOffset(enum:uint8_t WebCore::TextGranularity granularity, int32_t offset) -> (Vector<WebCore::SelectionGeometry> rect) Async
GetRectsAtSelectionOffsetWithText(int32_t offset, String text) -> (Vector<WebCore::SelectionGeometry> rect) Async
Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (281275 => 281276)
--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-08-19 22:32:47 UTC (rev 281275)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm 2021-08-19 22:48:25 UTC (rev 281276)
@@ -1086,7 +1086,7 @@
#endif
-void WebPage::sendTapHighlightForNodeIfNecessary(uint64_t requestID, Node* node)
+void WebPage::sendTapHighlightForNodeIfNecessary(WebKit::TapIdentifier requestID, Node* node)
{
#if ENABLE(TOUCH_EVENTS)
if (!node)
@@ -1129,7 +1129,7 @@
#endif
}
-void WebPage::handleTwoFingerTapAtPoint(const WebCore::IntPoint& point, OptionSet<WebKit::WebEvent::Modifier> modifiers, uint64_t requestID)
+void WebPage::handleTwoFingerTapAtPoint(const WebCore::IntPoint& point, OptionSet<WebKit::WebEvent::Modifier> modifiers, WebKit::TapIdentifier requestID)
{
FloatPoint adjustedPoint;
Node* nodeRespondingToClick = m_page->mainFrame().nodeRespondingToClickEvents(point, adjustedPoint);
@@ -1143,7 +1143,7 @@
completeSyntheticClick(*nodeRespondingToClick, adjustedPoint, modifiers, WebCore::TwoFingerTap);
}
-void WebPage::potentialTapAtPosition(uint64_t requestID, const WebCore::FloatPoint& position, bool shouldRequestMagnificationInformation)
+void WebPage::potentialTapAtPosition(WebKit::TapIdentifier requestID, const WebCore::FloatPoint& position, bool shouldRequestMagnificationInformation)
{
m_potentialTapNode = m_page->mainFrame().nodeRespondingToClickEvents(position, m_potentialTapLocation, m_potentialTapSecurityOrigin.get());
@@ -1244,7 +1244,7 @@
ContentChangeObserver::didRecognizeLongPress(m_page->mainFrame());
}
-void WebPage::tapHighlightAtPosition(uint64_t requestID, const FloatPoint& position)
+void WebPage::tapHighlightAtPosition(WebKit::TapIdentifier requestID, const FloatPoint& position)
{
Frame& mainframe = m_page->mainFrame();
FloatPoint adjustedPoint;