Title: [281290] trunk/Source/WebKit
Revision
281290
Author
[email protected]
Date
2021-08-19 19:46:43 -0700 (Thu, 19 Aug 2021)

Log Message

Use an ObjectIdentifier<> for text checker requests
https://bugs.webkit.org/show_bug.cgi?id=229302

Reviewed by Wenson Hsieh.

Introduce TextCheckerRequestID and use it to identify text checker requests in a type-safe
way.

* Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
* Shared/IdentifierTypes.h:
* UIProcess/TextCheckerCompletion.cpp:
(WebKit::TextCheckerCompletion::create):
(WebKit::TextCheckerCompletion::TextCheckerCompletion):
* UIProcess/TextCheckerCompletion.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestCheckingOfString):
(WebKit::WebPageProxy::didFinishCheckingText):
(WebKit::WebPageProxy::didCancelCheckingText):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::requestCheckingOfString):
(WebKit::generateTextCheckingRequestID): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addTextCheckingRequest):
(WebKit::WebPage::didFinishCheckingText):
(WebKit::WebPage::didCancelCheckingText):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (281289 => 281290)


--- trunk/Source/WebKit/ChangeLog	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/ChangeLog	2021-08-20 02:46:43 UTC (rev 281290)
@@ -1,3 +1,37 @@
+2021-08-19  Simon Fraser  <[email protected]>
+
+        Use an ObjectIdentifier<> for text checker requests
+        https://bugs.webkit.org/show_bug.cgi?id=229302
+
+        Reviewed by Wenson Hsieh.
+
+        Introduce TextCheckerRequestID and use it to identify text checker requests in a type-safe
+        way.
+
+        * Scripts/webkit/messages.py:
+        (types_that_cannot_be_forward_declared):
+        (headers_for_type):
+        * Shared/IdentifierTypes.h:
+        * UIProcess/TextCheckerCompletion.cpp:
+        (WebKit::TextCheckerCompletion::create):
+        (WebKit::TextCheckerCompletion::TextCheckerCompletion):
+        * UIProcess/TextCheckerCompletion.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::requestCheckingOfString):
+        (WebKit::WebPageProxy::didFinishCheckingText):
+        (WebKit::WebPageProxy::didCancelCheckingText):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::requestCheckingOfString):
+        (WebKit::generateTextCheckingRequestID): Deleted.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::addTextCheckingRequest):
+        (WebKit::WebPage::didFinishCheckingText):
+        (WebKit::WebPage::didCancelCheckingText):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
 2021-08-19  Wenson Hsieh  <[email protected]>
 
         Fix the apple internal build after r281277

Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (281289 => 281290)


--- trunk/Source/WebKit/Scripts/webkit/messages.py	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py	2021-08-20 02:46:43 UTC (rev 281290)
@@ -343,6 +343,7 @@
         'WebKit::StorageAreaImplIdentifier',
         'WebKit::StorageNamespaceIdentifier',
         'WebKit::TapIdentifier',
+        'WebKit::TextCheckerRequestID',
         'WebKit::TrackPrivateRemoteIdentifier',
         'WebKit::TransactionID',
         'WebKit::UserContentControllerIdentifier',
@@ -780,6 +781,7 @@
         'WebKit::SelectionFlags': ['"GestureTypes.h"'],
         'WebKit::SelectionTouch': ['"GestureTypes.h"'],
         'WebKit::TapIdentifier': ['"IdentifierTypes.h"'],
+        'WebKit::TextCheckerRequestID': ['"IdentifierTypes.h"'],
         'WebCore::MediaEngineSupportParameters': ['<WebCore/MediaPlayer.h>'],
         'WebCore::ISOWebVTTCue': ['<WebCore/ISOVTTCue.h>'],
         'struct WebCore::Cookie': ['<WebCore/Cookie.h>'],

Modified: trunk/Source/WebKit/Shared/IdentifierTypes.h (281289 => 281290)


--- trunk/Source/WebKit/Shared/IdentifierTypes.h	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/Shared/IdentifierTypes.h	2021-08-20 02:46:43 UTC (rev 281290)
@@ -32,4 +32,7 @@
 enum TapIdentifierType { };
 using TapIdentifier = ObjectIdentifier<TapIdentifierType>;
 
+enum TextCheckerRequestType { };
+using TextCheckerRequestID = ObjectIdentifier<TextCheckerRequestType>;
+
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/TextCheckerCompletion.cpp (281289 => 281290)


--- trunk/Source/WebKit/UIProcess/TextCheckerCompletion.cpp	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/UIProcess/TextCheckerCompletion.cpp	2021-08-20 02:46:43 UTC (rev 281290)
@@ -31,12 +31,12 @@
 namespace WebKit {
 using namespace WebCore;
 
-Ref<TextCheckerCompletion> TextCheckerCompletion::create(uint64_t requestID, const TextCheckingRequestData& requestData, WebPageProxy* page)
+Ref<TextCheckerCompletion> TextCheckerCompletion::create(TextCheckerRequestID requestID, const TextCheckingRequestData& requestData, WebPageProxy* page)
 {
     return adoptRef(*new TextCheckerCompletion(requestID, requestData, page));
 }
 
-TextCheckerCompletion::TextCheckerCompletion(uint64_t requestID, const TextCheckingRequestData& requestData, WebPageProxy* page)
+TextCheckerCompletion::TextCheckerCompletion(TextCheckerRequestID requestID, const TextCheckingRequestData& requestData, WebPageProxy* page)
     : m_requestID(requestID)
     , m_requestData(requestData)
     , m_page(page)

Modified: trunk/Source/WebKit/UIProcess/TextCheckerCompletion.h (281289 => 281290)


--- trunk/Source/WebKit/UIProcess/TextCheckerCompletion.h	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/UIProcess/TextCheckerCompletion.h	2021-08-20 02:46:43 UTC (rev 281290)
@@ -25,6 +25,7 @@
 
 #pragma once
 
+#include "IdentifierTypes.h"
 #include <WebCore/TextChecking.h>
 #include <wtf/Forward.h>
 
@@ -36,7 +37,7 @@
 
 class TextCheckerCompletion : public RefCounted<TextCheckerCompletion> {
 public:
-    static Ref<TextCheckerCompletion> create(uint64_t requestID, const WebCore::TextCheckingRequestData&, WebPageProxy*);
+    static Ref<TextCheckerCompletion> create(TextCheckerRequestID, const WebCore::TextCheckingRequestData&, WebPageProxy*);
 
     const WebCore::TextCheckingRequestData& textCheckingRequestData() const;
     SpellDocumentTag spellDocumentTag();
@@ -44,9 +45,9 @@
     void didCancelCheckingText() const;
 
 private:
-    TextCheckerCompletion(uint64_t requestID, const WebCore::TextCheckingRequestData&, WebPageProxy*);
+    TextCheckerCompletion(TextCheckerRequestID, const WebCore::TextCheckingRequestData&, WebPageProxy*);
 
-    const uint64_t m_requestID;
+    const TextCheckerRequestID m_requestID;
     const WebCore::TextCheckingRequestData m_requestData;
     WebPageProxy* m_page;
 };

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (281289 => 281290)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-08-20 02:46:43 UTC (rev 281290)
@@ -7225,17 +7225,17 @@
     TextChecker::ignoreWord(spellDocumentTag(), word);
 }
 
-void WebPageProxy::requestCheckingOfString(uint64_t requestID, const TextCheckingRequestData& request, int32_t insertionPoint)
+void WebPageProxy::requestCheckingOfString(TextCheckerRequestID requestID, const TextCheckingRequestData& request, int32_t insertionPoint)
 {
     TextChecker::requestCheckingOfString(TextCheckerCompletion::create(requestID, request, this), insertionPoint);
 }
 
-void WebPageProxy::didFinishCheckingText(uint64_t requestID, const Vector<WebCore::TextCheckingResult>& result)
+void WebPageProxy::didFinishCheckingText(TextCheckerRequestID requestID, const Vector<WebCore::TextCheckingResult>& result)
 {
     send(Messages::WebPage::DidFinishCheckingText(requestID, result));
 }
 
-void WebPageProxy::didCancelCheckingText(uint64_t requestID)
+void WebPageProxy::didCancelCheckingText(TextCheckerRequestID requestID)
 {
     send(Messages::WebPage::DidCancelCheckingText(requestID));
 }

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (281289 => 281290)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-08-20 02:46:43 UTC (rev 281290)
@@ -1455,8 +1455,8 @@
 
     SpellDocumentTag spellDocumentTag();
 
-    void didFinishCheckingText(uint64_t requestID, const Vector<WebCore::TextCheckingResult>&);
-    void didCancelCheckingText(uint64_t requestID);
+    void didFinishCheckingText(TextCheckerRequestID, const Vector<WebCore::TextCheckingResult>&);
+    void didCancelCheckingText(TextCheckerRequestID);
         
     void setScrollPinningBehavior(WebCore::ScrollPinningBehavior);
     WebCore::ScrollPinningBehavior scrollPinningBehavior() const { return m_scrollPinningBehavior; }
@@ -2277,7 +2277,7 @@
     void updateSpellingUIWithGrammarString(const String& badGrammarPhrase, const WebCore::GrammarDetail&);
     void learnWord(const String& word);
     void ignoreWord(const String& word);
-    void requestCheckingOfString(uint64_t requestID, const WebCore::TextCheckingRequestData&, int32_t insertionPoint);
+    void requestCheckingOfString(TextCheckerRequestID, const WebCore::TextCheckingRequestData&, int32_t insertionPoint);
 
     void takeFocus(uint8_t direction);
     void setToolTip(const String&);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (281289 => 281290)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in	2021-08-20 02:46:43 UTC (rev 281290)
@@ -297,7 +297,7 @@
     GetGuessesForWord(String word, String context, int32_t insertionPoint) -> (Vector<String> guesses) Synchronous
     LearnWord(String word)
     IgnoreWord(String word)
-    RequestCheckingOfString(uint64_t requestID, WebCore::TextCheckingRequestData request, int32_t insertionPoint)
+    RequestCheckingOfString(WebKit::TextCheckerRequestID requestID, WebCore::TextCheckingRequestData request, int32_t insertionPoint)
 
     # Drag and drop messages
 #if ENABLE(DRAG_SUPPORT)

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp (281289 => 281290)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp	2021-08-20 02:46:43 UTC (rev 281290)
@@ -69,12 +69,6 @@
 using namespace WebCore;
 using namespace HTMLNames;
 
-static uint64_t generateTextCheckingRequestID()
-{
-    static uint64_t uniqueTextCheckingRequestID = 1;
-    return uniqueTextCheckingRequestID++;
-}
-
 bool WebEditorClient::shouldDeleteRange(const std::optional<SimpleRange>& range)
 {
     return m_page->injectedBundleEditorClient().shouldDeleteRange(*m_page, range);
@@ -581,7 +575,7 @@
 
 void WebEditorClient::requestCheckingOfString(TextCheckingRequest& request, const WebCore::VisibleSelection& currentSelection)
 {
-    uint64_t requestID = generateTextCheckingRequestID();
+    auto requestID = TextCheckerRequestID::generate();
     m_page->addTextCheckingRequest(requestID, request);
 
     m_page->send(Messages::WebPageProxy::RequestCheckingOfString(requestID, request.data(), insertionPointFromCurrentSelection(currentSelection)));

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (281289 => 281290)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-08-20 02:46:43 UTC (rev 281290)
@@ -6241,12 +6241,12 @@
     return false;
 }
 
-void WebPage::addTextCheckingRequest(uint64_t requestID, Ref<TextCheckingRequest>&& request)
+void WebPage::addTextCheckingRequest(TextCheckerRequestID requestID, Ref<TextCheckingRequest>&& request)
 {
     m_pendingTextCheckingRequestMap.add(requestID, WTFMove(request));
 }
 
-void WebPage::didFinishCheckingText(uint64_t requestID, const Vector<TextCheckingResult>& result)
+void WebPage::didFinishCheckingText(TextCheckerRequestID requestID, const Vector<TextCheckingResult>& result)
 {
     RefPtr<TextCheckingRequest> request = m_pendingTextCheckingRequestMap.take(requestID);
     if (!request)
@@ -6255,7 +6255,7 @@
     request->didSucceed(result);
 }
 
-void WebPage::didCancelCheckingText(uint64_t requestID)
+void WebPage::didCancelCheckingText(TextCheckerRequestID requestID)
 {
     RefPtr<TextCheckingRequest> request = m_pendingTextCheckingRequestMap.take(requestID);
     if (!request)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (281289 => 281290)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-08-20 02:46:43 UTC (rev 281290)
@@ -1154,9 +1154,9 @@
     bool canShowMIMEType(const String& MIMEType) const;
     bool canShowResponse(const WebCore::ResourceResponse&) const;
 
-    void addTextCheckingRequest(uint64_t requestID, Ref<WebCore::TextCheckingRequest>&&);
-    void didFinishCheckingText(uint64_t requestID, const Vector<WebCore::TextCheckingResult>&);
-    void didCancelCheckingText(uint64_t requestID);
+    void addTextCheckingRequest(TextCheckerRequestID, Ref<WebCore::TextCheckingRequest>&&);
+    void didFinishCheckingText(TextCheckerRequestID, const Vector<WebCore::TextCheckingResult>&);
+    void didCancelCheckingText(TextCheckerRequestID);
 
 #if ENABLE(DATA_DETECTION)
     void setDataDetectionResults(NSArray *);
@@ -1935,7 +1935,7 @@
     HashSet<PluginView*> m_pluginViews;
     bool m_hasSeenPlugin { false };
 
-    HashMap<uint64_t, RefPtr<WebCore::TextCheckingRequest>> m_pendingTextCheckingRequestMap;
+    HashMap<TextCheckerRequestID, RefPtr<WebCore::TextCheckingRequest>> m_pendingTextCheckingRequestMap;
 
     bool m_useFixedLayout { false };
 

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (281289 => 281290)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2021-08-20 02:35:35 UTC (rev 281289)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2021-08-20 02:46:43 UTC (rev 281290)
@@ -359,8 +359,8 @@
     # Spelling and grammar.
     AdvanceToNextMisspelling(bool startBeforeSelection)
     ChangeSpellingToWord(String word)
-    DidFinishCheckingText(uint64_t requestID, Vector<WebCore::TextCheckingResult> result)
-    DidCancelCheckingText(uint64_t requestID)
+    DidFinishCheckingText(WebKit::TextCheckerRequestID requestID, Vector<WebCore::TextCheckingResult> result)
+    DidCancelCheckingText(WebKit::TextCheckerRequestID requestID)
 #if USE(APPKIT)
     UppercaseWord()
     LowercaseWord()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to