Backed out changeset 55c678462f90
authorHåkan Waara <hwaara@gmail.com>
Wed, 20 Aug 2008 10:35:07 +0200
changeset 17154 ff6aca8bf0cd68390f80a780b4096467d63b816a
parent 17142 55c678462f905d8564b39c75f7f90f81f342cf51
child 17155 926993b7baf813c3b954c93f4c5fc5d9b8713d04
push idunknown
push userunknown
push dateunknown
milestone1.9.1a2pre
backs out55c678462f905d8564b39c75f7f90f81f342cf51
Backed out changeset 55c678462f90
toolkit/components/build/Makefile.in
toolkit/components/startup/src/Makefile.in
toolkit/components/startup/src/nsUserInfoMac.cpp
toolkit/components/startup/src/nsUserInfoMac.h
toolkit/components/startup/src/nsUserInfoMac.mm
--- a/toolkit/components/build/Makefile.in
+++ b/toolkit/components/build/Makefile.in
@@ -154,18 +154,16 @@ EXTRA_DSO_LDOPTS += \
 	$(LIBS_DIR) \
 	$(EXTRA_DSO_LIBS) \
 	$(MOZ_UNICHARUTIL_LIBS) \
 	$(MOZ_COMPONENT_LIBS) \
 	$(MOZ_JS_LIBS) \
 	$(NULL)
 
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
-EXTRA_DSO_LDOPTS += $(TK_LIBS) \
-                    -framework AddressBook \
-                    $(NULL)
+EXTRA_DSO_LDOPTS += $(TK_LIBS)
 endif
 
 ifeq ($(OS_ARCH),WINNT)
 OS_LIBS	+= $(call EXPAND_LIBNAME,shell32 ole32)
 endif
 
 include $(topsrcdir)/config/rules.mk
--- a/toolkit/components/startup/src/Makefile.in
+++ b/toolkit/components/startup/src/Makefile.in
@@ -69,17 +69,17 @@ CPPSRCS = \
 
 ifeq (os2,$(MOZ_WIDGET_TOOLKIT))
 CPPSRCS += nsUserInfoOS2.cpp
 else
 ifeq (,$(filter-out WINCE WINNT,$(OS_ARCH)))
 CPPSRCS += nsUserInfoWin.cpp
 else
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
-CMMSRCS += nsUserInfoMac.mm
+CPPSRCS += nsUserInfoMac.cpp
 else
 CPPSRCS += nsUserInfoUnix.cpp
 endif
 endif
 endif
 
 EXTRA_COMPONENTS = nsTryToClose.js
 
new file mode 100644
--- /dev/null
+++ b/toolkit/components/startup/src/nsUserInfoMac.cpp
@@ -0,0 +1,142 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsUserInfo.h"
+#include "nsString.h"
+#include "nsReadableUtils.h"
+
+#include "nsIServiceManager.h"
+#include "nsIInternetConfigService.h"
+
+nsUserInfo::nsUserInfo()
+{
+}
+
+nsUserInfo::~nsUserInfo()
+{
+}
+
+NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo)
+
+NS_IMETHODIMP
+nsUserInfo::GetFullname(PRUnichar **aFullname)
+{
+  nsresult result = NS_ERROR_FAILURE;
+  nsCOMPtr<nsIInternetConfigService> icService (do_GetService(NS_INTERNETCONFIGSERVICE_CONTRACTID));
+  if (icService)
+  {
+	  nsCAutoString cName;
+    result = icService->GetString(nsIInternetConfigService::eICString_RealName, cName);
+    if ( NS_SUCCEEDED ( result ) )
+    {
+  	  nsString fullName;
+      *aFullname = ToNewUnicode(cName);
+    }
+  }
+  return result;
+
+}
+
+NS_IMETHODIMP 
+nsUserInfo::GetEmailAddress(char * *aEmailAddress)
+{
+  nsresult result = NS_ERROR_FAILURE;
+  nsCOMPtr<nsIInternetConfigService> icService (do_GetService(NS_INTERNETCONFIGSERVICE_CONTRACTID));
+  if (icService)
+  {
+    nsCAutoString tempString;
+    result = icService->GetString(nsIInternetConfigService::eICString_Email, tempString);
+    if (NS_SUCCEEDED(result))
+      *aEmailAddress = ToNewCString(tempString);  
+
+  }
+  return result;
+}
+
+NS_IMETHODIMP 
+nsUserInfo::GetUsername(char * *aUsername)
+{
+  *aUsername = nsnull;
+  
+  nsCAutoString   tempString;
+  nsresult rv = NS_ERROR_FAILURE;
+  nsCOMPtr<nsIInternetConfigService> icService (do_GetService(NS_INTERNETCONFIGSERVICE_CONTRACTID));
+  if (icService)
+    rv = icService->GetString(nsIInternetConfigService::eICString_Email, tempString);
+
+	if ( NS_FAILED( rv ) ) return rv;
+	
+  const char*     atString = "@";
+  PRInt32         atOffset = tempString.Find(atString);
+  if (atOffset != kNotFound)
+    tempString.Truncate(atOffset);
+      
+  *aUsername = ToNewCString(tempString);  
+  return NS_OK;
+}
+
+NS_IMETHODIMP 
+nsUserInfo::GetDomain(char * *aDomain)
+{
+  *aDomain = nsnull;
+  nsCAutoString   tempString;
+  nsresult rv = NS_ERROR_FAILURE;
+  nsCOMPtr<nsIInternetConfigService> icService (do_GetService(NS_INTERNETCONFIGSERVICE_CONTRACTID));
+  if (icService)
+    rv = icService->GetString(nsIInternetConfigService::eICString_Email, tempString);
+	if ( NS_FAILED( rv ) ) return rv;
+  const char*     atString = "@";
+  PRInt32         atOffset = tempString.Find(atString);
+  if (atOffset != kNotFound)
+  {
+    nsCAutoString domainString;
+    tempString.Right(domainString, tempString.Length() - (atOffset + 1));
+    *aDomain = ToNewCString(domainString);
+    return NS_OK;
+  }
+
+  // no domain in the pref
+  return NS_ERROR_FAILURE;
+}
+
+#pragma mark -
+
+
+
+
+
+
--- a/toolkit/components/startup/src/nsUserInfoMac.h
+++ b/toolkit/components/startup/src/nsUserInfoMac.h
@@ -34,23 +34,38 @@
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 #ifndef __nsUserInfoMac_h
 #define __nsUserInfoMac_h
 
 #include "nsIUserInfo.h"
-#include "nsReadableUtils.h"
+
+
+#include <InternetConfig.h>
 
 class nsUserInfo: public nsIUserInfo
+
 {
 public:
-  nsUserInfo();
-  virtual ~nsUserInfo() {}
+              nsUserInfo(void);
+  virtual     ~nsUserInfo();
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSIUSERINFO
+
   
-  nsresult GetPrimaryEmailAddress(nsCString &aEmailAddress);  
+protected:
+
+  nsresult    EnsureInitted();
+
+  static OSType      GetAppCreatorCode();
+  static PRUnichar*  PStringToNewUCS2(ConstStr255Param str);
+  
+protected:
+
+  ICInstance    mInstance;
+  PRBool        mInitted;
+  
 };
 
 #endif /* __nsUserInfo_h */
deleted file mode 100644
--- a/toolkit/components/startup/src/nsUserInfoMac.mm
+++ /dev/null
@@ -1,115 +0,0 @@
-/* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla toolkit code.
- *
- * The Initial Developer of the Original Code is HÃ¥kan Waara <hwaara@gmail.com>.
- * Portions created by the Initial Developer are Copyright (C) 2008
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-
-#include "nsUserInfoMac.h"
-#include "nsObjCExceptions.h"
-#include "nsString.h"
-
-#import <Cocoa/Cocoa.h>
-#import <AddressBook/AddressBook.h>
-
-NS_IMPL_ISUPPORTS1(nsUserInfo, nsIUserInfo)
-
-nsUserInfo::nsUserInfo() {}
-
-NS_IMETHODIMP
-nsUserInfo::GetFullname(PRUnichar **aFullname)
-{
-  NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT
-  
-  NS_ConvertUTF8toUTF16 fullName([NSFullUserName() UTF8String]);
-  *aFullname = ToNewUnicode(fullName);
-  return NS_OK;
-  
-  NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT
-}
-
-NS_IMETHODIMP 
-nsUserInfo::GetUsername(char **aUsername)
-{
-  NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT
-  
-  nsCAutoString username([NSUserName() UTF8String]);
-  *aUsername = ToNewCString(username);
-  return NS_OK;
-  
-  NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT
-}
-
-nsresult 
-nsUserInfo::GetPrimaryEmailAddress(nsCString &aEmailAddress)
-{
-  NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT
-  
-  // Try to get this user's primary email from the system addressbook's "me card" 
-  // (if they've filled it)
-  ABPerson *me = [[ABAddressBook sharedAddressBook] me];
-  ABMultiValue *emailAddresses = [me valueForProperty:kABEmailProperty];
-  if ([emailAddresses count] > 0) {
-    // get the index of the primary email, in case there are more than one
-    int primaryEmailIndex = [emailAddresses indexForIdentifier:[emailAddresses primaryIdentifier]];
-    aEmailAddress.Assign([[emailAddresses valueAtIndex:primaryEmailIndex] UTF8String]);
-    return NS_OK;
-  }
-  
-  return NS_ERROR_FAILURE;
-  
-  NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT
-}
-
-NS_IMETHODIMP 
-nsUserInfo::GetEmailAddress(char **aEmailAddress)
-{
-  nsCAutoString email;
-  if (NS_SUCCEEDED(GetPrimaryEmailAddress(email))) 
-    *aEmailAddress = ToNewCString(email);
-  return NS_OK;
-}
-
-NS_IMETHODIMP 
-nsUserInfo::GetDomain(char **aDomain)
-{
-  nsCAutoString email;
-  if (NS_SUCCEEDED(GetPrimaryEmailAddress(email))) {
-    PRInt32 index = email.FindChar('@');
-    if (index != -1) {
-      // chop off everything before, and including the '@'
-      *aDomain = ToNewCString(Substring(email, index + 1));
-    }
-  }
-  return NS_OK;
-}