Changeset 235584 in webkit


Ignore:
Timestamp:
Sep 1, 2018, 4:14:31 PM (7 years ago)
Author:
mitz@apple.com
Message:

[Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
https://bugs.webkit.org/show_bug.cgi?id=189222
<rdar://problem/33283179>

Reviewed by Sam Weinig.

Source/WebKit:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView valueForUndefinedKey:]): Override to handle the "serverTrust" key, which is not

handled automatically by the KVC machinery since the getter’s return type is not an
Objective-C type.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm: Added.

(TEST):

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r235569 r235584  
     12018-09-01  Dan Bernstein  <mitz@apple.com>
     2
     3        [Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
     4        https://bugs.webkit.org/show_bug.cgi?id=189222
     5        <rdar://problem/33283179>
     6
     7        Reviewed by Sam Weinig.
     8
     9        Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm
     10
     11        * UIProcess/API/Cocoa/WKWebView.mm:
     12        (-[WKWebView valueForUndefinedKey:]): Override to handle the "serverTrust" key, which is not
     13          handled automatically by the KVC machinery since the getter’s return type is not an
     14          Objective-C type.
     15
    1162018-08-31  John Wilander  <wilander@apple.com>
    217
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r235560 r235584  
    819819
    820820    [super dealloc];
     821}
     822
     823- (id)valueForUndefinedKey:(NSString *)key {
     824    if ([key isEqualToString:@"serverTrust"])
     825        return (__bridge id)[self serverTrust];
     826
     827    return [super valueForUndefinedKey:key];
    821828}
    822829
  • trunk/Tools/ChangeLog

    r235578 r235584  
     12018-09-01  Dan Bernstein  <mitz@apple.com>
     2
     3        [Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
     4        https://bugs.webkit.org/show_bug.cgi?id=189222
     5        <rdar://problem/33283179>
     6
     7        Reviewed by Sam Weinig.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     10        * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm: Added.
     11        (TEST):
     12
    1132018-08-31  Aditya Keerthi  <akeerthi@apple.com>
    214
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r235474 r235584  
    143143                37A709AE1E3EA8B000CA5969 /* BundleRangeHandle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37A709AD1E3EA8B000CA5969 /* BundleRangeHandle.mm */; };
    144144                37A709AF1E3EA97E00CA5969 /* BundleRangeHandlePlugIn.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37A709AA1E3EA79000CA5969 /* BundleRangeHandlePlugIn.mm */; };
     145                37A9DBE9213B4C9300D261A2 /* WKWebViewServerTrustKVC.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37A9DBE7213B4C9300D261A2 /* WKWebViewServerTrustKVC.mm */; };
    145146                37B47E301D64E7CA005F4EFF /* WKObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37B47E2E1D64E7CA005F4EFF /* WKObject.mm */; };
    146147                37BCA61C1B596BA9002012CA /* ShouldOpenExternalURLsInNewWindowActions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37BCA61B1B596BA9002012CA /* ShouldOpenExternalURLsInNewWindowActions.mm */; };
     
    13981399                37A709AC1E3EA7E800CA5969 /* BundleRangeHandleProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BundleRangeHandleProtocol.h; sourceTree = "<group>"; };
    13991400                37A709AD1E3EA8B000CA5969 /* BundleRangeHandle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BundleRangeHandle.mm; sourceTree = "<group>"; };
     1401                37A9DBE7213B4C9300D261A2 /* WKWebViewServerTrustKVC.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewServerTrustKVC.mm; sourceTree = "<group>"; };
    14001402                37B47E2E1D64E7CA005F4EFF /* WKObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKObject.mm; sourceTree = "<group>"; };
    14011403                37BCA61B1B596BA9002012CA /* ShouldOpenExternalURLsInNewWindowActions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ShouldOpenExternalURLsInNewWindowActions.mm; sourceTree = "<group>"; };
     
    24452447                                0F3B94A51A77266C00DE3272 /* WKWebViewEvaluateJavaScript.mm */,
    24462448                                D3BE5E341E4CE85E00FD563A /* WKWebViewGetContents.mm */,
     2449                                37A9DBE7213B4C9300D261A2 /* WKWebViewServerTrustKVC.mm */,
    24472450                                93F56DA81E5F9181003EDE84 /* WKWebViewSnapshot.mm */,
    24482451                                9984FACA1CFFAEEE008D198C /* WKWebViewTextInput.mm */,
     
    40694072                                D34E08761E4E42E1005FF14A /* WKWebViewGetContents.mm in Sources */,
    40704073                                F4FA91811E61849B007B8C1D /* WKWebViewMacEditingTests.mm in Sources */,
     4074                                37A9DBE9213B4C9300D261A2 /* WKWebViewServerTrustKVC.mm in Sources */,
    40714075                                93F56DA91E5F919D003EDE84 /* WKWebViewSnapshot.mm in Sources */,
    40724076                                9984FACC1CFFAF60008D198C /* WKWebViewTextInput.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.