Title: [272096] trunk/Source
Revision
272096
Author
[email protected]
Date
2021-01-29 18:39:22 -0800 (Fri, 29 Jan 2021)

Log Message

Add plumbing to allow AppHighlights to be restored.
https://bugs.webkit.org/show_bug.cgi?id=221123

Reviewed by Wenson Hsieh.

Source/WebCore:

* Modules/highlight/AppHighlightStorage.cpp:
(WebCore::AppHighlightStorage::restoreAppHighlights):
* Modules/highlight/AppHighlightStorage.h:

Source/WebKit:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _restoreAppHighlights:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::restoreAppHighlights):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreAppHighlights):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (272095 => 272096)


--- trunk/Source/WebCore/ChangeLog	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebCore/ChangeLog	2021-01-30 02:39:22 UTC (rev 272096)
@@ -1,3 +1,14 @@
+2021-01-29  Megan Gardner  <[email protected]>
+
+        Add plumbing to allow AppHighlights to be restored.
+        https://bugs.webkit.org/show_bug.cgi?id=221123
+
+        Reviewed by Wenson Hsieh.
+
+        * Modules/highlight/AppHighlightStorage.cpp:
+        (WebCore::AppHighlightStorage::restoreAppHighlights):
+        * Modules/highlight/AppHighlightStorage.h:
+
 2021-01-29  Sam Weinig  <[email protected]>
 
         Update consumeNumberRaw() to return an Optional<double> rather than using a bool/out parameter pattern

Modified: trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp (272095 => 272096)


--- trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.cpp	2021-01-30 02:39:22 UTC (rev 272096)
@@ -231,7 +231,7 @@
     m_document->page()->chrome().updateAppHighlightsStorage(listData.toSharedBuffer());
 }
 
-Vector<AppHighlightRangeData> AppHighlightStorage::restoreAppHighlights(Ref<SharedBuffer>&& buffer)
+void AppHighlightStorage::restoreAppHighlights(Ref<SharedBuffer>&& buffer)
 {
     auto appHighlightListData = AppHighlightListData::create(buffer);
     Vector<AppHighlightRangeData> unrestoredRanges;
@@ -238,7 +238,7 @@
     Vector<AppHighlightRangeData> restoredRanges;
 
     if (!m_document)
-        return unrestoredRanges;
+        return;
 
     auto strongDocument = m_document.get();
 
@@ -252,7 +252,6 @@
         restoredRanges.append(appHighlightListData);
         strongDocument->appHighlightRegister().addAppHighlight(StaticRange::create(*range));
     }
-    return unrestoredRanges;
 }
 
 #endif

Modified: trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.h (272095 => 272096)


--- trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.h	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebCore/Modules/highlight/AppHighlightStorage.h	2021-01-30 02:39:22 UTC (rev 272096)
@@ -47,7 +47,7 @@
     AppHighlightStorage(Document&);
 
     WEBCORE_EXPORT void updateAppHighlightsStorage();
-    Vector<AppHighlightRangeData> restoreAppHighlights(Ref<SharedBuffer>&&);
+    WEBCORE_EXPORT void restoreAppHighlights(Ref<SharedBuffer>&&);
 
 private:
     WeakPtr<Document> m_document;

Modified: trunk/Source/WebKit/ChangeLog (272095 => 272096)


--- trunk/Source/WebKit/ChangeLog	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/ChangeLog	2021-01-30 02:39:22 UTC (rev 272096)
@@ -1,3 +1,21 @@
+2021-01-29  Megan Gardner  <[email protected]>
+
+        Add plumbing to allow AppHighlights to be restored.
+        https://bugs.webkit.org/show_bug.cgi?id=221123
+
+        Reviewed by Wenson Hsieh.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _restoreAppHighlights:]):
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+        (WebKit::WebPageProxy::restoreAppHighlights):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::restoreAppHighlights):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
 2021-01-29  Yusuke Suzuki  <[email protected]>
 
         [JSC] Add com.apple.private.securejit entitlement for JITCage

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


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2021-01-30 02:39:22 UTC (rev 272096)
@@ -52,6 +52,7 @@
 #import "RemoteObjectRegistryMessages.h"
 #import "ResourceLoadDelegate.h"
 #import "SafeBrowsingWarning.h"
+#import "SharedBufferCopy.h"
 #import "UIDelegate.h"
 #import "VideoFullscreenManagerProxy.h"
 #import "ViewGestureController.h"
@@ -2040,6 +2041,15 @@
     [self resumeAllMediaPlayback:nil];
 }
 
+- (void)_restoreAppHighlights:(NSData *)data
+{
+#if ENABLE(APP_HIGHLIGHTS)
+    _page->restoreAppHighlights(WebCore::SharedBuffer::create(data));
+#else
+    UNUSED_PARAM(data);
+#endif
+}
+
 - (NSURL *)_unreachableURL
 {
     return [NSURL _web_URLWithWTFString:_page->pageLoadState().unreachableURL()];

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h (272095 => 272096)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h	2021-01-30 02:39:22 UTC (rev 272096)
@@ -364,6 +364,8 @@
 - (void)_didEnableBrowserExtensions:(NSDictionary<NSString *, NSString *> *)extensionIDToNameMap WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 - (void)_didDisableBrowserExtensions:(NSSet<NSString *> *)extensionIDs WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
 
+- (void)_restoreAppHighlights:(NSData *)data WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
+
 /*! @abstract The theme color of the active page.
  @discussion This is the value of the most recently created or modified
  @textblock

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (272095 => 272096)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2021-01-30 02:39:22 UTC (rev 272096)
@@ -38,6 +38,7 @@
 #import "SafeBrowsingSPI.h"
 #import "SafeBrowsingWarning.h"
 #import "SharedBufferCopy.h"
+#import "SharedBufferDataReference.h"
 #import "WebPage.h"
 #import "WebPageMessages.h"
 #import "WebPasteboardProxy.h"
@@ -540,6 +541,16 @@
 
     send(Messages::WebPage::CreateAppHighlightInSelectedRange(createNewGroup));
 }
+
+void WebPageProxy::restoreAppHighlights(Ref<SharedBuffer>&& data)
+{
+    if (!hasRunningProcess())
+        return;
+
+    IPC::SharedBufferDataReference dataReference { data };
+
+    send(Messages::WebPage::RestoreAppHighlights(dataReference));
+}
 #endif
 
 SandboxExtension::HandleArray WebPageProxy::createNetworkExtensionsSandboxExtensions(WebProcessProxy& process)

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (272095 => 272096)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2021-01-30 02:39:22 UTC (rev 272096)
@@ -1824,6 +1824,7 @@
 #if ENABLE(APP_HIGHLIGHTS)
     void createAppHighlightInSelectedRange(CreateNewGroupForHighlight);
     void updateAppHighlightsStorage(const IPC::SharedBufferCopy&);
+    void restoreAppHighlights(Ref<WebCore::SharedBuffer>&& data);
 #endif
 
 #if ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (272095 => 272096)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2021-01-30 02:39:22 UTC (rev 272096)
@@ -7188,6 +7188,13 @@
 
     return true;
 }
+
+void WebPage::restoreAppHighlights(const IPC::DataReference& data)
+{
+    auto document = makeRefPtr(m_page->focusController().focusedOrMainFrame().document());
+
+    document->appHighlightStorage().restoreAppHighlights(SharedBuffer::create(data.data(), data.size()));
+}
 #endif
 
 #if !PLATFORM(COCOA)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (272095 => 272096)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2021-01-30 02:39:22 UTC (rev 272096)
@@ -1380,6 +1380,7 @@
 
 #if ENABLE(APP_HIGHLIGHTS)
     bool createAppHighlightInSelectedRange(CreateNewGroupForHighlight);
+    void restoreAppHighlights(const IPC::DataReference&);
 #endif
 
     void dispatchWheelEventWithoutScrolling(const WebWheelEvent&, CompletionHandler<void(bool)>&&);

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (272095 => 272096)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2021-01-30 02:16:56 UTC (rev 272095)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in	2021-01-30 02:39:22 UTC (rev 272096)
@@ -619,6 +619,7 @@
 
 #if ENABLE(APP_HIGHLIGHTS)
     CreateAppHighlightInSelectedRange(enum:bool WebKit::CreateNewGroupForHighlight createNewGroup)
+    RestoreAppHighlights(IPC::SharedBufferDataReference data)
 #endif
 
     DispatchWheelEventWithoutScrolling(WebKit::WebWheelEvent event) -> (bool handled) Async
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to