deskbar-applet r1953 - in trunk: . deskbar/core deskbar/handlers
- From: sebp svn gnome org
- To: svn-commits-list gnome org
- Subject: deskbar-applet r1953 - in trunk: . deskbar/core deskbar/handlers
- Date: Fri, 22 Feb 2008 12:23:14 +0000 (GMT)
Author: sebp
Date: Fri Feb 22 12:23:14 2008
New Revision: 1953
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=1953&view=rev
Log:
Added check that the firefox version is between 2.0.0.0 and 3.0.0.0.
The modules don't work with FF 3.0 or later because data is stored in a SQLite DB since 3.0.
Modified:
trunk/ChangeLog
trunk/deskbar/core/BrowserMatch.py
trunk/deskbar/handlers/mozilla.py
Modified: trunk/deskbar/core/BrowserMatch.py
==============================================================================
--- trunk/deskbar/core/BrowserMatch.py (original)
+++ trunk/deskbar/core/BrowserMatch.py Fri Feb 22 12:23:14 2008
@@ -7,8 +7,7 @@
from deskbar.handlers.actions.CopyToClipboardAction import CopyToClipboardAction
from deskbar.core.GconfStore import GconfStore
-def is_preferred_browser(test):
- # We will import only if the user's preferred browser is mozilla
+def get_preferred_browser():
http_handler = GconfStore.get_instance().get_client().get_string("/desktop/gnome/url-handlers/http/command")
if http_handler == None:
return False
@@ -17,10 +16,14 @@
if not GconfStore.get_instance().get_client().get_bool("/desktop/gnome/url-handlers/http/enabled"):
return False
+ return http_handler.split(" ")[0]
+
+def is_preferred_browser(test):
+ # We will import only if the user's preferred browser is mozilla
+ http_handler = get_preferred_browser()
+
if http_handler.find(test) != -1:
return True
-
- http_handler = http_handler.split(" ")[0]
paths = [path for path in os.getenv("PATH").split(os.path.pathsep) if path.strip() != "" and os.path.exists(path) and os.path.isdir(path)]
for directory in paths:
Modified: trunk/deskbar/handlers/mozilla.py
==============================================================================
--- trunk/deskbar/handlers/mozilla.py (original)
+++ trunk/deskbar/handlers/mozilla.py Fri Feb 22 12:23:14 2008
@@ -1,18 +1,23 @@
from ConfigParser import RawConfigParser
-from deskbar.core.BrowserMatch import BrowserSmartMatch, BrowserMatch
-from deskbar.core.BrowserMatch import is_preferred_browser
+from deskbar.core.BrowserMatch import BrowserSmartMatch, BrowserMatch, is_preferred_browser, get_preferred_browser
from deskbar.core.GconfStore import GconfStore
from deskbar.core.Watcher import FileWatcher, DirWatcher
from deskbar.defs import VERSION
from gettext import gettext as _
from os.path import join, expanduser, exists, basename
from xml.dom import minidom
-import deskbar, deskbar.core.Indexer, deskbar.interfaces.Module
+import HTMLParser
+import base64
+import deskbar
+import deskbar.core.Indexer
+import deskbar.interfaces.Module
+import glob
import gtk
import logging
-import os, re, HTMLParser, base64, glob
+import os
+import re
+import subprocess
import urllib
-
LOGGER = logging.getLogger(__name__)
# Check for presence of set to be compatible with python 2.3
@@ -21,11 +26,14 @@
except NameError:
from sets import Set as set
-
# Whether we will index firefox or mozilla bookmarks
USING_FIREFOX = False
if is_preferred_browser("firefox") or is_preferred_browser("iceweasel"):
USING_FIREFOX = True
+
+# Minimum and maximum version of Firefox
+MIN_FF_VERSION = [2, 0, 0, 0]
+MAX_FF_VERSION = [3, 0, 0, 0] # exclusively
# File returned here should be checked for existence
def get_mozilla_home_file(needed_file):
@@ -57,6 +65,25 @@
return join(firefox_dir, path, needed_file)
+def get_firefox_version():
+ browser = get_preferred_browser ()
+ process = subprocess.Popen(browser + " -version", stdout=subprocess.PIPE, shell=True)
+ info = process.stdout.readline()
+ pattern = re.compile("([0-9]+?)\.([0-9]+?)(\.([0-9]+?))*")
+ version = None
+ if (pattern.match(info)):
+ match = pattern.match(info)
+ version = info[match.start():match.end()]
+ if version != None:
+ # Convert to integers
+ version = [int(i) for i in version.split(".")]
+ # List must have 4 elements
+ if len(version) < 4:
+ while (len(version) < 4):
+ version.append(0)
+ else:
+ return None
+
# Whether we offer all of the browser's search engines, or only the primary
# one (since by default Firefox seems to come with at least half a dozen)
GCONF_SHOW_ONLY_PRIMARY_KEY = GconfStore.GCONF_DIR + "/mozilla/show_only_primary_search"
@@ -177,15 +204,25 @@
@staticmethod
def has_requirements():
- # if deskbar.UNINSTALLED_DESKBAR:
- # return (deskbar.Handler.HANDLER_IS_HAPPY, None, None)
-
- if is_preferred_browser("firefox") or is_preferred_browser("mozilla"):
+ if is_preferred_browser("mozilla"):
return True
+ elif is_preferred_browser("firefox"):
+ if MozillaBookmarksHandler.has_firefox_version():
+ return True
+ # TODO: mark as i18n
+ MozillaBookmarksHandler.INSTRUCTIONS = "Firefox version must be between 2.0.0.0 and 3.0.0.0"
+ return False
else:
MozillaBookmarksHandler.INSTRUCTIONS = _("Mozilla/Firefox is not your preferred browser.")
return False
+ @staticmethod
+ def has_firefox_version():
+ version = get_firefox_version()
+ if version != None:
+ return (version >= MIN_FF_VERSION and version < MAX_FF_VERSION)
+ return False
+
class MozillaSearchHandler(deskbar.interfaces.Module):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]