Reviewed by Eric.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 4 Mar 2006 11:02:20 +0000 (11:02 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 4 Mar 2006 11:02:20 +0000 (11:02 +0000)
        * Spinneret/Spinneret/WebFrame.cpp:
        (WebKit::WebFrame::loadFilePath): Improved local file loading.

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

WebKitTools/ChangeLog
WebKitTools/Scripts/install-win-extras
WebKitTools/Spinneret/Spinneret/WebFrame.cpp

index 55ec4afe210385cb3c1cfb16dc7163bafc81b692..6b364c19662c9ba3acb6435408c7fbcc1d6a81a2 100644 (file)
@@ -1,3 +1,10 @@
+2006-03-04  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Eric.
+
+        * Spinneret/Spinneret/WebFrame.cpp:
+        (WebKit::WebFrame::loadFilePath): Improved local file loading.
+
 2006-03-03  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by hyatt.
index 629306a4d70122d0775a5ba6882e451c23b1eb5b..3bd63247b91802ced4aaf746b8deb63a7d026cf4 100755 (executable)
@@ -48,8 +48,8 @@ if (! -e "icu-3.4-win32-msvc7.1.zip") {
     `unzip icu-3.4-win32-msvc7.1.zip`;
     `rm -rf ../icu`;
     `cp -rp icu ..`;
-    `chmod 755 ../icu/bin/*.dll`;
 }
+`chmod 755 ../icu/bin/*.dll`;
 
 if (! -e "iconv-1.9.1.win32.zip") {
     print "Downloading iconv-1.9.1.win32.zip...\n\n";
@@ -59,8 +59,8 @@ if (! -e "iconv-1.9.1.win32.zip") {
     `unzip iconv-1.9.1.win32.zip`;
     `rm -rf ../iconv`;
     `cp -rp iconv-1.9.1.win32 ../iconv`;
-    `chmod 755 ../iconv/bin/*.dll`;
 }
+`chmod 755 ../iconv/bin/*.dll`;
 
 if (! -e "libxml2-2.6.23.win32.zip") {
     print "Downloading libxml2-2.6.23.win32.zip...\n\n";
@@ -70,8 +70,8 @@ if (! -e "libxml2-2.6.23.win32.zip") {
     `unzip libxml2-2.6.23.win32.zip`;
     `rm -rf ../libxml`;
     `cp -rp libxml2-2.6.23.win32 ../libxml`;
-    `chmod 755 ../libxml/bin/*.dll`;
 }
+`chmod 755 ../libxml/bin/*.dll`;
 
 if (! -e "libxslt-1.1.15.win32.zip") {
     print "Downloading libxmslt-1.1.15.win32.zip...\n";
@@ -81,8 +81,8 @@ if (! -e "libxslt-1.1.15.win32.zip") {
     `unzip libxslt-1.1.15.win32.zip`;
     `rm -rf ../libxslt`;
     `cp -rp libxslt-1.1.15.win32 ../libxslt`;
-    `chmod 755 ../libxslt/bin/*.dll`;
 }
+`chmod 755 ../libxslt/bin/*.dll`;
 
 if (! -e "zlib-1.2.3.win32.zip") {
     print "Downloading zlib-1.2.3.win32.zip...\n\n";
@@ -92,8 +92,8 @@ if (! -e "zlib-1.2.3.win32.zip") {
     `unzip zlib-1.2.3.win32.zip`;
     `rm -rf ../zlib`;
     `cp -rp zlib-1.2.3.win32 ../zlib`;
-    `chmod 755 ../zlib/bin/*.dll`;
 }
+`chmod 755 ../zlib/bin/*.dll`;
 
 if (! -x "/cygdrive/c/Program Files/Resource Kit/setx.exe") {
     unlink("setx_setup.exe"); 
index 1d212ca8cdb906ed08c3db51c27e5f7114e8e6a0..4ea47b7b3e1ce093c4e3f15ad3d6f0518ede5795 100755 (executable)
@@ -64,24 +64,28 @@ WebFrame::WebFrame(char* name, WebView* view)
     d->frameView->setWindowHandle(view->windowHandle());
 }
 
-void WebFrame::loadFilePath(char *path)
+void WebFrame::loadFilePath(charpath)
 {
-    FILE* file = fopen(path, "rb");
-    if (!file) {
-        printf("Failed to open file: %s\n", path);
-        printf("Current path: %s\n", _getcwd(0,0));
-        return;
-    }
-
-    d->frame->begin();
-
-    char buffer[4000];
-    int newBytes = 0;
-    while ((newBytes = fread(buffer, 1, 4000, file)) > 0) {
-        d->frame->write(buffer, newBytes);
-    }
-    fclose(file);
-
+    char URL[2048];
+    strcpy(URL, "file://localhost/");
+    strcat(URL, path);
+
+    d->frame->didOpenURL(URL);
+    d->frame->begin(URL);
+    HANDLE fileHandle = CreateFileA(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+     
+    bool result = false;
+    DWORD bytesRead = 0;
+    
+    do {
+      const int bufferSize = 8193;
+      char buffer[bufferSize];
+      result = ReadFile(fileHandle, &buffer, bufferSize - 1, &bytesRead, NULL); 
+      buffer[bytesRead] = '\0';
+      d->frame->write(buffer);
+      // Check for end of file. 
+    } while (result && bytesRead);
+    
     d->frame->end();
 }