<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[159894] trunk/Source/WebKit2</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/159894">159894</a></dd>
<dt>Author</dt> <dd>mitz@apple.com</dd>
<dt>Date</dt> <dd>2013-11-30 22:02:32 -0800 (Sat, 30 Nov 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Cocoa] Stop using the WKPageRef API in WKBrowsingContextController
https://bugs.webkit.org/show_bug.cgi?id=125036

Reviewed by Sam Weinig.

* Shared/Cocoa/WKNSURLExtras.h: Declared new method.
* Shared/Cocoa/WKNSURLExtras.mm:
(-[NSURL _web_originalDataAsWTFString]): Added. Returns a WTF::String with the receiver’s
bytes.

* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadRequest:userData:]):
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
(-[WKBrowsingContextController stopLoading]):
(-[WKBrowsingContextController reload]):
(-[WKBrowsingContextController reloadFromOrigin]):
(-[WKBrowsingContextController goForward]):
(-[WKBrowsingContextController canGoForward]):
(-[WKBrowsingContextController goBack]):
(-[WKBrowsingContextController canGoBack]):
(-[WKBrowsingContextController activeURL]):
(-[WKBrowsingContextController provisionalURL]):
(-[WKBrowsingContextController committedURL]):
(-[WKBrowsingContextController title]):
(-[WKBrowsingContextController textZoom]):
(-[WKBrowsingContextController setTextZoom:]):
(-[WKBrowsingContextController pageZoom]):
(-[WKBrowsingContextController setPageZoom:]):
(setUpPageLoaderClient):
(setUpPagePolicyClient):
(-[WKBrowsingContextController setLoadDelegate:]):
(-[WKBrowsingContextController setPolicyDelegate:]):
(-[WKBrowsingContextController _pageRef]):
(-[WKBrowsingContextController setPaginationMode:]):
(-[WKBrowsingContextController paginationMode]):
(-[WKBrowsingContextController setPaginationBehavesLikeColumns:]):
(-[WKBrowsingContextController paginationBehavesLikeColumns]):
(-[WKBrowsingContextController setPageLength:]):
(-[WKBrowsingContextController pageLength]):
(-[WKBrowsingContextController setGapBetweenPages:]):
(-[WKBrowsingContextController gapBetweenPages]):
(-[WKBrowsingContextController pageCount]):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaWKNSURLExtrash">trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.h</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaWKNSURLExtrasmm">trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (159893 => 159894)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2013-12-01 03:52:23 UTC (rev 159893)
+++ trunk/Source/WebKit2/ChangeLog        2013-12-01 06:02:32 UTC (rev 159894)
</span><span class="lines">@@ -1,3 +1,51 @@
</span><ins>+2013-11-30  Dan Bernstein  &lt;mitz@apple.com&gt;
+
+        [Cocoa] Stop using the WKPageRef API in WKBrowsingContextController
+        https://bugs.webkit.org/show_bug.cgi?id=125036
+
+        Reviewed by Sam Weinig.
+
+        * Shared/Cocoa/WKNSURLExtras.h: Declared new method.
+        * Shared/Cocoa/WKNSURLExtras.mm:
+        (-[NSURL _web_originalDataAsWTFString]): Added. Returns a WTF::String with the receiver’s
+        bytes.
+
+        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
+        (-[WKBrowsingContextController loadRequest:userData:]):
+        (-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
+        (-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
+        (-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
+        (-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
+        (-[WKBrowsingContextController stopLoading]):
+        (-[WKBrowsingContextController reload]):
+        (-[WKBrowsingContextController reloadFromOrigin]):
+        (-[WKBrowsingContextController goForward]):
+        (-[WKBrowsingContextController canGoForward]):
+        (-[WKBrowsingContextController goBack]):
+        (-[WKBrowsingContextController canGoBack]):
+        (-[WKBrowsingContextController activeURL]):
+        (-[WKBrowsingContextController provisionalURL]):
+        (-[WKBrowsingContextController committedURL]):
+        (-[WKBrowsingContextController title]):
+        (-[WKBrowsingContextController textZoom]):
+        (-[WKBrowsingContextController setTextZoom:]):
+        (-[WKBrowsingContextController pageZoom]):
+        (-[WKBrowsingContextController setPageZoom:]):
+        (setUpPageLoaderClient):
+        (setUpPagePolicyClient):
+        (-[WKBrowsingContextController setLoadDelegate:]):
+        (-[WKBrowsingContextController setPolicyDelegate:]):
+        (-[WKBrowsingContextController _pageRef]):
+        (-[WKBrowsingContextController setPaginationMode:]):
+        (-[WKBrowsingContextController paginationMode]):
+        (-[WKBrowsingContextController setPaginationBehavesLikeColumns:]):
+        (-[WKBrowsingContextController paginationBehavesLikeColumns]):
+        (-[WKBrowsingContextController setPageLength:]):
+        (-[WKBrowsingContextController pageLength]):
+        (-[WKBrowsingContextController setGapBetweenPages:]):
+        (-[WKBrowsingContextController gapBetweenPages]):
+        (-[WKBrowsingContextController pageCount]):
+
</ins><span class="cx"> 2013-11-30  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r159865.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaWKNSURLExtrash"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.h (159893 => 159894)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.h        2013-12-01 03:52:23 UTC (rev 159893)
+++ trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.h        2013-12-01 06:02:32 UTC (rev 159894)
</span><span class="lines">@@ -27,6 +27,8 @@
</span><span class="cx"> 
</span><span class="cx"> @interface NSURL (WKExtras)
</span><span class="cx"> 
</span><del>-+ (instancetype)_web_URLWithWTFString:(const WTF::String&amp;)string relativeToURL:(NSURL *)baseURL;
</del><ins>++ (instancetype)_web_URLWithWTFString:(const String&amp;)string relativeToURL:(NSURL *)baseURL;
</ins><span class="cx"> 
</span><ins>+- (String)_web_originalDataAsWTFString;
+
</ins><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaWKNSURLExtrasmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.mm (159893 => 159894)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.mm        2013-12-01 03:52:23 UTC (rev 159893)
+++ trunk/Source/WebKit2/Shared/Cocoa/WKNSURLExtras.mm        2013-12-01 06:02:32 UTC (rev 159894)
</span><span class="lines">@@ -43,4 +43,11 @@
</span><span class="cx">     return CFBridgingRelease(createCFURLFromBuffer(buffer.data(), buffer.length(), (CFURLRef)baseURL).leakRef());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (String)_web_originalDataAsWTFString
+{
+    CString originalData;
+    getURLBytes((CFURLRef)self, originalData);
+    return String::fromUTF8(originalData);
+}
+
</ins><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm (159893 => 159894)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2013-12-01 03:52:23 UTC (rev 159893)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2013-12-01 06:02:32 UTC (rev 159894)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2011 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2011, 2012, 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -31,27 +31,18 @@
</span><span class="cx"> #import &quot;ObjCObjectGraph.h&quot;
</span><span class="cx"> #import &quot;WKBackForwardListInternal.h&quot;
</span><span class="cx"> #import &quot;WKBackForwardListItemInternal.h&quot;
</span><del>-#import &quot;WKErrorCF.h&quot;
</del><span class="cx"> #import &quot;WKErrorRecoveryAttempting.h&quot;
</span><span class="cx"> #import &quot;WKFrame.h&quot;
</span><span class="cx"> #import &quot;WKFramePolicyListener.h&quot;
</span><span class="cx"> #import &quot;WKNSArray.h&quot;
</span><span class="cx"> #import &quot;WKNSError.h&quot;
</span><span class="cx"> #import &quot;WKNSURLExtras.h&quot;
</span><del>-#import &quot;WKPagePrivate.h&quot;
</del><span class="cx"> #import &quot;WKRetainPtr.h&quot;
</span><del>-#import &quot;WKStringCF.h&quot;
-#import &quot;WKURLCF.h&quot;
-#import &quot;WKURLRequest.h&quot;
</del><span class="cx"> #import &quot;WKURLRequestNS.h&quot;
</span><del>-#import &quot;WKURLResponse.h&quot;
</del><span class="cx"> #import &quot;WKURLResponseNS.h&quot;
</span><span class="cx"> #import &quot;WebContext.h&quot;
</span><span class="cx"> #import &quot;WebData.h&quot;
</span><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><del>-#import &lt;WebCore/CFURLExtras.h&gt;
-#import &lt;wtf/ObjcRuntimeExtras.h&gt;
-#import &lt;wtf/RetainPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> #import &quot;WKBrowsingContextGroupInternal.h&quot;
</span><span class="cx"> #import &quot;WKBrowsingContextHandleInternal.h&quot;
</span><span class="lines">@@ -83,16 +74,6 @@
</span><span class="cx">     WKBrowsingContextController *m_controller;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static inline NSString *autoreleased(WKStringRef string)
-{
-    return string ? CFBridgingRelease(WKStringCopyCFString(kCFAllocatorDefault, adoptWK(string).get())) : nil;
-}
-
-static inline NSURL *autoreleased(WKURLRef url)
-{
-    return url ? CFBridgingRelease(WKURLCopyCFURL(kCFAllocatorDefault, adoptWK(url).get())) : nil;
-}
-
</del><span class="cx"> NSString * const WKActionIsMainFrameKey = @&quot;WKActionIsMainFrameKey&quot;;
</span><span class="cx"> NSString * const WKActionNavigationTypeKey = @&quot;WKActionNavigationTypeKey&quot;;
</span><span class="cx"> NSString * const WKActionMouseButtonKey = @&quot;WKActionMouseButtonKey&quot;;
</span><span class="lines">@@ -146,11 +127,6 @@
</span><span class="cx">     return wrapper(*pageGroup);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (WKPageRef)_pageRef
-{
-    return toAPI(_page.get());
-}
-
</del><span class="cx"> #pragma mark Loading
</span><span class="cx"> 
</span><span class="cx"> + (void)registerSchemeForCustomProtocol:(NSString *)scheme
</span><span class="lines">@@ -180,13 +156,13 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)loadRequest:(NSURLRequest *)request userData:(id)userData
</span><span class="cx"> {
</span><del>-    WKRetainPtr&lt;WKURLRequestRef&gt; wkRequest = adoptWK(WKURLRequestCreateWithNSURLRequest(request));
</del><ins>+    RefPtr&lt;WebURLRequest&gt; wkURLRequest = WebURLRequest::create(request);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;ObjCObjectGraph&gt; wkUserData;
</span><span class="cx">     if (userData)
</span><span class="cx">         wkUserData = ObjCObjectGraph::create(userData);
</span><span class="cx"> 
</span><del>-    WKPageLoadURLRequestWithUserData(toAPI(_page.get()), wkRequest.get(), (WKTypeRef)wkUserData.get());
</del><ins>+    _page-&gt;loadURLRequest(wkURLRequest.get(), wkUserData.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)loadFileURL:(NSURL *)URL restrictToFilesWithin:(NSURL *)allowedDirectory
</span><span class="lines">@@ -199,14 +175,11 @@
</span><span class="cx">     if (![URL isFileURL] || (allowedDirectory &amp;&amp; ![allowedDirectory isFileURL]))
</span><span class="cx">         [NSException raise:NSInvalidArgumentException format:@&quot;Attempted to load a non-file URL&quot;];
</span><span class="cx"> 
</span><del>-    WKRetainPtr&lt;WKURLRef&gt; wkURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)URL));
-    WKRetainPtr&lt;WKURLRef&gt; wkAllowedDirectory = adoptWK(WKURLCreateWithCFURL((CFURLRef)allowedDirectory));
-    
</del><span class="cx">     RefPtr&lt;ObjCObjectGraph&gt; wkUserData;
</span><span class="cx">     if (userData)
</span><span class="cx">         wkUserData = ObjCObjectGraph::create(userData);
</span><span class="cx"> 
</span><del>-    WKPageLoadFileWithUserData(toAPI(_page.get()), wkURL.get(), wkAllowedDirectory.get(), (WKTypeRef)wkUserData.get());
</del><ins>+    _page-&gt;loadFile([URL _web_originalDataAsWTFString], [allowedDirectory _web_originalDataAsWTFString], wkUserData.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)loadHTMLString:(NSString *)HTMLString baseURL:(NSURL *)baseURL
</span><span class="lines">@@ -216,30 +189,16 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)loadHTMLString:(NSString *)HTMLString baseURL:(NSURL *)baseURL userData:(id)userData
</span><span class="cx"> {
</span><del>-    WKRetainPtr&lt;WKStringRef&gt; wkHTMLString;
-    if (HTMLString)
-        wkHTMLString = adoptWK(WKStringCreateWithCFString((CFStringRef)HTMLString));
-
-    WKRetainPtr&lt;WKURLRef&gt; wkBaseURL;
-    if (baseURL)
-        wkBaseURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)baseURL));
-
</del><span class="cx">     RefPtr&lt;ObjCObjectGraph&gt; wkUserData;
</span><span class="cx">     if (userData)
</span><span class="cx">         wkUserData = ObjCObjectGraph::create(userData);
</span><span class="cx"> 
</span><del>-    WKPageLoadHTMLStringWithUserData(toAPI(_page.get()), wkHTMLString.get(), wkBaseURL.get(), (WKTypeRef)wkUserData.get());
</del><ins>+    _page-&gt;loadHTMLString(HTMLString, [baseURL _web_originalDataAsWTFString], wkUserData.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL
</span><span class="cx"> {
</span><del>-    CString baseURLString;
-    getURLBytes((CFURLRef)baseURL, baseURLString);
-
-    CString unreachableURLString;
-    getURLBytes((CFURLRef)unreachableURL, unreachableURLString);
-
-    _page-&gt;loadAlternateHTMLString(string, String::fromUTF8(baseURLString), String::fromUTF8(unreachableURLString));
</del><ins>+    _page-&gt;loadAlternateHTMLString(string, [baseURL _web_originalDataAsWTFString], [unreachableURL _web_originalDataAsWTFString]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
</span><span class="lines">@@ -260,60 +219,48 @@
</span><span class="cx">         wkData = WebData::createWithoutCopying((const unsigned char*)[data bytes], [data length], releaseNSData, data);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    WKRetainPtr&lt;WKStringRef&gt; wkMIMEType;
-    if (MIMEType)
-        wkMIMEType = adoptWK(WKStringCreateWithCFString((CFStringRef)MIMEType));
-
-    WKRetainPtr&lt;WKStringRef&gt; wkEncodingName;
-    if (encodingName)
-        wkEncodingName = adoptWK(WKStringCreateWithCFString((CFStringRef)encodingName));
-
-    WKRetainPtr&lt;WKURLRef&gt; wkBaseURL;
-    if (baseURL)
-        wkBaseURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)baseURL));
-
</del><span class="cx">     RefPtr&lt;ObjCObjectGraph&gt; wkUserData;
</span><span class="cx">     if (userData)
</span><span class="cx">         wkUserData = ObjCObjectGraph::create(userData);
</span><span class="cx"> 
</span><del>-    WKPageLoadDataWithUserData(toAPI(_page.get()), toAPI(wkData.get()), wkMIMEType.get(), wkEncodingName.get(), wkBaseURL.get(), (WKTypeRef)wkUserData.get());
</del><ins>+    _page-&gt;loadData(wkData.get(), MIMEType, encodingName, [baseURL _web_originalDataAsWTFString], wkUserData.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)stopLoading
</span><span class="cx"> {
</span><del>-    WKPageStopLoading(toAPI(_page.get()));
</del><ins>+    _page-&gt;stopLoading();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)reload
</span><span class="cx"> {
</span><del>-    WKPageReload(toAPI(_page.get()));
</del><ins>+    _page-&gt;reload(false);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)reloadFromOrigin
</span><span class="cx"> {
</span><del>-    WKPageReloadFromOrigin(toAPI(_page.get()));
</del><ins>+    _page-&gt;reload(true);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #pragma mark Back/Forward
</span><span class="cx"> 
</span><span class="cx"> - (void)goForward
</span><span class="cx"> {
</span><del>-    WKPageGoForward(toAPI(_page.get()));
</del><ins>+    _page-&gt;goForward();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)canGoForward
</span><span class="cx"> {
</span><del>-    return WKPageCanGoForward(toAPI(_page.get()));
</del><ins>+    return _page-&gt;canGoForward();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)goBack
</span><span class="cx"> {
</span><del>-    WKPageGoBack(toAPI(_page.get()));
</del><ins>+    _page-&gt;goBack();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)canGoBack
</span><span class="cx"> {
</span><del>-    return WKPageCanGoBack(toAPI(_page.get()));
</del><ins>+    return _page-&gt;canGoBack();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)goToBackForwardListItem:(WKBackForwardListItem *)item
</span><span class="lines">@@ -330,17 +277,17 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSURL *)activeURL
</span><span class="cx"> {
</span><del>-    return autoreleased(WKPageCopyActiveURL(toAPI(_page.get())));
</del><ins>+    return [NSURL _web_URLWithWTFString:_page-&gt;pageLoadState().activeURL() relativeToURL:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSURL *)provisionalURL
</span><span class="cx"> {
</span><del>-    return autoreleased(WKPageCopyProvisionalURL(toAPI(_page.get())));
</del><ins>+    return [NSURL _web_URLWithWTFString:_page-&gt;pageLoadState().provisionalURL() relativeToURL:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSURL *)committedURL
</span><span class="cx"> {
</span><del>-    return autoreleased(WKPageCopyCommittedURL(toAPI(_page.get())));
</del><ins>+    return [NSURL _web_URLWithWTFString:_page-&gt;pageLoadState().url() relativeToURL:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSURL *)unreachableURL
</span><span class="lines">@@ -357,29 +304,29 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSString *)title
</span><span class="cx"> {
</span><del>-    return autoreleased(WKPageCopyTitle(toAPI(_page.get())));
</del><ins>+    return _page-&gt;pageLoadState().title();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #pragma mark Zoom
</span><span class="cx"> 
</span><span class="cx"> - (CGFloat)textZoom
</span><span class="cx"> {
</span><del>-    return WKPageGetTextZoomFactor(toAPI(_page.get()));
</del><ins>+    return _page-&gt;textZoomFactor();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setTextZoom:(CGFloat)textZoom
</span><span class="cx"> {
</span><del>-    return WKPageSetTextZoomFactor(toAPI(_page.get()), textZoom);
</del><ins>+    _page-&gt;setTextZoomFactor(textZoom);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (CGFloat)pageZoom
</span><span class="cx"> {
</span><del>-    return WKPageGetPageZoomFactor(toAPI(_page.get()));
</del><ins>+    return _page-&gt;pageZoomFactor();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setPageZoom:(CGFloat)pageZoom
</span><span class="cx"> {
</span><del>-    return WKPageSetPageZoomFactor(toAPI(_page.get()), pageZoom);
</del><ins>+    _page-&gt;setPageZoomFactor(pageZoom);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static NSError *createErrorWithRecoveryAttempter(WKErrorRef wkError, WKFrameRef frame, WKBrowsingContextController *browsingContext)
</span><span class="lines">@@ -492,7 +439,7 @@
</span><span class="cx">     [browsingContext.loadDelegate browsingContextControllerDidChangeBackForwardList:browsingContext addedItem:added removedItems:removed];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WKPageRef pageRef)
</del><ins>+static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WebPageProxy&amp; page)
</ins><span class="cx"> {
</span><span class="cx">     WKPageLoaderClient loaderClient;
</span><span class="cx">     memset(&amp;loaderClient, 0, sizeof(loaderClient));
</span><span class="lines">@@ -511,7 +458,7 @@
</span><span class="cx">     loaderClient.didFinishProgress = didFinishProgress;
</span><span class="cx">     loaderClient.didChangeBackForwardList = didChangeBackForwardList;
</span><span class="cx"> 
</span><del>-    WKPageSetPageLoaderClient(pageRef, &amp;loaderClient);
</del><ins>+    page.initializeLoaderClient(&amp;loaderClient);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static WKPolicyDecisionHandler makePolicyDecisionBlock(WKFramePolicyListenerRef listener)
</span><span class="lines">@@ -537,7 +484,7 @@
</span><span class="cx">     } copy] autorelease];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void setUpPagePolicyClient(WKBrowsingContextController *browsingContext, WKPageRef pageRef)
</del><ins>+static void setUpPagePolicyClient(WKBrowsingContextController *browsingContext, WebPageProxy&amp; page)
</ins><span class="cx"> {
</span><span class="cx">     WKPagePolicyClient policyClient;
</span><span class="cx">     memset(&amp;policyClient, 0, sizeof(policyClient));
</span><span class="lines">@@ -601,7 +548,7 @@
</span><span class="cx">             WKFramePolicyListenerUse(listener);
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WKPageSetPagePolicyClient(pageRef, &amp;policyClient);
</del><ins>+    page.initializePolicyClient(&amp;policyClient);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id &lt;WKBrowsingContextLoadDelegate&gt;)loadDelegate
</span><span class="lines">@@ -613,9 +560,9 @@
</span><span class="cx"> {
</span><span class="cx">     _loadDelegate = loadDelegate;
</span><span class="cx">     if (_loadDelegate)
</span><del>-        setUpPageLoaderClient(self, toAPI(_page.get()));
</del><ins>+        setUpPageLoaderClient(self, *_page);
</ins><span class="cx">     else
</span><del>-        WKPageSetPageLoaderClient(toAPI(_page.get()), nullptr);;
</del><ins>+        _page-&gt;initializeLoaderClient(nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id &lt;WKBrowsingContextPolicyDelegate&gt;)policyDelegate
</span><span class="lines">@@ -627,9 +574,9 @@
</span><span class="cx"> {
</span><span class="cx">     _policyDelegate = policyDelegate;
</span><span class="cx">     if (_policyDelegate)
</span><del>-        setUpPagePolicyClient(self, toAPI(_page.get()));
</del><ins>+        setUpPagePolicyClient(self, *_page);
</ins><span class="cx">     else
</span><del>-        WKPageSetPagePolicyClient(toAPI(_page.get()), nullptr);;
</del><ins>+        _page-&gt;initializePolicyClient(nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (NSMutableSet *)customSchemes
</span><span class="lines">@@ -672,44 +619,49 @@
</span><span class="cx"> 
</span><span class="cx"> @implementation WKBrowsingContextController (Private)
</span><span class="cx"> 
</span><ins>+- (WKPageRef)_pageRef
+{
+    return toAPI(_page.get());
+}
+
</ins><span class="cx"> - (void)setPaginationMode:(WKBrowsingContextPaginationMode)paginationMode
</span><span class="cx"> {
</span><del>-    WKPaginationMode mode;
</del><ins>+    Pagination::Mode mode;
</ins><span class="cx">     switch (paginationMode) {
</span><span class="cx">     case WKPaginationModeUnpaginated:
</span><del>-        mode = kWKPaginationModeUnpaginated;
</del><ins>+        mode = Pagination::Unpaginated;
</ins><span class="cx">         break;
</span><span class="cx">     case WKPaginationModeLeftToRight:
</span><del>-        mode = kWKPaginationModeLeftToRight;
</del><ins>+        mode = Pagination::LeftToRightPaginated;
</ins><span class="cx">         break;
</span><span class="cx">     case WKPaginationModeRightToLeft:
</span><del>-        mode = kWKPaginationModeRightToLeft;
</del><ins>+        mode = Pagination::RightToLeftPaginated;
</ins><span class="cx">         break;
</span><span class="cx">     case WKPaginationModeTopToBottom:
</span><del>-        mode = kWKPaginationModeTopToBottom;
</del><ins>+        mode = Pagination::TopToBottomPaginated;
</ins><span class="cx">         break;
</span><span class="cx">     case WKPaginationModeBottomToTop:
</span><del>-        mode = kWKPaginationModeBottomToTop;
</del><ins>+        mode = Pagination::BottomToTopPaginated;
</ins><span class="cx">         break;
</span><span class="cx">     default:
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    WKPageSetPaginationMode(toAPI(_page.get()), mode);
</del><ins>+    _page-&gt;setPaginationMode(mode);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WKBrowsingContextPaginationMode)paginationMode
</span><span class="cx"> {
</span><del>-    switch (WKPageGetPaginationMode(toAPI(_page.get()))) {
-    case kWKPaginationModeUnpaginated:
</del><ins>+    switch (_page-&gt;paginationMode()) {
+    case Pagination::Unpaginated:
</ins><span class="cx">         return WKPaginationModeUnpaginated;
</span><del>-    case kWKPaginationModeLeftToRight:
</del><ins>+    case Pagination::LeftToRightPaginated:
</ins><span class="cx">         return WKPaginationModeLeftToRight;
</span><del>-    case kWKPaginationModeRightToLeft:
</del><ins>+    case Pagination::RightToLeftPaginated:
</ins><span class="cx">         return WKPaginationModeRightToLeft;
</span><del>-    case kWKPaginationModeTopToBottom:
</del><ins>+    case Pagination::TopToBottomPaginated:
</ins><span class="cx">         return WKPaginationModeTopToBottom;
</span><del>-    case kWKPaginationModeBottomToTop:
</del><ins>+    case Pagination::BottomToTopPaginated:
</ins><span class="cx">         return WKPaginationModeBottomToTop;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -719,37 +671,37 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)setPaginationBehavesLikeColumns:(BOOL)behavesLikeColumns
</span><span class="cx"> {
</span><del>-    WKPageSetPaginationBehavesLikeColumns(toAPI(_page.get()), behavesLikeColumns);
</del><ins>+    _page-&gt;setPaginationBehavesLikeColumns(behavesLikeColumns);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)paginationBehavesLikeColumns
</span><span class="cx"> {
</span><del>-    return WKPageGetPaginationBehavesLikeColumns(toAPI(_page.get()));
</del><ins>+    return _page-&gt;paginationBehavesLikeColumns();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setPageLength:(CGFloat)pageLength
</span><span class="cx"> {
</span><del>-    WKPageSetPageLength(toAPI(_page.get()), pageLength);
</del><ins>+    _page-&gt;setPageLength(pageLength);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (CGFloat)pageLength
</span><span class="cx"> {
</span><del>-    return WKPageGetPageLength(toAPI(_page.get()));
</del><ins>+    return _page-&gt;pageLength();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setGapBetweenPages:(CGFloat)gapBetweenPages
</span><span class="cx"> {
</span><del>-    WKPageSetGapBetweenPages(toAPI(_page.get()), gapBetweenPages);
</del><ins>+    _page-&gt;setGapBetweenPages(gapBetweenPages);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (CGFloat)gapBetweenPages
</span><span class="cx"> {
</span><del>-    return WKPageGetGapBetweenPages(toAPI(_page.get()));
</del><ins>+    return _page-&gt;gapBetweenPages();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (NSUInteger)pageCount
</span><span class="cx"> {
</span><del>-    return WKPageGetPageCount(toAPI(_page.get()));
</del><ins>+    return _page-&gt;pageCount();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WKBrowsingContextHandle *)handle
</span></span></pre>
</div>
</div>

</body>
</html>