Remove nsICookieStorage, part of the XPCOM plugin API. b=432354 r/sr=jst,sicking
authorJosh Aas <joshmoz@gmail.com>
Sat, 13 Jun 2009 13:16:40 -0700
changeset 29204 4572679480d2ec0ffe18ae741c6afbc0a30243dd
parent 29203 822c6e7417896285e2e5cc12c7e5f3d809a3bbe8
child 29205 f7e29a820cc0c45e46f6714881ea41ce18cb2b3d
push idunknown
push userunknown
push dateunknown
bugs432354
milestone1.9.2a1pre
Remove nsICookieStorage, part of the XPCOM plugin API. b=432354 r/sr=jst,sicking
extensions/cookie/nsCookiePermission.cpp
modules/plugin/base/public/Makefile.in
modules/plugin/base/public/nsICookieStorage.idl
modules/plugin/base/src/nsNPAPIPlugin.cpp
modules/plugin/base/src/nsPluginHostImpl.cpp
modules/plugin/base/src/nsPluginHostImpl.h
modules/plugin/os2wrapper/moz_IDs_Input.lst
modules/plugin/os2wrapper/wrap_VFTs.h
modules/plugin/os2wrapper/wrap_XPCOM.cpp
--- a/extensions/cookie/nsCookiePermission.cpp
+++ b/extensions/cookie/nsCookiePermission.cpp
@@ -421,19 +421,17 @@ nsCookiePermission::CanSetCookie(nsIURI 
 NS_IMETHODIMP 
 nsCookiePermission::GetOriginatingURI(nsIChannel  *aChannel,
                                       nsIURI     **aURI)
 {
   /* to find the originating URI, we use the loadgroup of the channel to obtain
    * the window owning the load, and from there, we find the top same-type
    * window and its URI. there are several possible cases:
    *
-   * 1) no channel. this will occur for plugins using the nsICookieStorage
-   *    interface, since they have none to provide. other consumers should
-   *    have a channel.
+   * 1) no channel.
    *
    * 2) a channel, but no window. this can occur when the consumer kicking
    *    off the load doesn't provide one to the channel, and should be limited
    *    to loads of certain types of resources.
    *
    * 3) a window equal to the top window of same type, with the channel its
    *    document channel. this covers the case of a freshly kicked-off load
    *    (e.g. the user typing something in the location bar, or clicking on a
--- a/modules/plugin/base/public/Makefile.in
+++ b/modules/plugin/base/public/Makefile.in
@@ -69,17 +69,16 @@ XPIDLSRCS 	= \
 		nsIPluginManager.idl \
 		nsIPluginManager2.idl \
 		nsIPluginInstancePeer.idl \
 		nsIPluginInstancePeer2.idl \
 		nsIPluginInstanceOwner.idl \
 		nsIPlugin.idl \
 		nsIHTTPHeaderListener.idl \
 		nsIEventHandler.idl \
-		nsICookieStorage.idl \
 		nsIWindowlessPlugInstPeer.idl \
 		nsIScriptablePlugin.idl \
 		nsIPluginTag.idl \
 		nsIPluginTagInfo.idl \
 		nsIPluginTagInfo2.idl \
 		nsIJRILiveConnectPIPeer.idl \
 		nsIJRILiveConnectPlugin.idl \
 		nsIPluginInputStream.idl \
deleted file mode 100644
--- a/modules/plugin/base/public/nsICookieStorage.idl
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsISupports.idl"
-#include "nspluginroot.idl"
-
-/**
- * nsICookieStorage
- */
-%{C++
-// {c8c05101-cfdb-11d2-bab8-b088e084e5bc}
-#define NS_COOKIESTORAGE_CID \
-{ 0xc8c05101, 0xcfdb, 0x11d2, { 0xba, 0xb8, 0xb0, 0x88, 0xe0, 0x84, 0xe5, 0xbc } }
-%}
-
-[uuid(c8c05100-cfdb-11d2-bab8-b088e084e5bc)]
-interface nsICookieStorage : nsISupports
-{
-    /**
-     * Retrieves a cookie from the browser's persistent cookie store.
-	 * @param aCookieURL    - URL string to look up cookie with.
-	 * @param aCookieBuffer - buffer large enough to accomodate cookie data.
-	 * @param aCookieSize   - on input, size of the cookie buffer, on output cookie's size.
-     */
-  void getCookie(in string aCookieURL, in voidPtr aCookieBuffer, in PRUint32Ref aCookieSize);
-
-    /**
-     * Stores a cookie in the browser's persistent cookie store.
-   * @param aCookieURL    - URL string store cookie with.
-   * @param aCookieBuffer - buffer containing cookie data.
-   * @param aCookieSize   - specifies  size of cookie data.
-     */
-  void setCookie(in string aCookieURL, in constVoidPtr aCookieBuffer, in unsigned long aCookieSize);
-};
--- a/modules/plugin/base/src/nsNPAPIPlugin.cpp
+++ b/modules/plugin/base/src/nsNPAPIPlugin.cpp
@@ -2483,21 +2483,43 @@ NPError NP_CALLBACK
 
   if (!url || !*url) {
     return NPERR_INVALID_URL;
   }
 
   switch (variable) {
   case NPNURLVCookie:
     {
-      nsCOMPtr<nsICookieStorage> cs = do_GetService(kPluginManagerCID);
-
-      if (cs && NS_SUCCEEDED(cs->SetCookie(url, value, len))) {
+      if (!url || !value || (0 >= len))
+        return NPERR_INVALID_PARAM;
+
+      nsresult rv = NS_ERROR_FAILURE;
+      nsCOMPtr<nsIIOService> ioService(do_GetService(NS_IOSERVICE_CONTRACTID, &rv));
+      if (NS_FAILED(rv))
+        return NPERR_GENERIC_ERROR;
+
+      nsCOMPtr<nsICookieService> cookieService = do_GetService(NS_COOKIESERVICE_CONTRACTID, &rv);
+      if (NS_FAILED(rv))
+        return NPERR_GENERIC_ERROR;
+
+      nsCOMPtr<nsIURI> uriIn;
+      rv = ioService->NewURI(nsDependentCString(url), nsnull, nsnull, getter_AddRefs(uriIn));
+      if (NS_FAILED(rv))
+        return NPERR_GENERIC_ERROR;
+
+      nsCOMPtr<nsIPrompt> prompt;
+      nsPluginHostImpl::GetPrompt(nsnull, getter_AddRefs(prompt));
+
+      char *cookie = (char*)value;
+      char c = cookie[len];
+      cookie[len] = '\0';
+      rv = cookieService->SetCookieString(uriIn, prompt, cookie, nsnull);
+      cookie[len] = c;
+      if (NS_SUCCEEDED(rv))
         return NPERR_NO_ERROR;
-      }
     }
 
     break;
   case NPNURLVProxy:
     // We don't support setting proxy values, fall through...
   default:
     // Fall through and return an error...
     ;
--- a/modules/plugin/base/src/nsPluginHostImpl.cpp
+++ b/modules/plugin/base/src/nsPluginHostImpl.cpp
@@ -2512,21 +2512,20 @@ nsPluginHostImpl::nsPluginHostImpl()
 nsPluginHostImpl::~nsPluginHostImpl()
 {
   PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("nsPluginHostImpl::dtor\n"));
 
   Destroy();
   sInst = nsnull;
 }
 
-NS_IMPL_ISUPPORTS7(nsPluginHostImpl,
+NS_IMPL_ISUPPORTS6(nsPluginHostImpl,
                    nsIPluginManager,
                    nsIPluginManager2,
                    nsIPluginHost,
-                   nsICookieStorage,
                    nsIObserver,
                    nsPIPluginHost,
                    nsISupportsWeakReference)
 
 nsPluginHostImpl*
 nsPluginHostImpl::GetInst()
 {
   if (!sInst) {
@@ -5664,97 +5663,16 @@ nsresult nsPluginHostImpl::NewFullPagePl
     if (!p->mStreams && (NS_FAILED(rv = NS_NewISupportsArray(getter_AddRefs(p->mStreams)))))
       return rv;
     p->mStreams->AppendElement(aStreamListener);
   }
 
   return rv;
 }
 
-// nsICookieStorage interface
-
-NS_IMETHODIMP nsPluginHostImpl::GetCookie(const char* inCookieURL, void* inOutCookieBuffer, PRUint32& inOutCookieSize)
-{
-  nsresult rv = NS_ERROR_NOT_IMPLEMENTED;
-  nsXPIDLCString cookieString;
-  PRUint32 cookieStringLen = 0;
-  nsCOMPtr<nsIURI> uriIn;
-
-  if (!inCookieURL || (0 >= inOutCookieSize)) {
-    return NS_ERROR_INVALID_ARG;
-  }
-
-  nsCOMPtr<nsIIOService> ioService(do_GetService(NS_IOSERVICE_CONTRACTID, &rv));
-
-  if (NS_FAILED(rv) || !ioService)
-    return rv;
-
-  nsCOMPtr<nsICookieService> cookieService =
-           do_GetService(NS_COOKIESERVICE_CONTRACTID, &rv);
-
-  if (NS_FAILED(rv) || !cookieService)
-    return NS_ERROR_INVALID_ARG;
-
-  // make an nsURI from the argument url
-  rv = ioService->NewURI(nsDependentCString(inCookieURL), nsnull, nsnull, getter_AddRefs(uriIn));
-  if (NS_FAILED(rv))
-    return rv;
-
-  rv = cookieService->GetCookieString(uriIn, nsnull, getter_Copies(cookieString));
-
-  if (NS_FAILED(rv) || !cookieString ||
-      (inOutCookieSize <= (cookieStringLen = PL_strlen(cookieString.get())))) {
-    return NS_ERROR_FAILURE;
-  }
-
-  PL_strcpy((char *) inOutCookieBuffer, cookieString.get());
-  inOutCookieSize = cookieStringLen;
-  rv = NS_OK;
-
-  return rv;
-}
-
-NS_IMETHODIMP nsPluginHostImpl::SetCookie(const char* inCookieURL, const void* inCookieBuffer, PRUint32 inCookieSize)
-{
-  nsresult rv = NS_ERROR_NOT_IMPLEMENTED;
-  nsCOMPtr<nsIURI> uriIn;
-
-  if (!inCookieURL || !inCookieBuffer ||
-      (0 >= inCookieSize)) {
-    return NS_ERROR_INVALID_ARG;
-  }
-
-  nsCOMPtr<nsIIOService> ioService(do_GetService(NS_IOSERVICE_CONTRACTID, &rv));
-
-  if (NS_FAILED(rv) || !ioService)
-    return rv;
-
-  nsCOMPtr<nsICookieService> cookieService =
-           do_GetService(NS_COOKIESERVICE_CONTRACTID, &rv);
-
-  if (NS_FAILED(rv) || !cookieService)
-    return NS_ERROR_FAILURE;
-
-  // make an nsURI from the argument url
-  rv = ioService->NewURI(nsDependentCString(inCookieURL), nsnull, nsnull, getter_AddRefs(uriIn));
-  if (NS_FAILED(rv))
-    return NS_ERROR_FAILURE;
-
-  nsCOMPtr<nsIPrompt> prompt;
-  GetPrompt(nsnull, getter_AddRefs(prompt));
-
-  char * cookie = (char *)inCookieBuffer;
-  char c = cookie[inCookieSize];
-  cookie[inCookieSize] = '\0';
-  rv = cookieService->SetCookieString(uriIn, prompt, cookie, nsnull);
-  cookie[inCookieSize] = c;
-
-  return rv;
-}
-
 NS_IMETHODIMP nsPluginHostImpl::Observe(nsISupports *aSubject,
                                         const char *aTopic,
                                         const PRUnichar *someData)
 {
   if (!nsCRT::strcmp(NS_XPCOM_SHUTDOWN_OBSERVER_ID, aTopic)) {
     OnShutdown();
     Destroy();
     UnloadUnusedLibraries();
--- a/modules/plugin/base/src/nsPluginHostImpl.h
+++ b/modules/plugin/base/src/nsPluginHostImpl.h
@@ -50,17 +50,16 @@
 #include "npapi.h"
 #include "nsNPAPIPluginInstance.h"
 
 #include "nsIPlugin.h"
 #include "nsIPluginTag.h"
 #include "nsIPluginTagInfo2.h"
 #include "nsIPluginInstancePeer2.h"
 
-#include "nsICookieStorage.h"
 #include "nsPluginsDir.h"
 #include "nsPluginDirServiceProvider.h"
 #include "nsAutoPtr.h"
 #include "nsWeakPtr.h"
 #include "nsIPrompt.h"
 #include "nsISupportsArray.h"
 #include "nsPluginNativeWindow.h"
 #include "nsIPrefBranch.h"
@@ -212,17 +211,16 @@ public:
   nsPluginInstanceTag *findOldestStopped();
   void removeAllStopped();
   void stopRunning(nsISupportsArray *aReloadDocs, nsPluginTag *aPluginTag);
   PRBool IsLastInstance(nsPluginInstanceTag *plugin);
 };
 
 class nsPluginHostImpl : public nsIPluginManager2,
                          public nsIPluginHost,
-                         public nsICookieStorage,
                          public nsIObserver,
                          public nsPIPluginHost,
                          public nsSupportsWeakReference
 {
 public:
   nsPluginHostImpl();
   virtual ~nsPluginHostImpl();
 
@@ -289,17 +287,16 @@ public:
                  PRInt32 aCount);
 
   NS_IMETHOD
   UnregisterPlugin(REFNSIID aCID);
 
   NS_DECL_NSIPLUGINHOST
   NS_DECL_NSIPLUGINMANAGER2
   NS_DECL_NSIFACTORY
-  NS_DECL_NSICOOKIESTORAGE
   NS_DECL_NSIOBSERVER
   NS_DECL_NSPIPLUGINHOST
 
   /* Called by GetURL and PostURL */
 
   NS_IMETHOD
   NewPluginURLStream(const nsString& aURL, 
                      nsIPluginInstance *aInstance, 
@@ -326,16 +323,18 @@ public:
   // Writes updated plugins settings to disk and unloads the plugin
   // if it is now disabled
   nsresult UpdatePluginInfo(nsPluginTag* aPluginTag);
 
   // checks whether aTag is a "java" plugin tag (a tag for a plugin
   // that does Java)
   static PRBool IsJavaMIMEType(const char *aType);
 
+  static nsresult GetPrompt(nsIPluginInstanceOwner *aOwner, nsIPrompt **aPrompt);
+
 private:
   NS_IMETHOD
   TrySetUpPluginInstance(const char *aMimeType, nsIURI *aURL, nsIPluginInstanceOwner *aOwner);
 
   nsresult
   NewEmbeddedPluginStreamListener(nsIURI* aURL, nsIPluginInstanceOwner *aOwner,
                                   nsIPluginInstance* aInstance,
                                   nsIStreamListener** aListener);
@@ -400,18 +399,16 @@ private:
   nsPluginTag* HaveSamePlugin(nsPluginTag * aPluginTag);
 
   // checks if given plugin is a duplicate of what we already have
   // in the plugin list but found in some different place
   PRBool IsDuplicatePlugin(nsPluginTag * aPluginTag);
 
   nsresult EnsurePrivateDirServiceProvider();
 
-  nsresult GetPrompt(nsIPluginInstanceOwner *aOwner, nsIPrompt **aPrompt);
-
   // calls PostPluginUnloadEvent for each library in mUnusedLibraries
   void UnloadUnusedLibraries();
 
   // Add our pref observer
   nsresult AddPrefObserver();
   
   char        *mPluginPath;
   nsRefPtr<nsPluginTag> mPlugins;
--- a/modules/plugin/os2wrapper/moz_IDs_Input.lst
+++ b/modules/plugin/os2wrapper/moz_IDs_Input.lst
@@ -145,17 +145,16 @@ nsIControllerContext
 nsIControllers
 nsICookie
 nsICookieAcceptDialog
 nsICookieConsent
 nsICookieManager
 nsICookieManager2
 nsICookiePromptService
 nsICookieService
-nsICookieStorage
 nsICopyMessageListener
 nsICopyMsgStreamListener
 nsICRLInfo
 nsICRLManager
 nsICurrentCharsetListener
 nsIDataChannel
 nsIDBChangeAnnouncer
 nsIDBChangeListener
--- a/modules/plugin/os2wrapper/wrap_VFTs.h
+++ b/modules/plugin/os2wrapper/wrap_VFTs.h
@@ -733,29 +733,16 @@ typedef struct vtable_nsIPluginManager2
     nsresult (*VFTCALL DeallocateMenuID)(void *pvThis, nsIEventHandler *aHandler, PRInt16 aMenuID);
     VFTDELTA_DECL(DeallocateMenuID)
     nsresult (*VFTCALL HasAllocatedMenuID)(void *pvThis, nsIEventHandler *aHandler, PRInt16 aMenuID, PRBool *aResult);
     VFTDELTA_DECL(HasAllocatedMenuID)
 } VFTnsIPluginManager2;
 
 
 /**
- * nsICookieStorage
- */
-typedef struct vtable_nsICookieStorage
-{
-    VFTnsISupports base;
-    nsresult (*VFTCALL GetCookie)(void *pvThis, const char *aCookieURL, void * aCookieBuffer, PRUint32 & aCookieSize);
-    VFTDELTA_DECL(GetCookie)
-    nsresult (*VFTCALL SetCookie)(void *pvThis, const char *aCookieURL, const void * aCookieBuffer, PRUint32 aCookieSize);
-    VFTDELTA_DECL(SetCookie)
-} VFTnsICookieStorage;
-
-
-/**
  * nsIEventHandler
  */
 typedef struct vtable_nsIEventHandler
 {
     VFTnsISupports base;
     nsresult (*VFTCALL HandleEvent)(void *pvThis, nsPluginEvent * aEvent, PRBool *aHandled);
     VFTDELTA_DECL(HandleEvent)
 } VFTnsIEventHandler;
--- a/modules/plugin/os2wrapper/wrap_XPCOM.cpp
+++ b/modules/plugin/os2wrapper/wrap_XPCOM.cpp
@@ -94,17 +94,16 @@
 #include "nsIPluginManager2.h"
 #include "nsIPluginStreamInfo.h"
 #include "nsIPluginStreamListener.h"
 #include "nsIPluginInstance.h"
 #include "nsIPluginInstancePeer.h"
 #include "nsIPluginInstancePeer2.h"
 #include "nsIPluginTagInfo.h"
 #include "nsIPluginTagInfo2.h"
-#include "nsICookieStorage.h"
 #include "nsIHTTPHeaderListener.h"
 
 #include "nsIJRIPlugin.h"
 #include "nsIJVMPluginInstance.h"
 #include "nsIJVMManager.h"
 #include "nsIJVMWindow.h"
 #include "nsIJVMConsole.h"
 #include "nsISerializable.h"
@@ -7226,78 +7225,16 @@ MAKE_SAFE_VFT(VFTnsIPluginTagInfo2, down
     downIPTI2GetBorderVertSpace,                            VFTDELTA_VAL()
     downIPTI2GetBorderHorizSpace,                           VFTDELTA_VAL()
     downIPTI2GetUniqueID,                                   VFTDELTA_VAL()
     downIPTI2GetDOMElement,                                 VFTDELTA_VAL()
 }
 SAFE_VFT_ZEROS();
 
 
-
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//
-// DOWN: nsICookieStorage
-//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//
-
-/**
- * Retrieves a cookie from the browser's persistent cookie store.
- * @param aCookieURL    - URL string to look up cookie with.
- * @param aCookieBuffer - buffer large enough to accomodate cookie data.
- * @param aCookieSize   - on input, size of the cookie buffer, on output cookie's size.
- */
-/* void getCookie (in string aCookieURL, in voidPtr aCookieBuffer, in PRUint32Ref aCookieSize); */
-nsresult VFTCALL downICSGetCookie(void *pvThis, const char *aCookieURL, void * aCookieBuffer, PRUint32 & aCookieSize)
-{
-    DOWN_ENTER_RC(pvThis, nsICookieStorage);
-    dprintf(("%s: aCookieURL=%x aCookieBuffer=%x aCookieSize=%x",
-             pszFunction, aCookieURL, aCookieBuffer, VALID_REF(aCookieSize) ? aCookieSize : 0xdeadbeef));
-    DPRINTF_STR(aCookieURL);
-    rc = pMozI->GetCookie(aCookieURL, aCookieBuffer, aCookieSize);
-    if (NS_SUCCEEDED(rc) && VALID_REF(aCookieSize))
-        dprintf(("%s: aCookieSize=%d", pszFunction, aCookieSize));
-    DOWN_LEAVE_INT(pvThis, rc);
-    return rc;
-}
-
-/**
- * Stores a cookie in the browser's persistent cookie store.
- * @param aCookieURL    - URL string store cookie with.
- * @param aCookieBuffer - buffer containing cookie data.
- * @param aCookieSize   - specifies  size of cookie data.
- */
-/* void setCookie (in string aCookieURL, in constVoidPtr aCookieBuffer, in unsigned long aCookieSize); */
-nsresult VFTCALL downICSSetCookie(void *pvThis, const char *aCookieURL, const void * aCookieBuffer, PRUint32 aCookieSize)
-{
-    DOWN_ENTER_RC(pvThis, nsICookieStorage);
-    dprintf(("%s: aCookieURL=%x aCookieBuffer=%x aCookieSize=%x",
-             pszFunction, aCookieURL, aCookieBuffer, aCookieSize));
-    DPRINTF_STR(aCookieURL);
-    rc = pMozI->SetCookie(aCookieURL, aCookieBuffer, aCookieSize);
-    DOWN_LEAVE_INT(pvThis, rc);
-    return rc;
-}
-
-
-MAKE_SAFE_VFT(VFTnsICookieStorage, downVFTnsICookieStorage)
-{
- {
-    VFTFIRST_VAL()
-    downQueryInterface,                                     VFTDELTA_VAL()
-    downAddRef,                                             VFTDELTA_VAL()
-    downRelease,                                            VFTDELTA_VAL()
- },
-    downICSGetCookie,                                       VFTDELTA_VAL()
-    downICSSetCookie,                                       VFTDELTA_VAL()
-}
-SAFE_VFT_ZEROS();
-
-
-
-
-
-
 //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//
 // DOWN: nsIJVMThreadManager
 //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//
 
 /**
  * Returns a unique identifier for the "current" system thread.
  */
 #ifdef IPLUGINW_OUTOFTREE
@@ -10776,17 +10713,16 @@ static struct SupportedInterface_Down
     { &kServiceManagerObsoleteIID,  &downVFTnsIServiceManagerObsolete },
     { &kSupportsIID,                &downVFTnsISupports },
     { &kPluginManagerIID,           &downVFTnsIPluginManager },
     { &kPluginManager2IID,          &downVFTnsIPluginManager2 },
     { &kPluginInstancePeerIID,      &downVFTnsIPluginInstancePeer },
     { &kPluginInstancePeer2IID,     &downVFTnsIPluginInstancePeer2 },
     { &kPluginTagInfoIID,           &downVFTnsIPluginTagInfo },
     { &kPluginTagInfo2IID,          &downVFTnsIPluginTagInfo2 },
-    { &kCookieStorageIID,           &downVFTnsICookieStorage },
     { &kJVMThreadManagerIID,        &downVFTnsIJVMThreadManager },
     { &kJVMManagerIID,              &downVFTnsIJVMManager },
     { &kLiveconnectIID,             &downVFTnsILiveconnect },
     { &kSecureLiveconnectIID,       &downVFTnsISecureLiveconnect },
     { &kComponentManagerIID,        &downVFTnsIComponentManager },
     { &kComponentManagerObsoleteIID,&downVFTnsIComponentManagerObsolete },
     { &kSecurityContextIID,         &downVFTnsISecurityContext },
     { &kEnumeratorIID,              &downVFTnsIEnumerator },