diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2003-11-21 03:12:19 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2003-11-21 03:12:19 +0800 |
commit | e464015f47f6d575f5db02d851d7ea4b88278e34 (patch) | |
tree | bd44d70a7826306430e185dcddd352472a738b67 /embed/mozilla/EphyHeaderSniffer.cpp | |
parent | 70c88252fb1eb732104f1523a5515bf556a3438c (diff) | |
download | gsoc2013-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.cpp | 20 |
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)) { |