Title: [157776] trunk/Source/WebKit2
Revision
157776
Author
m...@apple.com
Date
2013-10-21 22:16:38 -0700 (Mon, 21 Oct 2013)

Log Message

[Cocoa] Add load delegate method for didChangeBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=123136

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKBrowsingContextController.mm:
(didChangeBackForwardList): Added. Calls new delegate method.
(setUpPageLoaderClient):  Hook up new client function.
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declare new delegate method.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (157775 => 157776)


--- trunk/Source/WebKit2/ChangeLog	2013-10-22 04:42:54 UTC (rev 157775)
+++ trunk/Source/WebKit2/ChangeLog	2013-10-22 05:16:38 UTC (rev 157776)
@@ -1,3 +1,15 @@
+2013-10-21  Dan Bernstein  <m...@apple.com>
+
+        [Cocoa] Add load delegate method for didChangeBackForwardList
+        https://bugs.webkit.org/show_bug.cgi?id=123136
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/API/mac/WKBrowsingContextController.mm:
+        (didChangeBackForwardList): Added. Calls new delegate method.
+        (setUpPageLoaderClient):  Hook up new client function.
+        * UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declare new delegate method.
+
 2013-10-21  Mark Rowe  <mr...@apple.com>
 
         Add a version of WebKitSystemInterface for Mavericks.

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm (157775 => 157776)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm	2013-10-22 04:42:54 UTC (rev 157775)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm	2013-10-22 05:16:38 UTC (rev 157776)
@@ -30,8 +30,10 @@
 
 #import "ObjCObjectGraph.h"
 #import "WKBackForwardListInternal.h"
+#import "WKBackForwardListItemInternal.h"
 #import "WKErrorCF.h"
 #import "WKFrame.h"
+#import "WKNSArray.h"
 #import "WKPagePrivate.h"
 #import "WKRetainPtr.h"
 #import "WKStringCF.h"
@@ -488,6 +490,19 @@
         [browsingContext.loadDelegate browsingContextControllerDidFinishProgress:browsingContext];
 }
 
+static void didChangeBackForwardList(WKPageRef page, WKBackForwardListItemRef addedItem, WKArrayRef removedItems, const void *clientInfo)
+{
+    WKBrowsingContextController *browsingContext = (WKBrowsingContextController *)clientInfo;
+    if (![browsingContext.loadDelegate respondsToSelector:@selector(browsingContextControllerDidChangedBackForwardList:addedItem:removedItems:)])
+        return;
+
+    WKBackForwardListItem *added = addedItem ? [[WKBackForwardListItem alloc] _initWithItem:*toImpl(addedItem)] : nil;
+    NSArray *removed = removedItems ? [[WKNSArray alloc] web_initWithImmutableArray:*toImpl(removedItems)] : nil;
+    [browsingContext.loadDelegate browsingContextControllerDidChangedBackForwardList:browsingContext addedItem:added removedItems:removed];
+    [added release];
+    [removed release];
+}
+
 static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WKPageRef pageRef)
 {
     WKPageLoaderClient loaderClient;
@@ -506,6 +521,8 @@
     loaderClient.didChangeProgress = didChangeProgress;
     loaderClient.didFinishProgress = didFinishProgress;
 
+    loaderClient.didChangeBackForwardList = didChangeBackForwardList;
+
     WKPageSetPageLoaderClient(pageRef, &loaderClient);
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextLoadDelegate.h (157775 => 157776)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextLoadDelegate.h	2013-10-22 04:42:54 UTC (rev 157775)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextLoadDelegate.h	2013-10-22 05:16:38 UTC (rev 157776)
@@ -52,4 +52,6 @@
 - (void)browsingContextController:(WKBrowsingContextController *)sender estimatedProgressChangedTo:(double)estimatedProgress;
 - (void)browsingContextControllerDidFinishProgress:(WKBrowsingContextController *)sender;
 
+- (void)browsingContextControllerDidChangedBackForwardList:(WKBrowsingContextController *)sender addedItem:(WKBackForwardListItem *)addedItem removedItems:(NSArray *)removedItems;
+
 @end
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to