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