aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2004-02-14 00:55:59 +0800
committerMarco Pesenti Gritti <marco@src.gnome.org>2004-02-14 00:55:59 +0800
commitdbb19c8b42aafc289947199f57f656dd72a901d8 (patch)
tree9e1115bd245fd5a2eb401d6859d05b96ce6bd213 /embed/mozilla
parent235a1554235f221652529e2d4458730fbf709287 (diff)
downloadgsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.gz
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.bz2
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.lz
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.xz
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.zst
gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.zip
Several types are actually safe.
2004-02-13 Marco Pesenti Gritti <marco@gnome.org> * data/mime-types-permissions.xml: Several types are actually safe. * embed/mozilla/ContentHandler.cpp: * embed/mozilla/ContentHandler.h: Change the safe/unsafe logic to not consider unkown files unsafe, they will not be opened anyway. Cleanups.
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/ContentHandler.cpp34
-rw-r--r--embed/mozilla/ContentHandler.h3
2 files changed, 27 insertions, 10 deletions
diff --git a/embed/mozilla/ContentHandler.cpp b/embed/mozilla/ContentHandler.cpp
index cdf844c9b..622c95ca7 100644
--- a/embed/mozilla/ContentHandler.cpp
+++ b/embed/mozilla/ContentHandler.cpp
@@ -250,7 +250,7 @@ NS_METHOD GContentHandler::Init (void)
return NS_OK;
}
-NS_METHOD GContentHandler::MIMEConfirmAction ()
+NS_METHOD GContentHandler::MIMEConfirmAction (PRBool autoDownload)
{
GtkWidget *dialog;
GtkWidget *hbox, *vbox, *label, *image;
@@ -278,7 +278,9 @@ NS_METHOD GContentHandler::MIMEConfirmAction ()
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox,
TRUE, TRUE, 0);
- if (mPermission != EPHY_MIME_PERMISSION_SAFE)
+ g_print ("AAA %d %p", mPermission, mHelperApp);
+
+ if (mPermission == EPHY_MIME_PERMISSION_UNSAFE && mHelperApp)
{
text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
_("Download the unsafe file?"),
@@ -287,7 +289,7 @@ NS_METHOD GContentHandler::MIMEConfirmAction ()
"It's not safe to open it directly. You "
"can save it instead."));
}
- else if (mAction == CONTENT_ACTION_OPEN)
+ else if (mAction == CONTENT_ACTION_OPEN && !autoDownload)
{
text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
_("Open the file in another application?"),
@@ -352,23 +354,30 @@ NS_METHOD GContentHandler::MIMEDoAction (void)
CheckAppSupportScheme ();
mPermission = ephy_embed_shell_check_mime (embed_shell, mMimeType);
- mAction = CONTENT_ACTION_OPEN;
+ if (auto_downloads)
+ {
+ mAction = CONTENT_ACTION_OPEN;
+ }
+ else
+ {
+ mAction = CONTENT_ACTION_OPEN_TMP;
+ }
- if (mPermission != EPHY_MIME_PERMISSION_SAFE)
+ if (!mHelperApp || mPermission == EPHY_MIME_PERMISSION_UNSAFE)
{
mAction = CONTENT_ACTION_DOWNLOAD;
}
- if (!auto_downloads)
+ if (!auto_downloads || mAction == CONTENT_ACTION_DOWNLOAD)
{
- MIMEConfirmAction ();
+ MIMEConfirmAction (auto_downloads);
}
nsCOMPtr<nsIMIMEInfo> mimeInfo;
mLauncher->GetMIMEInfo(getter_AddRefs(mimeInfo));
NS_ENSURE_TRUE (mimeInfo, NS_ERROR_FAILURE);
- if (mAction == CONTENT_ACTION_OPEN && auto_downloads)
+ if (mAction == CONTENT_ACTION_OPEN)
{
/* HACK we use the application description to ask
MozDownload to open the file when download
@@ -387,10 +396,17 @@ NS_METHOD GContentHandler::MIMEDoAction (void)
{
LaunchHelperApp ();
}
- else if (auto_downloads)
+ else
{
mLauncher->SaveToDisk (nsnull, PR_FALSE);
}
+ }
+ else if (mAction == CONTENT_ACTION_OPEN_TMP)
+ {
+ if (mAppSupportScheme)
+ {
+ LaunchHelperApp ();
+ }
else
{
mLauncher->LaunchWithApplication (nsnull, PR_FALSE);
diff --git a/embed/mozilla/ContentHandler.h b/embed/mozilla/ContentHandler.h
index 6aa39658d..3642cc65d 100644
--- a/embed/mozilla/ContentHandler.h
+++ b/embed/mozilla/ContentHandler.h
@@ -43,6 +43,7 @@
typedef enum
{
CONTENT_ACTION_OPEN,
+ CONTENT_ACTION_OPEN_TMP,
CONTENT_ACTION_DOWNLOAD,
CONTENT_ACTION_SAVEAS,
CONTENT_ACTION_NONE
@@ -72,7 +73,7 @@ class GContentHandler : public nsIHelperAppLauncherDialog
NS_METHOD Init ();
NS_METHOD LaunchHelperApp ();
- NS_METHOD MIMEConfirmAction ();
+ NS_METHOD MIMEConfirmAction (PRBool autoDownload);
NS_METHOD MIMEDoAction ();
NS_METHOD CheckAppSupportScheme ();