When saved mht file is opened progress bar is stuck
authorpraveen.ks <praveen.ks@samsung.com>
Tue, 2 Apr 2013 13:52:54 +0000 (19:22 +0530)
committerpraveen.ks <praveen.ks@samsung.com>
Tue, 2 Apr 2013 13:52:54 +0000 (19:22 +0530)
[Title] Saved mht file does not finish load if it has external resource in it
[Issue#] TD-9485
[Problem] When saved mht file is loaded the progress bar gets stuck and loading never finishes
[Cause] It happens when external resources i.e. resources not present in the mht resource file
        are included. Webkit tries to fail the load for such sub resources but this does not
        clear the sub resource loaders since didFail is never called and in the process
        checkLoadComplete is never called thereby keeping the load in an unfinished state
        infinitely.
[Solution] Allow external resources to be downloaded from network so as not to have a broken
           page. If external resources cannot be fetched didFail will be properly called and
           load will finish.
[Developer] Praveen (praveen.ks@samsung.com)

Source/WTF/wtf/Platform.h
Source/WebCore/loader/DocumentLoader.cpp

index 507a5a2..d7bf256 100755 (executable)
@@ -791,6 +791,8 @@ com) : Patch to do not adjust cover rect as fixed pixel size*/
 
 #define ENABLE_TIZEN_FIND_STRING 1 /* Jinwoo Song(jinwoo7.song@samsung.com) : Fix the bug to enable searching the web page which has the 'webkit-user-select: none' CSS property and value. */
 
+#define ENABLE_TIZEN_GET_EXTERNAL_RESOURCES_IN_MHTML_FROM_NETWORK 1 /* Praveen(praveen.ks@samsung.com) : Allow external resources in MHTML file to be fetched from network rather than failing them */
+
 #endif /* OS(TIZEN) */
 
 /* ==== OS() - underlying operating system; only to be used for mandated low-level services like 
index 94ab624..e273829 100644 (file)
@@ -751,8 +751,12 @@ bool DocumentLoader::scheduleArchiveLoad(ResourceLoader* loader, const ResourceR
 #endif
 #if ENABLE(MHTML)
     case Archive::MHTML:
+#if ENABLE(TIZEN_GET_EXTERNAL_RESOURCES_IN_MHTML_FROM_NETWORK)
+        return false;
+#else
         return true; // Always fail the load for resources not included in the MHTML.
 #endif
+#endif
     default:
         return false;
     }