[JSCOnly][WTF] Expose FileSystem.
authorross.kirsling@sony.com <ross.kirsling@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Jan 2019 21:35:09 +0000 (21:35 +0000)
committerross.kirsling@sony.com <ross.kirsling@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Jan 2019 21:35:09 +0000 (21:35 +0000)
https://bugs.webkit.org/show_bug.cgi?id=193789

Reviewed by Don Olmstead.

* wtf/FileSystem.h:
* wtf/PlatformJSCOnly.cmake:
* wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::getVolumeFreeSpace):
* wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::fileSystemRepresentation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240600 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/FileSystem.h
Source/WTF/wtf/PlatformJSCOnly.cmake
Source/WTF/wtf/posix/FileSystemPOSIX.cpp
Source/WTF/wtf/win/FileSystemWin.cpp

index d168918..cccca49 100644 (file)
@@ -1,3 +1,17 @@
+2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>
+
+        [JSCOnly][WTF] Expose FileSystem.
+        https://bugs.webkit.org/show_bug.cgi?id=193789
+
+        Reviewed by Don Olmstead.
+
+        * wtf/FileSystem.h:
+        * wtf/PlatformJSCOnly.cmake:
+        * wtf/posix/FileSystemPOSIX.cpp:
+        (WTF::FileSystemImpl::getVolumeFreeSpace):
+        * wtf/win/FileSystemWin.cpp:
+        (WTF::FileSystemImpl::fileSystemRepresentation):
+
 2019-01-28  Eric Carlson  <eric.carlson@apple.com>
 
         AVStreamSession isn't always available, make a HAVE compile flag for it
index 95c3baf..903962a 100644 (file)
@@ -48,7 +48,7 @@ typedef const struct __CFData* CFDataRef;
 
 OBJC_CLASS NSString;
 
-#if PLATFORM(WIN)
+#if OS(WINDOWS)
 typedef void *HANDLE;
 #endif
 
@@ -63,10 +63,10 @@ struct FileMetadata;
 namespace FileSystemImpl {
 
 // PlatformFileHandle
-#if USE(GLIB) && !PLATFORM(WIN)
+#if USE(GLIB) && !OS(WINDOWS)
 typedef GFileIOStream* PlatformFileHandle;
 const PlatformFileHandle invalidPlatformFileHandle = 0;
-#elif PLATFORM(WIN)
+#elif OS(WINDOWS)
 typedef HANDLE PlatformFileHandle;
 // FIXME: -1 is INVALID_HANDLE_VALUE, defined in <winbase.h>. Chromium tries to
 // avoid using Windows headers in headers. We'd rather move this into the .cpp.
@@ -169,13 +169,15 @@ WTF_EXPORT_PRIVATE bool filesHaveSameVolume(const String&, const String&);
 WTF_EXPORT_PRIVATE RetainPtr<CFURLRef> pathAsURL(const String&);
 #endif
 
-#if PLATFORM(GTK) || PLATFORM(WPE)
+#if USE(GLIB)
 String filenameForDisplay(const String&);
 #endif
 
-#if PLATFORM(WIN)
+#if OS(WINDOWS)
 WTF_EXPORT_PRIVATE String localUserSpecificStorageDirectory();
 WTF_EXPORT_PRIVATE String roamingUserSpecificStorageDirectory();
+WTF_EXPORT_PRIVATE String createTemporaryDirectory();
+WTF_EXPORT_PRIVATE bool deleteNonEmptyDirectory(const String&);
 #endif
 
 #if PLATFORM(COCOA)
@@ -183,11 +185,6 @@ WTF_EXPORT_PRIVATE NSString *createTemporaryDirectory(NSString *directoryPrefix)
 WTF_EXPORT_PRIVATE bool deleteNonEmptyDirectory(const String&);
 #endif
 
-#if PLATFORM(WIN_CAIRO)
-WTF_EXPORT_PRIVATE String createTemporaryDirectory();
-WTF_EXPORT_PRIVATE bool deleteNonEmptyDirectory(const String&);
-#endif
-
 WTF_EXPORT_PRIVATE String realPath(const String&);
 
 class MappedFileData {
index ba05090..ebaf6ba 100644 (file)
@@ -7,18 +7,29 @@ if (WIN32)
         text/win/TextBreakIteratorInternalICUWin.cpp
 
         win/CPUTimeWin.cpp
+        win/DbgHelperWin.cpp
+        win/FileSystemWin.cpp
         win/LanguageWin.cpp
         win/MainThreadWin.cpp
+        win/PathWalker.cpp
     )
     list(APPEND WTF_PUBLIC_HEADERS
+        win/DbgHelperWin.h
+        win/PathWalker.h
+
         text/win/WCharStringExtras.h
     )
+    list(APPEND WTF_LIBRARIES
+        shlwapi
+    )
 else ()
     list(APPEND WTF_SOURCES
         UniStdExtras.cpp
 
         generic/MainThreadGeneric.cpp
 
+        posix/FileSystemPOSIX.cpp
+
         text/unix/TextBreakIteratorInternalICUUnix.cpp
 
         unix/LanguageUnix.cpp
@@ -38,6 +49,9 @@ if (WIN32)
     list(APPEND WTF_SOURCES
         win/MemoryFootprintWin.cpp
     )
+    list(APPEND WTF_PUBLIC_HEADERS
+        win/Win32Handle.h
+    )
 elseif (APPLE)
     file(COPY mac/MachExceptions.defs DESTINATION ${DERIVED_SOURCES_WTF_DIR})
     add_custom_command(
index fb1efd6..70d2f98 100644 (file)
@@ -382,7 +382,7 @@ Vector<String> listDirectory(const String& path, const String& filter)
     return entries;
 }
 
-#if !PLATFORM(COCOA)
+#if !USE(CF)
 String stringFromFileSystemRepresentation(const char* path)
 {
     if (!path)
@@ -395,7 +395,9 @@ CString fileSystemRepresentation(const String& path)
 {
     return path.utf8();
 }
+#endif
 
+#if !PLATFORM(COCOA)
 bool moveFile(const String& oldPath, const String& newPath)
 {
     auto oldFilename = fileSystemRepresentation(oldPath);
@@ -418,9 +420,7 @@ bool getVolumeFreeSpace(const String& path, uint64_t& freeSpace)
     }
     return false;
 }
-#endif
 
-#if !OS(DARWIN)
 String openTemporaryFile(const String& prefix, PlatformFileHandle& handle)
 {
     char buffer[PATH_MAX];
@@ -442,7 +442,7 @@ end:
     handle = invalidPlatformFileHandle;
     return String();
 }
-#endif
+#endif // !PLATFORM(COCOA)
 
 bool hardLinkOrCopyFile(const String& source, const String& destination)
 {
index 00e3352..d672af6 100644 (file)
@@ -279,7 +279,7 @@ String pathByAppendingComponents(StringView path, const Vector<StringView>& comp
 
 CString fileSystemRepresentation(const String& path)
 {
-    auto upconvertedCharacters = path.upconvertedCharacters();
+    auto upconvertedCharacters = StringView(path).upconvertedCharacters();
 
     const UChar* characters = upconvertedCharacters;
     int size = WideCharToMultiByte(CP_ACP, 0, characters, path.length(), 0, 0, 0, 0) - 1;