1
edit
Changes
→Code Pages
== Project Description ==
The [http://developer.mozilla.org Mozilla Developer Center] would like goal of this project is to add a CSS guide enable Firefox to its set of major documents, covering at least use the top 100 CSS properties Keychain service available in Mac OS X in use on the web today. This data can be obtained through tools . It should include numerous examples, order to store saved passwords for consistency and a fair number ease of small tutorial/how-to sections for different common tasks or requests from web authorsuse.
== Project Leader(s) ==
;[[User:Davenrathhmoe|Dave BertenshawMohammad Tirtashi]];[[User:Pcvitori|Philip Vitorino]]
* '''December 8th, 2006''' - Both MAC1 and MAC2 have been fixed. Myself and Moe began hacking our Keychain code into the Mozilla tree, through the nsPasswordManager.cpp file. This file is primarily used by Firefox to record and retrieve passwords from a flat file system. As we were implementing the code, we realized that FF wont build unless the security framework was included into the build process. Venturing into IRC produced the following results::* We have to include the '''-framework Security''' into the build process where ever we are linking in the tree.:* We were unsuccessful with our first attempt at building Firefox, with the our keychain code:<pre>c++ -o nsPasswordManager.o -c -DMOZILLA_INTERNAL_API -DOSTYPE=\"Darwin8.8.2\" -DOSARCH= Project Contributor\"Darwin\" -DBUILD_ID=0000000000 -I../../../../dist/include/necko-I../../../../dist/include/xpcom -I../../../../dist/include/string -I../../../../dist/include/windowwatcher -I../../../../dist/include/uriloader -I../../../../dist/include/pref -I../../../../dist/include/intl -I../../../../dist/include/dom -I../../../../dist/include/content -I../../../../dist/include/layout -I../../../../dist/include/widget -I../../../../dist/include/autocomplete -I../../../../dist/include/pipnss -I../../../../dist/include/unicharutil -I../../../../dist/include -I../../../../dist/include/passwordmgr -I../../../../dist/include/nspr -DMOZ_PNG_READ -DMOZ_PNG_WRITE -I../../../../dist/sdk/include -mdynamic-no-pic -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -fpascal-strings -no-cpp-precomp -fno-common -fshort-wchar -I/Developer/Headers/FlatCarbon -pipe -DNDEBUG -DTRIMMED -O -DMOZILLA_CLIENT -include ../../../../mozilla-config.h -Wp,-MD,.deps/nsPasswordManager.pp /Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cppIn file included from /Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:39:/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:52:28: error: CoreFoundation.h: No such file or directory/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:53:22: error:Security.h: No such file or directory/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:146: error: 'SecProtocolType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:146: error: 'SecAuthenticationType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:151: error: 'SecProtocolType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:151: error: 'SecAuthenticationType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:159: error: ISO C++ forbids declaration of 'keychain' with no type/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.h:159: error: expected ';' before '*' token/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: In destructor 'virtual nsPasswordManager::~nsPasswordManager()':/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:225: error: 'inst' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: In member function 'int nsPasswordManager::ChangeInternetPassword(OpaqueSecKeychainItemRef*, int, const char*, int, const void*)':/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2125: error: 'kSecAccountItemAttr' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2128: error: 'SecKeychainItemModifyAttributesAndData' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2132: error: 'SecKeychainItemModifyAttributesAndData' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: At global scope:/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2144: error: 'SecProtocolType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2144: error: 'SecAuthenticationType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: In member function 'int nsPasswordManager::RetrieveInternetPassword(OpaqueSecKeychainRef*, int, const char*, int, const char*, int, const char*, int, int, int, UInt32*, void**, OpaqueSecKeychainItemRef**)':/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2149: error: 'SecKeychainFindInternetPassword' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: At global scope:/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2162: error: 'SecProtocolType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2164: error: 'SecAuthenticationType' has not been declared/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: In member function 'int nsPasswordManager::AddInternetPassword(OpaqueSecKeychainRef*, int, const char*, int, const char*, int, const char*, int, const char*, int, int, int, int, const void*, OpaqueSecKeychainItemRef**)':/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2171: error: 'SecKeychainAddInternetPassword' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: In static member function 'static nsPasswordManager* nsPasswordManager::getInstance()':/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2177: error: 'inst' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2180: error: 'inst' was not declared in this scope/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp: At global scope:/Users/philly/keychain/osxkeychain/trunk/mozilla/toolkit/components/passwordmgr/base/nsPasswordManager.cpp:2184: error: 'nsPasswordManager* nsPasswordManager::inst' is not a static member of 'class nsPasswordManager'make[6]: *** [nsPasswordManager.o] Error 1make[5]: *** [libs] Error 2make[4]: *** [libs] Error 2make[3]: *** [libs_tier_toolkit] Error 2make[2]: *** [tier_toolkit] Error 2make[1]: *** [default] Error 2make: *** [build] Error 2</pre>:* Our custom keychain class is now fully commented and available for online viewing. A test main is provided as well as the Xcode project for those who are interesting in compiling the code.:* The following chat was recorded, discussing a new MoCo involvement in the OS X Keychain integration project:<pre>20:29 <dolske> ping?20:31 <dolske> I saw to mention you're working on adding a build flag, and adding the "os x security framework"?20:33 <philly> yeah20:34 <philly> whats up?20:36 <dolske> What exactly does the latter (OS X) part mean?20:37 <philly> im working on a project that will add os x keychain support to firefox20:37 <philly> were trying to get the security framework20:37 <dolske> ah, that'swhat I suspected. :-) ==20:37 <philly> into the build.20:38 <dolske> One of the new MoCo guys was startign to look at that too, and I'm starting to whack passwordmgr with a big stick.20:39 <philly> yeah.. thats basically what were doing20:39 <philly> we have working code that add's and retreives keychain items from the keychain manager20:41 <philly> we have had working code for a while now, but dont know the moz tree well enough to implement the code.20:41 <philly> so its a lot of trial and error20:41 <dolske> You may want to ping Collin Barrett (cbarrett) so you're not duplicating work.20:41 <philly> will do20:42 <dolske> Although I think he's not actually starting for a couple of weeks, so I don't know how much he's around.20:43 <philly> i'll give me a shout as soon as i see him.. thanks for the info20:43 <philly> s/me/him/20:43 <dolske> Looks like timber@lava.net is his current email.20:44 <dolske> Also... Did you get the build flag added? I'm about to do the same, and was wondering what was involved. :-)20:45 <philly> we located flag: -framework Security20:46 <philly> there could be more20:47 <dolske> Oh, I thought you were looking at a --enable-moz-foo type flag.20:47 <philly> yeah.. we dont know if we found the right one20:48 <philly> i was talking to some of the camino guys about flags20:48 <dolske> ah.20:49 <philly> im not sure if those flags are apart of the camino build though.. it appears they know nothing about the ff build process20:49 <philly> im a student at seneca college btw.. we have a project page for this20:49 <dolske> heh, that seems to be a common problem. :-)20:50 <philly> http://zenit.senecac.on.ca/wiki/index.php/OS_X_Keychain_integration20:50 <dolske> ah, cool.20:51 <dolske> oh, Camino already supports Keychain? Hmpf.20:51 <philly> yeah.. but its not using the latest security framework from apple20:51 <dolske> ...but they're dropping it? hmm.20:51 <philly> so they're gonna pull it out20:51 <philly> otherwise20:51 <philly> we would be copying some code.. :)20:51 <dolske> ah, "why" was my next question.20:52 <dolske> I wonder if they can't use a newer framework because they want to support older OS X versions?20:53 <philly> hmm.. i never thought of that20:53 <dolske> I think FF3 will currently require 10.2 (with 10.3 recommended)20:56 <philly> yeah.. i think 10.2 is the base for the latest framework20:56 <philly> there is also a patch that you have to apply20:57 <philly> bug 36058321:12 -!- dolske [dolske@moz-46636307.office.mozilla.org ] has quit [Quit: dolske]</pre>
== Project Details =Archive===This file contains the: :*C++ code that was written to save and retrieve items from the Keychain Manager in OS X.:*Xcode project file ready to be compiled.:*A patch is also included depicting our latest efforts in integrating the code into the Mozilla Tree.
== Project News == Code Pages ====