<!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>[150660] trunk/Source/WebKit/win</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/150660">150660</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2013-05-24 15:05:57 -0700 (Fri, 24 May 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove unused code to read/write history
https://bugs.webkit.org/show_bug.cgi?id=116738

Reviewed by Brent Fulgham.

* Interfaces/IWebHistory.idl:
Replace loadFromURL and saveToURL with unused1/unused2.

* Interfaces/IWebHistoryPrivate.idl:
Replace data with unused1.

* WebHistory.cpp:
Remove history loading/saving code.

(WebHistory::unused1):
(WebHistory::unused2):
Add implementations.

* WebHistory.h:
(WebHistory):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinInterfacesIWebHistoryidl">trunk/Source/WebKit/win/Interfaces/IWebHistory.idl</a></li>
<li><a href="#trunkSourceWebKitwinInterfacesIWebHistoryPrivateidl">trunk/Source/WebKit/win/Interfaces/IWebHistoryPrivate.idl</a></li>
<li><a href="#trunkSourceWebKitwinWebHistorycpp">trunk/Source/WebKit/win/WebHistory.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebHistoryh">trunk/Source/WebKit/win/WebHistory.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (150659 => 150660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2013-05-24 22:00:21 UTC (rev 150659)
+++ trunk/Source/WebKit/win/ChangeLog        2013-05-24 22:05:57 UTC (rev 150660)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2013-05-24  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Remove unused code to read/write history
+        https://bugs.webkit.org/show_bug.cgi?id=116738
+
+        Reviewed by Brent Fulgham.
+
+        * Interfaces/IWebHistory.idl:
+        Replace loadFromURL and saveToURL with unused1/unused2.
+
+        * Interfaces/IWebHistoryPrivate.idl:
+        Replace data with unused1.
+
+        * WebHistory.cpp:
+        Remove history loading/saving code.
+
+        (WebHistory::unused1):
+        (WebHistory::unused2):
+        Add implementations.
+
+        * WebHistory.h:
+        (WebHistory):
+
</ins><span class="cx"> 2013-05-21  Mark Salisbury  &lt;mark.salisbury@hp.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Windows, curl] WebDownloadCurl.cpp should not include SystemTime.h
</span></span></pre></div>
<a id="trunkSourceWebKitwinInterfacesIWebHistoryidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Interfaces/IWebHistory.idl (150659 => 150660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Interfaces/IWebHistory.idl        2013-05-24 22:00:21 UTC (rev 150659)
+++ trunk/Source/WebKit/win/Interfaces/IWebHistory.idl        2013-05-24 22:05:57 UTC (rev 150660)
</span><span class="lines">@@ -80,27 +80,10 @@
</span><span class="cx">     */
</span><span class="cx">     HRESULT setOptionalSharedHistory([in] IWebHistory* history);
</span><span class="cx"> 
</span><del>-    /*!
-        @method loadFromURL:error:
-        @param URL The URL to use to initialize the WebHistory.
-        @param error Set to nil or an NSError instance if an error occurred.
-        @abstract The designated initializer for WebHistory.
-        @result Returns YES if successful, NO otherwise.
-        - (BOOL)loadFromURL:(NSURL *)URL error:(NSError **)error;
-    */
-    HRESULT loadFromURL([in] BSTR url, [out] IWebError** error, [out, retval] BOOL* succeeded);
</del><ins>+    HRESULT unused1();
+    HRESULT unused2();
</ins><span class="cx"> 
</span><span class="cx">     /*!
</span><del>-        @method saveToURL:error:
-        @discussion Save history to URL. It is the client's responsibility to call this at appropriate times.
-        @param URL The URL to use to save the WebHistory.
-        @param error Set to nil or an NSError instance if an error occurred.
-        @result Returns YES if successful, NO otherwise.
-        - (BOOL)saveToURL:(NSURL *)URL error:(NSError **)error;
-    */
-    HRESULT saveToURL([in] BSTR url, [out] IWebError** error, [out, retval] BOOL* succeeded);
-
-    /*!
</del><span class="cx">         @method addItems:
</span><span class="cx">         @param newItems An array of WebHistoryItems to add to the WebHistory.
</span><span class="cx">         - (void)addItems:(NSArray *)newItems;
</span></span></pre></div>
<a id="trunkSourceWebKitwinInterfacesIWebHistoryPrivateidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Interfaces/IWebHistoryPrivate.idl (150659 => 150660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Interfaces/IWebHistoryPrivate.idl        2013-05-24 22:00:21 UTC (rev 150659)
+++ trunk/Source/WebKit/win/Interfaces/IWebHistoryPrivate.idl        2013-05-24 22:05:57 UTC (rev 150660)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> interface IWebHistoryPrivate : IUnknown
</span><span class="cx"> {
</span><span class="cx">     HRESULT allItems([in, out] int* count, [out, retval] IWebHistoryItem** items);
</span><del>-    HRESULT data([out, retval] IStream**);
</del><ins>+    HRESULT unused1();
</ins><span class="cx">     HRESULT setVisitedLinkTrackingEnabled([in] BOOL visitedLinkTrackingEnable);
</span><span class="cx">     HRESULT removeAllVisitedLinks();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebHistorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebHistory.cpp (150659 => 150660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebHistory.cpp        2013-05-24 22:00:21 UTC (rev 150659)
+++ trunk/Source/WebKit/win/WebHistory.cpp        2013-05-24 22:05:57 UTC (rev 150660)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> #include &lt;CoreFoundation/CoreFoundation.h&gt;
</span><span class="cx"> #include &lt;WebCore/BString.h&gt;
</span><span class="cx"> #include &lt;WebCore/HistoryItem.h&gt;
</span><del>-#include &lt;WebCore/HistoryPropertyList.h&gt;
</del><span class="cx"> #include &lt;WebCore/KURL.h&gt;
</span><span class="cx"> #include &lt;WebCore/PageGroup.h&gt;
</span><span class="cx"> #include &lt;WebCore/SharedBuffer.h&gt;
</span><span class="lines">@@ -49,46 +48,6 @@
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> using namespace std;
</span><span class="cx"> 
</span><del>-CFStringRef DatesArrayKey = CFSTR(&quot;WebHistoryDates&quot;);
-CFStringRef FileVersionKey = CFSTR(&quot;WebHistoryFileVersion&quot;);
-
-#define currentFileVersion 1
-
-class WebHistoryWriter : public HistoryPropertyListWriter {
-public:
-    WebHistoryWriter(const WebHistory::DateToEntriesMap&amp;);
-
-private:
-    virtual void writeHistoryItems(BinaryPropertyListObjectStream&amp;);
-
-    const WebHistory::DateToEntriesMap&amp; m_entriesByDate;
-    Vector&lt;WebHistory::DateKey&gt; m_dateKeys;
-};
-
-WebHistoryWriter::WebHistoryWriter(const WebHistory::DateToEntriesMap&amp; entriesByDate)
-    : m_entriesByDate(entriesByDate)
-{
-    copyKeysToVector(m_entriesByDate, m_dateKeys);
-    sort(m_dateKeys.begin(), m_dateKeys.end());
-}
-
-void WebHistoryWriter::writeHistoryItems(BinaryPropertyListObjectStream&amp; stream)
-{
-    for (int dateIndex = m_dateKeys.size() - 1; dateIndex &gt;= 0; --dateIndex) {
-        // get the entries for that date
-        CFArrayRef entries = m_entriesByDate.get(m_dateKeys[dateIndex]).get();
-        CFIndex entriesCount = CFArrayGetCount(entries);
-        for (CFIndex j = entriesCount - 1; j &gt;= 0; --j) {
-            IWebHistoryItem* item = (IWebHistoryItem*) CFArrayGetValueAtIndex(entries, j);
-            COMPtr&lt;WebHistoryItem&gt; webItem(Query, item);
-            if (!webItem)
-                continue;
-
-            writeHistoryItem(stream, webItem-&gt;historyItem());
-        }
-    }
-}
-
</del><span class="cx"> static bool areEqualOrClose(double d1, double d2)
</span><span class="cx"> {
</span><span class="cx">     double diff = d1-d2;
</span><span class="lines">@@ -234,181 +193,18 @@
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-HRESULT STDMETHODCALLTYPE WebHistory::loadFromURL( 
-    /* [in] */ BSTR url,
-    /* [out] */ IWebError** error,
-    /* [retval][out] */ BOOL* succeeded)
</del><ins>+HRESULT STDMETHODCALLTYPE WebHistory::unused1()
</ins><span class="cx"> {
</span><del>-    HRESULT hr = S_OK;
-    RetainPtr&lt;CFMutableArrayRef&gt; discardedItems = adoptCF(
-        CFArrayCreateMutable(0, 0, &amp;MarshallingHelpers::kIUnknownArrayCallBacks));
-
-    RetainPtr&lt;CFURLRef&gt; urlRef = adoptCF(MarshallingHelpers::BSTRToCFURLRef(url));
-
-    hr = loadHistoryGutsFromURL(urlRef.get(), discardedItems.get(), error);
-    if (FAILED(hr))
-        goto exit;
-
-    hr = postNotification(kWebHistoryLoadedNotification);
-    if (FAILED(hr))
-        goto exit;
-
-    if (CFArrayGetCount(discardedItems.get()) &gt; 0) {
-        COMPtr&lt;CFDictionaryPropertyBag&gt; userInfo = createUserInfoFromArray(getNotificationString(kWebHistoryItemsDiscardedWhileLoadingNotification), discardedItems.get());
-        hr = postNotification(kWebHistoryItemsDiscardedWhileLoadingNotification, userInfo.get());
-        if (FAILED(hr))
-            goto exit;
-    }
-
-exit:
-    if (succeeded)
-        *succeeded = SUCCEEDED(hr);
-    return hr;
</del><ins>+    ASSERT_NOT_REACHED();
+    return E_FAIL;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static CFDictionaryRef createHistoryListFromStream(CFReadStreamRef stream, CFPropertyListFormat format)
</del><ins>+HRESULT STDMETHODCALLTYPE WebHistory::unused2()
</ins><span class="cx"> {
</span><del>-    return (CFDictionaryRef)CFPropertyListCreateFromStream(0, stream, 0, kCFPropertyListImmutable, &amp;format, 0);
</del><ins>+    ASSERT_NOT_REACHED();
+    return E_FAIL;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-HRESULT WebHistory::loadHistoryGutsFromURL(CFURLRef url, CFMutableArrayRef discardedItems, IWebError** /*error*/) //FIXME
-{
-    CFPropertyListFormat format = kCFPropertyListBinaryFormat_v1_0 | kCFPropertyListXMLFormat_v1_0;
-    HRESULT hr = S_OK;
-    int numberOfItemsLoaded = 0;
-
-    RetainPtr&lt;CFReadStreamRef&gt; stream = adoptCF(CFReadStreamCreateWithFile(0, url));
-    if (!stream) 
-        return E_FAIL;
-
-    if (!CFReadStreamOpen(stream.get())) 
-        return E_FAIL;
-
-    RetainPtr&lt;CFDictionaryRef&gt; historyList = adoptCF(createHistoryListFromStream(stream.get(), format));
-    CFReadStreamClose(stream.get());
-
-    if (!historyList) 
-        return E_FAIL;
-
-    CFNumberRef fileVersionObject = (CFNumberRef)CFDictionaryGetValue(historyList.get(), FileVersionKey);
-    int fileVersion;
-    if (!CFNumberGetValue(fileVersionObject, kCFNumberIntType, &amp;fileVersion)) 
-        return E_FAIL;
-
-    if (fileVersion &gt; currentFileVersion) 
-        return E_FAIL;
-    
-    CFArrayRef datesArray = (CFArrayRef)CFDictionaryGetValue(historyList.get(), DatesArrayKey);
-
-    int itemCountLimit;
-    hr = historyItemLimit(&amp;itemCountLimit);
-    if (FAILED(hr))
-        return hr;
-
-    CFAbsoluteTime limitDate;
-    hr = ageLimitDate(&amp;limitDate);
-    if (FAILED(hr))
-        return hr;
-
-    bool ageLimitPassed = false;
-    bool itemLimitPassed = false;
-
-    CFIndex itemCount = CFArrayGetCount(datesArray);
-    for (CFIndex i = 0; i &lt; itemCount; ++i) {
-        CFDictionaryRef itemAsDictionary = (CFDictionaryRef)CFArrayGetValueAtIndex(datesArray, i);
-        COMPtr&lt;WebHistoryItem&gt; item(AdoptCOM, WebHistoryItem::createInstance());
-        hr = item-&gt;initFromDictionaryRepresentation((void*)itemAsDictionary);
-        if (FAILED(hr))
-            return hr;
-
-        // item without URL is useless; data on disk must have been bad; ignore
-        BOOL hasURL;
-        hr = item-&gt;hasURLString(&amp;hasURL);
-        if (FAILED(hr))
-            return hr;
-        
-        if (hasURL) {
-            // Test against date limit. Since the items are ordered newest to oldest, we can stop comparing
-            // once we've found the first item that's too old.
-            if (!ageLimitPassed) {
-                DATE lastVisitedTime;
-                hr = item-&gt;lastVisitedTimeInterval(&amp;lastVisitedTime);
-                if (FAILED(hr))
-                    return hr;
-                if (timeToDate(MarshallingHelpers::DATEToCFAbsoluteTime(lastVisitedTime)) &lt;= limitDate)
-                    ageLimitPassed = true;
-            }
-            if (ageLimitPassed || itemLimitPassed)
-                CFArrayAppendValue(discardedItems, item.get());
-            else {
-                bool added;
-                addItem(item.get(), true, &amp;added); // ref is added inside addItem
-                if (added)
-                    ++numberOfItemsLoaded;
-                if (numberOfItemsLoaded == itemCountLimit)
-                    itemLimitPassed = true;
-            }
-        }
-    }
-    return hr;
-}
-
-HRESULT STDMETHODCALLTYPE WebHistory::saveToURL( 
-    /* [in] */ BSTR url,
-    /* [out] */ IWebError** error,
-    /* [retval][out] */ BOOL* succeeded)
-{
-    HRESULT hr = S_OK;
-    RetainPtr&lt;CFURLRef&gt; urlRef = adoptCF(MarshallingHelpers::BSTRToCFURLRef(url));
-
-    hr = saveHistoryGuts(urlRef.get(), error);
-
-    if (succeeded)
-        *succeeded = SUCCEEDED(hr);
-    if (SUCCEEDED(hr))
-        hr = postNotification(kWebHistorySavedNotification);
-
-    return hr;
-}
-
-HRESULT WebHistory::saveHistoryGuts(CFURLRef url, IWebError** error)
-{
-    HRESULT hr = S_OK;
-
-    // FIXME: Correctly report error when new API is ready.
-    if (error)
-        *error = 0;
-
-    RetainPtr&lt;CFDataRef&gt; data = this-&gt;data();
-
-    if (!data.get())
-        return E_FAIL;
-
-    RetainPtr&lt;CFWriteStreamRef&gt; stream = adoptCF(CFWriteStreamCreateWithFile(kCFAllocatorDefault, url));
-    if (!stream) 
-        return E_FAIL;
-
-    if (!CFWriteStreamOpen(stream.get())) 
-        return E_FAIL;
-
-    const UInt8* dataPtr = CFDataGetBytePtr(data.get());
-    CFIndex length = CFDataGetLength(data.get());
-
-    while (length) {
-        CFIndex bytesWritten = CFWriteStreamWrite(stream.get(), dataPtr, length);
-        if (bytesWritten &lt;= 0) {
-            hr = E_FAIL;
-            break;
-        }
-        dataPtr += bytesWritten;
-        length -= bytesWritten;
-    }
-
-    CFWriteStreamClose(stream.get());
-
-    return hr;
-}
-
</del><span class="cx"> HRESULT STDMETHODCALLTYPE WebHistory::addItems( 
</span><span class="cx">     /* [in] */ int itemCount,
</span><span class="cx">     /* [in] */ IWebHistoryItem** items)
</span><span class="lines">@@ -554,21 +350,6 @@
</span><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-HRESULT WebHistory::data(IStream** stream)
-{
-    if (!stream)
-        return E_POINTER;
-
-    *stream = 0;
-
-    RetainPtr&lt;CFDataRef&gt; historyData = data();
-    if (!historyData)
-        return S_OK;
-
-    COMPtr&lt;MemoryStream&gt; result = MemoryStream::createInstance(SharedBuffer::wrapCFData(historyData.get()));
-    return result.copyRefTo(stream);
-}
-
</del><span class="cx"> HRESULT WebHistory::setVisitedLinkTrackingEnabled(BOOL visitedLinkTrackingEnabled)
</span><span class="cx"> {
</span><span class="cx">     PageGroup::setShouldTrackVisitedLinks(visitedLinkTrackingEnabled);
</span><span class="lines">@@ -1003,13 +784,3 @@
</span><span class="cx"> {
</span><span class="cx">     CFDictionaryApplyFunction(m_entriesByURL.get(), addVisitedLinkToPageGroup, &amp;group);
</span><span class="cx"> }
</span><del>-
-RetainPtr&lt;CFDataRef&gt; WebHistory::data() const
-{
-    if (m_entriesByDate.isEmpty())
-        return 0;
-
-    WebHistoryWriter writer(m_entriesByDate);
-    writer.writePropertyList();
-    return writer.releaseData();
-}
</del></span></pre></div>
<a id="trunkSourceWebKitwinWebHistoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebHistory.h (150659 => 150660)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebHistory.h        2013-05-24 22:00:21 UTC (rev 150659)
+++ trunk/Source/WebKit/win/WebHistory.h        2013-05-24 22:05:57 UTC (rev 150660)
</span><span class="lines">@@ -62,16 +62,9 @@
</span><span class="cx">     virtual HRESULT STDMETHODCALLTYPE setOptionalSharedHistory( 
</span><span class="cx">         /* [in] */ IWebHistory* history);
</span><span class="cx">     
</span><del>-    virtual HRESULT STDMETHODCALLTYPE loadFromURL( 
-        /* [in] */ BSTR url,
-        /* [out] */ IWebError** error,
-        /* [retval][out] */ BOOL* succeeded);
</del><ins>+    virtual HRESULT STDMETHODCALLTYPE unused1() OVERRIDE;
+    virtual HRESULT STDMETHODCALLTYPE unused2() OVERRIDE;
</ins><span class="cx">     
</span><del>-    virtual HRESULT STDMETHODCALLTYPE saveToURL( 
-        /* [in] */ BSTR url,
-        /* [out] */ IWebError** error,
-        /* [retval][out] */ BOOL* succeeded);
-    
</del><span class="cx">     virtual HRESULT STDMETHODCALLTYPE addItems( 
</span><span class="cx">         /* [in] */ int itemCount,
</span><span class="cx">         /* [in] */ IWebHistoryItem** items);
</span><span class="lines">@@ -113,8 +106,6 @@
</span><span class="cx">         /* [out][in] */ int* count,
</span><span class="cx">         /* [retval][out] */ IWebHistoryItem** items);
</span><span class="cx"> 
</span><del>-    virtual HRESULT STDMETHODCALLTYPE data(IStream**);
-
</del><span class="cx">     virtual HRESULT STDMETHODCALLTYPE setVisitedLinkTrackingEnabled(BOOL visitedLinkTrackingEnable);
</span><span class="cx">     virtual HRESULT STDMETHODCALLTYPE removeAllVisitedLinks();
</span><span class="cx"> 
</span><span class="lines">@@ -140,8 +131,6 @@
</span><span class="cx">         kWebHistorySavedNotification = 5
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    HRESULT loadHistoryGutsFromURL(CFURLRef url, CFMutableArrayRef discardedItems, IWebError** error);
-    HRESULT saveHistoryGuts(CFURLRef url, IWebError** error);
</del><span class="cx">     HRESULT postNotification(NotificationType notifyType, IPropertyBag* userInfo = 0);
</span><span class="cx">     HRESULT removeItem(IWebHistoryItem* entry);
</span><span class="cx">     HRESULT addItem(IWebHistoryItem* entry, bool discardDuplicate, bool* added);
</span><span class="lines">@@ -154,7 +143,6 @@
</span><span class="cx">     static CFAbsoluteTime timeToDate(CFAbsoluteTime time);
</span><span class="cx">     BSTR getNotificationString(NotificationType notifyType);
</span><span class="cx">     HRESULT itemForURLString(CFStringRef urlString, IWebHistoryItem** item) const;
</span><del>-    RetainPtr&lt;CFDataRef&gt; data() const;
</del><span class="cx"> 
</span><span class="cx">     ULONG m_refCount;
</span><span class="cx">     RetainPtr&lt;CFMutableDictionaryRef&gt; m_entriesByURL;
</span></span></pre>
</div>
</div>

</body>
</html>