Skip to content
  • beidson's avatar
    Reviewed by Adam · b40879d6
    beidson authored
            Final part of <rdar://problem/5471308> - Hook up async icon database on Windows        
    
            * CFDictionaryPropertyBag.cpp:
            (CFDictionaryPropertyBag::CFDictionaryPropertyBag): Took the opportunity to rewrite with a RetainPtr
              since it became available after the initial implementation
            (CFDictionaryPropertyBag::setDictionary):
            (CFDictionaryPropertyBag::dictionary): Added accessor to the CFDictionaryRef to ease use within WebKit
            (CFDictionaryPropertyBag::QueryInterface): Added IID_CFDictionaryPropertyBag accessor
            (CFDictionaryPropertyBag::Read):
            (CFDictionaryPropertyBag::Write):
            * CFDictionaryPropertyBag.h: Added IID_CFDictionaryPropertyBag
           
            * WebFrame.cpp:
            (WebFrame::url): Added accessor, gets the current URL from WebCore
            (WebFrame::dispatchDidReceiveIcon): Calls through to the WebView
            (WebFrame::registerForIconNotification): Ditto
            * WebFrame.h:        
    
            * WebIconDatabase.cpp:
            (WebIconDatabase::iconDatabaseDidAddIconNotification):
            (WebIconDatabase::iconDatabaseNotificationUserInfoURLKey):
            (WebIconDatabase::iconDatabaseDidRemoveAllIconsNotification):
            (postDidRemoveAllIconsNotification):
            (postDidAddIconNotification):
            * WebIconDatabase.h:        
    
            * WebView.cpp:
            (WebView::close): Unregister for the notification, just in case
            (WebView::notifyDidAddIcon): Called when the webview gets the didAddIcon notification, compares the url
              in the notification to the current main frame URL.  If they match, calls to dispatchDidReceiveIconFromWebFrame
            (WebView::registerForIconNotification): 
            (WebView::dispatchDidReceiveIconFromWebFrame): Dispatches the FrameLoadDelegate call.  Once the delegate call is dispatched,
              either via the FrameLoaderClient interface of by listening for a notification, we know that our info is up to date in the 
              IconDatabase and we don't need to listen for the generic notification any long, so we unregister for it here, as well.
            (WebView::onNotify): The WebView listens for two notifications now, so make the decision which was received
            * WebView.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    b40879d6