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