[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r4035: Updated build on OSX to include default plugins, load them p (in vidalia/branches/extension-api/src: plugins/TorBrowserBundlePlugin vidalia vidalia/config)



Author: tyree731
Date: 2009-08-13 18:44:19 -0400 (Thu, 13 Aug 2009)
New Revision: 4035

Modified:
   vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
   vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
   vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
   vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp
Log:
Updated build on OSX to include default plugins, load them properly. Changed default plugin directory to be more correct. Updated code for TBB

Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp	2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.cpp	2009-08-13 22:44:19 UTC (rev 4035)
@@ -16,16 +16,15 @@
 
 #include "TorBrowserBundlePlugin.h"
 
+#include <QDir>
 #include <QProcess>
 #include <QSettings>
 #include <QString>
 
 TorBrowserBundlePlugin::TorBrowserBundlePlugin()
 {
-  qDebug() << "TBB: It works!";
-
   /* Listen for the TorStarted() signal to begin TBB */
-  //  connect(_pluginManager, SIGNAL(torStarted()), this, SLOT(start()));
+  // connect(_pluginManager, SIGNAL(torStarted()), this, SLOT(start()));
 }
 
 TorBrowserBundlePlugin::~TorBrowserBundlePlugin()
@@ -53,21 +52,66 @@
 void
 TorBrowserBundlePlugin::start()
 {
+  /* Create the executable launchers */
+  _browserProcess = new QProcess(this);
+  _imProcess = new QProcess(this);
+
+  /* Connect their signals */
+
+  /* Set the firefox environment to increase security */
+  QStringList browserEnvironment = QProcess::systemEnvironment();
+  browserEnvironment << "TZ=UTC";
+  browserEnvironment << "MOZ_NO_REMOTE=1";
+
   QSettings* tbbSettings = VidaliaPluginInterface::settings();
 
-  QString firefoxExecutable = tbbSettings->value("firefox_executable",
-                                                 QString()).toString();
+  /* Launch the browser (firefox) */
+  QString browserExecutable = tbbSettings->value("BrowserExecutable",
+                                                QString()).toString();
 
-  QString pidginExecutable = tbbSettings->value("pidgin_executable",
+  QString browserDirectory = tbbSettings->value("BrowserDirectory",
                                                 QString()).toString();
 
-  /* *** TODO: Arguments? *** */
+  /* If both values are set */
+  if (!browserExecutable.isNull() && !browserDirectory.isNull()) {
+    /* Launch firefox directly? */
 
-  /* If either is null, don't start tbb */
-  if (pidginExecutable.isNull() || firefoxExecutable.isNull()) {
-    return;
+    /* Executable is located at <browserdir>/Contents/MacOS/<browserexe> */
+    QString browserExecutablePath = QDir::toNativeSeparators(browserDirectory + 
+                                                         "/Contents/MacOS" + 
+                                                         browserExecutable);
+
+    /* Profile is located at <browserdir>/Contents/Resources/profile */
+    QString profileDir = QDir::toNativeSeparators(browserDirectory + 
+                                                  "/Resources/profile");
+
+    /* Construct the profile arguments */
+    QStringList arguments;
+    arguments << "--profile";
+    arguments << profileDir;
+
+    /* Start the browser process */
+    _browserProcess->start(browserExecutablePath, arguments);
   }
 
+  /* Launch the IM client (Pidgin) */
+  QString imExecutable = tbbSettings->value("IMExecutable",
+                                                QString()).toString();
+
+  QString imDirectory = tbbSettings->value("IMDirectory",
+                                                QString()).toString();
+
+  /* If both values are set */
+  if (!imExecutable.isNull() && !imDirectory.isNull()) {
+    /* Executable located at <imdir>/Contents/MacOS/imexe> */
+    QString imExecutablePath = QDir::toNativeSeparators(imDirectory +
+                                                        "/Contents/MacOS" + 
+                                                        imExecutable);
+
+    /* Start the process */
+    _imProcess->start(imExecutablePath);
+  }
+
   delete tbbSettings;
 }
 

Modified: vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h
===================================================================
--- vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h	2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/plugins/TorBrowserBundlePlugin/TorBrowserBundlePlugin.h	2009-08-13 22:44:19 UTC (rev 4035)
@@ -41,8 +41,8 @@
   void start();
 
 private:
-  QProcess* _firefoxProcess;
-  QProcess* _pidginProcess;
+  QProcess* _browserProcess;
+  QProcess* _imProcess;
 };
 
 #endif

Modified: vidalia/branches/extension-api/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/extension-api/src/vidalia/CMakeLists.txt	2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/vidalia/CMakeLists.txt	2009-08-13 22:44:19 UTC (rev 4035)
@@ -302,6 +302,31 @@
            ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/
   )
 
+  ## Include the default plugins
+  add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+    COMMAND ${CMAKE_COMMAND}
+      ARGS -E make_directory
+           ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins
+  )
+  add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+    COMMAND ${CMAKE_COMMAND}
+      ARGS -E copy_if_different
+           ${CMAKE_CURRENT_BINARY_DIR}/HomePlugin/libhomeplugin.so
+           ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+  )
+  add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+    COMMAND ${CMAKE_COMMAND}
+      ARGS -E copy_if_different
+           ${CMAKE_CURRENT_BINARY_DIR}/NetworkMapPlugin/libnetworkmapplugin.so
+           ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+  )
+  add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+    COMMAND ${CMAKE_COMMAND}
+      ARGS -E copy_if_different
+           ${CMAKE_CURRENT_BINARY_DIR}/MessageLogPlugin/libmessagelogplugin.so
+           ${MACOSX_BUNDLE_DIRECTORY}/Contents/Resources/plugins/
+  )
+
   if (USE_MARBLE)
     ## Copy the Marble data into the bundle
     foreach(it ${marble_DATA})

Modified: vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp
===================================================================
--- vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp	2009-08-13 20:16:01 UTC (rev 4034)
+++ vidalia/branches/extension-api/src/vidalia/config/VidaliaSettings.cpp	2009-08-13 22:44:19 UTC (rev 4035)
@@ -242,10 +242,21 @@
 QString
 VidaliaSettings::getPluginDirectory() const
 {
-  QString defaultPluginsDirectory = Vidalia::dataDirectory();
-  defaultPluginsDirectory += "/plugins";
-
-  return value(SETTING_PLUGIN_DIRECTORY, defaultPluginsDirectory).toString();
+  QDir defaultPluginsDirectory;
+#if defined(Q_OS_WIN)
+  defaultPluginsDirectory.cd(vApp->applicationDirPath());
+  defaultPluginsDirectory.cd("plugins");
+#elif defined(Q_OS_MAC)
+  defaultPluginsDirectory.cd(vApp->applicationDirPath());
+  defaultPluginsDirectory.cdUp();
+  defaultPluginsDirectory.cd("Resources");
+  defaultPluginsDirectory.cd("plugins");
+#else
+  defaultPluginsDirectory.cd(Vidalia::dataDirectory);
+  defaultPluginsDirectory.cd("plugins");
+#endif
+  return value(SETTING_PLUGIN_DIRECTORY, 
+               defaultPluginsDirectory.absolutePath()).toString();
 }
 
 /** Returns a fully-qualified path to the proxy server, including the