Changeset 170644 in webkit
- Timestamp:
- Jul 1, 2014, 10:04:30 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 8 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/C/WKPage.cpp (modified) (1 diff)
-
UIProcess/API/Cocoa/WKWebView.mm (modified) (1 diff)
-
UIProcess/WebBackForwardList.h (modified) (1 diff)
-
UIProcess/WebPageProxy.cpp (modified) (1 diff)
-
UIProcess/WebPageProxy.h (modified) (1 diff)
-
UIProcess/cf/WebBackForwardListCF.cpp (modified) (2 diffs)
-
UIProcess/cf/WebPageProxyCF.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r170643 r170644 1 2014-06-30 Anders Carlsson <andersca@apple.com> 2 3 Use an std::function for filtering session state data 4 https://bugs.webkit.org/show_bug.cgi?id=134481 5 6 Reviewed by Sam Weinig. 7 8 * UIProcess/API/C/WKPage.cpp: 9 (WKPageCopySessionState): 10 * UIProcess/API/Cocoa/WKWebView.mm: 11 (-[WKWebView _sessionState]): 12 * UIProcess/WebBackForwardList.h: 13 * UIProcess/WebPageProxy.cpp: 14 (WebKit::WebPageProxy::sessionStateData): 15 * UIProcess/WebPageProxy.h: 16 * UIProcess/cf/WebBackForwardListCF.cpp: 17 (WebKit::WebBackForwardList::createCFDictionaryRepresentation): 18 * UIProcess/cf/WebPageProxyCF.cpp: 19 (WebKit::WebPageProxy::sessionStateData): 20 1 21 2014-07-01 Rohit Kumar <kumar.rohit@samsung.com> 2 22 -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r170303 r170644 352 352 WKDataRef WKPageCopySessionState(WKPageRef pageRef, void *context, WKPageSessionStateFilterCallback filter) 353 353 { 354 return toAPI(toImpl(pageRef)->sessionStateData(filter, context).leakRef()); 354 return toAPI(toImpl(pageRef)->sessionStateData([pageRef, context, filter](WebBackForwardListItem& item) { 355 if (!filter(pageRef, WKPageGetSessionBackForwardListItemValueType(), toAPI(&item), context)) 356 return false; 357 358 if (!filter(pageRef, WKPageGetSessionHistoryURLValueType(), toURLRef(item.originalURL().impl()), context)) 359 return false; 360 361 return true; 362 }).leakRef()); 355 363 } 356 364 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r170600 r170644 1561 1561 - (NSData *)_sessionState 1562 1562 { 1563 return [wrapper(*_page->sessionStateData(nullptr , nullptr).leakRef()) autorelease];1563 return [wrapper(*_page->sessionStateData(nullptr).leakRef()) autorelease]; 1564 1564 } 1565 1565 -
trunk/Source/WebKit2/UIProcess/WebBackForwardList.h
r170626 r170644 74 74 75 75 #if USE(CF) 76 CFDictionaryRef createCFDictionaryRepresentation( WebPageProxy::WebPageProxySessionStateFilterCallback, void* context) const;76 CFDictionaryRef createCFDictionaryRepresentation(std::function<bool (WebBackForwardListItem&)>) const; 77 77 bool restoreFromCFDictionaryRepresentation(CFDictionaryRef); 78 78 bool restoreFromV0CFDictionaryRepresentation(CFDictionaryRef); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r170632 r170644 1835 1835 1836 1836 #if !USE(CF) 1837 PassRefPtr<API::Data> WebPageProxy::sessionStateData( WebPageProxySessionStateFilterCallback, void* /*context*/) const1837 PassRefPtr<API::Data> WebPageProxy::sessionStateData(std::function<bool (WebBackForwardListItem&)>) const 1838 1838 { 1839 1839 // FIXME: Return session state data for saving Page state. -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r170627 r170644 551 551 void terminateProcess(); 552 552 553 typedef bool (*WebPageProxySessionStateFilterCallback)(WKPageRef, WKStringRef type, WKTypeRef object, void* context); 554 PassRefPtr<API::Data> sessionStateData(WebPageProxySessionStateFilterCallback, void* context) const; 553 PassRefPtr<API::Data> sessionStateData(std::function<bool (WebBackForwardListItem&)>) const; 555 554 void restoreFromSessionStateData(API::Data*); 556 555 void restoreFromState(SessionState); -
trunk/Source/WebKit2/UIProcess/cf/WebBackForwardListCF.cpp
r170626 r170644 64 64 } 65 65 66 CFDictionaryRef WebBackForwardList::createCFDictionaryRepresentation( WebPageProxy::WebPageProxySessionStateFilterCallback filter, void* context) const66 CFDictionaryRef WebBackForwardList::createCFDictionaryRepresentation(std::function<bool (WebBackForwardListItem&)> filter) const 67 67 { 68 68 ASSERT(!m_hasCurrentIndex || m_currentIndex < m_entries.size()); … … 87 87 } 88 88 89 if (filter) { 90 if (!filter(toAPI(m_page), WKPageGetSessionBackForwardListItemValueType(), toAPI(m_entries[i].get()), context) 91 || !filter(toAPI(m_page), WKPageGetSessionHistoryURLValueType(), toURLRef(m_entries[i]->originalURL().impl()), context)) { 92 if (i <= m_currentIndex) 93 currentIndex--; 94 continue; 95 } 89 if (filter && !filter(*m_entries[i])) { 90 if (i <= m_currentIndex) 91 currentIndex--; 92 continue; 96 93 } 97 94 -
trunk/Source/WebKit2/UIProcess/cf/WebPageProxyCF.cpp
r170188 r170644 47 47 static const UInt32 CurrentSessionStateDataVersion = 2; 48 48 49 PassRefPtr<API::Data> WebPageProxy::sessionStateData( WebPageProxySessionStateFilterCallback filter, void* context) const49 PassRefPtr<API::Data> WebPageProxy::sessionStateData(std::function<bool (WebBackForwardListItem&)> filter) const 50 50 { 51 51 const void* keys[2]; … … 53 53 CFIndex numValues = 0; 54 54 55 RetainPtr<CFDictionaryRef> sessionHistoryDictionary = adoptCF(m_backForwardList->createCFDictionaryRepresentation( filter, context));55 RetainPtr<CFDictionaryRef> sessionHistoryDictionary = adoptCF(m_backForwardList->createCFDictionaryRepresentation(std::move(filter))); 56 56 if (sessionHistoryDictionary) { 57 57 keys[numValues] = sessionHistoryKey;
Note:
See TracChangeset
for help on using the changeset viewer.