From a213ac34d010908c2208969f7ca06f3aafa2e657 Mon Sep 17 00:00:00 2001 From: Lucian Branescu Mihaila Date: Sat, 28 Nov 2009 20:51:26 +0000 Subject: Add userscripts and userstyle support. The GUI needs refactoring. Not tested. --- diff --git a/browser.py b/browser.py index 237dc3b..94956bf 100644 --- a/browser.py +++ b/browser.py @@ -40,6 +40,7 @@ import sessionstore from palettes import ContentInvoker from sessionhistory import HistoryListener from progresslistener import ProgressListener +from usercode import ScriptListener _ZOOM_AMOUNT = 0.1 @@ -92,9 +93,9 @@ class TabbedView(gtk.Notebook): _com_interfaces_ = interfaces.nsIWindowCreator AGENT_SHEET = os.path.join(activity.get_bundle_path(), - 'agent-stylesheet.css') - USER_SHEET = os.path.join(env.get_profile_path(), 'gecko', - 'user-stylesheet.css') + 'agent-stylesheet.css') + USER_SHEET = os.path.join(activity.get_activity_root(), + 'data/style.user.css') def __init__(self): gobject.GObject.__init__(self) @@ -176,7 +177,22 @@ class TabbedView(gtk.Notebook): def _get_current_browser(self): return self.get_nth_page(self.get_current_page()) - current_browser = gobject.property(type=object, getter=_get_current_browser) + current_browser = gobject.property(type=object, getter=_get_current_browser) + + def update_userstyle(self): + cls = components.classes['@mozilla.org/content/style-sheet-service;1'] + style_sheet_service = cls.getService(interfaces.nsIStyleSheetService) + + user_sheet_uri = io_service.newURI('file:///' + TabbedView.USER_SHEET, + None, None) + + if style_sheet_service.sheetRegistered(user_sheet_uri, + interfaces.nsIStyleSheetService.USER_SHEET): + style_sheet_service.unregisterSheet(user_sheet_uri, + interfaces.nsIStyleSheetService.USER_SHEET) + + style_sheet_service.loadAndRegisterSheet(user_sheet_uri, + interfaces.nsIStyleSheetService.USER_SHEET) def get_session(self): tab_sessions = [] @@ -269,6 +285,7 @@ class Browser(WebView): self.history = HistoryListener() self.progress = ProgressListener() + self.userscript = ScriptListener() cls = components.classes["@mozilla.org/typeaheadfind;1"] self.typeahead = cls.createInstance(interfaces.nsITypeAheadFind) @@ -287,6 +304,8 @@ class Browser(WebView): self.progress.setup(self) self.history.setup(self.web_navigation) + + self.userscript.setup(self) self.typeahead.init(self.doc_shell) -- cgit v0.9.1