aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/EphyHeaderSniffer.cpp
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2003-11-21 03:12:19 +0800
committerMarco Pesenti Gritti <marco@src.gnome.org>2003-11-21 03:12:19 +0800
commite464015f47f6d575f5db02d851d7ea4b88278e34 (patch)
treebd44d70a7826306430e185dcddd352472a738b67 /embed/mozilla/EphyHeaderSniffer.cpp
parent70c88252fb1eb732104f1523a5515bf556a3438c (diff)
downloadgsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar.gz
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar.bz2
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar.lz
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar.xz
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.tar.zst
gsoc2013-epiphany-e464015f47f6d575f5db02d851d7ea4b88278e34.zip
Implement an handle_content signal to allow to write plugins to support
2003-11-20 Marco Pesenti Gritti <marco@gnome.org> * embed/ephy-embed-single.c: (ephy_embed_single_class_init): * embed/ephy-embed-single.h: * embed/mozilla/ContentHandler.cpp: * embed/mozilla/EphyHeaderSniffer.cpp: * embed/mozilla/EphyHeaderSniffer.h: * lib/ephy-marshal.list: Implement an handle_content signal to allow to write plugins to support external download managers.
Diffstat (limited to 'embed/mozilla/EphyHeaderSniffer.cpp')
-rw-r--r--embed/mozilla/EphyHeaderSniffer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/embed/mozilla/EphyHeaderSniffer.cpp b/embed/mozilla/EphyHeaderSniffer.cpp
index 0b353112b..a1e621fad 100644
--- a/embed/mozilla/EphyHeaderSniffer.cpp
+++ b/embed/mozilla/EphyHeaderSniffer.cpp
@@ -91,6 +91,23 @@ EphyHeaderSniffer::~EphyHeaderSniffer()
NS_IMPL_ISUPPORTS2(EphyHeaderSniffer, nsIWebProgressListener, nsIAuthPrompt)
+NS_IMETHODIMP
+EphyHeaderSniffer::HandleContent ()
+{
+ EphyEmbedSingle *single;
+ gboolean handled = FALSE;
+ nsCString uriSpec;
+
+ if (mPostData) return NS_ERROR_FAILURE;
+
+ mURL->GetSpec (uriSpec);
+ single = ephy_embed_shell_get_embed_single (embed_shell);
+ g_signal_emit_by_name (single, "handle_content", mContentType.get(),
+ uriSpec.get(), &handled);
+
+ return handled ? NS_OK : NS_ERROR_FAILURE;
+}
+
NS_IMETHODIMP
EphyHeaderSniffer::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aRequest, PRUint32 aStateFlags,
PRUint32 aStatus)
@@ -126,6 +143,9 @@ EphyHeaderSniffer::OnStateChange (nsIWebProgress *aWebProgress, nsIRequest *aReq
mTmpFile->Remove(PR_FALSE);
}
+ rv = HandleContent ();
+ if (NS_SUCCEEDED (rv)) return NS_OK;
+
rv = PerformSave(origURI);
if (NS_FAILED(rv))
{