Author: andreia
Date: 2007-10-31 06:05:02 -0500 (Wed, 31 Oct 2007)
New Revision: 88547

Modified:
   trunk/gluezilla/src/ChangeLog
   trunk/gluezilla/src/LocationProvider.cpp
   trunk/gluezilla/src/Widget.cpp
   trunk/gluezilla/src/Widget.h
   trunk/gluezilla/src/gluezilla.cpp
   trunk/gluezilla/src/gluezilla.h
Log:
* gluezilla.*,Widget.h: Receive user data dir to store local data.
* LocationProvider.cpp: Use the user data dir for component and xpti
registry. Use the mozilla directories to load plugins and other shared
mozilla things. No need to use local directories anymore.

2007-10-31  Andreia Gaita  <[EMAIL PROTECTED]>

Modified: trunk/gluezilla/src/ChangeLog
===================================================================
--- trunk/gluezilla/src/ChangeLog       2007-10-31 11:03:56 UTC (rev 88546)
+++ trunk/gluezilla/src/ChangeLog       2007-10-31 11:05:02 UTC (rev 88547)
@@ -1,6 +1,13 @@
+2007-10-31  Andreia Gaita  <[EMAIL PROTECTED]>
+
+       * gluezilla.*,Widget.h: Receive user data dir to store local data.
+       * LocationProvider.cpp: Use the user data dir for component and xpti
+       registry. Use the mozilla directories to load plugins and other shared
+       mozilla things. No need to use local directories anymore.
+
 2007-10-30  Andreia Gaita  <[EMAIL PROTECTED]>
 
-       gluezilla.*, Widget.*: add blur entry point to catch
+       * gluezilla.*, Widget.*: add blur entry point to catch
        when the webbrowser control loses focus
 
 2007-10-18  Wade Berrier  <[EMAIL PROTECTED]>

Modified: trunk/gluezilla/src/LocationProvider.cpp
===================================================================
--- trunk/gluezilla/src/LocationProvider.cpp    2007-10-31 11:03:56 UTC (rev 
88546)
+++ trunk/gluezilla/src/LocationProvider.cpp    2007-10-31 11:05:02 UTC (rev 
88547)
@@ -21,6 +21,15 @@
 #define PLUGINS_DIR_NAME            nsEmbedCString("plugins")
 #define SEARCH_DIR_NAME             nsEmbedCString("searchplugins")
 #define COMPONENTS_DIR_NAME         nsEmbedCString("components")
+#if defined(XP_MAC)
+#define COMPONENT_REGISTRY_NAME NS_LITERAL_CSTRING("Component Registry")
+#define COMPONENT_DIRECTORY     NS_LITERAL_CSTRING("Components")
+#else
+#define COMPONENT_REGISTRY_NAME NS_LITERAL_CSTRING("compreg.dat")
+#define COMPONENT_DIRECTORY     NS_LITERAL_CSTRING("components")
+#endif 
+
+#define XPTI_REGISTRY_NAME      NS_LITERAL_CSTRING("xpti.dat")
 
 NS_IMPL_ISUPPORTS1(LocationProvider, nsIDirectoryServiceProvider)
 
@@ -45,8 +54,6 @@
     *persistent = PR_TRUE;
 
 
-//     NS_XPCOM_COMPONENT_REGISTRY_FILE
-
     if (strcmp(prop, NS_GRE_DIR) == 0)
                rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
 
@@ -78,14 +85,22 @@
     else if (strcmp(prop, NS_APP_USER_PROFILE_50_DIR) == 0 ||
                         strcmp(prop, NS_APP_PREFS_50_DIR) == 0)
        {
-               nsEmbedCString file(widget->startDir);
-               rv = NS_NewNativeLocalFile(file, PR_TRUE, 
getter_AddRefs(localFile));
 
-        if (NS_SUCCEEDED(rv)) {
-            rv = localFile->AppendRelativeNativePath(PROFILE_ROOT_DIR_NAME);
-            if (NS_SUCCEEDED(rv))
-                rv = 
localFile->AppendRelativeNativePath(DEFAULTS_PROFILE_DIR_NAME);
-        }
+        nsCOMPtr<nsIProperties>
+          directoryService(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, 
&rv));
+        if (NS_FAILED(rv))
+            return rv;
+
+        rv = directoryService->Get(NS_APP_USER_PROFILES_ROOT_DIR, 
NS_GET_IID(nsIFile), getter_AddRefs(localFile));
+               
+//             nsEmbedCString file(widget->startDir);
+//             rv = NS_NewNativeLocalFile(file, PR_TRUE, 
getter_AddRefs(localFile));
+
+//      if (NS_SUCCEEDED(rv)) {
+//          rv = localFile->AppendRelativeNativePath(PROFILE_ROOT_DIR_NAME);
+//          if (NS_SUCCEEDED(rv))
+//              rv = 
localFile->AppendRelativeNativePath(DEFAULTS_PROFILE_DIR_NAME);
+//      }
     }
     else if (strcmp(prop, NS_APP_RES_DIR) == 0)
     {
@@ -99,30 +114,59 @@
         if (NS_SUCCEEDED(rv))
             rv = localFile->AppendRelativeNativePath(CHROME_DIR_NAME);
     }
-    else if (strcmp(prop, NS_APP_PLUGINS_DIR) == 0)
-    {
-        rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
-        if (NS_SUCCEEDED(rv))
-            rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
-    }
-    else if (strcmp(prop, NS_APP_SEARCH_DIR) == 0)
-    {
-        rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
-        if (NS_SUCCEEDED(rv))
-            rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
-    }
+    //else if (strcmp(prop, NS_APP_PLUGINS_DIR) == 0)
+    //{
+    //    rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
+    //    if (NS_SUCCEEDED(rv))
+    //        rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
+    //}
+    //else if (strcmp(prop, NS_APP_SEARCH_DIR) == 0)
+    //{
+    //    rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
+    //    if (NS_SUCCEEDED(rv))
+    //        rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
+    //}
        else if (strcmp(prop, NS_GRE_COMPONENT_DIR) == 0 ||
                strcmp(prop, NS_XPCOM_COMPONENT_DIR) == 0)
-               //||
-               //strcmp(prop, NS_XPCOM_COMPONENT_REGISTRY_FILE) == 0 ||
-               //strcmp(prop, NS_XPCOM_XPTI_REGISTRY_FILE) == 0)
        {
                rv = GRE_GetGREDirectory(getter_AddRefs(localFile));
         if (NS_SUCCEEDED(rv))
             rv = localFile->AppendRelativeNativePath(COMPONENTS_DIR_NAME);
        }
-
-       
+       else if (strcmp (prop, NS_XPCOM_COMPONENT_REGISTRY_FILE) == 0)
+       {
+               nsEmbedCString file(widget->dataDir);
+               rv = NS_NewNativeLocalFile(file, PR_TRUE, 
getter_AddRefs(localFile));
+               if (NS_SUCCEEDED(rv))
+               {
+                       PRBool exists;
+                       rv = localFile->AppendNative(COMPONENT_DIRECTORY);
+                       if (NS_FAILED(rv)) return rv;
+                       rv = localFile->Exists (&exists);
+                       if (NS_FAILED(rv)) return rv;
+                       if (!exists)
+                               rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 
0700);
+                       if (NS_FAILED(rv)) return rv;
+               rv = localFile->AppendNative(COMPONENT_REGISTRY_NAME);
+               }
+       }
+       else if (strcmp(prop, NS_XPCOM_XPTI_REGISTRY_FILE) == 0)
+       {
+               nsEmbedCString file(widget->dataDir);
+               rv = NS_NewNativeLocalFile(file, PR_TRUE, 
getter_AddRefs(localFile));
+               if (NS_SUCCEEDED(rv))
+               {
+                       PRBool exists;
+                       rv = localFile->AppendNative(COMPONENT_DIRECTORY);
+                       if (NS_FAILED(rv)) return rv;
+                       rv = localFile->Exists (&exists);
+                       if (NS_FAILED(rv)) return rv;
+                       if (!exists)
+                               rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 
0700);
+                       if (NS_FAILED(rv)) return rv;
+               rv = localFile->AppendNative(XPTI_REGISTRY_NAME);           
+               }
+       }
        
     if (localFile && NS_SUCCEEDED(rv))
         return localFile->QueryInterface(NS_GET_IID(nsIFile), (void**)_retval);

Modified: trunk/gluezilla/src/Widget.cpp
===================================================================
--- trunk/gluezilla/src/Widget.cpp      2007-10-31 11:03:56 UTC (rev 88546)
+++ trunk/gluezilla/src/Widget.cpp      2007-10-31 11:05:02 UTC (rev 88547)
@@ -75,9 +75,9 @@
         XPCOMGlueShutdown();
         return NS_ERROR_OUT_OF_MEMORY;
     }
+       NS_ADDREF( provider );
 
     nsCOMPtr<nsIServiceManager> servMan;
-    NS_ADDREF( provider );
     rv = NS_InitXPCOM2(getter_AddRefs(servMan), nsnull, provider);
     NS_RELEASE(provider);
 

Modified: trunk/gluezilla/src/Widget.h
===================================================================
--- trunk/gluezilla/src/Widget.h        2007-10-31 11:03:56 UTC (rev 88546)
+++ trunk/gluezilla/src/Widget.h        2007-10-31 11:05:02 UTC (rev 88547)
@@ -35,9 +35,10 @@
 class Widget 
 {
        public:
-               Widget (const char * startDir)
+               Widget (const char * startDir, const char * dataDir)
                {
                        this->startDir = startDir;
+                       this->dataDir = dataDir;
                        // delegate initialization
 
                        // initialization and shutdown
@@ -204,11 +205,13 @@
 
        public:
                const char * startDir;
-               PRBool                        isDestroyed;
-               PRBool                        isChrome;
-               PRBool                        chromeLoaded;
-               PRUint32                      chromeMask;
+               const char * dataDir;
 
+               PRBool          isDestroyed;
+               PRBool          isChrome;
+               PRBool          chromeLoaded;
+               PRUint32        chromeMask;
+
                CallbackBin     *events;
 
                BrowserWindow *browserWindow;

Modified: trunk/gluezilla/src/gluezilla.cpp
===================================================================
--- trunk/gluezilla/src/gluezilla.cpp   2007-10-31 11:03:56 UTC (rev 88546)
+++ trunk/gluezilla/src/gluezilla.cpp   2007-10-31 11:05:02 UTC (rev 88547)
@@ -25,7 +25,7 @@
 }
 
 NS_METHOD_(Handle*)
-gluezilla_init (CallbackBin *events, const char * startDir)
+gluezilla_init (CallbackBin *events, const char * startDir, const char * 
dataDir)
 {
 #ifdef NS_UNIX
        g_type_init();  
@@ -38,7 +38,7 @@
        g_async_queue_pop (queueout);
 #endif
 
-       Widget *widget = new Widget (strdup(startDir));
+       Widget *widget = new Widget (strdup(startDir), strdup(dataDir));
 
        Params * p = new Params ();
        p->name = "init";

Modified: trunk/gluezilla/src/gluezilla.h
===================================================================
--- trunk/gluezilla/src/gluezilla.h     2007-10-31 11:03:56 UTC (rev 88546)
+++ trunk/gluezilla/src/gluezilla.h     2007-10-31 11:05:02 UTC (rev 88547)
@@ -186,7 +186,7 @@
        // initialization
        NS_EXPORT_(void) gluezilla_debug_startup ();
        
-       NS_EXPORT_(Handle *) gluezilla_init (CallbackBin *events, const char * 
startDir);
+       NS_EXPORT_(Handle *) gluezilla_init (CallbackBin *events, const char * 
startDir, const char * dataDir);
        NS_EXPORT_(int) gluezilla_createBrowserWindow (Handle *instance, Handle 
*hwnd, PRInt32 width, PRInt32 height);
 
        // layout

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to