On 03.06.2010 18:26, Frederic Gos wrote:
Hi, I've built a simple test program that uses webkit to show html files. I've used the COM api from c++ under windows. I'm able to display html comming from the web via IWebUrlRequest with both a http: url and a file: url. this works great. I did have to copy the CFNEtwork.resources files for the file: url to work, etc. Now, I need to try to make it display a .webacrhive file. I've created that file with safari and can also load it again with safari and it displays it fine. In my program, when i make a file: url to the .webarchive file and use 'initWithUrl' like I did for a html file, the display is blank... I then researched a bit more and found that IWebFrame has this loadArchive method and thought uuuuuh ;) But alas, now I need to build a IWebArchive object (i think) and load the data from the .webarchive into that. I've looked at the code and seen that the only method which is implemented in the COM api is initFromNode (IDOMNode* etc). So now I need to build a DOMDocument and create a node in it and load the data into that? Is this correct? I presume this is done with libxml2.lib kind of code? Is this the right track or am i on a wild goose chase? Even better, maybe someone has a sample doing just that? I'm pretty sure it can be done since safari displays webarchive files fine. But maybe safari isn't using webkit through the COM api and goes directly to WebCore? Anyway, ' ll quit babbling for now and hope someone can help push me in the right directioin.
I think your best bet is implementing WebArchive::initWithData(IStream*) by looking at corresponding code in WebKit/mac/WebView/WebArchive.mm.
I'd use WebCore::LegacyWebArchive::create(SharedBuffer*) overload to accomplish the task, while copying the data from IStream* to newly allocated SharedBuffer instance beforehand.
-- Alex _______________________________________________ webkit-help mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-help
