Changeset 162719 in webkit
- Timestamp:
- Jan 24, 2014 1:25:23 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r162715 r162719 1 2014-01-24 Anders Carlsson <andersca@apple.com> 2 3 Use a side table to map WebPageProxy objects to WKBrowsingContextController objects 4 https://bugs.webkit.org/show_bug.cgi?id=127577 5 6 Reviewed by Tim Horton. 7 8 * UIProcess/API/Cocoa/WKBrowsingContextController.mm: 9 (browsingContextControllerMap): 10 (-[WKBrowsingContextController dealloc]): 11 (-[WKBrowsingContextController _initWithPageRef:]): 12 (+[WKBrowsingContextController _browsingContextControllerForPageRef:]): 13 * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h: 14 * UIProcess/WebPageProxy.h: 15 1 16 2014-01-24 Tim Horton <timothy_horton@apple.com> 2 17 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm
r162675 r162719 59 59 #import "WebContext.h" 60 60 #import "WebPageProxy.h" 61 #import <wtf/NeverDestroyed.h> 61 62 62 63 using namespace WebCore; … … 150 151 } 151 152 153 static HashMap<WebPageProxy*, WKBrowsingContextController *>& browsingContextControllerMap() 154 { 155 static NeverDestroyed<HashMap<WebPageProxy*, WKBrowsingContextController *>> browsingContextControllerMap; 156 return browsingContextControllerMap; 157 } 158 152 159 - (void)dealloc 153 160 { 161 ASSERT(browsingContextControllerMap().get(_page.get()) == self); 162 browsingContextControllerMap().remove(_page.get()); 163 154 164 _page->pageLoadState().removeObserver(*_pageLoadStateObserver); 155 _page->~WebPageProxy();156 165 157 166 [_remoteObjectRegistry _invalidate]; … … 786 795 } 787 796 788 #pragma mark WKObject protocol implementation789 790 - (API::Object&)_apiObject791 {792 return *reinterpret_cast<API::Object*>(&_page);793 }794 797 795 798 - (instancetype)_initWithPageRef:(WKPageRef)pageRef … … 803 806 _page->pageLoadState().addObserver(*_pageLoadStateObserver); 804 807 808 ASSERT(!browsingContextControllerMap().contains(_page.get())); 809 browsingContextControllerMap().set(_page.get(), self); 810 805 811 return self; 806 812 } … … 808 814 + (WKBrowsingContextController *)_browsingContextControllerForPageRef:(WKPageRef)pageRef 809 815 { 810 return (WKBrowsingContextController *)static_cast<const WebLoaderClient*>(WebKit::toImpl(pageRef)->loaderClient())->client().base.clientInfo;816 return browsingContextControllerMap().get(toImpl(pageRef)); 811 817 } 812 818 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h
r162580 r162719 28 28 #if WK_API_ENABLED 29 29 30 #import "WKObject.h"31 30 #import "WeakObjCPtr.h" 32 31 #import "WebPageProxy.h" 33 32 34 @interface WKBrowsingContextController () <WKObject>{33 @interface WKBrowsingContextController () { 35 34 @package 36 35 WebKit::WeakObjCPtr<id <WKBrowsingContextHistoryDelegate>> _historyDelegate; -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r162710 r162719 835 835 #endif 836 836 837 const API::LoaderClient* loaderClient() { return m_loaderClient.get(); }838 839 837 WebCore::IntSize minimumLayoutSize() const { return m_minimumLayoutSize; } 840 838 void setMinimumLayoutSize(const WebCore::IntSize&);
Note: See TracChangeset
for help on using the changeset viewer.