Hyperlinks clicked in evince document viewer are not opening, any ideas on how to fix?

As it was instructed in another thread here in the forums, I opened the /usr/share/applications/mimeinfo.cache file to check for correct references. And noticed this doesn't seem to be the problem, there even are 3 optional browsers to use.

x-scheme-handler/http=google-chrome.desktop;chromium-browser.desktop;firefox.desktop;
x-scheme-handler/https=google-chrome.desktop;chromium-browser.desktop;firefox.desktop;

I already checked that the programs are correctly named, using the "which" command in the terminal, like this:

$ which google-chrome
$ /usr/bin/google-chrome

So google-chrome should be the first option and yet the order to open a url doesn't seem to be arriving to the program, not even to the 2nd or 3rd option for that matter anyways.

Also, the 'Get help online...' command in the 'Help' menu doesn't work. So it is not a problem with the specific document file either.

I'm running Ubuntu 12.04 LTS. If you need to ask for more relevant details, please do. It would be nice to have various opinions on how to solve this, thank you :-)

UPDATE: I ran evince from the terminal as asked.
This is what I'm getting when trying to open a link:

/opt/google/chrome/google-chrome: line 42: /opt/google/chrome/chrome: Permission denied
/opt/google/chrome/google-chrome: line 42: /opt/google/chrome/chrome: Success

Should I try the fix you suggested even if my error log is different?

UPDATE: Tried @maggotbrain's solution and BINGO, now I can study pdf references faster thanks to you bro!


Solution 1:

None of the above solutions worked for me, however this does work :

See what is currently on its ignore list

ls -la /etc/apparmor.d/disable

Now add Document Viewer (evince) to that list

sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/usr.bin.evince 

engage the change

sudo service apparmor restart

Solution 2:

You may be running up against a bug with apparmor's handling of external URLs.

The problem that I was having opening URLs within evince resulted in the following error being generated (on the command line) whenever clicking on a URL within a pdf document:

(evince:32091): EvinceView-CRITICAL **: ev_document_model_set_document: assertion
`EV_IS_DOCUMENT (document)' failed
/usr/lib/chromium-browser/chromium-browser-sandbox: error while loading shared
libraries: libpthread.so.0: failed to map segment from shared object: Permission denied

As suggested in this comment, I was able to fix this issue with chromium by doing the following:

Add these lines to /etc/apparmor.d/abstractions/ubuntu-helpers after the line "/usr/lib*/{,*/} Pixr,":

# From https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/964510/comments/12
# While the chromium and chrome sandboxes are setuid root, they only link
# in limited libraries so glibc's secure execution should be enough to not
# require the santized_helper (ie, LD_PRELOAD will only use standard system
# paths (man ld.so)).
/usr/lib/chromium-browser/chromium-browser-sandbox PUxr,
/opt/google/chrome/chrome-sandbox PUxr,
/opt/google/chrome/google-chrome Pixr,
/opt/google/chrome/chrome Pixr,
/opt/google/chrome/lib*.so{,.*} m,

Finally, run sudo apparmor_parser -T -W -r /etc/apparmor.d/usr.bin.evince