diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-02-14 00:55:59 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-02-14 00:55:59 +0800 |
commit | dbb19c8b42aafc289947199f57f656dd72a901d8 (patch) | |
tree | 9e1115bd245fd5a2eb401d6859d05b96ce6bd213 | |
parent | 235a1554235f221652529e2d4458730fbf709287 (diff) | |
download | gsoc2013-epiphany-dbb19c8b42aafc289947199f57f656dd72a901d8.tar.gz 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.
-rwxr-xr-x | data/mime-types-permissions.xml | 88 | ||||
-rw-r--r-- | embed/mozilla/ContentHandler.cpp | 34 | ||||
-rw-r--r-- | embed/mozilla/ContentHandler.h | 3 |
3 files changed, 71 insertions, 54 deletions
diff --git a/data/mime-types-permissions.xml b/data/mime-types-permissions.xml index 24ed74361..49b0dadc6 100755 --- a/data/mime-types-permissions.xml +++ b/data/mime-types-permissions.xml @@ -233,11 +233,7 @@ <mime-type type="video/x-msvideo"/> <mime-type type="video/x-real-video"/> <mime-type type="video/x-sgi-movie"/> -</safe> -<unsafe> -<mime-type type="application/mac-binhex40"/> <mime-type type="application/octet-stream"/> -<mime-type type="application/oda"/> <mime-type type="application/pgp"/> <mime-type type="application/pgp-encrypted"/> <mime-type type="application/pgp-keys"/> @@ -246,28 +242,45 @@ <mime-type type="application/pkcs7-signature"/> <mime-type type="application/postscript"/> <mime-type type="application/rtf"/> +<mime-type type="application/oda"/> <mime-type type="application/smil"/> -<mime-type type="application/x-arc"/> <mime-type type="application/x-asp"/> -<mime-type type="application/x-awk"/> -<mime-type type="application/x-bcpio"/> <mime-type type="application/x-cd-image"/> -<mime-type type="application/x-cgi"/> +<mime-type type="application/x-bcpio"/> <mime-type type="application/x-chess-pgn"/> -<mime-type type="application/x-class-file"/> <mime-type type="application/x-core"/> <mime-type type="application/x-cpio"/> <mime-type type="application/x-cpio-compressed"/> -<mime-type type="application/x-csh"/> <mime-type type="application/x-dbase"/> <mime-type type="application/x-dbm"/> <mime-type type="application/x-dc-rom"/> -<mime-type type="application/x-deb"/> +<mime-type type="inode/blockdevice"/> +<mime-type type="inode/chardevice"/> +<mime-type type="inode/directory"/> +<mime-type type="inode/fifo"/> +<mime-type type="inode/socket"/> +<mime-type type="inode/symlink"/> +<mime-type type="message/delivery-status"/> +<mime-type type="message/disposition-notification"/> +<mime-type type="message/external-body"/> +<mime-type type="message/news"/> +<mime-type type="message/partial"/> +<mime-type type="message/rfc822"/> +<mime-type type="message/x-gnu-rmail"/> +<mime-type type="multipart/alternative"/> +<mime-type type="multipart/appledouble"/> +<mime-type type="multipart/digest"/> +<mime-type type="multipart/encrypted"/> +<mime-type type="multipart/mixed"/> +<mime-type type="multipart/related"/> +<mime-type type="multipart/report"/> +<mime-type type="multipart/signed"/> +<mime-type type="multipart/x-mixed-replace"/> +<mime-type type="application/x-cgi"/> <mime-type type="application/x-designer"/> <mime-type type="application/x-desktop"/> <mime-type type="application/x-e-theme"/> <mime-type type="application/x-egon"/> -<mime-type type="application/x-executable"/> <mime-type type="application/x-frame"/> <mime-type type="application/x-gameboy-rom"/> <mime-type type="application/x-gdbm"/> @@ -289,31 +302,23 @@ <mime-type type="application/x-netcdf"/> <mime-type type="application/x-object"/> <mime-type type="application/x-palm-database"/> -<mime-type type="application/x-pef-executable"/> -<mime-type type="application/x-perl"/> <mime-type type="application/x-php"/> <mime-type type="application/x-pkcs12"/> <mime-type type="application/x-profile"/> <mime-type type="application/x-pw"/> -<mime-type type="application/x-python"/> -<mime-type type="application/x-python-bytecode"/> -<mime-type type="application/x-quattropro"/> <mime-type type="application/x-qw"/> <mime-type type="application/x-reject"/> -<mime-type type="application/x-rpm"/> -<mime-type type="application/x-ruby"/> <mime-type type="application/x-sc"/> <mime-type type="application/x-shar"/> <mime-type type="application/x-shared-library-la"/> <mime-type type="application/x-sharedlib"/> -<mime-type type="application/x-shellscript"/> <mime-type type="application/x-shockwave-flash"/> <mime-type type="application/x-siag"/> -<mime-type type="application/x-slp"/> -<mime-type type="application/x-sms-rom"/> <mime-type type="application/x-stuffit"/> <mime-type type="application/x-sv4cpio"/> <mime-type type="application/x-sv4crc"/> +<mime-type type="application/x-slp"/> +<mime-type type="application/x-sms-rom"/> <mime-type type="application/x-tex-gf"/> <mime-type type="application/x-tex-pk"/> <mime-type type="application/x-tgif"/> @@ -327,28 +332,23 @@ <mime-type type="application/x-zerosize"/> <mime-type type="application/x-zoo"/> <mime-type type="application/xhtml+xml"/> -<mime-type type="inode/blockdevice"/> -<mime-type type="inode/chardevice"/> -<mime-type type="inode/directory"/> -<mime-type type="inode/fifo"/> -<mime-type type="inode/socket"/> -<mime-type type="inode/symlink"/> -<mime-type type="message/delivery-status"/> -<mime-type type="message/disposition-notification"/> -<mime-type type="message/external-body"/> -<mime-type type="message/news"/> -<mime-type type="message/partial"/> -<mime-type type="message/rfc822"/> -<mime-type type="message/x-gnu-rmail"/> -<mime-type type="multipart/alternative"/> -<mime-type type="multipart/appledouble"/> -<mime-type type="multipart/digest"/> -<mime-type type="multipart/encrypted"/> -<mime-type type="multipart/mixed"/> -<mime-type type="multipart/related"/> -<mime-type type="multipart/report"/> -<mime-type type="multipart/signed"/> -<mime-type type="multipart/x-mixed-replace"/> +<mime-type type="application/x-quattropro"/> +<mime-type type="application/x-rpm"/> +</safe> +<unsafe> +<mime-type type="application/mac-binhex40"/> +<mime-type type="application/x-arc"/> +<mime-type type="application/x-awk"/> +<mime-type type="application/x-class-file"/> +<mime-type type="application/x-csh"/> +<mime-type type="application/x-deb"/> +<mime-type type="application/x-executable"/> +<mime-type type="application/x-pef-executable"/> +<mime-type type="application/x-perl"/> +<mime-type type="application/x-python"/> +<mime-type type="application/x-python-bytecode"/> +<mime-type type="application/x-ruby"/> +<mime-type type="application/x-shellscript"/> <mime-type type="text/x-ksh"/> </unsafe> </mime-types-permissions> 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 (); |