aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--embed/mozilla/mozilla-embed-persist.cpp11
2 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 00fb1eb28..c30b4b192 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,13 @@
* embed/mozilla/mozilla-embed-persist.cpp:
+ Whenever we have one, pass the cache key to the persist object.
+ That way we don't re-fetch the page on save. Fixes bug #141652.
+
+2004-05-03 Christian Persch <chpe@cvs.gnome.org>
+
+ * embed/mozilla/mozilla-embed-persist.cpp:
+
Fix a mem leak; thanks to Crispin for spotting it.
2004-05-03 Patanjali Somayaji <patanjali@codito.com>
diff --git a/embed/mozilla/mozilla-embed-persist.cpp b/embed/mozilla/mozilla-embed-persist.cpp
index 41b7ffd4b..87c8dc7ce 100644
--- a/embed/mozilla/mozilla-embed-persist.cpp
+++ b/embed/mozilla/mozilla-embed-persist.cpp
@@ -228,12 +228,17 @@ impl_save (EphyEmbedPersist *persist)
/* Get the current page descriptor */
nsCOMPtr<nsISupports> pageDescriptor;
- if (flags & EMBED_PERSIST_COPY_PAGE)
+ if (browser)
{
browser->GetPageDescriptor(getter_AddRefs(pageDescriptor));
- NS_ENSURE_TRUE (pageDescriptor, FALSE);
}
+ /* if we have COPY_PAGE, we *need* to have a page descriptor, else we'll re-fetch
+ * the page, which will possibly give a different page than the original which we
+ * need for view source
+ */
+ NS_ENSURE_TRUE (!(flags & EMBED_PERSIST_COPY_PAGE) || pageDescriptor, FALSE);
+
if (filename == NULL)
{
/* Create an header sniffer and do the save */
@@ -247,7 +252,7 @@ impl_save (EphyEmbedPersist *persist)
if (!sniffer) return FALSE;
webPersist->SetProgressListener(sniffer);
- rv = webPersist->SaveURI(inURI, nsnull, nsnull, nsnull, nsnull, tmpFile);
+ rv = webPersist->SaveURI(inURI, pageDescriptor, nsnull, nsnull, nsnull, tmpFile);
if (NS_FAILED (rv)) return FALSE;
}
else