Title: [278644] trunk/Source/WebKit
Revision
278644
Author
[email protected]
Date
2021-06-08 20:29:18 -0700 (Tue, 08 Jun 2021)

Log Message

Upstream AppHighlight Observer code
https://bugs.webkit.org/show_bug.cgi?id=226794

Reviewed by Tim Horton.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::appHighlightsVisibility):
(WebKit::WebPageProxy::setUpHighlightsObserver):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpAppHighlightMenusIfNeeded]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (278643 => 278644)


--- trunk/Source/WebKit/ChangeLog	2021-06-09 03:04:32 UTC (rev 278643)
+++ trunk/Source/WebKit/ChangeLog	2021-06-09 03:29:18 UTC (rev 278644)
@@ -1,3 +1,17 @@
+2021-06-08  Megan Gardner  <[email protected]>
+
+        Upstream AppHighlight Observer code
+        https://bugs.webkit.org/show_bug.cgi?id=226794
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+        (WebKit::WebPageProxy::appHighlightsVisibility):
+        (WebKit::WebPageProxy::setUpHighlightsObserver):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView setUpAppHighlightMenusIfNeeded]):
+
 2021-06-08  Wenson Hsieh  <[email protected]>
 
         [iOS] Safari tab pill should toggle visibility when tapping on article text on adventure.com

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (278643 => 278644)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-06-09 03:04:32 UTC (rev 278643)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-06-09 03:29:18 UTC (rev 278644)
@@ -49,6 +49,7 @@
 #import "WKErrorInternal.h"
 #import <WebCore/DragItem.h>
 #import <WebCore/GeometryUtilities.h>
+#import <WebCore/HighlightVisibility.h>
 #import <WebCore/LocalCurrentGraphicsContext.h>
 #import <WebCore/NetworkExtensionContentFilter.h>
 #import <WebCore/NotImplemented.h>
@@ -65,6 +66,13 @@
 #import "MediaUsageManagerCocoa.h"
 #endif
 
+#if ENABLE(APP_HIGHLIGHTS)
+#import <Synapse/SYNotesActivationObserver.h>
+
+SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL(Synapse)
+SOFT_LINK_CLASS_OPTIONAL(Synapse, SYNotesActivationObserver)
+#endif // ENABLE(APP_HIGHLIGHTS)
+
 #if USE(APPKIT)
 #import <AppKit/NSImage.h>
 #else
@@ -592,6 +600,24 @@
     send(Messages::WebPage::SetAppHighlightsVisibility(appHighlightsVisibility));
 }
 
+bool WebPageProxy::appHighlightsVisibility()
+{
+    if (!m_appHighlightsObserver)
+        setUpHighlightsObserver();
+    return [m_appHighlightsObserver isVisible];
+}
+
+void WebPageProxy::setUpHighlightsObserver()
+{
+    if (m_appHighlightsObserver)
+        return;
+    auto updateAppHighlightsVisibility = ^(BOOL isVisible) {
+        setAppHighlightsVisibility(isVisible ? WebCore::HighlightVisibility::Visible : WebCore::HighlightVisibility::Hidden);
+    };
+    m_appHighlightsObserver = adoptNS([allocSYNotesActivationObserverInstance() initWithHandler:updateAppHighlightsVisibility]);
+    updateAppHighlightsVisibility([m_appHighlightsObserver isVisible]);
+}
+
 #endif
 
 SandboxExtension::HandleArray WebPageProxy::createNetworkExtensionsSandboxExtensions(WebProcessProxy& process)
@@ -692,9 +718,5 @@
 
 } // namespace WebKit
 
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WebPageProxyCocoaAdditionsAfter.mm>
-#endif
-
 #undef MESSAGE_CHECK_COMPLETION
 #undef MESSAGE_CHECK

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (278643 => 278644)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-06-09 03:04:32 UTC (rev 278643)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-06-09 03:29:18 UTC (rev 278644)
@@ -189,10 +189,6 @@
 #include "PlatformXRSystem.h"
 #endif
 
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WebPageProxyAdditionsBefore.h>
-#endif
-
 namespace API {
 class Attachment;
 class ContentWorld;
@@ -230,6 +226,7 @@
 OBJC_CLASS NSTextAlternatives;
 OBJC_CLASS NSView;
 OBJC_CLASS QLPreviewPanel;
+OBJC_CLASS SYNotesActivationObserver;
 OBJC_CLASS WKQLThumbnailLoadOperation;
 OBJC_CLASS WKVisualSearchPreviewController;
 OBJC_CLASS WKWebView;
@@ -1897,6 +1894,7 @@
     void storeAppHighlight(const WebCore::AppHighlight&);
     void restoreAppHighlightsAndScrollToIndex(const Vector<Ref<WebKit::SharedMemory>>& highlights, const std::optional<unsigned> index);
     void setAppHighlightsVisibility(const WebCore::HighlightVisibility);
+    bool appHighlightsVisibility();
 #endif
 
 #if ENABLE(MEDIA_STREAM)
@@ -2497,6 +2495,10 @@
 #if ENABLE(IMAGE_ANALYSIS) && PLATFORM(MAC)
     void showImageInVisualSearchPreviewPanel(ShareableBitmap& imageBitmap, const String& tooltip, const URL& imageURL);
 #endif
+        
+#if ENABLE(APP_HIGHLIGHTS)
+    void setUpHighlightsObserver();
+#endif
 
     const Identifier m_identifier;
     WebCore::PageIdentifier m_webPageID;
@@ -3045,8 +3047,8 @@
     std::unique_ptr<PlatformXRSystem> m_xrSystem;
 #endif
 
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WebPageProxyAdditionsAfter.h>
+#if ENABLE(APP_HIGHLIGHTS)
+    RetainPtr<SYNotesActivationObserver> m_appHighlightsObserver;
 #endif
 
 #if ENABLE(IMAGE_ANALYSIS) && PLATFORM(MAC)

Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (278643 => 278644)


--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2021-06-09 03:04:32 UTC (rev 278643)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2021-06-09 03:29:18 UTC (rev 278644)
@@ -9315,6 +9315,21 @@
 
 
 #if ENABLE(APP_HIGHLIGHTS)
+- (void)setUpAppHighlightMenusIfNeeded
+{
+    if (!_page->preferences().appHighlightsEnabled() || !self.window || !_page->editorState().selectionIsRange)
+        return;
+    
+    for (UIMenuItem *menuItem in [[UIMenuController sharedMenuController] menuItems]) {
+        if ([menuItem action] == @selector(createHighlightInCurrentGroupWithRange:) || [menuItem action] == @selector(createHighlightInNewGroupWithRange:))
+            return;
+    }
+    
+    auto addHighlightCurrentGroupItem = adoptNS([[UIMenuItem alloc] initWithTitle:WebCore::contextMenuItemTagAddHighlightToCurrentGroup() action:@selector(createHighlightInCurrentGroupWithRange:)]);
+    auto addHighlightNewGroupItem = adoptNS([[UIMenuItem alloc] initWithTitle:WebCore::contextMenuItemTagAddHighlightToNewGroup() action:@selector(createHighlightInNewGroupWithRange:)]);
+    [[UIMenuController sharedMenuController] setMenuItems:@[ addHighlightCurrentGroupItem.get(), addHighlightNewGroupItem.get() ]];
+}
+
 - (void)createHighlightInCurrentGroupWithRange:(id)sender
 {
     _page->createAppHighlightInSelectedRange(WebCore::CreateNewGroupForHighlight::No, WebCore::HighlightRequestOriginatedInApp::No);
@@ -9325,7 +9340,7 @@
     _page->createAppHighlightInSelectedRange(WebCore::CreateNewGroupForHighlight::Yes, WebCore::HighlightRequestOriginatedInApp::No);
 }
 
-#endif
+#endif // ENABLE(APP_HIGHLIGHTS)
 
 - (void)setContinuousSpellCheckingEnabled:(BOOL)enabled
 {
@@ -10235,10 +10250,6 @@
 
 #endif // ENABLE(IMAGE_ANALYSIS)
 
-#if USE(APPLE_INTERNAL_SDK)
-#import <WebKitAdditions/WKContentViewInteractionAdditionsAfter.mm>
-#endif
-
 @end
 
 @implementation WKContentView (WKTesting)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to