Changeset 240516 in webkit


Ignore:
Timestamp:
Jan 25, 2019 3:16:46 PM (5 years ago)
Author:
achristensen@apple.com
Message:

Add SPI to inform an application that "Go Back" has been clicked from a safe browsing warning
https://bugs.webkit.org/show_bug.cgi?id=193802
<rdar://problem/46010580>

Reviewed by Andy Estes.

Source/WebKit:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didClickGoBackFromSafeBrowsingWarning):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didClickGoBackFromSafeBrowsingWarning):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(-[SafeBrowsingNavigationDelegate _webViewDidClickGoBackFromSafeBrowsingWarning:]):
(TEST):

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r240514 r240516  
     12019-01-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Add SPI to inform an application that "Go Back" has been clicked from a safe browsing warning
     4        https://bugs.webkit.org/show_bug.cgi?id=193802
     5        <rdar://problem/46010580>
     6
     7        Reviewed by Andy Estes.
     8
     9        * UIProcess/API/APIUIClient.h:
     10        (API::UIClient::didClickGoBackFromSafeBrowsingWarning):
     11        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
     12        * UIProcess/Cocoa/UIDelegate.h:
     13        * UIProcess/Cocoa/UIDelegate.mm:
     14        (WebKit::UIDelegate::setDelegate):
     15        (WebKit::UIDelegate::UIClient::didClickGoBackFromSafeBrowsingWarning):
     16        * UIProcess/WebPageProxy.cpp:
     17        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     18
    1192019-01-25  Daniel Bates  <dabates@apple.com>
    220
  • trunk/Source/WebKit/UIProcess/API/APIUIClient.h

    r240100 r240516  
    183183   
    184184    virtual void didShowSafeBrowsingWarning() { }
     185    virtual void didClickGoBackFromSafeBrowsingWarning() { }
    185186};
    186187
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h

    r240100 r240516  
    103103- (void)_webViewDidRequestPointerLock:(WKWebView *)webView completionHandler:(void (^)(BOOL))completionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
    104104- (void)_webViewDidShowSafeBrowsingWarning:(WKWebView *)webView WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
     105- (void)_webViewDidClickGoBackFromSafeBrowsingWarning:(WKWebView *)webView WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
    105106- (void)_webViewDidLosePointerLock:(WKWebView *)webView WK_API_AVAILABLE(macosx(10.12.3));
    106107- (void)_webView:(WKWebView *)webView hasVideoInPictureInPictureDidChange:(BOOL)hasVideoInPictureInPicture WK_API_AVAILABLE(macosx(10.13), ios(11.0));
  • trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h

    r240100 r240516  
    148148        void imageOrMediaDocumentSizeChanged(const WebCore::IntSize&) final;
    149149        void didShowSafeBrowsingWarning() final;
     150        void didClickGoBackFromSafeBrowsingWarning() final;
    150151
    151152        UIDelegate& m_uiDelegate;
     
    225226        bool webViewHasVideoInPictureInPictureDidChange : 1;
    226227        bool webViewDidShowSafeBrowsingWarning : 1;
     228        bool webViewDidClickGoBackFromSafeBrowsingWarning : 1;
    227229    } m_delegateMethods;
    228230};
  • trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm

    r240100 r240516  
    173173    m_delegateMethods.webViewHasVideoInPictureInPictureDidChange = [delegate respondsToSelector:@selector(_webView:hasVideoInPictureInPictureDidChange:)];
    174174    m_delegateMethods.webViewDidShowSafeBrowsingWarning = [delegate respondsToSelector:@selector(_webViewDidShowSafeBrowsingWarning:)];
     175    m_delegateMethods.webViewDidClickGoBackFromSafeBrowsingWarning = [delegate respondsToSelector:@selector(_webViewDidClickGoBackFromSafeBrowsingWarning:)];
    175176}
    176177
     
    12581259}
    12591260
     1261void UIDelegate::UIClient::didClickGoBackFromSafeBrowsingWarning()
     1262{
     1263    if (!m_uiDelegate.m_delegateMethods.webViewDidClickGoBackFromSafeBrowsingWarning)
     1264        return;
     1265   
     1266    auto delegate = m_uiDelegate.m_delegate.get();
     1267    if (!delegate)
     1268        return;
     1269
     1270    [static_cast<id <WKUIDelegatePrivate>>(delegate) _webViewDidClickGoBackFromSafeBrowsingWarning:m_uiDelegate.m_webView];
     1271}
     1272
    12601273void UIDelegate::UIClient::hasVideoInPictureInPictureDidChange(WebPageProxy*, bool hasVideoInPictureInPicture)
    12611274{
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r240485 r240516  
    44404440                    switch (continueUnsafeLoad) {
    44414441                    case ContinueUnsafeLoad::No:
     4442                        protectedThis->m_uiClient->didClickGoBackFromSafeBrowsingWarning();
    44424443                        completionHandler(PolicyAction::Ignore);
    44434444                        break;
  • trunk/Tools/ChangeLog

    r240512 r240516  
     12019-01-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Add SPI to inform an application that "Go Back" has been clicked from a safe browsing warning
     4        https://bugs.webkit.org/show_bug.cgi?id=193802
     5        <rdar://problem/46010580>
     6
     7        Reviewed by Andy Estes.
     8
     9        * TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
     10        (-[SafeBrowsingNavigationDelegate _webViewDidClickGoBackFromSafeBrowsingWarning:]):
     11        (TEST):
     12
    1132019-01-25  Daniel Bates  <dabates@apple.com>
    214
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm

    r240490 r240516  
    4141static bool committedNavigation;
    4242static bool warningShown;
     43static bool goBackClicked;
    4344
    4445@interface SafeBrowsingNavigationDelegate : NSObject <WKNavigationDelegate, WKUIDelegatePrivate>
     
    5556{
    5657    warningShown = true;
     58}
     59
     60- (void)_webViewDidClickGoBackFromSafeBrowsingWarning:(WKWebView *)webView
     61{
     62    goBackClicked = true;
    5763}
    5864
     
    222228{
    223229    auto webView = safeBrowsingView();
     230    EXPECT_FALSE(goBackClicked);
    224231    goBack([webView _safeBrowsingWarning]);
     232    EXPECT_TRUE(goBackClicked);
    225233}
    226234
Note: See TracChangeset for help on using the changeset viewer.