Backed out changeset 22b6b7465458
authorChris Pearce <chris@pearce.org.nz>
Tue, 26 Oct 2010 17:43:10 +1300
changeset 56485 dbb756a35d6fec37e03d0f27cd2fe0c56155f086
parent 56479 22b6b74654580706059aa1b4fd2481c472ffce53
child 56487 c9074c25fd5a86f02cb671fb68ec24692feeb419
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
milestone2.0b8pre
backs out22b6b74654580706059aa1b4fd2481c472ffce53
Backed out changeset 22b6b7465458
content/media/nsMediaCache.cpp
xpcom/build/nsXPComInit.cpp
xpcom/io/Makefile.in
xpcom/io/nsMediaCacheRemover.cpp
--- a/content/media/nsMediaCache.cpp
+++ b/content/media/nsMediaCache.cpp
@@ -554,33 +554,19 @@ nsMediaCache::Init()
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   nsCOMPtr<nsIFile> tmp;
   nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(tmp));
   if (NS_FAILED(rv))
     return rv;
   nsCOMPtr<nsILocalFile> tmpFile = do_QueryInterface(tmp);
-
-  // We put the media cache file in
-  // ${TempDir}/mozilla-media-cache/media_cache
   if (!tmpFile)
     return NS_ERROR_FAILURE;
-  rv = tmpFile->AppendNative(nsDependentCString("mozilla-media-cache"));
-  if (NS_FAILED(rv))
-    return rv;
-  rv = tmpFile->Create(nsIFile::DIRECTORY_TYPE, 0600);
-  if (NS_FAILED(rv) && rv != NS_ERROR_FILE_ALREADY_EXISTS)
-    return rv;
-
-  rv = tmpFile->Create(nsIFile::DIRECTORY_TYPE, 0600);
-  if (NS_FAILED(rv) && rv != NS_ERROR_FILE_ALREADY_EXISTS)
-    return rv;
-
-  rv = tmpFile->AppendNative(nsDependentCString("media_cache"));
+  rv = tmpFile->AppendNative(nsDependentCString("moz_media_cache"));
   if (NS_FAILED(rv))
     return rv;
   rv = tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 0600);
   if (NS_FAILED(rv))
     return rv;
   rv = tmpFile->OpenNSPRFileDesc(PR_RDWR | nsILocalFile::DELETE_ON_CLOSE,
                                  PR_IRWXU, &mFD);
   if (NS_FAILED(rv))
--- a/xpcom/build/nsXPComInit.cpp
+++ b/xpcom/build/nsXPComInit.cpp
@@ -174,20 +174,16 @@ static BrowserProcessSubThread* sIOThrea
 // Registry Factory creation function defined in nsRegistry.cpp
 // We hook into this function locally to create and register the registry
 // Since noone outside xpcom needs to know about this and nsRegistry.cpp
 // does not have a local include file, we are putting this definition
 // here rather than in nsIRegistry.h
 extern nsresult NS_RegistryGetFactory(nsIFactory** aFactory);
 extern nsresult NS_CategoryManagerGetFactory( nsIFactory** );
 
-#ifdef XP_WIN
-extern nsresult nsMediaCacheRemover_Startup();
-#endif
-
 #ifdef DEBUG
 extern void _FreeAutoLockStatics();
 #endif
 
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsProcess)
 
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSupportsIDImpl)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSupportsStringImpl)
@@ -554,20 +550,17 @@ NS_InitXPCOM2(nsIServiceManager* *result
     mozilla::scache::StartupCache::GetSingleton();
 #endif
     NS_TIME_FUNCTION_MARK("Next: create services from category");
 
     // Notify observers of xpcom autoregistration start
     NS_CreateServicesFromCategory(NS_XPCOM_STARTUP_CATEGORY, 
                                   nsnull,
                                   NS_XPCOM_STARTUP_OBSERVER_ID);
-#ifdef XP_WIN
-    nsMediaCacheRemover_Startup();
-#endif
-
+    
     return NS_OK;
 }
 
 
 //
 // NS_ShutdownXPCOM()
 //
 // The shutdown sequence for xpcom would be
--- a/xpcom/io/Makefile.in
+++ b/xpcom/io/Makefile.in
@@ -89,17 +89,17 @@ CPPSRCS += \
 		nsFastLoadService.cpp \
 		$(NULL)
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),os2)
 CPPSRCS		+= nsLocalFileOS2.cpp
 else
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
-CPPSRCS		+= nsLocalFileWin.cpp nsMediaCacheRemover.cpp
+CPPSRCS		+= nsLocalFileWin.cpp
 else
 CPPSRCS		+= nsLocalFileUnix.cpp
 endif # windows
 endif # OS2
 
 EXPORTS		= \
 		nsAppDirectoryServiceDefs.h \
 		nsDirectoryService.h \
deleted file mode 100644
--- a/xpcom/io/nsMediaCacheRemover.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ***** 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 code.
- *
- * The Initial Developer of the Original Code is
- * the Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Chris Pearce <chris@pearce.org.nz>
- *
- * 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 ***** */
-
-#ifndef XP_WIN
-#error nsMediaCacheRemover only needed on Windows.
-#endif
-
-#include "nsIObserver.h"
-#include "nsIIdleService.h"
-#include "nsISimpleEnumerator.h"
-#include "nsILocalFile.h"
-#include "nsAppDirectoryServiceDefs.h"
-#include "nsDirectoryServiceDefs.h"
-#include "nsString.h"
-#include "nsAutoPtr.h"
-
-// Duration of idle time before we'll get a callback whereupon we attempt to
-// remove any stray and unused media cache temp files.
-#define TEMP_FILE_IDLE_TIME 30
-
-// This class is instantiated during the xpcom initialization, and adds itself
-// as an idle observer. When the application has been idle for about 30 seconds
-// we'll get a notification, whereupon we'll attempt to delete
-// ${TempDir}/mozilla-media-cache/. This is to ensure all media cache temp
-// files which were supposed to be deleted on application exit were actually
-// deleted as they may not be if we previously crashed. See bug 572579. This
-// is only needed on some versions of Windows, nsILocalFile::DELETE_ON_CLOSE
-// works on other platforms.
-class nsMediaCacheRemover : public nsIObserver {
-public:
-  NS_DECL_ISUPPORTS
-
-  nsMediaCacheRemover() {
-    MOZ_COUNT_CTOR(nsMediaCacheRemover);
-  }
-
-  ~nsMediaCacheRemover() {
-    MOZ_COUNT_DTOR(nsMediaCacheRemover);
-  }
-
-  NS_IMETHODIMP Observe(nsISupports *subject,
-                        const char *topic,
-                        const PRUnichar *data)
-  {
-    if (strcmp(topic, "idle") == 0) {
-      // The user has been idle for a while, clean up the temp files.
-      // The idle service will drop its reference to this object after
-      // we exit, destroying this object.
-      RemoveMediaCacheFiles();
-    }
-    return NS_OK;
-  }
-
-  nsresult RegisterIdleObserver() {
-    // Add this as an idle observer. When we've been idle for 
-    // TEMP_FILE_IDLE_TIME seconds, we'll get a notification, and we'll then
-    // try to delete any stray media cache temp files.
-    nsCOMPtr<nsIIdleService> idleSvc =
-      do_GetService("@mozilla.org/widget/idleservice;1");
-    if (!idleSvc)
-      return NS_ERROR_FAILURE;
-    return idleSvc->AddIdleObserver(this, TEMP_FILE_IDLE_TIME);
-  }
-
-  void RemoveMediaCacheFiles() {
-    nsCOMPtr<nsIIdleService> idleSvc =
-      do_GetService("@mozilla.org/widget/idleservice;1");
-    if (idleSvc)
-      idleSvc->RemoveIdleObserver(this, TEMP_FILE_IDLE_TIME);
-
-    nsCOMPtr<nsIFile> tmpDir;
-    nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR,
-                                         getter_AddRefs(tmpDir));
-    if (NS_FAILED(rv))
-      return;
-    rv = tmpDir->AppendNative(nsDependentCString("mozilla-media-cache"));
-    if (NS_FAILED(rv))
-      return;
-
-    nsCOMPtr<nsILocalFile> tmpFile = do_QueryInterface(tmpDir);
-    if (!tmpFile)
-      return;
-
-    // Remove the directory recursively.  
-    tmpFile->Remove(PR_TRUE);
-  }
-};
-
-NS_IMPL_ISUPPORTS1(nsMediaCacheRemover, nsIObserver)
-
-nsresult nsMediaCacheRemover_Startup() {
-  // Create a new nsMediaCacheRemover, and register it as an idle observer.
-  // If it is successfully registered as an idle observer, its owning reference
-  // will be held by the idle service, otherwise it will be destroyed by the
-  // refptr here when it goes out of scope.
-  nsRefPtr<nsMediaCacheRemover> t = new nsMediaCacheRemover();
-  return t->RegisterIdleObserver();
-}