forked from mirrors/gecko-dev
		
	 b47ec4d2bd
			
		
	
	
		b47ec4d2bd
		
	
	
	
	
		
			
			Backed out changeset 7e3a105b9160 (bug 1173320) Backed out changeset 094819fbb07f (bug 1173320) Backed out changeset 23b0e55ff1db (bug 1173320) Backed out changeset 8bf8e2fcedad (bug 1173320) Backed out changeset 3de390c6f47f (bug 1173320) Backed out changeset fb298010e12e (bug 1173320) Backed out changeset f1a965c2f796 (bug 1173320) Backed out changeset 176128ba757f (bug 1173320)
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 | |
|  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "mozilla/dom/OSFileSystem.h"
 | |
| 
 | |
| #include "mozilla/dom/Directory.h"
 | |
| #include "mozilla/dom/File.h"
 | |
| #include "mozilla/dom/FileSystemUtils.h"
 | |
| #include "nsCOMPtr.h"
 | |
| #include "nsDebug.h"
 | |
| #include "nsIFile.h"
 | |
| #include "nsPIDOMWindow.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| 
 | |
| OSFileSystem::OSFileSystem(const nsAString& aRootDir)
 | |
| {
 | |
|   mLocalRootPath = aRootDir;
 | |
|   FileSystemUtils::LocalPathToNormalizedPath(mLocalRootPath,
 | |
|                                              mNormalizedLocalRootPath);
 | |
| 
 | |
|   // Non-mobile devices don't have the concept of separate permissions to
 | |
|   // access different parts of devices storage like Pictures, or Videos, etc.
 | |
|   mRequiresPermissionChecks = false;
 | |
| 
 | |
|   mString = mLocalRootPath;
 | |
| 
 | |
| #ifdef DEBUG
 | |
|   mPermission.AssignLiteral("never-used");
 | |
| #endif
 | |
| }
 | |
| 
 | |
| void
 | |
| OSFileSystem::Init(nsPIDOMWindowInner* aWindow)
 | |
| {
 | |
|   MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread!");
 | |
|   MOZ_ASSERT(!mWindow, "No duple Init() calls");
 | |
|   MOZ_ASSERT(aWindow);
 | |
|   mWindow = aWindow;
 | |
| }
 | |
| 
 | |
| nsPIDOMWindowInner*
 | |
| OSFileSystem::GetWindow() const
 | |
| {
 | |
|   MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread!");
 | |
|   return mWindow;
 | |
| }
 | |
| 
 | |
| void
 | |
| OSFileSystem::GetRootName(nsAString& aRetval) const
 | |
| {
 | |
|   return aRetval.AssignLiteral("/");
 | |
| }
 | |
| 
 | |
| bool
 | |
| OSFileSystem::IsSafeFile(nsIFile* aFile) const
 | |
| {
 | |
|   // The concept of "safe files" is specific to the Device Storage API where
 | |
|   // files are only "safe" if they're of a type that is appropriate for the
 | |
|   // area of device storage that is being used.
 | |
|   MOZ_CRASH("Don't use OSFileSystem with the Device Storage API");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| bool
 | |
| OSFileSystem::IsSafeDirectory(Directory* aDir) const
 | |
| {
 | |
|   // The concept of "safe directory" is specific to the Device Storage API
 | |
|   // where a directory is only "safe" if it belongs to the area of device
 | |
|   // storage that it is being used with.
 | |
|   MOZ_CRASH("Don't use OSFileSystem with the Device Storage API");
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| void
 | |
| OSFileSystem::Unlink()
 | |
| {
 | |
|   mWindow = nullptr;
 | |
| }
 | |
| 
 | |
| void
 | |
| OSFileSystem::Traverse(nsCycleCollectionTraversalCallback &cb)
 | |
| {
 | |
|   OSFileSystem* tmp = this;
 | |
|   NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow);
 | |
| }
 | |
| 
 | |
| } // namespace dom
 | |
| } // namespace mozilla
 |