Title: [260134] trunk
Revision
260134
Author
bfulg...@apple.com
Date
2020-04-15 09:35:14 -0700 (Wed, 15 Apr 2020)

Log Message

[Cocoa] Remove generic parameter serialization fallback
https://bugs.webkit.org/show_bug.cgi?id=210509
<rdar://problem/55522650>

Reviewed by Geoffrey Garen.

Source/WebKit:

Tested by BundleFormDelegate parameter serialization tests...

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setInputDelegate:]):
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::elementDidFocus):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm:
(WKWebProcessPlugInWithoutRegisteredCustomClass): Update to reflect
fact that we block serialization of unregistered classes.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (260133 => 260134)


--- trunk/Source/WebKit/ChangeLog	2020-04-15 16:18:49 UTC (rev 260133)
+++ trunk/Source/WebKit/ChangeLog	2020-04-15 16:35:14 UTC (rev 260134)
@@ -1,3 +1,18 @@
+2020-04-15  Brent Fulgham  <bfulg...@apple.com>
+
+        [Cocoa] Remove generic parameter serialization fallback
+        https://bugs.webkit.org/show_bug.cgi?id=210509
+        <rdar://problem/55522650>
+
+        Reviewed by Geoffrey Garen.
+
+        Tested by BundleFormDelegate parameter serialization tests...
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setInputDelegate:]):
+        * UIProcess/ios/PageClientImplIOS.mm:
+        (WebKit::PageClientImpl::elementDidFocus):
+
 2020-04-15  Chris Dumez  <cdu...@apple.com>
 
         REGRESSION (r259610): WebGL does not work at all on iOS (was: Google Maps tiles turn black after initial load)

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (260133 => 260134)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2020-04-15 16:18:49 UTC (rev 260133)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2020-04-15 16:35:14 UTC (rev 260134)
@@ -2783,10 +2783,8 @@
                 auto unarchiver = adoptNS([[NSKeyedUnarchiver alloc] initForReadingFromData:nsData.get() error:nullptr]);
                 unarchiver.get().decodingFailurePolicy = NSDecodingFailurePolicyRaiseException;
                 @try {
-                    if (auto* allowedClasses = m_webView->_page->process().processPool().allowedClassesForParameterCoding())
-                        userObject = [unarchiver decodeObjectOfClasses:allowedClasses forKey:@"userObject"];
-                    else
-                        userObject = [unarchiver decodeObjectOfClass:[NSObject class] forKey:@"userObject"];
+                    auto* allowedClasses = m_webView->_page->process().processPool().allowedClassesForParameterCoding();
+                    userObject = [unarchiver decodeObjectOfClasses:allowedClasses forKey:@"userObject"];
                 } @catch (NSException *exception) {
                     LOG_ERROR("Failed to decode user data: %@", exception);
                 }

Modified: trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm (260133 => 260134)


--- trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm	2020-04-15 16:18:49 UTC (rev 260133)
+++ trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm	2020-04-15 16:35:14 UTC (rev 260134)
@@ -608,10 +608,8 @@
         auto unarchiver = adoptNS([[NSKeyedUnarchiver alloc] initForReadingFromData:nsData.get() error:nullptr]);
         unarchiver.get().decodingFailurePolicy = NSDecodingFailurePolicyRaiseException;
         @try {
-            if (auto* allowedClasses = m_webView.get()->_page->process().processPool().allowedClassesForParameterCoding())
-                userObject = [unarchiver decodeObjectOfClasses:allowedClasses forKey:@"userObject"];
-            else
-                userObject = [unarchiver decodeObjectOfClass:[NSObject class] forKey:@"userObject"];
+            auto* allowedClasses = m_webView.get()->_page->process().processPool().allowedClassesForParameterCoding();
+            userObject = [unarchiver decodeObjectOfClasses:allowedClasses forKey:@"userObject"];
         } @catch (NSException *exception) {
             LOG_ERROR("Failed to decode user data: %@", exception);
         }

Modified: trunk/Tools/ChangeLog (260133 => 260134)


--- trunk/Tools/ChangeLog	2020-04-15 16:18:49 UTC (rev 260133)
+++ trunk/Tools/ChangeLog	2020-04-15 16:35:14 UTC (rev 260134)
@@ -1,3 +1,15 @@
+2020-04-15  Brent Fulgham  <bfulg...@apple.com>
+
+        [Cocoa] Remove generic parameter serialization fallback
+        https://bugs.webkit.org/show_bug.cgi?id=210509
+        <rdar://problem/55522650>
+
+        Reviewed by Geoffrey Garen.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm:
+        (WKWebProcessPlugInWithoutRegisteredCustomClass): Update to reflect
+        fact that we block serialization of unregistered classes.
+
 2020-04-15  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GTK4] Fix use of gtk init functions

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm (260133 => 260134)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm	2020-04-15 16:18:49 UTC (rev 260133)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm	2020-04-15 16:35:14 UTC (rev 260134)
@@ -98,9 +98,9 @@
     TestWebKitAPI::Util::run(&didGetFocus);
     TestWebKitAPI::Util::run(&didGetUserObject);
 
-    // We should have serialized the NSUnitConverterLinear, since we did not indicate we wanted
-    // to limit serialization.
-    EXPECT_TRUE([delegate->_userObject isKindOfClass:[NSUnitConverterLinear class]]);
+    // We should not have serialized the NSUnitConverterLinear, since we did not specify it as a valid
+    // class for our plugin.
+    EXPECT_NULL(delegate->_userObject);
 }
 
 TEST(WebKit, WKWebProcessPlugInWithRegisteredCustomClass)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to