+2005-06-02 Maciej Stachowiak <mjs@apple.com>
+
+ Reviewed by Kevin.
+
+ - remove dependency on NSFileManager and NSCalendarDate private extras from WebFou
+
+ * History.subproj/WebHistory.m:
+ (-[WebHistoryPrivate findIndex:forDay:]):
+ (-[WebHistoryPrivate arrayRepresentation]):
+ (-[WebHistoryPrivate _loadHistoryGuts:URL:error:]):
+ * Misc.subproj/WebFileDatabase.m:
+ (-[WebFileDatabase _truncateToSizeLimit:]):
+ (-[WebFileDatabase removeAllObjects]):
+ (-[WebFileDatabase performSetObject:forKey:]):
+ (-[WebFileDatabase performRemoveObjectForKey:]):
+ (-[WebFileDatabase open]):
+ * Misc.subproj/WebKitNSStringExtras.m:
+ (-[NSString _webkit_fixedCarbonPOSIXPath]):
+ * Misc.subproj/WebNSCalendarDateExtras.h: Added.
+ * Misc.subproj/WebNSCalendarDateExtras.m: Added.
+ (-[NSCalendarDate _webkit_compareDay:]):
+ * Misc.subproj/WebNSDataExtras.h:
+ * Misc.subproj/WebNSDictionaryExtras.h:
+ * Misc.subproj/WebNSFileManagerExtras.h: Added.
+ * Misc.subproj/WebNSFileManagerExtras.m: Added.
+ (-[NSFileManager _webkit_fileExistsAtPath:isDirectory:traverseLink:]):
+ (-[NSFileManager _webkit_createIntermediateDirectoriesForPath:attributes:]):
+ (-[NSFileManager _webkit_createDirectoryAtPathWithIntermediateDirectories:attributes:]):
+ (-[NSFileManager _webkit_createFileAtPathWithIntermediateDirectories:contents:attributes:directoryAttributes:]):
+ (-[NSFileManager _webkit_removeFileOnlyAtPath:]):
+ (-[NSFileManager _webkit_backgroundRemoveFileAtPath:]):
+ (-[NSFileManager _webkit_backgroundRemoveLeftoverFiles:]):
+ (-[NSFileManager _webkit_carbonPathForPath:]):
+ (-[NSFileManager _webkit_startupVolumeName]):
+ (-[NSFileManager _webkit_pathWithUniqueFilenameForPath:]):
+ * Plugins.subproj/WebBaseNetscapePluginStream.m:
+ * WebKit.pbproj/project.pbxproj:
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
+ * WebView.subproj/WebImageView.m:
+ (-[WebImageView namesOfPromisedFilesDroppedAtDestination:]):
+
2005-06-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Adele.
#import <WebKit/WebHistoryItem.h>
#import <WebKit/WebHistoryItemPrivate.h>
#import <WebKit/WebKitLogging.h>
+#import <WebKit/WebNSCalendarDateExtras.h>
#import <WebKit/WebNSURLExtras.h>
#import <Foundation/NSError.h>
#import <WebKit/WebAssertions.h>
#import <WebCore/WebCoreHistory.h>
-#import <Foundation/NSCalendarDate_NSURLExtras.h>
-
NSString *WebHistoryItemsAddedNotification = @"WebHistoryItemsAddedNotification";
NSString *WebHistoryItemsRemovedNotification = @"WebHistoryItemsRemovedNotification";
//FIXME: just does linear search through days; inefficient if many days
count = [_datesWithEntries count];
for (*index = 0; *index < count; ++*index) {
- NSComparisonResult result = [date _web_compareDay: [_datesWithEntries objectAtIndex: *index]];
+ NSComparisonResult result = [date _webkit_compareDay: [_datesWithEntries objectAtIndex: *index]];
if (result == NSOrderedSame) {
return YES;
}
NSArray *entries;
// skip remaining days if they are older than the age limit
- if ([[_datesWithEntries objectAtIndex:dateIndex] _web_compareDay:ageLimitDate] != NSOrderedDescending) {
+ if ([[_datesWithEntries objectAtIndex:dateIndex] _webkit_compareDay:ageLimitDate] != NSOrderedDescending) {
break;
}
// test against date limit
if (!ageLimitPassed) {
- if ([[entry _lastVisitedDate] _web_compareDay:ageLimitDate] != NSOrderedDescending) {
+ if ([[entry _lastVisitedDate] _webkit_compareDay:ageLimitDate] != NSOrderedDescending) {
continue;
} else {
ageLimitPassed = YES;
#import <WebKit/WebFileDatabase.h>
#import <WebKit/WebKitLogging.h>
#import <WebKit/WebLRUFileList.h>
-
-#import <Foundation/NSFileManager_NSURLExtras.h>
+#import <WebKit/WebNSFileManagerExtras.h>
#import <fcntl.h>
#import <fts.h>
break;
}
NSString *filePath = [[NSString alloc] initWithFormat:@"%@/%s", path, uniqueKey];
- [defaultManager _web_removeFileOnlyAtPath:filePath];
+ [defaultManager _webkit_removeFileOnlyAtPath:filePath];
[filePath release];
WebLRUFileListRemoveOldestFileFromList(lru);
}
[removeCache removeAllObjects];
[ops removeAllObjects];
[self close];
- [[NSFileManager defaultManager] _web_backgroundRemoveFileAtPath:path];
+ [[NSFileManager defaultManager] _webkit_backgroundRemoveFileAtPath:path];
[self open];
[mutex unlock];
WebLRUFileListSetFileData(lru, uniqueKey, [data length], CFAbsoluteTimeGetCurrent());
[self _truncateToSizeLimit:[self sizeLimit]];
- result = [defaultManager _web_createFileAtPathWithIntermediateDirectories:filePath contents:data attributes:attributes directoryAttributes:directoryAttributes];
+ result = [defaultManager _webkit_createFileAtPathWithIntermediateDirectories:filePath contents:data attributes:attributes directoryAttributes:directoryAttributes];
if (!result) {
WebLRUFileListRemoveFileWithPath(lru, uniqueKey);
UniqueFilePathForKey(key, uniqueKey);
filePath = [[NSString alloc] initWithFormat:@"%@/%s", path, uniqueKey];
- [[NSFileManager defaultManager] _web_removeFileOnlyAtPath:filePath];
+ [[NSFileManager defaultManager] _webkit_removeFileOnlyAtPath:filePath];
WebLRUFileListRemoveFileWithPath(lru, uniqueKey);
[filePath release];
}
NULL
];
- isOpen = [manager _web_createDirectoryAtPathWithIntermediateDirectories:path attributes:attributes];
+ isOpen = [manager _webkit_createDirectoryAtPathWithIntermediateDirectories:path attributes:attributes];
}
// remove any leftover turds
- [manager _web_backgroundRemoveLeftoverFiles:path];
+ [manager _webkit_backgroundRemoveLeftoverFiles:path];
if (isOpen) {
[NSThread detachNewThreadSelector:@selector(_createLRUList:) toTarget:self withObject:nil];
#import <WebKit/WebNSObjectExtras.h>
#import <WebKit/WebTextRenderer.h>
#import <WebKit/WebTextRendererFactory.h>
-#import <Foundation/NSFileManager_NSURLExtras.h>
+#import <WebKit/WebNSFileManagerExtras.h>
#import <unicode/uchar.h>
return self;
}
- if ([[fileManager _web_startupVolumeName] isEqualToString:volumeName]) {
+ if ([[fileManager _webkit_startupVolumeName] isEqualToString:volumeName]) {
// Startup volume name is included in path, remove it.
[pathComponents removeObjectAtIndex:1];
} else if ([[fileManager directoryContentsAtPath:@"/Volumes"] containsObject:volumeName]) {
--- /dev/null
+/*
+ WebNSCalendarDateExtras.h
+ Private (SPI) header
+ Copyright 2003, Apple, Inc. All rights reserved.
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface NSCalendarDate (WebNSCalendarDateExtras)
+- (NSComparisonResult)_webkit_compareDay: (NSCalendarDate *)anotherDate;
+@end
--- /dev/null
+/*
+ WebNSCalendarDateExtras.m
+ Private (SPI) header
+ Copyright 2005, Apple, Inc. All rights reserved.
+ */
+
+#import <WebKit/WebNSCalendarDateExtras.h>
+
+#import <WebKit/WebAssertions.h>
+
+@implementation NSCalendarDate (WebNSCalendarDateExtras)
+
+- (NSComparisonResult) _webkit_compareDay: (NSCalendarDate *)anotherDate
+{
+ int year, yearOther, month, monthOther, day, dayOther;
+
+ if (self == anotherDate) {
+ return NSOrderedSame;
+ }
+
+ year = [self yearOfCommonEra];
+ yearOther = [anotherDate yearOfCommonEra];
+ if (year < yearOther) {
+ return NSOrderedAscending;
+ }
+ if (year > yearOther) {
+ return NSOrderedDescending;
+ }
+
+ month = [self monthOfYear];
+ monthOther = [anotherDate monthOfYear];
+ if (month < monthOther) {
+ return NSOrderedAscending;
+ }
+ if (month > monthOther) {
+ return NSOrderedDescending;
+ }
+
+ day = [self dayOfMonth];
+ dayOther = [anotherDate dayOfMonth];
+ if (day < dayOther) {
+ return NSOrderedAscending;
+ }
+ if (day > dayOther) {
+ return NSOrderedDescending;
+ }
+
+ return NSOrderedSame;
+}
+
+@end
+
/*
- WebNSURLExtras.h
+ WebNSDataExtras.h
Private (SPI) header
Copyright 2003, Apple, Inc. All rights reserved.
*/
#define WEB_GUESS_MIME_TYPE_PEEK_LENGTH 1024
-@interface NSData (WebNSURLExtras)
+@interface NSData (WebNSDateExtras)
-(BOOL)_web_isCaseInsensitiveEqualToCString:(const char *)string;
-(NSMutableDictionary *)_webkit_parseRFC822HeaderFields;
/*
- WebNSURLExtras.h
+ WebNSDictionaryExtras.h
Private (SPI) header
- Copyright 2003, Apple, Inc. All rights reserved.
+ Copyright 2005, Apple, Inc. All rights reserved.
*/
#import <Foundation/Foundation.h>
--- /dev/null
+/*
+ WebNSFileManagerExtras.h
+ Private (SPI) header
+ Copyright 2005, Apple, Inc. All rights reserved.
+ */
+
+#import <Foundation/Foundation.h>
+
+#define WEB_UREAD (00400) /* Read by owner */
+#define WEB_UWRITE (00200) /* Write by owner */
+#define WEB_UEXEC (00100) /* Execute/Search by owner */
+
+@interface NSFileManager (WebNSFileManagerExtras)
+
+- (BOOL)_webkit_createDirectoryAtPathWithIntermediateDirectories:(NSString *)path attributes:(NSDictionary *)attributes;
+- (BOOL)_webkit_createFileAtPathWithIntermediateDirectories:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes directoryAttributes:(NSDictionary *)directoryAttributes;
+- (void)_webkit_backgroundRemoveFileAtPath:(NSString *)path;
+- (void)_webkit_backgroundRemoveLeftoverFiles:(NSString *)path;
+- (BOOL)_webkit_removeFileOnlyAtPath:(NSString *)path;
+- (NSString *)_webkit_startupVolumeName;
+- (NSString *)_webkit_pathWithUniqueFilenameForPath:(NSString *)path;
+
+@end
+
--- /dev/null
+/*
+ WebNSFileManagerExtras.m
+ Private (SPI) header
+ Copyright 2003, Apple, Inc. All rights reserved.
+ */
+
+#import <WebKit/WebNSFileManagerExtras.h>
+
+#import <WebKit/WebAssertions.h>
+#import <WebKit/WebKitNSStringExtras.h>
+
+#import <sys/mount.h>
+
+@implementation NSFileManager (WebNSFileManagerExtras)
+
+- (BOOL)_webkit_fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory traverseLink:(BOOL)flag
+{
+ BOOL result;
+ NSDictionary *attributes;
+
+ result = NO;
+ if (isDirectory) {
+ *isDirectory = NO;
+ }
+
+ attributes = [self fileAttributesAtPath:path traverseLink:flag];
+
+ if (attributes) {
+ result = YES;
+ if ([[attributes objectForKey:NSFileType] isEqualToString:NSFileTypeDirectory]) {
+ if (isDirectory) {
+ *isDirectory = YES;
+ }
+ }
+ }
+
+ return result;
+}
+
+- (BOOL)_webkit_createIntermediateDirectoriesForPath:(NSString *)path attributes:(NSDictionary *)attributes
+{
+ BOOL result;
+ NSArray *pathComponents;
+ BOOL isDir;
+ unsigned count;
+ unsigned i;
+ NSString *checkPath;
+ NSMutableString *subpath;
+
+ if (!path || [path length] == 0 || ![path isAbsolutePath]) {
+ return NO;
+ }
+
+ result = NO;
+
+ // check to see if the path to the file already exists
+ if ([self _webkit_fileExistsAtPath:[path stringByDeletingLastPathComponent] isDirectory:&isDir traverseLink:YES]) {
+ if (isDir) {
+ result = YES;
+ }
+ else {
+ result = NO;
+ }
+ }
+ else {
+ // create the path to the file
+ result = YES;
+
+ // assume that most of the path exists, look backwards until we find an existing subpath
+ checkPath = path;
+ while (![checkPath isEqualToString:@"/"]) {
+ checkPath = [checkPath stringByDeletingLastPathComponent];
+ if ([self _webkit_fileExistsAtPath:checkPath isDirectory:&isDir traverseLink:YES]) {
+ if (isDir) {
+ break;
+ }
+ else {
+ // found a leaf node, can't continue
+ result = NO;
+ break;
+ }
+ }
+ }
+
+ if (result) {
+ // now build up the path to the point where we found existing paths
+ subpath = [[NSMutableString alloc] initWithCapacity:[path length]];
+ pathComponents = [path componentsSeparatedByString:@"/"];
+ count = [pathComponents count];
+ i = 0;
+ while (i < count - 1 && ![subpath isEqualToString:checkPath]) {
+ if (i > 0) {
+ [subpath appendString:@"/"];
+ }
+ [subpath appendString:[pathComponents objectAtIndex:i]];
+ i++;
+ }
+
+ // now create the parts of the path that did not yet exist
+ while (i < count - 1) {
+ if ([(NSString *)[pathComponents objectAtIndex:i] length] == 0) {
+ continue;
+ }
+ if (i > 0) {
+ [subpath appendString:@"/"];
+ }
+ [subpath appendString:[pathComponents objectAtIndex:i]];
+
+ // does this directory exist?
+ if ([self _webkit_fileExistsAtPath:subpath isDirectory:&isDir traverseLink:YES]) {
+ if (!isDir) {
+ // ran into a leaf node of some sort
+ result = NO;
+ break;
+ }
+ }
+ else {
+ // subpath does not exist - create it
+ if (![self createDirectoryAtPath:subpath attributes:attributes]) {
+ // failed to create subpath
+ result = NO;
+ break;
+ }
+ }
+ i++;
+ }
+
+ [subpath release];
+ }
+
+ }
+
+ return result;
+}
+
+- (BOOL)_webkit_createDirectoryAtPathWithIntermediateDirectories:(NSString *)path attributes:(NSDictionary *)attributes
+{
+ // Be really optimistic - assume that in the common case, the directory exists.
+ BOOL isDirectory;
+ if ([self fileExistsAtPath:path isDirectory:&isDirectory] && isDirectory) {
+ return YES;
+ }
+
+ // Assume the next most common case is that the parent directory already exists
+ if ([self createDirectoryAtPath:path attributes:attributes]) {
+ return YES;
+ }
+
+ // Do it the hard way
+ return [self _webkit_createIntermediateDirectoriesForPath:path attributes:attributes] && [self createDirectoryAtPath:path attributes:attributes];
+}
+
+- (BOOL)_webkit_createFileAtPathWithIntermediateDirectories:(NSString *)path contents:(NSData *)contents attributes:(NSDictionary *)attributes directoryAttributes:(NSDictionary *)directoryAttributes
+{
+ // Be optimistic - try just creating the file first, assuming intermediate directories exist.
+ if ([self createFileAtPath:path contents:contents attributes:attributes]) {
+ return YES;
+ }
+
+ return ([self _webkit_createIntermediateDirectoriesForPath:path attributes:directoryAttributes] && [self createFileAtPath:path contents:contents attributes:attributes]);
+}
+
+- (BOOL)_webkit_removeFileOnlyAtPath:(NSString *)path
+{
+ struct statfs buf;
+ BOOL result = unlink([path fileSystemRepresentation]) == 0;
+
+ // For mysterious reasons, MNT_DOVOLFS is the flag for "supports resource fork"
+ if ((statfs([path fileSystemRepresentation], &buf) == 0) && !(buf.f_flags & MNT_DOVOLFS)) {
+ NSString *lastPathComponent = [path lastPathComponent];
+ if ([lastPathComponent length] != 0 && ![lastPathComponent isEqualToString:@"/"]) {
+ NSString *resourcePath = [[path stringByDeletingLastPathComponent] stringByAppendingString:[@"._" stringByAppendingString:lastPathComponent]];
+ if (unlink([resourcePath fileSystemRepresentation]) != 0) {
+ result = NO;
+ }
+ }
+ }
+
+ return result;
+}
+
+- (void)_webkit_backgroundRemoveFileAtPath:(NSString *)path
+{
+ NSFileManager *manager;
+ NSString *moveToSubpath;
+ NSString *moveToPath;
+ int i;
+
+ manager = [NSFileManager defaultManager];
+
+ i = 0;
+ moveToSubpath = [path stringByDeletingLastPathComponent];
+ do {
+ moveToPath = [NSString stringWithFormat:@"%@/.tmp%d", moveToSubpath, i];
+ i++;
+ } while ([manager fileExistsAtPath:moveToPath]);
+
+ if ([manager movePath:path toPath:moveToPath handler:nil]) {
+ [NSThread detachNewThreadSelector:@selector(_performRemoveFileAtPath:) toTarget:self withObject:moveToPath];
+ }
+
+}
+
+- (void)_webkit_backgroundRemoveLeftoverFiles:(NSString *)path
+{
+ NSFileManager *manager;
+ NSString *leftoverSubpath;
+ NSString *leftoverPath;
+ int i;
+
+ manager = [NSFileManager defaultManager];
+ leftoverSubpath = [path stringByDeletingLastPathComponent];
+
+ i = 0;
+ while (1) {
+ leftoverPath = [NSString stringWithFormat:@"%@/.tmp%d", leftoverSubpath, i];
+ if (![manager fileExistsAtPath:leftoverPath]) {
+ break;
+ }
+ [NSThread detachNewThreadSelector:@selector(_performRemoveFileAtPath:) toTarget:self withObject:leftoverPath];
+ i++;
+ }
+}
+
+- (NSString *)_webkit_carbonPathForPath:(NSString *)posixPath
+{
+ OSStatus error;
+ FSRef ref, rootRef, parentRef;
+ FSCatalogInfo info;
+ NSMutableArray *carbonPathPieces;
+ HFSUniStr255 nameString;
+
+ // Make an FSRef.
+ error = FSPathMakeRef((const UInt8 *)[posixPath fileSystemRepresentation], &ref, NULL);
+ if (error != noErr) {
+ return nil;
+ }
+
+ // Get volume refNum.
+ error = FSGetCatalogInfo(&ref, kFSCatInfoVolume, &info, NULL, NULL, NULL);
+ if (error != noErr) {
+ return nil;
+ }
+
+ // Get root directory FSRef.
+ error = FSGetVolumeInfo(info.volume, 0, NULL, kFSVolInfoNone, NULL, NULL, &rootRef);
+ if (error != noErr) {
+ return nil;
+ }
+
+ // Get the pieces of the path.
+ carbonPathPieces = [NSMutableArray array];
+ for (;;) {
+ error = FSGetCatalogInfo(&ref, kFSCatInfoNone, NULL, &nameString, NULL, &parentRef);
+ if (error != noErr) {
+ return nil;
+ }
+ [carbonPathPieces insertObject:[NSString stringWithCharacters:nameString.unicode length:nameString.length] atIndex:0];
+ if (FSCompareFSRefs(&ref, &rootRef) == noErr) {
+ break;
+ }
+ ref = parentRef;
+ }
+
+ // Volume names need trailing : character.
+ if ([carbonPathPieces count] == 1) {
+ [carbonPathPieces addObject:@""];
+ }
+
+ return [carbonPathPieces componentsJoinedByString:@":"];
+}
+
+- (NSString *)_webkit_startupVolumeName
+{
+ NSString *path = [self _webkit_carbonPathForPath:@"/"];
+ return [path substringToIndex:[path length]-1];
+}
+
+- (NSString *)_webkit_pathWithUniqueFilenameForPath:(NSString *)path
+{
+ // "Fix" the filename of the path.
+ NSString *filename = [[path lastPathComponent] _webkit_filenameByFixingIllegalCharacters];
+ path = [[path stringByDeletingLastPathComponent] stringByAppendingPathComponent:filename];
+
+ NSFileManager *fileManager = [NSFileManager defaultManager];
+ if ([fileManager fileExistsAtPath:path]) {
+ // Don't overwrite existing file by appending "-n", "-n.ext" or "-n.ext.ext" to the filename.
+ NSString *extensions = nil;
+ NSString *pathWithoutExtensions;
+ NSString *lastPathComponent = [path lastPathComponent];
+ NSRange periodRange = [lastPathComponent rangeOfString:@"."];
+
+ if (periodRange.location == NSNotFound) {
+ pathWithoutExtensions = path;
+ } else {
+ extensions = [lastPathComponent substringFromIndex:periodRange.location + 1];
+ lastPathComponent = [lastPathComponent substringToIndex:periodRange.location];
+ pathWithoutExtensions = [[path stringByDeletingLastPathComponent] stringByAppendingPathComponent:lastPathComponent];
+ }
+
+ NSString *pathWithAppendedNumber;
+ unsigned i;
+
+ for (i = 1; 1; i++) {
+ pathWithAppendedNumber = [NSString stringWithFormat:@"%@-%d", pathWithoutExtensions, i];
+ path = [extensions length] ? [pathWithAppendedNumber stringByAppendingPathExtension:extensions] : pathWithAppendedNumber;
+ if (![fileManager fileExistsAtPath:path]) {
+ break;
+ }
+ }
+ }
+
+ return path;
+}
+
+@end
#import <Foundation/NSURLResponse.h>
#import <Foundation/NSURLResponsePrivate.h>
-#import <Foundation/NSFileManager_NSURLExtras.h>
static const char *CarbonPathFromPOSIXPath(const char *posixPath);
//254
254DC334016E1D3F0ECA149E = {
children = (
- 65488D9F084FBCCB00831AD0,
- 65488DA0084FBCCB00831AD0,
3944607A020F50ED0ECA1767,
3944607B020F50ED0ECA1767,
F528E3E9031E91AD01CA2ACA,
BEE18F9A0472B73200CA289C,
9345DDB20365FFD0008635CE,
9345DDB30365FFD0008635CE,
+ 65EEDE51084FFB920002DB25,
+ 65EEDE52084FFB920002DB25,
BECD14290565830A005BB09C,
BECD142A0565830A005BB09C,
+ 65488D9F084FBCCB00831AD0,
+ 65488DA0084FBCCB00831AD0,
BE887BFF056D3A6E009BB3E7,
BE887C00056D3A6E009BB3E7,
+ 65EEDE55084FFC9E0002DB25,
+ 65EEDE56084FFC9E0002DB25,
8398847A03426FB000BC5F5E,
8398847B03426FB000BC5F5E,
93D1FE13067EB10B009CE68A,
refType = 4;
sourceTree = "<group>";
};
+ 65EEDE51084FFB920002DB25 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = WebNSCalendarDateExtras.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 65EEDE52084FFB920002DB25 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = WebNSCalendarDateExtras.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 65EEDE53084FFB920002DB25 = {
+ fileRef = 65EEDE51084FFB920002DB25;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 65EEDE54084FFB920002DB25 = {
+ fileRef = 65EEDE52084FFB920002DB25;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 65EEDE55084FFC9E0002DB25 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = WebNSFileManagerExtras.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 65EEDE56084FFC9E0002DB25 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = WebNSFileManagerExtras.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 65EEDE57084FFC9E0002DB25 = {
+ fileRef = 65EEDE55084FFC9E0002DB25;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 65EEDE58084FFC9E0002DB25 = {
+ fileRef = 65EEDE56084FFC9E0002DB25;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
//650
//651
//652
939810B00824BF01008DF038,
939810B10824BF01008DF038,
65488DA1084FBCCB00831AD0,
+ 65EEDE53084FFB920002DB25,
+ 65EEDE57084FFC9E0002DB25,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
939811250824BF01008DF038,
939811260824BF01008DF038,
65488DA2084FBCCB00831AD0,
+ 65EEDE54084FFB920002DB25,
+ 65EEDE58084FFC9E0002DB25,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
#import <WebKit/WebKitNSStringExtras.h>
#import <WebKit/WebNetscapePluginEmbeddedView.h>
#import <WebKit/WebNSEventExtras.h>
+#import <WebKit/WebNSFileManagerExtras.h>
#import <WebKit/WebNSImageExtras.h>
#import <WebKit/WebNSObjectExtras.h>
#import <WebKit/WebNSPasteboardExtras.h>
#import <AppKit/NSGraphicsContextPrivate.h>
#import <AppKit/NSResponder_Private.h>
-#import <Foundation/NSFileManager_NSURLExtras.h>
#import <Foundation/NSURLFileTypeMappings.h>
#import <CoreGraphics/CGContextGState.h>
// FIXME: Report an error if we fail to create a file.
NSString *path = [[dropDestination path] stringByAppendingPathComponent:[wrapper preferredFilename]];
- path = [[NSFileManager defaultManager] _web_pathWithUniqueFilenameForPath:path];
+ path = [[NSFileManager defaultManager] _webkit_pathWithUniqueFilenameForPath:path];
if (![wrapper writeToFile:path atomically:NO updateFilenames:YES]) {
ERROR("Failed to create image file via -[NSFileWrapper writeToFile:atomically:updateFilenames:]");
}
#import <WebKit/WebImageRenderer.h>
#import <WebKit/WebImageRendererFactory.h>
#import <WebKit/WebImageRepresentation.h>
+#import <WebKit/WebNSFileManagerExtras.h>
#import <WebKit/WebNSObjectExtras.h>
#import <WebKit/WebNSPasteboardExtras.h>
#import <WebKit/WebNSViewExtras.h>
#import <WebCore/WebCoreImageRenderer.h>
-#import <Foundation/NSFileManager_NSURLExtras.h>
-
@implementation WebImageView
+ (void)initialize
{
// FIXME: Report an error if we fail to create a file.
NSString *path = [[dropDestination path] stringByAppendingPathComponent:[rep filename]];
- path = [[NSFileManager defaultManager] _web_pathWithUniqueFilenameForPath:path];
+ path = [[NSFileManager defaultManager] _webkit_pathWithUniqueFilenameForPath:path];
[[rep data] writeToFile:path atomically:NO];
return [NSArray arrayWithObject:[path lastPathComponent]];
}