Title: [271174] trunk
Revision
271174
Author
[email protected]
Date
2021-01-05 14:30:31 -0800 (Tue, 05 Jan 2021)

Log Message

Unreviewed, reverting r271169.

Caused
TestWebKitAPI.WebKit2.SpeechRecognitionErrorWhenStartingAudioCaptureOnDifferentPage
to time out on macOS.

Reverted changeset:

"Stop speech recognition if page becomes invisible"
https://bugs.webkit.org/show_bug.cgi?id=220073
https://trac.webkit.org/changeset/271169

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (271173 => 271174)


--- trunk/Source/WebKit/ChangeLog	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/ChangeLog	2021-01-05 22:30:31 UTC (rev 271174)
@@ -1,3 +1,17 @@
+2021-01-05  Ryan Haddad  <[email protected]>
+
+        Unreviewed, reverting r271169.
+
+        Caused
+        TestWebKitAPI.WebKit2.SpeechRecognitionErrorWhenStartingAudioCaptureOnDifferentPage
+        to time out on macOS.
+
+        Reverted changeset:
+
+        "Stop speech recognition if page becomes invisible"
+        https://bugs.webkit.org/show_bug.cgi?id=220073
+        https://trac.webkit.org/changeset/271169
+
 2021-01-05  Alex Christensen  <[email protected]>
 
         Make WebPage::ForceRepaint use CompletionHandler instead of VoidCallback

Modified: trunk/Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp	2021-01-05 22:30:31 UTC (rev 271174)
@@ -161,11 +161,6 @@
     }
     ASSERT(m_userPermissionCheck == CheckResult::Granted);
 
-    if (!m_page.isViewVisible()) {
-        completeCurrentRequest(SpeechRecognitionPermissionDecision::Deny);
-        return;
-    }
-
     completeCurrentRequest(SpeechRecognitionPermissionDecision::Grant);
 }
 

Modified: trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.cpp (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.cpp	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.cpp	2021-01-05 22:30:31 UTC (rev 271174)
@@ -168,20 +168,6 @@
     }
 }
 
-void SpeechRecognitionServer::abortForPageIsBecomingInvisible()
-{
-    if (!m_recognizer)
-        return;
-
-    auto currentClientIdentifier = m_recognizer->currentClientIdentifier();
-    if (!currentClientIdentifier)
-        return;
-
-    auto error = WebCore::SpeechRecognitionError { WebCore::SpeechRecognitionErrorType::Aborted, "Page is no longer visible"_s };
-    sendUpdate(*currentClientIdentifier, WebCore::SpeechRecognitionUpdateType::Error, error);
-    m_recognizer->reset();
-}
-
 void SpeechRecognitionServer::sendUpdate(WebCore::SpeechRecognitionConnectionClientIdentifier clientIdentifier, WebCore::SpeechRecognitionUpdateType type, Optional<WebCore::SpeechRecognitionError> error, Optional<Vector<WebCore::SpeechRecognitionResultData>> result)
 {
     auto update = WebCore::SpeechRecognitionUpdate::create(clientIdentifier, type);

Modified: trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.h (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.h	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/SpeechRecognitionServer.h	2021-01-05 22:30:31 UTC (rev 271174)
@@ -64,7 +64,6 @@
     void abort(WebCore::SpeechRecognitionConnectionClientIdentifier);
     void invalidate(WebCore::SpeechRecognitionConnectionClientIdentifier);
     void mute();
-    void abortForPageIsBecomingInvisible();
 
 private:
     void requestPermissionForRequest(WebCore::SpeechRecognitionRequest&);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-01-05 22:30:31 UTC (rev 271174)
@@ -1995,12 +1995,8 @@
     if ((changed & ActivityState::WindowIsActive) && isViewWindowActive())
         updateCurrentModifierState();
 
-    if ((m_potentiallyChangedActivityStateFlags & ActivityState::IsVisible)) {
-        if (isViewVisible())
-            viewIsBecomingVisible();
-        else
-            m_process->pageIsBecomingInvisible(m_webPageID);
-    }
+    if ((m_potentiallyChangedActivityStateFlags & ActivityState::IsVisible) && isViewVisible())
+        viewIsBecomingVisible();
 
     bool isNowInWindow = (changed & ActivityState::IsInWindow) && isInWindow();
     // We always want to wait for the Web process to reply if we've been in-window before and are coming back in-window.

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2021-01-05 22:30:31 UTC (rev 271174)
@@ -1788,12 +1788,6 @@
         speechRecognitionServer->mute();
 }
 
-void WebProcessProxy::pageIsBecomingInvisible(WebCore::PageIdentifier identifier)
-{
-    if (auto server = m_speechRecognitionServerMap.get(identifier))
-        server->abortForPageIsBecomingInvisible();
-}
-
 #if PLATFORM(WATCHOS)
 
 void WebProcessProxy::startBackgroundActivityForFullscreenInput()

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (271173 => 271174)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2021-01-05 22:30:31 UTC (rev 271174)
@@ -405,7 +405,6 @@
     SpeechRecognitionRemoteRealtimeMediaSourceManager& ensureSpeechRecognitionRemoteRealtimeMediaSourceManager();
 #endif
     void pageMutedStateChanged(WebCore::PageIdentifier, WebCore::MediaProducer::MutedStateFlags);
-    void pageIsBecomingInvisible(WebCore::PageIdentifier);
 
 protected:
     WebProcessProxy(WebProcessPool&, WebsiteDataStore*, IsPrewarmed);

Modified: trunk/Tools/ChangeLog (271173 => 271174)


--- trunk/Tools/ChangeLog	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Tools/ChangeLog	2021-01-05 22:30:31 UTC (rev 271174)
@@ -1,5 +1,19 @@
 2021-01-05  Ryan Haddad  <[email protected]>
 
+        Unreviewed, reverting r271169.
+
+        Caused
+        TestWebKitAPI.WebKit2.SpeechRecognitionErrorWhenStartingAudioCaptureOnDifferentPage
+        to time out on macOS.
+
+        Reverted changeset:
+
+        "Stop speech recognition if page becomes invisible"
+        https://bugs.webkit.org/show_bug.cgi?id=220073
+        https://trac.webkit.org/changeset/271169
+
+2021-01-05  Ryan Haddad  <[email protected]>
+
         Unreviewed, revert part of r271158 to fix builtins generator tests.
 
         * Scripts/webkitpy/codegen/main.py:

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm (271173 => 271174)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm	2021-01-05 21:08:46 UTC (rev 271173)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm	2021-01-05 22:30:31 UTC (rev 271174)
@@ -167,46 +167,4 @@
     EXPECT_WK_STREQ(@"Recorder Mute", [lastScriptMessage body]);
 }
 
-// FIXME: enable this test on iOS when https://webkit.org/b/175204 is fixed.
-#if PLATFORM(MAC)
-
-TEST(WebKit2, SpeechRecognitionPageBecomesInvisible)
-{
-    auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
-    auto handler = adoptNS([[SpeechRecognitionMessageHandler alloc] init]);
-    [[configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"];
-    auto preferences = [configuration preferences];
-    preferences._mockCaptureDevicesEnabled = YES;
-    preferences._speechRecognitionEnabled = YES;
-    auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 800, 600) configuration:configuration.get()]);
-    auto delegate = adoptNS([[SpeechRecognitionPermissionUIDelegate alloc] init]);
-    [webView setUIDelegate:delegate.get()];
-
-    // Page is visible.
-    shouldGrantPermissionRequest = true;
-    receivedScriptMessage = false;
-    [webView synchronouslyLoadTestPageNamed:@"speechrecognition-basic"];
-    [webView stringByEvaluatingJavaScript:@"start()"];
-    TestWebKitAPI::Util::run(&receivedScriptMessage);
-    EXPECT_WK_STREQ(@"Start", [lastScriptMessage body]);
-
-    // Hide page.
-    receivedScriptMessage = false;
-#if PLATFORM(MAC)
-    [webView.get().window setIsVisible:NO];
-#else
-    webView.get().window.hidden = YES;
-#endif
-    TestWebKitAPI::Util::run(&receivedScriptMessage);
-    EXPECT_WK_STREQ(@"Error: aborted - Page is no longer visible", [lastScriptMessage body]);
-
-    // Page is invisible.
-    receivedScriptMessage = false;
-    [webView evaluateJavaScript:@"start()" completionHandler:nil];
-    TestWebKitAPI::Util::run(&receivedScriptMessage);
-    EXPECT_WK_STREQ(@"Error: not-allowed - Permission check failed", [lastScriptMessage body]);
-}
-
-#endif
-
 } // namespace TestWebKitAPI
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to