From 3fd29884f952ea96fcc003b9611c83612759a64b Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 18 Mar 2007 01:56:57 +0000 Subject: Pass the post data to the Persist --- (limited to 'lib') diff --git a/lib/src/Makefile.am b/lib/src/Makefile.am index bdf5dcc..8494971 100644 --- a/lib/src/Makefile.am +++ b/lib/src/Makefile.am @@ -11,6 +11,7 @@ libsugarprivate_la_CPPFLAGS = \ -I$(MOZILLA_INCLUDE_DIR)/mimetype \ -I$(MOZILLA_INCLUDE_DIR)/necko \ -I$(MOZILLA_INCLUDE_DIR)/pref \ + -I$(MOZILLA_INCLUDE_DIR)/shistory \ -I$(MOZILLA_INCLUDE_DIR)/uriloader \ -I$(MOZILLA_INCLUDE_DIR)/webbrwsr \ -I$(MOZILLA_INCLUDE_DIR)/webbrowserpersist \ diff --git a/lib/src/sugar-browser.cpp b/lib/src/sugar-browser.cpp index 8385e1d..2f3c0b5 100644 --- a/lib/src/sugar-browser.cpp +++ b/lib/src/sugar-browser.cpp @@ -51,6 +51,10 @@ #include #include #include +#include +#include +#include +#include enum { PROP_0, @@ -673,6 +677,39 @@ sugar_browser_grab_focus(SugarBrowser *browser) } } + +static nsresult +GetPostData(SugarBrowser *browser, nsIInputStream **postData) +{ +#ifdef HAVE_NS_WEB_BROWSER + nsCOMPtr webBrowser; + gtk_moz_embed_get_nsIWebBrowser(GTK_MOZ_EMBED(browser), + getter_AddRefs(webBrowser)); + NS_ENSURE_TRUE(webBrowser, NS_ERROR_FAILURE); + + nsCOMPtr webNav(do_QueryInterface(webBrowser)); + NS_ENSURE_TRUE(webNav, NS_ERROR_FAILURE); + + PRInt32 sindex; + + nsCOMPtr sessionHistory; + webNav->GetSessionHistory(getter_AddRefs(sessionHistory)); + NS_ENSURE_TRUE(sessionHistory, NS_ERROR_FAILURE); + + nsCOMPtr entry; + sessionHistory->GetIndex(&sindex); + sessionHistory->GetEntryAtIndex(sindex, PR_FALSE, getter_AddRefs(entry)); + + nsCOMPtr shEntry(do_QueryInterface(entry)); + if (shEntry) { + shEntry->GetPostData(postData); + } + + return NS_OK; +#endif + return NS_ERROR_NOT_IMPLEMENTED; +} + gboolean sugar_browser_save_uri(SugarBrowser *browser, const char *uri, @@ -698,7 +735,10 @@ sugar_browser_save_uri(SugarBrowser *browser, nsCOMPtr webPersist = do_QueryInterface (webBrowser); NS_ENSURE_TRUE(webPersist, FALSE); - rv = webPersist->SaveURI(sourceURI, nsnull, nsnull, nsnull, nsnull, destFile); + nsCOMPtr postData; + GetPostData(browser, getter_AddRefs(postData)); + + rv = webPersist->SaveURI(sourceURI, nsnull, nsnull, postData, nsnull, destFile); NS_ENSURE_SUCCESS(rv, FALSE); return TRUE; -- cgit v0.9.1