Diff
Modified: trunk/Source/WebKit/ChangeLog (243326 => 243327)
--- trunk/Source/WebKit/ChangeLog 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/ChangeLog 2019-03-21 21:06:35 UTC (rev 243327)
@@ -1,5 +1,59 @@
2019-03-21 Alex Christensen <[email protected]>
+ Stop using LegacySync messages in WebPageProxy
+ https://bugs.webkit.org/show_bug.cgi?id=196056
+
+ Reviewed by Chris Dumez.
+
+ * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+ (WebKit::WebPageProxy::loadRecentSearches):
+ * UIProcess/ProvisionalPageProxy.cpp:
+ (WebKit::ProvisionalPageProxy::backForwardGoToItem):
+ (WebKit::ProvisionalPageProxy::didReceiveSyncMessage):
+ * UIProcess/ProvisionalPageProxy.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::handleSynchronousMessage):
+ (WebKit::WebPageProxy::hasInsecureContent):
+ (WebKit::WebPageProxy::accessibilityScreenToRootView):
+ (WebKit::WebPageProxy::rootViewToAccessibilityScreen):
+ (WebKit::WebPageProxy::printFrame):
+ (WebKit::WebPageProxy::backForwardGoToItem):
+ (WebKit::WebPageProxy::backForwardGoToItemShared):
+ (WebKit::WebPageProxy::backForwardItemAtIndex):
+ (WebKit::WebPageProxy::backForwardBackListCount):
+ (WebKit::WebPageProxy::backForwardForwardListCount):
+ (WebKit::WebPageProxy::canUndoRedo):
+ (WebKit::WebPageProxy::executeUndoRedo):
+ (WebKit::WebPageProxy::checkTextOfParagraph):
+ (WebKit::WebPageProxy::checkSpellingOfString):
+ (WebKit::WebPageProxy::checkGrammarOfString):
+ (WebKit::WebPageProxy::spellingUIIsShowing):
+ (WebKit::WebPageProxy::getGuessesForWord):
+ (WebKit::WebPageProxy::substitutionsPanelIsShowing):
+ (WebKit::WebPageProxy::showCorrectionPanel):
+ (WebKit::WebPageProxy::dismissCorrectionPanel):
+ (WebKit::WebPageProxy::dismissCorrectionPanelSoon):
+ (WebKit::WebPageProxy::recordAutocorrectionResponse):
+ (WebKit::WebPageProxy::dictationAlternatives):
+ (WebKit::WebPageProxy::wrapCryptoKey):
+ (WebKit::WebPageProxy::unwrapCryptoKey):
+ (WebKit::WebPageProxy::signedPublicKeyAndChallengeString):
+ (WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers):
+ (WebKit::WebPageProxy::speechSynthesisVoiceList):
+ (WebKit::WebPageProxy::printMainFrame): Deleted.
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/gtk/WebPageProxyGtk.cpp:
+ (WebKit::WebPageProxy::createPluginContainer):
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::interpretKeyEvent):
+ * UIProcess/mac/WebPageProxyMac.mm:
+ (WebKit::WebPageProxy::getIsSpeaking):
+ (WebKit::WebPageProxy::executeSavedCommandBySelector):
+ (WebKit::WebPageProxy::showPDFContextMenu):
+
+2019-03-21 Alex Christensen <[email protected]>
+
Stop using LegacySync messages in WebPage
https://bugs.webkit.org/show_bug.cgi?id=196057
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2019-03-21 21:06:35 UTC (rev 243327)
@@ -63,14 +63,14 @@
WebCore::saveRecentSearches(name, searchItems);
}
-void WebPageProxy::loadRecentSearches(const String& name, Vector<WebCore::RecentSearch>& searchItems)
+void WebPageProxy::loadRecentSearches(const String& name, CompletionHandler<void(Vector<WebCore::RecentSearch>&&)>&& completionHandler)
{
if (!name) {
// FIXME: This should be a message check.
- return;
+ return completionHandler({ });
}
- searchItems = WebCore::loadRecentSearches(name);
+ completionHandler(WebCore::loadRecentSearches(name));
}
void WebPageProxy::beginSafeBrowsingCheck(const URL& url, bool forMainFrameNavigation, WebFramePolicyListenerProxy& listener)
Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2019-03-21 21:06:35 UTC (rev 243327)
@@ -303,9 +303,9 @@
m_page.startURLSchemeTaskShared(m_process.copyRef(), WTFMove(parameters));
}
-void ProvisionalPageProxy::backForwardGoToItem(const WebCore::BackForwardItemIdentifier& identifier, SandboxExtension::Handle& handle)
+void ProvisionalPageProxy::backForwardGoToItem(const WebCore::BackForwardItemIdentifier& identifier, CompletionHandler<void(SandboxExtension::Handle&&)>&& completionHandler)
{
- m_page.backForwardGoToItemShared(m_process.copyRef(), identifier, handle);
+ m_page.backForwardGoToItemShared(m_process.copyRef(), identifier, WTFMove(completionHandler));
}
void ProvisionalPageProxy::decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&& frameSecurityOrigin, WebCore::PolicyCheckIdentifier identifier,
@@ -445,7 +445,7 @@
void ProvisionalPageProxy::didReceiveSyncMessage(IPC::Connection& connection, IPC::Decoder& decoder, std::unique_ptr<IPC::Encoder>& replyEncoder)
{
if (decoder.messageName() == Messages::WebPageProxy::BackForwardGoToItem::name()) {
- IPC::handleMessageLegacySync<Messages::WebPageProxy::BackForwardGoToItem>(decoder, *replyEncoder, this, &ProvisionalPageProxy::backForwardGoToItem);
+ IPC::handleMessageDelayed<Messages::WebPageProxy::BackForwardGoToItem>(connection, decoder, replyEncoder, this, &ProvisionalPageProxy::backForwardGoToItem);
return;
}
Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2019-03-21 21:06:35 UTC (rev 243327)
@@ -102,7 +102,7 @@
void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String& mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&, bool containsPluginDocument, Optional<WebCore::HasInsecureContent> forcedHasInsecureContent, const UserData&);
void didFailProvisionalLoadForFrame(uint64_t frameID, const WebCore::SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const String& provisionalURL, const WebCore::ResourceError&, const UserData&);
void startURLSchemeTask(URLSchemeTaskParameters&&);
- void backForwardGoToItem(const WebCore::BackForwardItemIdentifier&, SandboxExtension::Handle&);
+ void backForwardGoToItem(const WebCore::BackForwardItemIdentifier&, CompletionHandler<void(SandboxExtension::Handle&&)>&&);
void decidePolicyForNavigationActionSync(uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&,
FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody,
WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&);
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2019-03-21 21:06:35 UTC (rev 243327)
@@ -704,16 +704,16 @@
m_injectedBundleClient->didReceiveMessageFromInjectedBundle(this, messageName, m_process->transformHandlesToObjects(messageBody.object()).get());
}
-void WebPageProxy::handleSynchronousMessage(IPC::Connection& connection, const String& messageName, const UserData& messageBody, UserData& returnUserData)
+void WebPageProxy::handleSynchronousMessage(IPC::Connection& connection, const String& messageName, const UserData& messageBody, CompletionHandler<void(UserData&&)>&& completionHandler)
{
ASSERT(m_process->connection() == &connection);
if (!m_injectedBundleClient)
- return;
+ return completionHandler({ });
RefPtr<API::Object> returnData;
m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(this, messageName, m_process->transformHandlesToObjects(messageBody.object()).get(), returnData);
- returnUserData = UserData(m_process->transformObjectsToHandles(returnData.get()));
+ completionHandler(UserData(m_process->transformObjectsToHandles(returnData.get())));
}
void WebPageProxy::launchProcess(const RegistrableDomain& registrableDomain)
@@ -3861,9 +3861,9 @@
m_pageLoadState.setNetworkRequestsInProgress(transaction, networkRequestsInProgress);
}
-void WebPageProxy::hasInsecureContent(HasInsecureContent& hasInsecureContent)
+void WebPageProxy::hasInsecureContent(CompletionHandler<void(WebCore::HasInsecureContent)>&& completionHandler)
{
- hasInsecureContent = m_pageLoadState.committedHasInsecureContent() ? HasInsecureContent::Yes : HasInsecureContent::No;
+ completionHandler(m_pageLoadState.committedHasInsecureContent() ? HasInsecureContent::Yes : HasInsecureContent::No);
}
void WebPageProxy::didDestroyNavigation(uint64_t navigationID)
@@ -5218,14 +5218,14 @@
return pageClient().rootViewToScreen(viewRect);
}
-void WebPageProxy::accessibilityScreenToRootView(const IntPoint& screenPoint, IntPoint& windowPoint)
+void WebPageProxy::accessibilityScreenToRootView(const IntPoint& screenPoint, CompletionHandler<void(IntPoint)>&& completionHandler)
{
- windowPoint = pageClient().accessibilityScreenToRootView(screenPoint);
+ completionHandler(pageClient().accessibilityScreenToRootView(screenPoint));
}
-void WebPageProxy::rootViewToAccessibilityScreen(const IntRect& viewRect, IntRect& result)
+void WebPageProxy::rootViewToAccessibilityScreen(const IntRect& viewRect, CompletionHandler<void(IntRect)>&& completionHandler)
{
- result = pageClient().rootViewToAccessibilityScreen(viewRect);
+ completionHandler(pageClient().rootViewToAccessibilityScreen(viewRect));
}
void WebPageProxy::runBeforeUnloadConfirmPanel(uint64_t frameID, const SecurityOriginData& securityOrigin, const String& message, Messages::WebPageProxy::RunBeforeUnloadConfirmPanel::DelayedReply&& reply)
@@ -5307,7 +5307,7 @@
pageClient().showShareSheet(shareData, WTFMove(completionHandler));
}
-void WebPageProxy::printFrame(uint64_t frameID)
+void WebPageProxy::printFrame(uint64_t frameID, CompletionHandler<void()>&& completionHandler)
{
ASSERT(!m_isPerformingDOMPrintOperation);
m_isPerformingDOMPrintOperation = true;
@@ -5319,11 +5319,8 @@
endPrinting(); // Send a message synchronously while m_isPerformingDOMPrintOperation is still true.
m_isPerformingDOMPrintOperation = false;
-}
-void WebPageProxy::printMainFrame()
-{
- printFrame(m_mainFrame->frameID());
+ completionHandler();
}
void WebPageProxy::setMediaVolume(float volume)
@@ -5606,46 +5603,48 @@
m_backForwardList->addItem(WTFMove(item));
}
-void WebPageProxy::backForwardGoToItem(const BackForwardItemIdentifier& itemID, SandboxExtension::Handle& sandboxExtensionHandle)
+void WebPageProxy::backForwardGoToItem(const BackForwardItemIdentifier& itemID, CompletionHandler<void(SandboxExtension::Handle&&)>&& completionHandler)
{
// On process swap, we tell the previous process to ignore the load, which causes it so restore its current back forward item to its previous
// value. Since the load is really going on in a new provisional process, we want to ignore such requests from the committed process.
// Any real new load in the committed process would have cleared m_provisionalPage.
if (m_provisionalPage)
- return;
+ return completionHandler({ });
- backForwardGoToItemShared(m_process.copyRef(), itemID, sandboxExtensionHandle);
+ SandboxExtension::Handle sandboxExtensionHandle;
+ backForwardGoToItemShared(m_process.copyRef(), itemID, WTFMove(completionHandler));
}
-void WebPageProxy::backForwardGoToItemShared(Ref<WebProcessProxy>&& process, const BackForwardItemIdentifier& itemID, SandboxExtension::Handle& sandboxExtensionHandle)
+void WebPageProxy::backForwardGoToItemShared(Ref<WebProcessProxy>&& process, const BackForwardItemIdentifier& itemID, CompletionHandler<void(SandboxExtension::Handle&&)>&& completionHandler)
{
- WebBackForwardListItem* item = m_backForwardList->itemForID(itemID);
+ auto* item = m_backForwardList->itemForID(itemID);
if (!item)
- return;
+ return completionHandler({ });
+ SandboxExtension::Handle sandboxExtensionHandle;
bool createdExtension = maybeInitializeSandboxExtensionHandle(process, URL(URL(), item->url()), sandboxExtensionHandle);
if (createdExtension)
willAcquireUniversalFileReadSandboxExtension(process);
m_backForwardList->goToItem(*item);
+ completionHandler(WTFMove(sandboxExtensionHandle));
}
-void WebPageProxy::backForwardItemAtIndex(int32_t index, Optional<BackForwardItemIdentifier>& itemID)
+void WebPageProxy::backForwardItemAtIndex(int32_t index, CompletionHandler<void(Optional<BackForwardItemIdentifier>&&)>&& completionHandler)
{
- WebBackForwardListItem* item = m_backForwardList->itemAtIndex(index);
- if (item)
- itemID = item->itemID();
+ if (auto* item = m_backForwardList->itemAtIndex(index))
+ completionHandler(item->itemID());
else
- itemID = WTF::nullopt;
+ completionHandler(WTF::nullopt);
}
-void WebPageProxy::backForwardBackListCount(uint32_t& count)
+void WebPageProxy::backForwardBackListCount(CompletionHandler<void(uint32_t)>&& completionHandler)
{
- count = m_backForwardList->backListCount();
+ completionHandler(m_backForwardList->backListCount());
}
-void WebPageProxy::backForwardForwardListCount(uint32_t& count)
+void WebPageProxy::backForwardForwardListCount(CompletionHandler<void(uint32_t)>&& completionHandler)
{
- count = m_backForwardList->forwardListCount();
+ completionHandler(m_backForwardList->forwardListCount());
}
void WebPageProxy::compositionWasCanceled()
@@ -5669,14 +5668,15 @@
#endif
}
-void WebPageProxy::canUndoRedo(UndoOrRedo action, bool& result)
+void WebPageProxy::canUndoRedo(UndoOrRedo action, CompletionHandler<void(bool)>&& completionHandler)
{
- result = pageClient().canUndoRedo(action);
+ completionHandler(pageClient().canUndoRedo(action));
}
-void WebPageProxy::executeUndoRedo(UndoOrRedo action)
+void WebPageProxy::executeUndoRedo(UndoOrRedo action, CompletionHandler<void()>&& completionHandler)
{
pageClient().executeUndoRedo(action);
+ completionHandler();
}
void WebPageProxy::clearAllEditCommands()
@@ -6069,25 +6069,32 @@
}
#if USE(UNIFIED_TEXT_CHECKING)
-void WebPageProxy::checkTextOfParagraph(const String& text, OptionSet<TextCheckingType> checkingTypes, int32_t insertionPoint, Vector<TextCheckingResult>& results)
+void WebPageProxy::checkTextOfParagraph(const String& text, OptionSet<TextCheckingType> checkingTypes, int32_t insertionPoint, CompletionHandler<void(Vector<WebCore::TextCheckingResult>&&)>&& completionHandler)
{
- results = TextChecker::checkTextOfParagraph(spellDocumentTag(), text, insertionPoint, checkingTypes, m_initialCapitalizationEnabled);
+ completionHandler(TextChecker::checkTextOfParagraph(spellDocumentTag(), text, insertionPoint, checkingTypes, m_initialCapitalizationEnabled));
}
#endif
-void WebPageProxy::checkSpellingOfString(const String& text, int32_t& misspellingLocation, int32_t& misspellingLength)
+void WebPageProxy::checkSpellingOfString(const String& text, CompletionHandler<void(int32_t misspellingLocation, int32_t misspellingLength)>&& completionHandler)
{
+ int32_t misspellingLocation = 0;
+ int32_t misspellingLength = 0;
TextChecker::checkSpellingOfString(spellDocumentTag(), text, misspellingLocation, misspellingLength);
+ completionHandler(misspellingLocation, misspellingLength);
}
-void WebPageProxy::checkGrammarOfString(const String& text, Vector<GrammarDetail>& grammarDetails, int32_t& badGrammarLocation, int32_t& badGrammarLength)
+void WebPageProxy::checkGrammarOfString(const String& text, CompletionHandler<void(Vector<WebCore::GrammarDetail>&&, int32_t badGrammarLocation, int32_t badGrammarLength)>&& completionHandler)
{
+ Vector<GrammarDetail> grammarDetails;
+ int32_t badGrammarLocation = 0;
+ int32_t badGrammarLength = 0;
TextChecker::checkGrammarOfString(spellDocumentTag(), text, grammarDetails, badGrammarLocation, badGrammarLength);
+ completionHandler(WTFMove(grammarDetails), badGrammarLocation, badGrammarLength);
}
-void WebPageProxy::spellingUIIsShowing(bool& isShowing)
+void WebPageProxy::spellingUIIsShowing(CompletionHandler<void(bool)>&& completionHandler)
{
- isShowing = TextChecker::spellingUIIsShowing();
+ completionHandler(TextChecker::spellingUIIsShowing());
}
void WebPageProxy::updateSpellingUIWithMisspelledWord(const String& misspelledWord)
@@ -6100,9 +6107,11 @@
TextChecker::updateSpellingUIWithGrammarString(spellDocumentTag(), badGrammarPhrase, grammarDetail);
}
-void WebPageProxy::getGuessesForWord(const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses)
+void WebPageProxy::getGuessesForWord(const String& word, const String& context, int32_t insertionPoint, CompletionHandler<void(Vector<String>&&)>&& completionHandler)
{
+ Vector<String> guesses;
TextChecker::getGuessesForWord(spellDocumentTag(), word, context, insertionPoint, guesses, m_initialCapitalizationEnabled);
+ completionHandler(WTFMove(guesses));
}
void WebPageProxy::learnWord(const String& word)
@@ -7601,28 +7610,32 @@
#if PLATFORM(MAC)
-void WebPageProxy::substitutionsPanelIsShowing(bool& isShowing)
+void WebPageProxy::substitutionsPanelIsShowing(CompletionHandler<void(bool)>&& completionHandler)
{
- isShowing = TextChecker::substitutionsPanelIsShowing();
+ completionHandler(TextChecker::substitutionsPanelIsShowing());
}
void WebPageProxy::showCorrectionPanel(int32_t panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings)
{
+ // FIXME: Make AlternativeTextType an enum class with EnumTraits and serialize it instead of casting to/from an int32_t.
pageClient().showCorrectionPanel((AlternativeTextType)panelType, boundingBoxOfReplacedString, replacedString, replacementString, alternativeReplacementStrings);
}
void WebPageProxy::dismissCorrectionPanel(int32_t reason)
{
+ // FIXME: Make ReasonForDismissingAlternativeText an enum class with EnumTraits and serialize it instead of casting to/from an int32_t.
pageClient().dismissCorrectionPanel((ReasonForDismissingAlternativeText)reason);
}
-void WebPageProxy::dismissCorrectionPanelSoon(int32_t reason, String& result)
+void WebPageProxy::dismissCorrectionPanelSoon(int32_t reason, CompletionHandler<void(String)>&& completionHandler)
{
- result = pageClient().dismissCorrectionPanelSoon((ReasonForDismissingAlternativeText)reason);
+ // FIXME: Make ReasonForDismissingAlternativeText an enum class with EnumTraits and serialize it instead of casting to/from an int32_t.
+ completionHandler(pageClient().dismissCorrectionPanelSoon((ReasonForDismissingAlternativeText)reason));
}
void WebPageProxy::recordAutocorrectionResponse(int32_t response, const String& replacedString, const String& replacementString)
{
+ // FIXME: Make AutocorrectionResponse an enum class with EnumTraits and serialize it instead of casting to/from an int32_t.
pageClient().recordAutocorrectionResponse(static_cast<AutocorrectionResponse>(response), replacedString, replacementString);
}
@@ -7643,9 +7656,9 @@
pageClient().removeDictationAlternatives(dictationContext);
}
-void WebPageProxy::dictationAlternatives(uint64_t dictationContext, Vector<String>& result)
+void WebPageProxy::dictationAlternatives(uint64_t dictationContext, CompletionHandler<void(Vector<String>&&)>&& completionHandler)
{
- result = pageClient().dictationAlternatives(dictationContext);
+ completionHandler(pageClient().dictationAlternatives(dictationContext));
}
#endif
@@ -7725,7 +7738,7 @@
}
#if ENABLE(WEB_CRYPTO)
-void WebPageProxy::wrapCryptoKey(const Vector<uint8_t>& key, bool& succeeded, Vector<uint8_t>& wrappedKey)
+void WebPageProxy::wrapCryptoKey(const Vector<uint8_t>& key, CompletionHandler<void(bool, Vector<uint8_t>&&)>&& completionHandler)
{
PageClientProtector protector(pageClient());
@@ -7734,10 +7747,12 @@
if (auto keyData = m_navigationClient->webCryptoMasterKey(*this))
masterKey = keyData->dataReference().vector();
- succeeded = wrapSerializedCryptoKey(masterKey, key, wrappedKey);
+ Vector<uint8_t> wrappedKey;
+ bool succeeded = wrapSerializedCryptoKey(masterKey, key, wrappedKey);
+ completionHandler(succeeded, WTFMove(wrappedKey));
}
-void WebPageProxy::unwrapCryptoKey(const Vector<uint8_t>& wrappedKey, bool& succeeded, Vector<uint8_t>& key)
+void WebPageProxy::unwrapCryptoKey(const Vector<uint8_t>& wrappedKey, CompletionHandler<void(bool, Vector<uint8_t>&&)>&& completionHandler)
{
PageClientProtector protector(pageClient());
@@ -7746,16 +7761,20 @@
if (auto keyData = m_navigationClient->webCryptoMasterKey(*this))
masterKey = keyData->dataReference().vector();
- succeeded = unwrapSerializedCryptoKey(masterKey, wrappedKey, key);
+ Vector<uint8_t> key;
+ bool succeeded = unwrapSerializedCryptoKey(masterKey, wrappedKey, key);
+ completionHandler(succeeded, WTFMove(key));
}
#endif
-void WebPageProxy::signedPublicKeyAndChallengeString(unsigned keySizeIndex, const String& challengeString, const URL& url, String& result)
+void WebPageProxy::signedPublicKeyAndChallengeString(unsigned keySizeIndex, const String& challengeString, const URL& url, CompletionHandler<void(String)>&& completionHandler)
{
PageClientProtector protector(pageClient());
if (auto apiString = m_navigationClient->signedPublicKeyAndChallengeString(*this, keySizeIndex, API::String::create(challengeString), url))
- result = apiString->string();
+ return completionHandler(apiString->string());
+
+ completionHandler({ });
}
void WebPageProxy::addMIMETypeWithCustomContentProvider(const String& mimeType)
@@ -8596,8 +8615,9 @@
m_attachmentIdentifierToAttachmentMap.clear();
}
-void WebPageProxy::serializedAttachmentDataForIdentifiers(const Vector<String>& identifiers, Vector<WebCore::SerializedAttachmentData>& serializedData)
+void WebPageProxy::serializedAttachmentDataForIdentifiers(const Vector<String>& identifiers, CompletionHandler<void(Vector<WebCore::SerializedAttachmentData>&&)>&& completionHandler)
{
+ Vector<WebCore::SerializedAttachmentData> serializedData;
for (const auto& identifier : identifiers) {
auto attachment = attachmentForIdentifier(identifier);
if (!attachment)
@@ -8609,6 +8629,7 @@
serializedData.append({ identifier, attachment->mimeType(), data.releaseNonNull() });
}
+ completionHandler(WTFMove(serializedData));
}
void WebPageProxy::didInvalidateDataForAttachment(API::Attachment& attachment)
@@ -8839,13 +8860,14 @@
return *m_speechSynthesisData;
}
-void WebPageProxy::speechSynthesisVoiceList(Vector<WebSpeechSynthesisVoice>& result)
+void WebPageProxy::speechSynthesisVoiceList(CompletionHandler<void(Vector<WebSpeechSynthesisVoice>&&)>&& completionHandler)
{
auto& voiceList = speechSynthesisData().synthesizer->voiceList();
- for (auto& voice : voiceList) {
- WebSpeechSynthesisVoice v { voice->voiceURI(), voice->name(), voice->lang(), voice->localService(), voice->isDefault() };
- result.append(WTFMove(v));
- }
+ Vector<WebSpeechSynthesisVoice> result;
+ result.reserveInitialCapacity(voiceList.size());
+ for (auto& voice : voiceList)
+ result.uncheckedAppend(WebSpeechSynthesisVoice { voice->voiceURI(), voice->name(), voice->lang(), voice->localService(), voice->isDefault() });
+ completionHandler(WTFMove(result));
}
void WebPageProxy::speechSynthesisSpeak(const String& text, const String& lang, float volume, float rate, float pitch, MonotonicTime startTime, const String& voiceURI, const String& voiceName, const String& voiceLang, bool localService, bool defaultVoice, CompletionHandler<void()>&& completionHandler)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2019-03-21 21:06:35 UTC (rev 243327)
@@ -1154,14 +1154,12 @@
#endif
#if ENABLE(PDFKIT_PLUGIN)
- void showPDFContextMenu(const WebKit::PDFContextMenu&, Optional<int32_t>& selectedIndex);
+ void showPDFContextMenu(const WebKit::PDFContextMenu&, CompletionHandler<void(Optional<int32_t>&&)>&&);
#endif
WebCore::IntRect visibleScrollerThumbRect() const { return m_visibleScrollerThumbRect; }
uint64_t renderTreeSize() const { return m_renderTreeSize; }
- void printMainFrame();
-
void setMediaVolume(float);
void setMuted(WebCore::MediaProducer::MutedStateFlags);
void setMayStartMediaWhenInWindow(bool);
@@ -1259,11 +1257,11 @@
#endif
#if ENABLE(WEB_CRYPTO)
- void wrapCryptoKey(const Vector<uint8_t>&, bool& succeeded, Vector<uint8_t>&);
- void unwrapCryptoKey(const Vector<uint8_t>&, bool& succeeded, Vector<uint8_t>&);
+ void wrapCryptoKey(const Vector<uint8_t>&, CompletionHandler<void(bool, Vector<uint8_t>&&)>&&);
+ void unwrapCryptoKey(const Vector<uint8_t>&, CompletionHandler<void(bool, Vector<uint8_t>&&)>&&);
#endif
- void signedPublicKeyAndChallengeString(unsigned keySizeIndex, const String& challengeString, const URL&, String& result);
+ void signedPublicKeyAndChallengeString(unsigned keySizeIndex, const String& challengeString, const URL&, CompletionHandler<void(String)>&&);
void takeSnapshot(WebCore::IntRect, WebCore::IntSize bitmapSize, SnapshotOptions, WTF::Function<void (const ShareableBitmap::Handle&, CallbackBase::Error)>&&);
@@ -1323,9 +1321,9 @@
void installActivityStateChangeCompletionHandler(Function<void()>&&);
#if USE(UNIFIED_TEXT_CHECKING)
- void checkTextOfParagraph(const String& text, OptionSet<WebCore::TextCheckingType> checkingTypes, int32_t insertionPoint, Vector<WebCore::TextCheckingResult>& results);
+ void checkTextOfParagraph(const String& text, OptionSet<WebCore::TextCheckingType> checkingTypes, int32_t insertionPoint, CompletionHandler<void(Vector<WebCore::TextCheckingResult>&&)>&&);
#endif
- void getGuessesForWord(const String& word, const String& context, int32_t insertionPoint, Vector<String>& guesses);
+ void getGuessesForWord(const String& word, const String& context, int32_t insertionPoint, CompletionHandler<void(Vector<String>&&)>&&);
void setShouldDispatchFakeMouseMoveEvents(bool);
@@ -1433,7 +1431,7 @@
RefPtr<API::Attachment> attachmentForIdentifier(const String& identifier) const;
void insertAttachment(Ref<API::Attachment>&&, Function<void(CallbackBase::Error)>&&);
void updateAttachmentAttributes(const API::Attachment&, Function<void(CallbackBase::Error)>&&);
- void serializedAttachmentDataForIdentifiers(const Vector<String>&, Vector<WebCore::SerializedAttachmentData>&);
+ void serializedAttachmentDataForIdentifiers(const Vector<String>&, CompletionHandler<void(Vector<WebCore::SerializedAttachmentData>&&)>&&);
void registerAttachmentIdentifier(const String&);
void didInvalidateDataForAttachment(API::Attachment&);
@@ -1483,7 +1481,7 @@
void startURLSchemeTaskShared(Ref<WebProcessProxy>&&, URLSchemeTaskParameters&&);
void loadDataWithNavigationShared(Ref<WebProcessProxy>&&, API::Navigation&, const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
void loadRequestWithNavigationShared(Ref<WebProcessProxy>&&, API::Navigation&, WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData, WebCore::ShouldTreatAsContinuingLoad, Optional<WebsitePoliciesData>&& = WTF::nullopt);
- void backForwardGoToItemShared(Ref<WebProcessProxy>&&, const WebCore::BackForwardItemIdentifier&, SandboxExtension::Handle&);
+ void backForwardGoToItemShared(Ref<WebProcessProxy>&&, const WebCore::BackForwardItemIdentifier&, CompletionHandler<void(SandboxExtension::Handle&&)>&&);
void decidePolicyForNavigationActionSyncShared(Ref<WebProcessProxy>&&, uint64_t frameID, bool isMainFrame, WebCore::SecurityOriginData&&, WebCore::PolicyCheckIdentifier, uint64_t navigationID, NavigationActionData&&,
FrameInfoData&&, uint64_t originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&&, IPC::FormDataReference&& requestBody,
WebCore::ResourceResponse&& redirectResponse, const UserData&, Messages::WebPageProxy::DecidePolicyForNavigationActionSync::DelayedReply&&);
@@ -1495,7 +1493,7 @@
void clearAdClickAttribution(CompletionHandler<void()>&&);
#if ENABLE(SPEECH_SYNTHESIS)
- void speechSynthesisVoiceList(Vector<WebSpeechSynthesisVoice>& result);
+ void speechSynthesisVoiceList(CompletionHandler<void(Vector<WebSpeechSynthesisVoice>&&)>&&);
void speechSynthesisSpeak(const String&, const String&, float volume, float rate, float pitch, MonotonicTime startTime, const String& voiceURI, const String& voiceName, const String& voiceLang, bool localService, bool defaultVoice, CompletionHandler<void()>&&);
void speechSynthesisCancel();
void speechSynthesisPause(CompletionHandler<void()>&&);
@@ -1586,7 +1584,7 @@
void didFinishProgress();
void setNetworkRequestsInProgress(bool);
- void hasInsecureContent(WebCore::HasInsecureContent&);
+ void hasInsecureContent(CompletionHandler<void(WebCore::HasInsecureContent)>&&);
void didDestroyNavigation(uint64_t navigationID);
@@ -1642,14 +1640,14 @@
void setIsResizable(bool isResizable);
void screenToRootView(const WebCore::IntPoint& screenPoint, Messages::WebPageProxy::ScreenToRootView::DelayedReply&&);
void rootViewToScreen(const WebCore::IntRect& viewRect, Messages::WebPageProxy::RootViewToScreen::DelayedReply&&);
- void accessibilityScreenToRootView(const WebCore::IntPoint& screenPoint, WebCore::IntPoint& windowPoint);
- void rootViewToAccessibilityScreen(const WebCore::IntRect& viewRect, WebCore::IntRect& result);
+ void accessibilityScreenToRootView(const WebCore::IntPoint& screenPoint, CompletionHandler<void(WebCore::IntPoint)>&&);
+ void rootViewToAccessibilityScreen(const WebCore::IntRect& viewRect, CompletionHandler<void(WebCore::IntRect)>&&);
void runBeforeUnloadConfirmPanel(uint64_t frameID, const WebCore::SecurityOriginData&, const String& message, Messages::WebPageProxy::RunBeforeUnloadConfirmPanel::DelayedReply&&);
void didChangeViewportProperties(const WebCore::ViewportAttributes&);
void pageDidScroll();
void runOpenPanel(uint64_t frameID, const WebCore::SecurityOriginData&, const WebCore::FileChooserSettings&);
void showShareSheet(const WebCore::ShareDataWithParsedURL&, ShareSheetCallbackID);
- void printFrame(uint64_t frameID);
+ void printFrame(uint64_t frameID, CompletionHandler<void()>&&);
void exceededDatabaseQuota(uint64_t frameID, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentOriginUsage, uint64_t currentDatabaseUsage, uint64_t expectedUsage, Messages::WebPageProxy::ExceededDatabaseQuota::DelayedReply&&);
void reachedApplicationCacheOriginQuota(const String& originIdentifier, uint64_t currentQuota, uint64_t totalBytesNeeded, Messages::WebPageProxy::ReachedApplicationCacheOriginQuota::DelayedReply&&);
void requestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, String originIdentifier);
@@ -1716,10 +1714,10 @@
// Back/Forward list management
void backForwardAddItem(BackForwardListItemState&&);
- void backForwardGoToItem(const WebCore::BackForwardItemIdentifier&, SandboxExtension::Handle&);
- void backForwardItemAtIndex(int32_t index, Optional<WebCore::BackForwardItemIdentifier>&);
- void backForwardBackListCount(uint32_t& count);
- void backForwardForwardListCount(uint32_t& count);
+ void backForwardGoToItem(const WebCore::BackForwardItemIdentifier&, CompletionHandler<void(SandboxExtension::Handle&&)>&&);
+ void backForwardItemAtIndex(int32_t index, CompletionHandler<void(Optional<WebCore::BackForwardItemIdentifier>&&)>&&);
+ void backForwardBackListCount(CompletionHandler<void(uint32_t)>&&);
+ void backForwardForwardListCount(CompletionHandler<void(uint32_t)>&&);
void backForwardClear();
// Undo management
@@ -1726,12 +1724,12 @@
void registerEditCommandForUndo(WebUndoStepID commandID, const String& label);
void registerInsertionUndoGrouping();
void clearAllEditCommands();
- void canUndoRedo(UndoOrRedo, bool& result);
- void executeUndoRedo(UndoOrRedo);
+ void canUndoRedo(UndoOrRedo, CompletionHandler<void(bool)>&&);
+ void executeUndoRedo(UndoOrRedo, CompletionHandler<void()>&&);
// Keyboard handling
#if PLATFORM(COCOA)
- void executeSavedCommandBySelector(const String& selector, bool& handled);
+ void executeSavedCommandBySelector(const String& selector, CompletionHandler<void(bool)>&&);
#endif
#if PLATFORM(GTK)
@@ -1755,11 +1753,11 @@
// Search popup results
void saveRecentSearches(const String&, const Vector<WebCore::RecentSearch>&);
- void loadRecentSearches(const String&, Vector<WebCore::RecentSearch>&);
+ void loadRecentSearches(const String&, CompletionHandler<void(Vector<WebCore::RecentSearch>&&)>&&);
#if PLATFORM(COCOA)
// Speech.
- void getIsSpeaking(bool&);
+ void getIsSpeaking(CompletionHandler<void(bool)>&&);
void speak(const String&);
void stopSpeaking();
@@ -1782,9 +1780,9 @@
#endif
// Spelling and grammar.
- void checkSpellingOfString(const String& text, int32_t& misspellingLocation, int32_t& misspellingLength);
- void checkGrammarOfString(const String& text, Vector<WebCore::GrammarDetail>&, int32_t& badGrammarLocation, int32_t& badGrammarLength);
- void spellingUIIsShowing(bool&);
+ void checkSpellingOfString(const String& text, CompletionHandler<void(int32_t misspellingLocation, int32_t misspellingLength)>&&);
+ void checkGrammarOfString(const String& text, CompletionHandler<void(Vector<WebCore::GrammarDetail>&&, int32_t badGrammarLocation, int32_t badGrammarLength)>&&);
+ void spellingUIIsShowing(CompletionHandler<void(bool)>&&);
void updateSpellingUIWithMisspelledWord(const String& misspelledWord);
void updateSpellingUIWithGrammarString(const String& badGrammarPhrase, const WebCore::GrammarDetail&);
void learnWord(const String& word);
@@ -1825,7 +1823,7 @@
void autocorrectionDataCallback(const Vector<WebCore::FloatRect>&, const String& fontName, float fontSize, uint64_t fontTraits, CallbackID);
void autocorrectionContextCallback(const WebAutocorrectionContext&, CallbackID);
void selectionContextCallback(const String& selectedText, const String& beforeText, const String& afterText, CallbackID);
- void interpretKeyEvent(const EditorState&, bool isCharEvent, bool& handled);
+ void interpretKeyEvent(const EditorState&, bool isCharEvent, CompletionHandler<void(bool)>&&);
void showPlaybackTargetPicker(bool hasVideo, const WebCore::IntRect& elementRect, WebCore::RouteSharingPolicy, const String&);
void selectionRectsCallback(const Vector<WebCore::SelectionRect>&, CallbackID);
@@ -1856,16 +1854,16 @@
#endif
#if PLATFORM(MAC)
- void substitutionsPanelIsShowing(bool&);
+ void substitutionsPanelIsShowing(CompletionHandler<void(bool)>&&);
void showCorrectionPanel(int32_t panelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings);
void dismissCorrectionPanel(int32_t reason);
- void dismissCorrectionPanelSoon(int32_t reason, String& result);
+ void dismissCorrectionPanelSoon(int32_t reason, CompletionHandler<void(String)>&&);
void recordAutocorrectionResponse(int32_t responseType, const String& replacedString, const String& replacementString);
#if USE(DICTATION_ALTERNATIVES)
void showDictationAlternativeUI(const WebCore::FloatRect& boundingBoxOfDictatedText, uint64_t dictationContext);
void removeDictationAlternatives(uint64_t dictationContext);
- void dictationAlternatives(uint64_t dictationContext, Vector<String>& result);
+ void dictationAlternatives(uint64_t dictationContext, CompletionHandler<void(Vector<String>&&)>&&);
#endif
void setEditableElementIsFocused(bool);
@@ -1909,7 +1907,7 @@
void setRenderTreeSize(uint64_t treeSize) { m_renderTreeSize = treeSize; }
#if PLATFORM(X11)
- void createPluginContainer(uint64_t& windowID);
+ void createPluginContainer(CompletionHandler<void(uint64_t)>&&);
void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID);
void windowedPluginVisibilityDidChange(bool isVisible, uint64_t windowID);
#endif
@@ -1974,7 +1972,7 @@
void didResignInputElementStrongPasswordAppearance(const UserData&);
void handleMessage(IPC::Connection&, const String& messageName, const UserData& messageBody);
- void handleSynchronousMessage(IPC::Connection&, const String& messageName, const UserData& messageBody, UserData& returnUserData);
+ void handleSynchronousMessage(IPC::Connection&, const String& messageName, const UserData& messageBody, CompletionHandler<void(UserData&&)>&&);
void viewIsBecomingVisible();
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2019-03-21 21:06:35 UTC (rev 243327)
@@ -61,8 +61,8 @@
GetWindowFrame() -> (WebCore::FloatRect windowFrame) Delayed
ScreenToRootView(WebCore::IntPoint screenPoint) -> (WebCore::IntPoint windowPoint) Delayed
RootViewToScreen(WebCore::IntRect rect) -> (WebCore::IntRect screenFrame) Delayed
- AccessibilityScreenToRootView(WebCore::IntPoint screenPoint) -> (WebCore::IntPoint windowPoint) LegacySync
- RootViewToAccessibilityScreen(WebCore::IntRect rect) -> (WebCore::IntRect screenFrame) LegacySync
+ AccessibilityScreenToRootView(WebCore::IntPoint screenPoint) -> (WebCore::IntPoint windowPoint) Delayed
+ RootViewToAccessibilityScreen(WebCore::IntRect rect) -> (WebCore::IntRect screenFrame) Delayed
#if PLATFORM(COCOA)
ShowValidationMessage(WebCore::IntRect anchorRect, String message)
@@ -73,7 +73,7 @@
PageDidScroll()
RunOpenPanel(uint64_t frameID, struct WebCore::SecurityOriginData frameSecurityOrigin, struct WebCore::FileChooserSettings parameters)
ShowShareSheet(struct WebCore::ShareDataWithParsedURL shareData, uint64_t callbackID)
- PrintFrame(uint64_t frameID) -> () LegacySync
+ PrintFrame(uint64_t frameID) -> () Delayed
RunModal()
NotifyScrollerThumbIsVisibleInRect(WebCore::IntRect scrollerThumb)
RecommendedScrollbarStyleDidChange(int32_t newStyle)
@@ -143,7 +143,7 @@
DidChangeMainDocument(uint64_t frameID);
DidDestroyNavigation(uint64_t navigationID)
- HasInsecureContent() -> (enum:bool WebCore::HasInsecureContent hasInsecureContent) LegacySync
+ HasInsecureContent() -> (enum:bool WebCore::HasInsecureContent hasInsecureContent) Delayed
MainFramePluginHandlesPageScaleGestureDidChange(bool mainFramePluginHandlesPageScaleGesture)
@@ -187,7 +187,7 @@
AutocorrectionDataCallback(Vector<WebCore::FloatRect> textRects, String fontName, double fontSize, uint64_t traits, WebKit::CallbackID callbackID)
AutocorrectionContextCallback(struct WebKit::WebAutocorrectionContext context, WebKit::CallbackID callbackID)
SelectionContextCallback(String selectedText, String beforeText, String afterText, WebKit::CallbackID callbackID)
- InterpretKeyEvent(struct WebKit::EditorState state, bool isCharEvent) -> (bool handled) LegacySync
+ InterpretKeyEvent(struct WebKit::EditorState state, bool isCharEvent) -> (bool handled) Delayed
DidReceivePositionInformation(struct WebKit::InteractionInformationAtPosition information)
SaveImageToLibrary(WebKit::SharedMemory::Handle handle, uint64_t size)
ShowPlaybackTargetPicker(bool hasVideo, WebCore::IntRect elementRect, enum:uint8_t WebCore::RouteSharingPolicy policy, String routingContextUID)
@@ -223,10 +223,10 @@
# BackForward messages
BackForwardAddItem(struct WebKit::BackForwardListItemState itemState)
- BackForwardGoToItem(struct WebCore::BackForwardItemIdentifier itemID) -> (WebKit::SandboxExtension::Handle sandboxExtensionHandle) LegacySync
- BackForwardItemAtIndex(int32_t itemIndex) -> (Optional<WebCore::BackForwardItemIdentifier> itemID) LegacySync
- BackForwardBackListCount() -> (uint32_t count) LegacySync
- BackForwardForwardListCount() -> (uint32_t count) LegacySync
+ BackForwardGoToItem(struct WebCore::BackForwardItemIdentifier itemID) -> (WebKit::SandboxExtension::Handle sandboxExtensionHandle) Delayed
+ BackForwardItemAtIndex(int32_t itemIndex) -> (Optional<WebCore::BackForwardItemIdentifier> itemID) Delayed
+ BackForwardBackListCount() -> (uint32_t count) Delayed
+ BackForwardForwardListCount() -> (uint32_t count) Delayed
BackForwardClear()
WillGoToBackForwardListItem(struct WebCore::BackForwardItemIdentifier itemID, bool inPageCache)
@@ -234,8 +234,8 @@
RegisterEditCommandForUndo(uint64_t commandID, String label)
ClearAllEditCommands()
RegisterInsertionUndoGrouping()
- CanUndoRedo(enum:bool WebKit::UndoOrRedo undoOrRedo) -> (bool result) LegacySync
- ExecuteUndoRedo(enum:bool WebKit::UndoOrRedo undoOrRedo) -> () LegacySync
+ CanUndoRedo(enum:bool WebKit::UndoOrRedo undoOrRedo) -> (bool result) Delayed
+ ExecuteUndoRedo(enum:bool WebKit::UndoOrRedo undoOrRedo) -> () Delayed
# Diagnostic messages logging
LogDiagnosticMessage(String message, String description, enum:bool WebCore::ShouldSample shouldSample)
@@ -296,14 +296,14 @@
# Spelling and grammar messages
#if USE(UNIFIED_TEXT_CHECKING)
- CheckTextOfParagraph(String text, OptionSet<WebCore::TextCheckingType> checkingTypes, int32_t insertionPoint) -> (Vector<WebCore::TextCheckingResult> results) LegacySync
+ CheckTextOfParagraph(String text, OptionSet<WebCore::TextCheckingType> checkingTypes, int32_t insertionPoint) -> (Vector<WebCore::TextCheckingResult> results) Delayed
#endif
- CheckSpellingOfString(String text) -> (int32_t misspellingLocation, int32_t misspellingLength) LegacySync
- CheckGrammarOfString(String text) -> (Vector<WebCore::GrammarDetail> results, int32_t badGrammarLocation, int32_t badGrammarLength) LegacySync
- SpellingUIIsShowing() -> (bool isShowing) LegacySync
+ CheckSpellingOfString(String text) -> (int32_t misspellingLocation, int32_t misspellingLength) Delayed
+ CheckGrammarOfString(String text) -> (Vector<WebCore::GrammarDetail> results, int32_t badGrammarLocation, int32_t badGrammarLength) Delayed
+ SpellingUIIsShowing() -> (bool isShowing) Delayed
UpdateSpellingUIWithMisspelledWord(String misspelledWord)
UpdateSpellingUIWithGrammarString(String badGrammarPhrase, struct WebCore::GrammarDetail grammarDetail)
- GetGuessesForWord(String word, String context, int32_t insertionPoint) -> (Vector<String> guesses) LegacySync
+ GetGuessesForWord(String word, String context, int32_t insertionPoint) -> (Vector<String> guesses) Delayed
LearnWord(String word)
IgnoreWord(String word)
RequestCheckingOfString(uint64_t requestID, WebCore::TextCheckingRequestData request, int32_t insertionPoint)
@@ -336,7 +336,7 @@
DidPerformDictionaryLookup(struct WebCore::DictionaryPopupInfo dictionaryPopupInfo)
# Keyboard input support messages
- ExecuteSavedCommandBySelector(String selector) -> (bool handled) LegacySync
+ ExecuteSavedCommandBySelector(String selector) -> (bool handled) Delayed
# Remote accessibility messages
RegisterWebProcessAccessibilityToken(IPC::DataReference data)
@@ -346,7 +346,7 @@
SetPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, uint64_t complexTextInputState)
# Speech messages
- GetIsSpeaking() -> (bool isSpeaking) LegacySync
+ GetIsSpeaking() -> (bool isSpeaking) Delayed
Speak(String string)
StopSpeaking()
@@ -364,7 +364,7 @@
#endif
#if USE(APPKIT)
- SubstitutionsPanelIsShowing() -> (bool isShowing) LegacySync
+ SubstitutionsPanelIsShowing() -> (bool isShowing) Delayed
#endif
#if USE(AUTOMATIC_TEXT_REPLACEMENT)
toggleSmartInsertDelete()
@@ -377,7 +377,7 @@
# Autocorrection messages
ShowCorrectionPanel(int32_t panelType, WebCore::FloatRect boundingBoxOfReplacedString, String replacedString, String replacementString, Vector<String> alternativeReplacementStrings)
DismissCorrectionPanel(int32_t reason)
- DismissCorrectionPanelSoon(int32_t reason) -> (String result) LegacySync
+ DismissCorrectionPanelSoon(int32_t reason) -> (String result) Delayed
RecordAutocorrectionResponse(int32_t response, String replacedString, String replacementString);
SetEditableElementIsFocused(bool editableElementIsFocused)
@@ -386,12 +386,12 @@
#if USE(DICTATION_ALTERNATIVES)
ShowDictationAlternativeUI(WebCore::FloatRect boundingBoxOfDictatedText, uint64_t dictationContext)
RemoveDictationAlternatives(uint64_t dictationContext)
- DictationAlternatives(uint64_t dictationContext) -> (Vector<String> alternatives) LegacySync
+ DictationAlternatives(uint64_t dictationContext) -> (Vector<String> alternatives) Delayed
#endif
#if PLATFORM(X11)
# X11 windowed plugin messages
- CreatePluginContainer() -> (uint64_t windowID) LegacySync
+ CreatePluginContainer() -> (uint64_t windowID) Delayed
WindowedPluginGeometryDidChange(WebCore::IntRect frameRect, WebCore::IntRect clipRect, uint64_t windowID)
WindowedPluginVisibilityDidChange(bool isVisible, uint64_t windowID)
#endif
@@ -429,7 +429,7 @@
# Search popup menus
SaveRecentSearches(String name, Vector<WebCore::RecentSearch> searchItems)
- LoadRecentSearches(String name) -> (Vector<WebCore::RecentSearch> result) LegacySync
+ LoadRecentSearches(String name) -> (Vector<WebCore::RecentSearch> result) Delayed
SavePDFToFileInDownloadsFolder(String suggestedFilename, URL originatingURL, IPC::DataReference data)
@@ -439,7 +439,7 @@
#endif
#if ENABLE(PDFKIT_PLUGIN)
- ShowPDFContextMenu(struct WebKit::PDFContextMenu contextMenu) -> (Optional<int32_t> selectedItem) LegacySync
+ ShowPDFContextMenu(struct WebKit::PDFContextMenu contextMenu) -> (Optional<int32_t> selectedItem) Delayed
#endif
#if ENABLE(NETSCAPE_PLUGIN_API)
@@ -451,8 +451,8 @@
DidSaveToPageCache()
#if ENABLE(WEB_CRYPTO)
- WrapCryptoKey(Vector<uint8_t> key) -> (bool succeeded, Vector<uint8_t> wrappedKey) LegacySync
- UnwrapCryptoKey(Vector<uint8_t> wrappedKey) -> (bool succeeded, Vector<uint8_t> key) LegacySync
+ WrapCryptoKey(Vector<uint8_t> key) -> (bool succeeded, Vector<uint8_t> wrappedKey) Delayed
+ UnwrapCryptoKey(Vector<uint8_t> wrappedKey) -> (bool succeeded, Vector<uint8_t> key) Delayed
#endif
@@ -485,7 +485,7 @@
DidPerformImmediateActionHitTest(struct WebKit::WebHitTestResultData result, bool contentPreventsDefault, WebKit::UserData userData)
#endif
HandleMessage(String messageName, WebKit::UserData messageBody) WantsConnection
- HandleSynchronousMessage(String messageName, WebKit::UserData messageBody) -> (WebKit::UserData returnData) LegacySync WantsConnection
+ HandleSynchronousMessage(String messageName, WebKit::UserData messageBody) -> (WebKit::UserData returnData) Delayed WantsConnection
HandleAutoFillButtonClick(WebKit::UserData userData)
@@ -546,13 +546,13 @@
CloneAttachmentData(String fromIdentifier, String toIdentifier)
DidInsertAttachmentWithIdentifier(String identifier, String source, bool hasEnclosingImage)
DidRemoveAttachmentWithIdentifier(String identifier)
- SerializedAttachmentDataForIdentifiers(Vector<String> identifiers) -> (Vector<WebCore::SerializedAttachmentData> seralizedData) LegacySync
+ SerializedAttachmentDataForIdentifiers(Vector<String> identifiers) -> (Vector<WebCore::SerializedAttachmentData> seralizedData) Delayed
#endif
- SignedPublicKeyAndChallengeString(unsigned keySizeIndex, String challengeString, URL url) -> (String result) LegacySync
+ SignedPublicKeyAndChallengeString(unsigned keySizeIndex, String challengeString, URL url) -> (String result) Delayed
#if ENABLE(SPEECH_SYNTHESIS)
- SpeechSynthesisVoiceList() -> (Vector<WebKit::WebSpeechSynthesisVoice> voiceList) LegacySync
+ SpeechSynthesisVoiceList() -> (Vector<WebKit::WebSpeechSynthesisVoice> voiceList) Delayed
SpeechSynthesisSpeak(String text, String lang, float volume, float rate, float pitch, MonotonicTime startTime, String voiceURI, String voiceName, String voiceLang, bool localService, bool defaultVoice) -> () Async
SpeechSynthesisCancel()
SpeechSynthesisPause() -> () Async
Modified: trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp 2019-03-21 21:06:35 UTC (rev 243327)
@@ -65,9 +65,10 @@
notImplemented();
}
-void WebPageProxy::loadRecentSearches(const String&, Vector<WebCore::RecentSearch>&)
+void WebPageProxy::loadRecentSearches(const String&, CompletionHandler<void(Vector<WebCore::RecentSearch>&&)>&& completionHandler)
{
notImplemented();
+ completionHandler({ });
}
void WebsiteDataStore::platformRemoveRecentSearches(WallTime oldestTimeToRemove)
@@ -102,7 +103,7 @@
return FALSE;
}
-void WebPageProxy::createPluginContainer(uint64_t& windowID)
+void WebPageProxy::createPluginContainer(CompletionHandler<void(uint64_t)>&& completionHandler)
{
RELEASE_ASSERT(WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::X11);
GtkWidget* socket = gtk_socket_new();
@@ -109,8 +110,9 @@
g_signal_connect(socket, "plug-removed", G_CALLBACK(pluginContainerPlugRemoved), 0);
gtk_container_add(GTK_CONTAINER(viewWidget()), socket);
- windowID = static_cast<uint64_t>(gtk_socket_get_id(GTK_SOCKET(socket)));
+ uint64_t windowID = static_cast<uint64_t>(gtk_socket_get_id(GTK_SOCKET(socket)));
pluginWindowMap().set(windowID, socket);
+ completionHandler(windowID);
}
void WebPageProxy::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID)
Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2019-03-21 21:06:35 UTC (rev 243327)
@@ -78,9 +78,10 @@
return standardUserAgentWithApplicationName(applicationNameForUserAgent);
}
-void WebPageProxy::getIsSpeaking(bool&)
+void WebPageProxy::getIsSpeaking(CompletionHandler<void(bool)>&& completionHandler)
{
notImplemented();
+ completionHandler(false);
}
void WebPageProxy::speak(const String&)
@@ -741,10 +742,10 @@
m_process->send(Messages::WebPage::MoveSelectionByOffset(offset, callbackID), m_pageID);
}
-void WebPageProxy::interpretKeyEvent(const EditorState& state, bool isCharEvent, bool& handled)
+void WebPageProxy::interpretKeyEvent(const EditorState& state, bool isCharEvent, CompletionHandler<void(bool)>&& completionHandler)
{
m_editorState = state;
- handled = pageClient().interpretKeyEvent(m_keyEventQueue.first(), isCharEvent);
+ completionHandler(pageClient().interpretKeyEvent(m_keyEventQueue.first(), isCharEvent));
}
// Complex text input support for plug-ins.
@@ -791,9 +792,10 @@
notImplemented();
}
-void WebPageProxy::executeSavedCommandBySelector(const String&, bool&)
+void WebPageProxy::executeSavedCommandBySelector(const String&, CompletionHandler<void(bool)>&& completionHandler)
{
notImplemented();
+ completionHandler(false);
}
bool WebPageProxy::shouldDelayWindowOrderingForEvent(const WebKit::WebMouseEvent&)
Modified: trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/mac/WebPageProxyMac.mm 2019-03-21 21:06:35 UTC (rev 243327)
@@ -131,10 +131,10 @@
return standardUserAgentWithApplicationName(applicationNameForUserAgent);
}
-void WebPageProxy::getIsSpeaking(bool& isSpeaking)
+void WebPageProxy::getIsSpeaking(CompletionHandler<void(bool)>&& completionHandler)
{
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanCommunicateWithWindowServer));
- isSpeaking = [NSApp isSpeaking];
+ completionHandler([NSApp isSpeaking]);
}
void WebPageProxy::speak(const String& string)
@@ -404,11 +404,11 @@
pageClient().setPluginComplexTextInputState(pluginComplexTextInputIdentifier, static_cast<PluginComplexTextInputState>(pluginComplexTextInputState));
}
-void WebPageProxy::executeSavedCommandBySelector(const String& selector, bool& handled)
+void WebPageProxy::executeSavedCommandBySelector(const String& selector, CompletionHandler<void(bool)>&& completionHandler)
{
MESSAGE_CHECK(isValidKeypressCommandName(selector));
- handled = pageClient().executeSavedCommandBySelector(selector);
+ completionHandler(pageClient().executeSavedCommandBySelector(selector));
}
bool WebPageProxy::shouldDelayWindowOrderingForEvent(const WebKit::WebMouseEvent& event)
@@ -548,10 +548,10 @@
}
#if ENABLE(PDFKIT_PLUGIN)
-void WebPageProxy::showPDFContextMenu(const WebKit::PDFContextMenu& contextMenu, Optional<int32_t>& selectedIndex)
+void WebPageProxy::showPDFContextMenu(const WebKit::PDFContextMenu& contextMenu, CompletionHandler<void(Optional<int32_t>&&)>&& completionHandler)
{
if (!contextMenu.m_items.size())
- return;
+ return completionHandler(WTF::nullopt);
RetainPtr<WKPDFMenuTarget> menuTarget = adoptNS([[WKPDFMenuTarget alloc] init]);
RetainPtr<NSMenu> nsMenu = adoptNS([[NSMenu alloc] init]);
@@ -584,7 +584,8 @@
[NSMenu popUpContextMenu:nsMenu.get() withEvent:event forView:view];
if (auto selectedMenuItem = [menuTarget selectedMenuItem])
- selectedIndex = [selectedMenuItem tag];
+ return completionHandler([selectedMenuItem tag]);
+ completionHandler(WTF::nullopt);
}
#endif
Modified: trunk/Source/WebKit/UIProcess/win/WebPageProxyWin.cpp (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/win/WebPageProxyWin.cpp 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/win/WebPageProxyWin.cpp 2019-03-21 21:06:35 UTC (rev 243327)
@@ -50,12 +50,14 @@
return WebCore::SearchPopupMenuDB::singleton().saveRecentSearches(name, searchItems);
}
-void WebPageProxy::loadRecentSearches(const String& name, Vector<WebCore::RecentSearch>& searchItems)
+void WebPageProxy::loadRecentSearches(const String& name, CompletionHandler<void(Vector<WebCore::RecentSearch>&&)>&& completionHandler)
{
if (!name)
- return;
+ return completionHandler({ });
- return WebCore::SearchPopupMenuDB::singleton().loadRecentSearches(name, searchItems);
+ Vector<WebCore::RecentSearch> searchItems;
+ WebCore::SearchPopupMenuDB::singleton().loadRecentSearches(name, searchItems);
+ completionHandler(WTFMove(searchItems));
}
void WebPageProxy::editorStateChanged(const EditorState& editorState)
Modified: trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp (243326 => 243327)
--- trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp 2019-03-21 21:04:40 UTC (rev 243326)
+++ trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp 2019-03-21 21:06:35 UTC (rev 243327)
@@ -53,9 +53,10 @@
notImplemented();
}
-void WebPageProxy::loadRecentSearches(const String&, Vector<WebCore::RecentSearch>&)
+void WebPageProxy::loadRecentSearches(const String&, CompletionHandler<void(Vector<WebCore::RecentSearch>&&)>&& completionHandler)
{
notImplemented();
+ completionHandler({ });
}
void WebsiteDataStore::platformRemoveRecentSearches(WallTime)