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