Giter Site home page Giter Site logo

infinity0 / mozilla-gnome-keyring-legacy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mdlavin/firefox-gnome-keyring

55.0 7.0 8.0 8.68 MB

A firefox extension that enables Gnome Keyring integration (legacy version)

Home Page: https://bugzilla.mozilla.org/show_bug.cgi?id=309807

License: Other

C++ 91.91% Shell 7.94% JavaScript 0.15%

mozilla-gnome-keyring-legacy's Introduction

A mozilla extension to store passwords and form logins in gnome-keyring

This replaces the default password manager in Firefox and Thunderbird
with an implementation which uses Gnome Keyring. This is a centralised
system-based password manager, which is more simple to handle than
per-application management.

You can find more technical information on bugzilla[1] or on the github
project pages[2].

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=309807
[2] https://github.com/infinity0/mozilla-gnome-keyring

## Usage

You can change the keyring in which passwords are saved by creating or
editing the preference item "extensions.gnome-keyring.keyringName". The
default keyring is "mozilla". This is a per-profile setting, so if you
don't manually change it, all profiles will share the same keyring.

You can backup your passwords easily, separately from the rest of your
mozilla profile. Your keyrings are stored ~/.gnome2/keyrings - even
gnome-keyring 3.2 does this, although this may change in the future.

You can also take advantage of the more fine-tuned keyring management
features of gnome-keyring, such as:

- no need to prompt for password, if you store in the "login" keyring
  and the password for that keyring is the same as your login password.
- if the keyring is already open, don't need to prompt for a password
  each time you start Firefox or Thunderbird.
- you can explicitly re-lock the keyring when you feel you need to.
- in gnome-keyring 3, you can set policies to automatically re-lock the
  keyring after e.g. a certain amount of time, or a certain amount of
  time being idle.
- in gnome-keyring 3, the keyring password prompt disables keyboard
  input to other windows, so you don't need to worry about accidentally
  typing it somewhere you shouldn't

Note: gnome-keyring stores the passwords encrypted on permanent storage
but it keeps unlocked passwords in memory without encryption. As a
result, programs with access to the memory space of gnome-keyring (such
as debuggers and applications running as root) may be able to extract
the passwords. The same applies to the default Firefox and Thunderbird
implementations, so this extension should not be any less secure.

## Non-working cases and workarounds

Passwords will not be saved or filled in if:

- the username or password element has attribute autocomplete="on"
  - workaround: delete the attribute using the DOM inspector

- the username or password element is already filled in by the page
  - see https://bugzilla.mozilla.org/show_bug.cgi?id=618698
  - note: not a browser bug

- (mozilla bug): the page is XML+XSLT
  - see https://bugzilla.mozilla.org/show_bug.cgi?id=354706

## Migrating old passwords

Currently there is no migration facility. If you have many passwords in
the default password manager, you'll need to manually transfer them
to gnome-keyring:

* create a TEMP profile, and install/enable this extension in it
* in the TEMP profile, edit extensions.gnome-keyring.keyringName to
  whatever you eventually want to use
* restart the TEMP profile for setting changes to take effect
* open up the SUBJ profile using "firefox -no-remote -P <SUBJ name>"
  so that you have *both* profiles open
* open up the password manager on the SUBJ profile
* for each website list, visit it in the TEMP profile and login again,
  which should trigger the "save password" prompt
  * In the password manager for Firefox 7+ you can right-click and do
    "copy password", which makes this a little easier. For earlier
    versions, you'll need to manually type the password. Sorry.
* close the TEMP profile and delete it.
* in the SUBJ profile, install/enable this extension, and edit
  extensions.gnome-keyring.keyringName to whatever you chose before
* restart the SUBJ profile for setting changes to take effect

Your old data in the default password manager remains untouched, so you
also need to delete that manually if you want to. This is done by going
to your profile folder, and deleting the key3.db and signons.sqlite
files (signons.txt/signons2.txt/signons3.txt for older versions). The
old data may still be forensically retrievable from your disk, but if
you were protecting it with a master password, this data would still be
be encrypted.

Deleting old data will also clear the master password for the default
password manager. If you don't clear it, you'll still be asked for it
when you choose to "show passwords", even if this extension is active.

## Developer information

Build dependencies:
* libgnome-keyring-devel (may be called libgnome-keyring-dev)
* xulrunner-devel (may be called xulrunner-dev)

xulrunner must be version 31 or greater. For support for older versions
of Firefox/Thunderbird, see previous releases of this software.

--

[1] https://github.com/fat-lobyte/mozilla-gnome-keyring/tree/ubuntu
[2] https://github.com/infinity0/mozilla-gnome-keyring/issues/20
[3] https://github.com/mdlavin/firefox-gnome-keyring/issues/#issue/4

mozilla-gnome-keyring-legacy's People

Contributors

fat-lobyte avatar gentoo90 avatar glensc avatar infinity0 avatar lultimouomo avatar matthijskooijman avatar mdlavin avatar mic92 avatar mikkorantalainen avatar nougad avatar swick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mozilla-gnome-keyring-legacy's Issues

Broken on Ubuntu 12.04 Firefox 12

When trying to build the gnome-keyring for Firefox 12 on Ubuntu 12.04, I get this error:

LANG=en_US make

g++ xpcom_abi.cpp -o xpcom_abi pkg-config --cflags pkg-config --libs -Wlpkg-config --libs-only-L | sed -e 's/-L\(\S*\).*/,-rpath=\1/' -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x
Must specify package names on the command line
Must specify package names on the command line
Must specify package names on the command line
cc1plus: error: unrecognized command line option '-Wl'
make: *** [xpcom_abi] Error 1

Extension broken with FF 25 ?

Hi,

I just upgraded to FF 25. I compiled from source with xulrunner 25, and installed the plugin. This went fine, but... the plugin does not seem to work.

Not login / password is proposed. In fact, openning Firefox does not unlock the 'mozilla' keyring in Seahorse.

Did anyone try the plugin on FF25 ? Is it supposed to work ? What should check ?

Firefox v32.0: cannot compile

Hi,

I cannot compile it against the v32.0 SDK, I get the following output:

../SDKs/xulrunner/v32.0/xulrunner-sdk/include/jspubtd.h:512:51: warning: invalid access to non-static data member ‘js::PerThreadDataFriendFields::RuntimeDummy::mainThread’  of NULL object [-Winvalid-offsetof]
../SDKs/xulrunner/v32.0/xulrunner-sdk/include/jspubtd.h:512:51: warning: (perhaps the ‘offsetof’ macro was used incorrectly) [-Winvalid-offsetof]
GnomeKeyring.cpp:582:34: error: no ‘nsresult GnomeKeyring::Init()’ member function declared in class ‘GnomeKeyring’
GnomeKeyring.cpp:631:61: error: no ‘nsresult GnomeKeyring::InitWithFile(nsIFile*)’ member function declared in class ‘GnomeKeyring’
GnomeKeyring.cpp:770:66: error: no ‘nsresult GnomeKeyring::GetAllEncryptedLogins(unsigned int*, nsILoginInfo***)’ member function declared in class ‘GnomeKeyring’
GnomeKeyring.cpp:86:20: warning: ‘kPrefsBranch’ defined but not used [-Wunused-variable]
GnomeKeyring.cpp:87:20: warning: ‘kPrefsKeyring’ defined but not used [-Wunused-variable]
GnomeKeyring.cpp:88:20: warning: ‘kDefaultKeyring’ defined but not used [-Wunused-variable]

does not work on xulrunner 14

When running firefox 14 on debian x86-64 with xulrunner 14, mozilla-gnome-keyring does not work. The old password prompt shows up instead of asking for the gnome-keyring password

xpcom_abi segfaults with Firefox >= 13

Hi, I was trying to build the extension on Ubuntu 12.04 with Firefox 13 from the firefox-next repository. The exact version is 13.0+build1-0ubuntu0.12.04.1

When the xpcom_abi executable is run, there is a segmentation fault and naturally the platform can't be determined:

$ ./xpcom_abi
Segmentation fault (core dumped)

This is the stacktrace from GDB:

(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff6300c17 in PL_DHashTableOperate (table=0x62a3d8, 
    key=0x7ffff694fc80, op=PL_DHASH_LOOKUP)
    at /build/buildd/firefox-13.0+build1/build-tree/mozilla/obj-x86_64-linux-gnu/xpcom/build/pldhash.cpp:612
#2  0x00007ffff63260c6 in GetEntry (aKey=..., this=<optimized out>)
    at ../../dist/include/nsTHashtable.h:170
#3  nsBaseHashtable<nsIDHashKey, nsFactoryEntry*, nsFactoryEntry*>::Get (
    this=<optimized out>, aKey=...) at ../../dist/include/nsBaseHashtable.h:148
#4  0x00007ffff632631b in nsComponentManagerImpl::RegisterCIDEntry (
    this=0x62a370, aEntry=0x7ffff72f4f10, aModule=0x64d530)
    at /build/buildd/firefox-13.0+build1/build-tree/mozilla/xpcom/components/nsComponentManager.cpp:456
#5  0x00007ffff6327455 in nsComponentManagerImpl::RegisterModule (
    this=0x62a370, aModule=0x7ffff7122ed0, aFile=<optimized out>)
    at /build/buildd/firefox-13.0+build1/build-tree/mozilla/xpcom/components/nsComponentManager.cpp:430
#6  0x00007ffff6327f61 in nsComponentManagerImpl::Init (this=0x62a370)
    at /build/buildd/firefox-13.0+build1/build-tree/mozilla/xpcom/components/nsComponentManager.cpp:380
#7  0x00007ffff6303dd1 in NS_InitXPCOM2_P (result=0x7fffffffe2e0, 
    binDirectory=<optimized out>, appFileLocationProvider=0x0)
    at /build/buildd/firefox-13.0+build1/build-tree/mozilla/xpcom/build/nsXPComI---Type <return> to continue, or q <return> to quit---
nit.cpp:490
#8  0x0000000000401161 in main (argc=1, argv=0x7fffffffe408)
    at xpcom_abi.cpp:24

I am running this from a virtual machine, but this should make any difference, should it?
Also note that this firefox version is not yet in official ubuntu repositories, but it will probably migrate soon.

Do you have any Ideas about this?

Build errors on Ubuntu 12.04

The extension does not build out-of-the-box on Ubuntu 12.04. I managed to piece together a solution but I thought it would be nice to have all related issues collected in one place to make it easier for others to build the extension.

My system is currently running Ubuntu 12.04 with thunderbird 15.0+build1-0ubuntu0.12.04.1 and firefox 15.0.1+build1-0ubuntu0.12.04.

  1. The first step is to clone the git repo, obviously
  2. Install missing packages (the first two replace the xulrunner-dev package mentioned in the readme):
    • firefox-dev
    • thunderbird-dev
    • libgnome-keyring-devel
  3. Then, according to issue #10 (specificly comment https://github.com/infinity0/mozilla-gnome-keyring/issues/10#issuecomment-5408150), set up the build environment manually:
    • export XUL_CFLAGS="-I/usr/include/thunderbird -I/usr/include/thunderbird/nspr"
    • export XUL_LDFLAGS="-L/usr/lib/thunderbird-devel/lib -lxpcomglue_s -lxul -lxpcom -lmozalloc -lplds4 -lplc4 -lnspr4 -lpthread -ldl"
    • export XPCOM_ABI_FLAGS="-Wl,-rpath=/usr/lib/thunderbird-devel/lib"
  4. According to issue #12 (specificly comment https://github.com/infinity0/mozilla-gnome-keyring/issues/12#issuecomment-6157712) set up the platform manually, because xpcom_abi segfaults: export PLATFORM="Linux_x86_64-gcc3" (obviously, you have to adjust this if you have a 32-bit OS)
  5. Run make
  6. Install the mozilla-gnome-keyring-*.xpi file into thunderbird/firefox
  7. Before restarting, think a second about where to store your passwords. If you would like to store them in your login keyring (the one that's unlocked when you sign into the computer), you need to manually create a new string key in the advanced configuration. To do so, right-click in the dialog and choose “New → String”. Create the key extensions.gnome-keyring.keyringName and set the value to the name of the keyring to use. For the login keyring, use login. The default is mozilla.
  8. Restart thunderbird/firefox and enter all your passwords anew :-)

BTW: I tested this only with tunderbird.

Some credentials still stored in Thunderbird's password manager

I installed the extension in my Thunderbird 15.0.1 under Ubuntu 12.04 and it works (mostly) well. All passwords for accessing my calendars and reading my emails are stored in my Gnome keyring, which is unlocked using my login password – just as it should be.

However, when I would like to send an email, Thunderbird asks me to unlock the “master security device” (i. e. the TB password safe). It seems that there are some passwords that are not yet saved in the keyring. It appears as though the password for my LDAP account is not saved, either (because I need to unlock the “master security device” for auto-completion of email addresses as well). As indicated below, this has to do with an S/MIME certificate being stored in the Thunderbird security device.

README: advertises gnome-keyring 3 features, but they are not accessible?

- in gnome-keyring 3, you can set policies to automatically re-lock the
  keyring after e.g. a certain amount of time, or a certain amount of
  time being idle.

I don't see these options in Seahorse (which replaced gnome-keyring-manager). And I don't see anything relevant in the gnome-control-center / "System settings".

Maybe I'm having difficulty finding it because my main environments are KDE and LXDE. But I have GNOME installed, and I can't see it there. Maybe I'm missing a package, but I don't see anything relevant in Synaptic's "missing recommended" package list.

Maybe it's a Ubuntu-specific problem.

Google showed some gconf keys with promising names under "gnome-keyring-manager". Who knows, maybe they are still honoured. But I don't think they should be advertised as features unless we honestly know how to use them, and have some documentation for it :).

As compensation, here's another gnome-keyring feature which could be mentioned:

When the screen is locked with gnome-screensaver, gnome-keyring will be locked automatically. When you enter your password to unlock the screen, the keyring is unlocked as well. Source:
https://wiki.archlinux.org/index.php/SLiM#SLiM_and_Gnome_Keyring

Does not work in Thunderbird ?

Hi,

I have compiled the latest version from git master with xulrunner-sdk 23.0.
I have installed it in Fireofx 23, on Ubuntu 13.04. This worked fine.

Then I tried to install in Thunderbird, which happens to be version 17.0.8 in Ubuntu 13.04.
First, TB told me the extension was not compatible. I changed the install.rdf in the xpi to allow wulrunner version 17 to 23 in Thunderbird. Extension installed, but does not work (I am asked for my master password).

So, should I compile against another version of xulrunner-sdk ? Or is there a problem with TB and latest version of the extension ?

thanks

does not work with iceweasel 24.0

Hi,

I tryed compiling mozilla-gnome-keyring (version tagged 0.6.9) for iceweasel 24.0 (currently in debian unstable).

I forced XUL_VER_MAX = 24.* in the Makefile. It compiles ok and installs ok in iceweasel (iceweasel refuses to install it for version incompatibility if I don't force XUL_VER_MAX = 24.*).

But then it does not work, all passwords stored are gone.

fails to build with firefox 18: ‘UINT32_MAX’ was not declared in this scope

make -j5 -l6 VERSION=0.6.6 'XUL_CFLAGS=-I/usr/include/firefox -I/usr/include/nspr' 'XUL_LDFLAGS=-L/usr/lib64/firefox -L/usr/lib64/firefox/sdk/lib           -lxpcomglue_s -lxul -lxpcom -lmozalloc -lmozsqlite3 -lplds4 -lplc4          -lnspr4 -lpthread -ldl' XPCOM_ABI_FLAGS=-Wl,-rpath=/usr/lib64/firefox 
g++ xpcom_abi.cpp -o xpcom_abi -I/usr/include/firefox -I/usr/include/nspr -L/usr/lib64/firefox -L/usr/lib64/firefox/sdk/lib             -lxpcomglue_s -lxul -lxpcom -lmozalloc -lmozsqlite3 -lplds4 -lplc4          -lnspr4 -lpthread -ldl -Wl,-rpath=/usr/lib64/firefox -march=native -O2 -pipe -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x -Wl,-O1 -Wl,--as-needed  HashFunctions.cpp
In file included from /usr/include/firefox/nsStringAPI.h:20:0,
                 from xpcom_abi.cpp:5:
/usr/include/firefox/nsXPCOMStrings.h:197:27: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:296:27: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:327:51: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:366:44: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h: In function ‘nsresult NS_StringAppendData(nsAString&, const PRUnichar*, uint32_t)’:
/usr/include/firefox/nsXPCOMStrings.h:368:38: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h: At global scope:
/usr/include/firefox/nsXPCOMStrings.h:391:44: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:502:27: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:601:27: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:632:46: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h:671:44: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h: In function ‘nsresult NS_CStringAppendData(nsACString&, const char*, uint32_t)’:
/usr/include/firefox/nsXPCOMStrings.h:673:39: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsXPCOMStrings.h: At global scope:
/usr/include/firefox/nsXPCOMStrings.h:696:44: error: ‘UINT32_MAX’ was not declared in this scope
In file included from xpcom_abi.cpp:5:0:
/usr/include/firefox/nsStringAPI.h:79:56: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:81:50: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:110:71: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h: In member function ‘nsAString::self_type& nsAString::operator=(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:123:75: error: the default argument for parameter 1 of ‘void nsAString::Assign(const char_type*, nsAString::size_type)’ has not yet been parsed
In file included from xpcom_abi.cpp:5:0:
/usr/include/firefox/nsStringAPI.h: At global scope:
/usr/include/firefox/nsStringAPI.h:425:56: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:427:55: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:456:71: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h: In member function ‘void nsACString::AssignLiteral(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:466:17: error: the default argument for parameter 1 of ‘void nsACString::Assign(const char_type*, nsACString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: In member function ‘void nsACString::AssignASCII(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:470:17: error: the default argument for parameter 1 of ‘void nsACString::Assign(const char_type*, nsACString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: In member function ‘nsACString::self_type& nsACString::operator=(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:474:75: error: the default argument for parameter 1 of ‘void nsACString::Assign(const char_type*, nsACString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: At global scope:
/usr/include/firefox/nsStringAPI.h:806:56: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:826:58: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h: In member function ‘nsString_external::self_type& nsString_external::operator=(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:823:76: error: the default argument for parameter 1 of ‘void nsAString::Assign(const char_type*, nsAString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: At global scope:
/usr/include/firefox/nsStringAPI.h:866:57: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:887:58: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h: In member function ‘nsCString_external::self_type& nsCString_external::operator=(const char_type*)’:
/usr/include/firefox/nsStringAPI.h:884:76: error: the default argument for parameter 1 of ‘void nsACString::Assign(const char_type*, nsACString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: At global scope:
/usr/include/firefox/nsStringAPI.h:915:65: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:919:59: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:938:66: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:942:59: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:997:64: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:1019:63: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:1041:68: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h:1063:74: error: ‘UINT32_MAX’ was not declared in this scope
/usr/include/firefox/nsStringAPI.h: In destructor ‘nsGetterCopies_external::~nsGetterCopies_external()’:
/usr/include/firefox/nsStringAPI.h:1151:24: error: the default argument for parameter 1 of ‘void nsString_external::Adopt(const char_type*, nsAString::size_type)’ has not yet been parsed
/usr/include/firefox/nsStringAPI.h: In destructor ‘nsCGetterCopies_external::~nsCGetterCopies_external()’:
/usr/include/firefox/nsStringAPI.h:1181:24: error: the default argument for parameter 1 of ‘void nsCString_external::Adopt(const char_type*, nsACString::size_type)’ has not yet been parsed
make: *** [xpcom_abi] Error 1

[BUG] Firefox v33.0 compiles but does not work

With Firefox v33.0 the extension still seems to compile but it does not work (no users listed if I go to stored password).

I have now switched to the JS implementation as that one still works.

Extension eventually broken on Ubuntu (>= 12.10)

Hello.

This is the "I give up" notice.

The Ubuntu Firefox Team decided to remove support for binary extensions in favor of the Rapid Release cycle [1].

Since then, they have gradually removed any code from the Ubuntu repositories that could be used to build such extensions.[2][3].

This has culminated in the removal of all the xulrunner development files (except plugin headers) from the firefox-dev package: Compare [4] against [5].

The headers required to build this extension are not present in the quantal version of the firefox packages, and are only present in "thunderbird-dev". I expect that it's only a matter of time until they get removed there too, so I won't hack around by using the tunderbird headers for firefox extensions.

So the only thing to do is to obide the directive [1] and stop using the extension in Ubuntu.

I will do this by not using Ubuntu at all. Cheers.

[1] https://lists.ubuntu.com/archives/ubuntu-motu/2011-May/007088.html
[2] https://github.com/infinity0/mozilla-gnome-keyring/issues/10#issuecomment-5408150
[3] https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1030504
[4] http://packages.ubuntu.com/precise/amd64/firefox-dev/filelist
[5] http://packages.ubuntu.com/quantal/amd64/firefox-dev/filelist

ps.: Fuck you, Ubuntu.

can't get it to work with iceweasel 30 on debian testing

Hi,

Debian testing upgraded to iceweasel 30. I can't get mozilla-gnome-keyring to work with this version, it says it is incompatible. I hacked config.vars, to change "export XUL_VER_MAX=29." to 30., and then yes it accepts to install, but it fails to work, I don't get the passwords. I also tried the debian package xul-ext-gnome-keyring instead of compiling from source, but it does not work either.

Is it possible to make it work with iceweasel 30? How?

cheers!

pure JavaScript implementation

Hey,
I was so pissed that the addon broke with the latest firefox update again because I wanted to do some work and I first had to fix the damn thing. That's why I decided that we need something better and I began working on a pure JavaScript implementation of this addon. No more SDK downloads, no more re-compiling, no more random breakage.

There still is a bug with the password field not being filled out when there are multiple login options available but other than that it should all work. It's also compatible with everything from the C++ implementation.

I would like some testing (and please backup your keyring - this is experimental stuff).
You can find the addon here https://github.com/swick/moz-gnome-keyring-integration

edit: I fixed some bugs and now it is working pretty good for me. You can download it directly from mozilla.org https://addons.mozilla.org/en-US/firefox/addon/gnome-keyring-integration-1

"show passwords" prompts user to unlock every keyring

(as opposed to just the keyring for the current firefox profile)

If you cancel any of these requests, no passwords are returned. This is wrong; ideally the user should not be prompted at all, but if this is unavoidable then at least cancellation of an unrelated keyring should not abort the entire process.

"show site exceptions" does not exhibit this behaviour, which is correct.
"auto-complete" also does not exhibit this behaviour, which is correct.

use GNU autotools

I wanted to put this off as late as possible, especially since mozilla are working on integrating this functionality into firefox/thunderbird itself. However, with all the different versions of xulrunner floating around, and different distributions packaging it differently, hacking BS conditional-compilation clauses into the Makefile is really unsuitable. I will move the project to autoconf later today.

Does not build with XULRunner 17

mozilla-gnome-keyring 4a9993e fails to build with XULRunner 17.0:

$ make
g++ xpcom_abi.cpp -o xpcom_abi `pkg-config --cflags libxul` `pkg-config --libs libxul` `pkg-config --libs-only-L libxul | sed -e 's/-L\(\S*\).*/-Wl,-rpath=\1/' | sed -n -e 'p;s/^\(.*\)-devel\(.*\)\/lib$/\1\2/gp'` -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x  HashFunctions.cpp
xpcom_abi.cpp: In function ‘int main(int, char**)’:
xpcom_abi.cpp:24:46: error: ‘nsnull’ was not declared in this scope
make: *** [xpcom_abi] Error 1

And not only xpcom_abi fails, but more importantly also libgnomekeyring.so:

$ touch xpcom_abi
$ make PLATFORM=Linux_x86-gcc3
make -f Makefile mozilla-gnome-keyring-0.6.5.xpi
make[1]: Entering directory `/home/seschwar/code/mozilla-gnome-keyring'
g++ GnomeKeyring.cpp -o libgnomekeyring.so -shared \
    `pkg-config --cflags libxul` `pkg-config --libs libxul` `pkg-config --cflags gnome-keyring-1` `pkg-config --libs gnome-keyring-1` -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x 
GnomeKeyring.cpp: In constructor ‘AutoPtr<T, F>::AutoPtr()’:
GnomeKeyring.cpp:142:22: error: ‘nsnull’ was not declared in this scope
GnomeKeyring.cpp: In function ‘nsILoginInfo* foundToLoginInfo(GnomeKeyringFound*)’:
GnomeKeyring.cpp:452:12: error: ‘nsnull’ was not declared in this scope
GnomeKeyring.cpp: In member function ‘virtual nsrefcnt GnomeKeyring::Release()’:
GnomeKeyring.cpp:560:1: warning: deleting object of polymorphic class type ‘GnomeKeyring’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
GnomeKeyring.cpp: In member function ‘virtual nsresult GnomeKeyring::Init()’:
GnomeKeyring.cpp:590:36: error: ‘nsnull’ was not declared in this scope
make[1]: *** [libgnomekeyring.so] Error 1
make[1]: Leaving directory `/home/seschwar/code/mozilla-gnome-keyring'
make: *** [build-xpi] Error 2

errors when using with firefox sync

edit by infinity0: this first post is not an accurate description of the issue; read on for details.

(I think this is still accurate) - from https://services.mozilla.com/sync/relnotes/1.0.html

  • Your master password is not synced. This means if you use a master password on your laptop but not on your mobile phone, then your passwords will not be protected with your master password on your mobile phone.
  • If you use a master password, Weave Sync will automatically connect after you enter in your master password. Weave Sync will stay disconnected until you enter your master password or you choose to manually connect.

With mozilla-gnome-keyring, password sync doesn't seem to work. If it could, that would be great. Particularly as the second point above can be addressed (when the keyring is unlocked by libpam-gnome-keyring).

At the moment, Linux users with two computers may be more secure without mozilla-gnome-keyring. They're likely to fall back into using the same password for different sites. (My current setup suffers from this. At the moment, I suspect the only real fix would be a LUKS partition as my "master password" solution).

Fails to build with XULRunner 9

Fails to build with XULRunner 9 on Fedora 16 with GCC 4.6.2.

 $ make
test -n libxul || { echo "libxul missing" && false; }
g++ GnomeKeyring.cpp -g -Wall -o libgnomekeyring.so \
    `pkg-config --cflags libxul gnome-keyring-1` -DMOZ_NO_MOZALLOC `pkg-config --libs libxul | sed 's/xpcomglue_s/xpcomglue_s_nomozalloc/' | sed 's/-lmozalloc//'` `pkg-config --libs gnome-keyring-1` -fno-rtti -fno-exceptions -shared -fPIC -g -std=gnu++0x \
     
/usr/include/xulrunner-sdk-2/nsISupportsBase.h: In function 'nsILoginInfo* foundToLoginInfo(GnomeKeyringFound*)':
/usr/include/xulrunner-sdk-2/nsISupportsBase.h:94:25: error: 'virtual nsrefcnt nsISupports::AddRef()' is inaccessible
GnomeKeyring.cpp:482:3: error: within this context
make: *** [libgnomekeyring.so] Error 1

The XUL version is:

$ rpm -q xulrunner-devel
xulrunner-devel-9.0-2.fc16.x86_64

The offending Line is:
GnomeKeyring.cpp:482:

Extension incompatible with FF 38.0

Forwarding Debian Bug #788967 upstream.

The extension appears disabled in about:addons, with an incompatibility warning. There doesn't appear to be any more information provided.

GnomeKeyring.cpp:876:30: error: #if with no expression

I get an error when I try to build on Debian 7.1:

pierre@Rudloff:~/Bureau/mozilla-gnome-keyring$ make
. ./config.vars; \
    make -f Makefile mozilla-gnome-keyring-0.6.9.xpi
make[1]: entrant dans le répertoire « /home/pierre/Bureau/mozilla-gnome-keyring »
g++ GnomeKeyring.cpp -o libgnomekeyring.so -shared -DHAVE_NSILMS_GETISLOGGEDIN= \
        `pkg-config --cflags libxul` `pkg-config --libs libxul` `pkg-config --cflags gnome-keyring-1` `pkg-config --libs gnome-keyring-1` -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x -D__STDC_LIMIT_MACROS 
GnomeKeyring.cpp:876:30: error: #if with no expression
GnomeKeyring.cpp: In member function ‘virtual nsrefcnt GnomeKeyring::Release()’:
GnomeKeyring.cpp:560:1: warning: deleting object of polymorphic class type ‘GnomeKeyring’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
make[1]: *** [libgnomekeyring.so] Erreur 1
make[1]: quittant le répertoire « /home/pierre/Bureau/mozilla-gnome-keyring »
make: *** [build-xpi] Erreur 2

Failure to build with firefox 27

make -j9 -l8 VERSION=0.6.9 'XUL_CFLAGS=-I/usr/include/firefox -I/usr/include/nspr' 'XUL_LDFLAGS=-L/usr/lib64/firefox -L/usr/lib64/firefox/sdk/lib       -lxpcomglue_s -lxul -lmozalloc -lmozsqlite3 -lplds4 -lplc4      -lnspr4 -lpthread -ldl' XPCOM_ABI_FLAGS=-Wl,-rpath=/usr/lib64/firefox 
CXX="g++" XUL_CFLAGS="-I/usr/include/firefox -I/usr/include/nspr" XUL_LDFLAGS="-L/usr/lib64/firefox -L/usr/lib64/firefox/sdk/lib        -lxpcomglue_s -lxul -lmozalloc -lmozsqlite3 -lplds4 -lplc4      -lnspr4 -lpthread -ldl" XPCOM_ABI_FLAGS="-Wl,-rpath=/usr/lib64/firefox" GNOME_CFLAGS="`pkg-config --cflags gnome-keyring-1`" GNOME_LDFLAGS="`pkg-config --libs gnome-keyring-1`" CXXFLAGS="-march=native -O2 -pipe -Wall -fno-rtti -fno-exceptions -fPIC -std=gnu++0x -D__STDC_LIMIT_MACROS" LDFLAGS="-Wl,-O1 -Wl,--as-needed " sh config.sh GnomeKeyring.h xpcom_abi.cpp Makefile > config.vars
In file included from /usr/include/firefox/nsStringAPI.h:19:0,
                 from xpcom_abi.cpp:6:
/usr/include/firefox/mozilla/Char16.h:68:18: error: conflicting declaration ‘typedef char16_t PRUnichar’
 typedef char16_t PRUnichar;
                  ^
In file included from /usr/include/nspr/prthread.h:46:0,
                 from /usr/include/firefox/nsISupportsImpl.h:25,
                 from /usr/include/firefox/nsISupportsUtils.h:26,
                 from /usr/include/firefox/nsISupports.h:123,
                 from /usr/include/firefox/nsIXULRuntime.h:10,
                 from xpcom_abi.cpp:4:
/usr/include/nspr/prtypes.h:490:18: error: ‘PRUnichar’ has a previous declaration as ‘typedef PRUint16 PRUnichar’
 typedef PRUint16 PRUnichar;
                  ^
make: *** [config.vars] Error 1

Probably relevant:
https://groups.google.com/forum/#!msg/selenium-developers/vl7nRW6_BNM/Z9bF0dWFoKgJ
https://bugzilla.mozilla.org/show_bug.cgi?id=927728

Upload to addons.mozilla.org

Hi, thanks for keeping this great addon alive. Works fine on Debian testing / Iceweasel 10.0.5esr-1.
What about submitting this to addons.mozilla.org? It would be easier to find and install for GNOME-keyring/firefox/iceweasel users, and less error-prone as there are many forks of this project - it seems this one is the most up-to-date.

Let me know if you agree, I will deal with the upload process if you like.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.