← Back to team overview

papercuts-ninja team mailing list archive

[Bug 1197559] Re: Regression: Firefox forgot how to open apt urls

 

Launchpad has imported 6 comments from the remote bug at
https://bugzilla.mozilla.org/show_bug.cgi?id=947868.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2013-12-09T12:19:01+00:00 Mathieu Comandon wrote:

User Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/29.0.1547.65 Safari/537.36

Steps to reproduce:

Browsing on websites with a custom URL scheme which should open an
external application when clicked (such as apt://, steam:// or magnet://
links).


Actual results:

Clicking on such links opens an empty dialog box and the user has to
browse the file system to look for the executable, no default choice is
proposed (since Firefox 22)


Expected results:

The Application Launch dialog used to show default application that
could handle specific types of url schemes (Transmission for magnet:
links, software center for apt: link, ...).

I ran a git bisect of revisions between Firefox 21 and Firefox 22 and
found out that this was caused by the commit fixing bug #444440
(https://hg.mozilla.org/mozilla-central/rev/f118eb2326f7), reverting the
commit did put the expected applications back in the dialog box, but
doing so would reopen bug 444440. As I'm not familiar with the Firefox
codebase, I didn't go as far as trying to write a patch that would solve
both bugs, but ideally that's what would be needed here.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/8

------------------------------------------------------------------------
On 2013-12-09T14:37:13+00:00 Bzbarsky wrote:

Mike?

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/9

------------------------------------------------------------------------
On 2014-02-24T15:38:06+00:00 Ritesh Khadgaray wrote:

This seems to be a bug with gio handler

                                        
NS_IMETHODIMP                                                           
nsMIMEInfoUnix::GetHasDefaultHandler(bool *_retval)                     
{                                                                       
...
  
  *_retval = false;
  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
<--- we check for mime type, and not for protocol handler. The older code always would fall back to protocol handler based of mailcap.

  We need to fix GetFromType(mSchemeOrType), to handle scheme (
protocol).


This is seen from here 


NS_IMETHODIMP
nsGIOService::GetAppForMimeType(const nsACString& aMimeType,
                                nsIGIOMimeApp**   aApp)
{
...
  GAppInfo *app_info = g_app_info_get_default_for_type(content_type, false);
...
<-- We probably need to add g_app_info_get_default_for_uri_scheme () , if app_info is null. 

untested though .

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/10

------------------------------------------------------------------------
On 2014-02-24T16:22:16+00:00 Josh Matthews wrote:

Ritesh, do you want to test your idea?
https://developer.mozilla.org/en/Simple_Firefox_build should get you
started, if you don't already have a local build.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/11

------------------------------------------------------------------------
On 2014-02-24T20:17:08+00:00 Ritesh Khadgaray wrote:

This indeed is the issue. Initial "patch" . Will post the final patch in
a while ( rebuilding is a sloow process ).


--- a/uriloader/exthandler/unix/nsGNOMERegistry.cpp     2014-02-24 23:38:31.303287298 +0530
+++ b/uriloader/exthandler/unix/nsGNOMERegistry.cpp     2014-02-25 00:04:12.643350922 +0530
@@ -148,7 +148,12 @@ nsGNOMERegistry::GetFromType(const nsACS
     nsCOMPtr<nsIGIOMimeApp> gioHandlerApp;
     if (NS_FAILED(giovfs->GetAppForMimeType(aMIMEType, getter_AddRefs(gioHandlerApp))) ||
         !gioHandlerApp) {
-      return nullptr;
+        // Unable to find mime handler, probably a protocol. moz bz#947868
+        // Need a better way to identify if this is a scheme - check for nsMIMEInfoBase::eProtocolInfo ?
+        if (NS_FAILED(giovfs->GetAppForURIScheme(aMIMEType, getter_AddRefs(gioHandlerApp))) ||
+            !gioHandlerApp) {
+            return nullptr;
+        }
     }
     gioHandlerApp->GetName(name);
     giovfs->GetDescriptionForMimeType(aMIMEType, description);

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/12

------------------------------------------------------------------------
On 2014-02-25T04:07:11+00:00 Ritesh Khadgaray wrote:

Created attachment 8381136
proposed patch

nsGNOMERegistry::GetFromType only understands with mime detection, and
not scheme  handler detection.

Check if we are handling a scheme, if yes, call
nsGNOMERegistry::HandlerExists

Reply at:
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1197559/comments/13


** Changed in: firefox
       Status: Unknown => New

** Changed in: firefox
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Papercuts
Ninjas, which is a bug assignee.
https://bugs.launchpad.net/bugs/1197559

Title:
  Regression: Firefox forgot how to open apt urls

Status in The Mozilla Firefox Browser:
  New
Status in One Hundred Papercuts:
  New
Status in “firefox” package in Ubuntu:
  Triaged

Bug description:
  ****************
  HOW TO REPRODUCE
  ****************
  - Open an apt url.

  ******************
  EXPECTED BEHAVIOUR
  ******************
  - The Software Center to be listed available to open the url.

  **************
  REAL BEHAVIOUR
  **************
  - No application is listed to open the url.

  ***********
  WORK-AROUND
  ***********
  - To select "/usr/bin/software-center" to open the url.

  ProblemType: Bug
  DistroRelease: Ubuntu 13.04
  Package: firefox 22.0+build2-0ubuntu0.13.04.2
  ProcVersionSignature: Ubuntu 3.8.0-25.37-generic 3.8.13
  Uname: Linux 3.8.0-25-generic x86_64
  AddonCompatCheckDisabled: False
  ApportVersion: 2.9.2-0ubuntu8.1
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  es20490446e   3901 F.... pulseaudio
                        es20490446e   4580 F.... pulseaudio
  BuildID: 20130627161625
  Channel: Unavailable
  Date: Thu Jul  4 00:26:39 2013
  Extensions: extensions.sqlite corrupt or missing
  ForcedLayersAccel: False
  IfupdownConfig:
   # interfaces(5) file used by ifup(8) and ifdown(8)
   auto lo
   iface lo inet loopback
  IncompatibleExtensions: Unavailable (corrupt or non-existant compatibility.ini or extensions.sqlite)
  InstallationDate: Installed on 2013-01-25 (159 days ago)
  InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Release amd64 (20121017.5)
  IpRoute:
   default via 192.168.1.1 dev wlan0  proto static 
   169.254.0.0/16 dev wlan0  scope link  metric 1000 
   192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.102  metric 9
  Locales: extensions.sqlite corrupt or missing
  MarkForUpload: True
  PrefSources:
   prefs.js
   [Profile]/extensions/low_quality_flash@xxxxxxxxx/defaults/preferences/prefs.js
  ProcEnviron:
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=es_ES.UTF-8
   SHELL=/bin/bash
  Profiles: Profile0 (Default) - LastVersion=22.0/20130627161625 (In use)
  RelatedPackageVersions:
   icedtea-7-plugin  1.3.2-1ubuntu1
   totem-mozilla     3.6.3-0ubuntu6
   rhythmbox-mozilla 2.98-0ubuntu5
  RfKill:
   0: phy0: Wireless LAN
   	Soft blocked: no
   	Hard blocked: no
  RunningIncompatibleAddons: False
  SourcePackage: firefox
  Themes: extensions.sqlite corrupt or missing
  UpgradeStatus: Upgraded to raring on 2013-04-28 (66 days ago)
  dmi.bios.date: 05/17/2011
  dmi.bios.vendor: INSYDE
  dmi.bios.version: 1.90
  dmi.board.asset.tag: Base Board Asset Tag
  dmi.board.name: Base Board Product Name
  dmi.board.vendor: Intel Corp.
  dmi.board.version: Base Board Version
  dmi.chassis.asset.tag: No Asset Tag
  dmi.chassis.type: 10
  dmi.chassis.vendor: OEM Chassis Manufacturer
  dmi.chassis.version: OEM Chassis Version
  dmi.modalias: dmi:bvnINSYDE:bvr1.90:bd05/17/2011:svnTOSHIBA:pnSatelliteL750-114:pvrPSK1WE-01100ECE:rvnIntelCorp.:rnBaseBoardProductName:rvrBaseBoardVersion:cvnOEMChassisManufacturer:ct10:cvrOEMChassisVersion:
  dmi.product.name: Satellite L750-114
  dmi.product.version: PSK1WE-01100ECE
  dmi.sys.vendor: TOSHIBA

To manage notifications about this bug go to:
https://bugs.launchpad.net/firefox/+bug/1197559/+subscriptions