Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-17 20:54:30 (GMT)
committer Lucian Branescu Mihaila <lucian.branescu@gmail.com>2010-06-17 20:54:30 (GMT)
commita8b17436c94ec188857c4a06efa6ade64a0ef20b (patch)
tree4093124cf4163003b4a9c43bad12076d0930fe4b
parent3ec9f9dca7f8a696ec90b934771436d70063880a (diff)
Browse stards and loads pages with pywebkitgtk. Several features are disabled for now, although it mostly has feature-parity with Surf.
-rw-r--r--browser.py231
-rw-r--r--downloadmanager.py30
-rw-r--r--edittoolbar.py5
-rw-r--r--filepicker.py18
-rw-r--r--globalhistory.py18
-rw-r--r--palettes.py95
-rw-r--r--progresslistener.py3
-rw-r--r--promptservice.py5
-rw-r--r--securitydialogs.py6
-rw-r--r--sessionhistory.py6
-rw-r--r--sessionstore.py4
-rw-r--r--webactivity.py37
-rw-r--r--webtoolbar.py2
13 files changed, 89 insertions, 371 deletions
diff --git a/browser.py b/browser.py
index ece81d1..891d06c 100644
--- a/browser.py
+++ b/browser.py
@@ -23,12 +23,7 @@ from gettext import gettext as _
import gobject
import gtk
-import hulahop
-import xpcom
-from xpcom.nsError import *
-from xpcom import components
-from xpcom.components import interfaces
-from hulahop.webview import WebView
+import webkit
from sugar.datastore import datastore
from sugar import profile
@@ -36,66 +31,15 @@ from sugar import env
from sugar.activity import activity
from sugar.graphics import style
-import sessionstore
from palettes import ContentInvoker
-from sessionhistory import HistoryListener
-from progresslistener import ProgressListener
+#from sessionhistory import HistoryListener
+#from progresslistener import ProgressListener
_ZOOM_AMOUNT = 0.1
-
-class GetSourceListener(object):
- _com_interfaces_ = interfaces.nsIWebProgressListener
-
- def __init__(self, file_path, async_cb, async_err_cb):
- self._file_path = file_path
- self._async_cb = async_cb
- self._async_err_cb = async_err_cb
-
- def onStateChange(self, webProgress, request, stateFlags, status):
- if stateFlags & interfaces.nsIWebProgressListener.STATE_IS_REQUEST and \
- stateFlags & interfaces.nsIWebProgressListener.STATE_STOP:
- self._async_cb(self._file_path)
-
- def onProgressChange(self, progress, request, curSelfProgress,
- maxSelfProgress, curTotalProgress, maxTotalProgress):
- pass
-
- def onLocationChange(self, progress, request, location):
- pass
-
- def onStatusChange(self, progress, request, status, message):
- pass
-
- def onSecurityChange(self, progress, request, state):
- pass
-
-
-class CommandListener(object):
-
- _com_interfaces_ = interfaces.nsIDOMEventListener
-
- def __init__(self, window):
- self._window = window
-
- def handleEvent(self, event):
- if not event.isTrusted:
- return
-
- uri = event.originalTarget.ownerDocument.documentURI
- if not uri.startswith('about:neterror?e=nssBadCert'):
- return
-
- cls = components.classes['@sugarlabs.org/add-cert-exception;1']
- cert_exception = cls.createInstance(interfaces.hulahopAddCertException)
- cert_exception.showDialog(self._window)
-
-
class TabbedView(gtk.Notebook):
__gtype_name__ = 'TabbedView'
- _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',
@@ -106,67 +50,28 @@ class TabbedView(gtk.Notebook):
self.props.show_border = False
self.props.scrollable = True
-
- io_service_class = components.classes[ \
- "@mozilla.org/network/io-service;1"]
- io_service = io_service_class.getService(interfaces.nsIIOService)
-
- # Use xpcom to turn off "offline mode" detection, which disables
- # access to localhost for no good reason. (Trac #6250.)
- io_service2 = io_service_class.getService(interfaces.nsIIOService2)
- io_service2.manageOfflineStatus = False
-
- cls = components.classes['@mozilla.org/content/style-sheet-service;1']
- style_sheet_service = cls.getService(interfaces.nsIStyleSheetService)
-
- if os.path.exists(TabbedView.AGENT_SHEET):
- agent_sheet_uri = io_service.newURI('file:///' +
- TabbedView.AGENT_SHEET,
- None, None)
- style_sheet_service.loadAndRegisterSheet(agent_sheet_uri,
- interfaces.nsIStyleSheetService.AGENT_SHEET)
-
- if os.path.exists(TabbedView.USER_SHEET):
- user_sheet_uri = io_service.newURI('file:///' + TabbedView.USER_SHEET,
- None, None)
- style_sheet_service.loadAndRegisterSheet(user_sheet_uri,
- interfaces.nsIStyleSheetService.USER_SHEET)
-
- cls = components.classes['@mozilla.org/embedcomp/window-watcher;1']
- window_watcher = cls.getService(interfaces.nsIWindowWatcher)
- window_creator = xpcom.server.WrapObject(self,
- interfaces.nsIWindowCreator)
- window_watcher.setWindowCreator(window_creator)
-
+
+ self.new_tab()
+
+ def new_tab(self):
browser = Browser()
self._append_tab(browser)
- def createChromeWindow(self, parent, flags):
- if flags & interfaces.nsIWebBrowserChrome.CHROME_OPENAS_CHROME:
- dialog = PopupDialog()
- dialog.view.is_chrome = True
-
- parent_dom_window = parent.webBrowser.contentDOMWindow
- parent_view = hulahop.get_view_for_window(parent_dom_window)
- if parent_view:
- dialog.set_transient_for(parent_view.get_toplevel())
-
- browser = dialog.view.browser
-
- item = browser.queryInterface(interfaces.nsIDocShellTreeItem)
- item.itemType = interfaces.nsIDocShellTreeItem.typeChromeWrapper
-
- return browser.containerWindow
- else:
- browser = Browser()
- self._append_tab(browser)
-
- return browser.browser.containerWindow
-
def _append_tab(self, browser):
label = TabLabel(browser)
label.connect('tab-close', self.__tab_close_cb)
+ #set stylesheets
+ settings = browser.get_settings()
+
+ if os.path.exists(TabbedView.AGENT_SHEET):
+ # used to disable flash movies until you click them.
+ settings.set_property('user-stylesheet-uri', 'file:///' +
+ TabbedView.AGENT_SHEET)
+ if os.path.exists(TabbedView.USER_SHEET):
+ settings.set_property('user-stylesheet-uri', 'file:///' +
+ TabbedView.USER_SHEET)
+
self.append_page(browser, label)
browser.show()
@@ -251,19 +156,19 @@ class TabLabel(gtk.HBox):
browser.progress.connect('notify::location', self.__location_changed_cb)
browser.connect('notify::title', self.__title_changed_cb)
- def __location_changed_cb(self, progress_listener, pspec):
- uri = progress_listener.location
- cls = components.classes['@mozilla.org/intl/texttosuburi;1']
- texttosuburi = cls.getService(interfaces.nsITextToSubURI)
- ui_uri = texttosuburi.unEscapeURIForUI(uri.originCharset, uri.spec)
+ #def __location_changed_cb(self, progress_listener, pspec):
+ # uri = progress_listener.location
+ # cls = components.classes['@mozilla.org/intl/texttosuburi;1']
+ # texttosuburi = cls.getService(interfaces.nsITextToSubURI)
+ # ui_uri = texttosuburi.unEscapeURIForUI(uri.originCharset, uri.spec)
+ #
+ # self._label.set_text(ui_uri)
- self._label.set_text(ui_uri)
+ #def __title_changed_cb(self, browser, pspec):
+ # self._label.set_text(browser.props.title)
- def __title_changed_cb(self, browser, pspec):
- self._label.set_text(browser.props.title)
-
-class Browser(WebView):
+class Browser(webkit.WebView):
__gtype_name__ = 'Browser'
__gsignals__ = {
@@ -273,30 +178,12 @@ class Browser(WebView):
}
def __init__(self):
- WebView.__init__(self)
-
- self.history = HistoryListener()
- self.progress = ProgressListener()
+ webkit.WebView.__init__(self)
- cls = components.classes["@mozilla.org/typeaheadfind;1"]
- self.typeahead = cls.createInstance(interfaces.nsITypeAheadFind)
+ #self.history = HistoryListener()
+ #self.progress = ProgressListener()
def do_setup(self):
- WebView.do_setup(self)
-
- listener = xpcom.server.WrapObject(ContentInvoker(self),
- interfaces.nsIDOMEventListener)
- self.window_root.addEventListener('click', listener, False)
-
- listener = xpcom.server.WrapObject(CommandListener(self.dom_window),
- interfaces.nsIDOMEventListener)
- self.window_root.addEventListener('command', listener, False)
-
- self.progress.setup(self)
-
- self.history.setup(self.web_navigation)
-
- self.typeahead.init(self.doc_shell)
self.emit('is-setup')
@@ -307,42 +194,26 @@ class Browser(WebView):
return sessionstore.set_session(self, data)
def get_source(self, async_cb, async_err_cb):
- cls = components.classes[ \
- '@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
- persist = cls.createInstance(interfaces.nsIWebBrowserPersist)
- # get the source from the cache
- persist.persistFlags = \
- interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_FROM_CACHE
-
- temp_path = os.path.join(activity.get_activity_root(), 'instance')
- file_path = os.path.join(temp_path, '%i' % time.time())
- cls = components.classes["@mozilla.org/file/local;1"]
- local_file = cls.createInstance(interfaces.nsILocalFile)
- local_file.initWithPath(file_path)
-
- progresslistener = GetSourceListener(file_path, async_cb, async_err_cb)
- persist.progressListener = xpcom.server.WrapObject(
- progresslistener, interfaces.nsIWebProgressListener)
-
- uri = self.web_navigation.currentURI
- persist.saveURI(uri, self.doc_shell, None, None, None, local_file)
-
- def zoom_in(self):
- contentViewer = self.doc_shell.queryInterface( \
- interfaces.nsIDocShell).contentViewer
- if contentViewer is not None:
- markupDocumentViewer = contentViewer.queryInterface( \
- interfaces.nsIMarkupDocumentViewer)
- markupDocumentViewer.fullZoom += _ZOOM_AMOUNT
-
- def zoom_out(self):
- contentViewer = self.doc_shell.queryInterface( \
- interfaces.nsIDocShell).contentViewer
- if contentViewer is not None:
- markupDocumentViewer = contentViewer.queryInterface( \
- interfaces.nsIMarkupDocumentViewer)
- markupDocumentViewer.fullZoom -= _ZOOM_AMOUNT
-
+ #cls = components.classes[ \
+ # '@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
+ #persist = cls.createInstance(interfaces.nsIWebBrowserPersist)
+ ## get the source from the cache
+ #persist.persistFlags = \
+ # interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_FROM_CACHE
+ #
+ #temp_path = os.path.join(activity.get_activity_root(), 'instance')
+ #file_path = os.path.join(temp_path, '%i' % time.time())
+ #cls = components.classes["@mozilla.org/file/local;1"]
+ #local_file = cls.createInstance(interfaces.nsILocalFile)
+ #local_file.initWithPath(file_path)
+ #
+ #progresslistener = GetSourceListener(file_path, async_cb, async_err_cb)
+ #persist.progressListener = xpcom.server.WrapObject(
+ # progresslistener, interfaces.nsIWebProgressListener)
+ #
+ #uri = self.web_navigation.currentURI
+ #persist.saveURI(uri, self.doc_shell, None, None, None, local_file)
+ pass
class PopupDialog(gtk.Window):
def __init__(self):
diff --git a/downloadmanager.py b/downloadmanager.py
index 3eec649..211eb77 100644
--- a/downloadmanager.py
+++ b/downloadmanager.py
@@ -24,12 +24,6 @@ import urlparse
import urllib
import gtk
-import hulahop
-import xpcom
-from xpcom.nsError import *
-from xpcom import components
-from xpcom.components import interfaces
-from xpcom.server.factory import Factory
from sugar.datastore import datastore
from sugar import profile
@@ -74,7 +68,7 @@ def remove_all_downloads():
class HelperAppLauncherDialog:
- _com_interfaces_ = interfaces.nsIHelperAppLauncherDialog
+ #_com_interfaces_ = interfaces.nsIHelperAppLauncherDialog
def promptForSaveToFile(self, launcher, window_context,
default_file, suggested_file_extension,
@@ -111,14 +105,14 @@ class HelperAppLauncherDialog:
return NS_OK
-components.registrar.registerFactory('{64355793-988d-40a5-ba8e-fcde78cac631}',
- 'Sugar Download Manager',
- '@mozilla.org/helperapplauncherdialog;1',
- Factory(HelperAppLauncherDialog))
+#components.registrar.registerFactory('{64355793-988d-40a5-ba8e-fcde78cac631}',
+# 'Sugar Download Manager',
+# '@mozilla.org/helperapplauncherdialog;1',
+# Factory(HelperAppLauncherDialog))
class Download:
- _com_interfaces_ = interfaces.nsITransfer
+ #_com_interfaces_ = interfaces.nsITransfer
def init(self, source, target, display_name, mime_info, start_time,
temp_file, cancelable):
@@ -297,10 +291,10 @@ class Download:
_active_downloads.remove(self)
-components.registrar.registerFactory('{23c51569-e9a1-4a92-adeb-3723db82ef7c}',
- 'Sugar Download',
- '@mozilla.org/transfer;1',
- Factory(Download))
+#components.registrar.registerFactory('{23c51569-e9a1-4a92-adeb-3723db82ef7c}',
+# 'Sugar Download',
+# '@mozilla.org/transfer;1',
+# Factory(Download))
def save_link(url, text, owner_document):
@@ -346,7 +340,7 @@ def _implements_interface(obj, interface):
class _AuthPromptCallback(object):
- _com_interfaces_ = interfaces.nsIInterfaceRequestor
+ #_com_interfaces_ = interfaces.nsIInterfaceRequestor
def __init__(self, dom_window):
self._dom_window = dom_window
@@ -360,7 +354,7 @@ class _AuthPromptCallback(object):
class _SaveLinkProgressListener(object):
- _com_interfaces_ = interfaces.nsIStreamListener
+ #_com_interfaces_ = interfaces.nsIStreamListener
""" an object to proxy the data through to
nsIExternalHelperAppService.doContent, which will wait for the appropriate
diff --git a/edittoolbar.py b/edittoolbar.py
index 4658683..8c2ac3d 100644
--- a/edittoolbar.py
+++ b/edittoolbar.py
@@ -18,9 +18,6 @@
import gtk
from gettext import gettext as _
-from xpcom import components
-from xpcom.components import interfaces
-
from sugar.activity import activity
from sugar.graphics import iconentry
from sugar.graphics.toolbutton import ToolButton
@@ -29,7 +26,7 @@ from sugar.graphics import style
class EditToolbar(activity.EditToolbar):
- _com_interfaces_ = interfaces.nsIObserver
+ #_com_interfaces_ = interfaces.nsIObserver
def __init__(self, act):
activity.EditToolbar.__init__(self)
diff --git a/filepicker.py b/filepicker.py
index 9b9e8bc..4e52471 100644
--- a/filepicker.py
+++ b/filepicker.py
@@ -23,18 +23,13 @@ import re
import gtk
import hulahop
-import xpcom
-from xpcom import components
-from xpcom.components import interfaces
-from xpcom.server.factory import Factory
-
from sugar.graphics.objectchooser import ObjectChooser
from sugar.activity.activity import get_activity_root
_temp_dirs_to_clean = []
-
+#TODO port to webkit
def cleanup_temp_files():
while _temp_dirs_to_clean:
temp_dir = _temp_dirs_to_clean.pop()
@@ -46,7 +41,7 @@ def cleanup_temp_files():
class FilePicker:
- _com_interfaces_ = interfaces.nsIFilePicker
+ #_com_interfaces_ = interfaces.nsIFilePicker
cid = '{57901c41-06cb-4b9e-8258-37323327b583}'
description = 'Sugar File Picker'
@@ -148,11 +143,10 @@ class FilePicker:
logging.warning('FilePicker.get_FileURL: UNIMPLEMENTED')
return None
-
-components.registrar.registerFactory(FilePicker.cid,
- FilePicker.description,
- '@mozilla.org/filepicker;1',
- Factory(FilePicker))
+#components.registrar.registerFactory(FilePicker.cid,
+# FilePicker.description,
+# '@mozilla.org/filepicker;1',
+# Factory(FilePicker))
def _basename_strip(jobject):
diff --git a/globalhistory.py b/globalhistory.py
index 1ec0a72..6fe5953 100644
--- a/globalhistory.py
+++ b/globalhistory.py
@@ -16,17 +16,13 @@
from datetime import datetime
-from xpcom import components
-from xpcom.components import interfaces
-from xpcom.server.factory import Factory
-
import places
class GlobalHistory:
- _com_interfaces_ = interfaces.nsIGlobalHistory, \
- interfaces.nsIGlobalHistory2, \
- interfaces.nsIGlobalHistory3
+ #_com_interfaces_ = interfaces.nsIGlobalHistory, \
+ # interfaces.nsIGlobalHistory2, \
+ # interfaces.nsIGlobalHistory3
cid = '{2a53cf28-c48e-4a01-ba18-3d3fef3e2985}'
description = 'Sugar Global History'
@@ -74,7 +70,7 @@ class GlobalHistory:
self._store.update_place(place)
-components.registrar.registerFactory(GlobalHistory.cid,
- GlobalHistory.description,
- '@mozilla.org/browser/global-history;2',
- Factory(GlobalHistory))
+#components.registrar.registerFactory(GlobalHistory.cid,
+# GlobalHistory.description,
+# '@mozilla.org/browser/global-history;2',
+# Factory(GlobalHistory))
diff --git a/palettes.py b/palettes.py
index 0d4023a..e4219f3 100644
--- a/palettes.py
+++ b/palettes.py
@@ -1,5 +1,6 @@
# Copyright (C) 2008, One Laptop Per Child
# Copyright (C) 2009, Tomeu Vizoso, Simon Schampijer
+# Copyright (C) 2010, Bobby Powers, Lucian Branescu Mihaila
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,9 +23,6 @@ from gettext import gettext as _
import gtk
import gobject
-import xpcom
-from xpcom import components
-from xpcom.components import interfaces
from sugar.graphics.palette import Palette, Invoker
from sugar.graphics.menuitem import MenuItem
@@ -35,32 +33,12 @@ from sugar.activity import activity
import downloadmanager
-class MouseOutListener(gobject.GObject):
- _com_interfaces_ = interfaces.nsIDOMEventListener
-
- __gsignals__ = {
- 'mouse-out': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([]))
- }
-
- def __init__(self, target):
- gobject.GObject.__init__(self)
- self.target = target
-
- def handleEvent(self, event):
- self.emit('mouse-out')
-
-
class ContentInvoker(Invoker):
- _com_interfaces_ = interfaces.nsIDOMEventListener
def __init__(self, browser):
Invoker.__init__(self)
self._position_hint = self.AT_CURSOR
self._browser = browser
- self._mouseout_listener = None
- self._popdown_handler_id = None
def get_default_position(self):
return self.AT_CURSOR
@@ -76,7 +54,6 @@ class ContentInvoker(Invoker):
return
target = event.target
-
if target.tagName.lower() == 'a':
if target.firstChild:
@@ -99,32 +76,10 @@ class ContentInvoker(Invoker):
self.palette = ImagePalette(title, target.src, target.ownerDocument)
self.notify_right_click()
- else:
- return
-
- if self._popdown_handler_id is not None:
- self._popdown_handler_id = self.palette.connect( \
- 'popdown', self.__palette_popdown_cb)
-
- self._mouseout_listener = MouseOutListener(target)
- wrapper = xpcom.server.WrapObject(self._mouseout_listener,
- interfaces.nsIDOMEventListener)
- target.addEventListener('mouseout', wrapper, False)
- self._mouseout_listener.connect('mouse-out', self.__moved_out_cb)
-
- def __moved_out_cb(self, listener):
- self.palette.popdown()
-
- def __palette_popdown_cb(self, palette):
- if self._mouseout_listener is not None:
- wrapper = xpcom.server.WrapObject(self._mouseout_listener,
- interfaces.nsIDOMEventListener)
- self._mouseout_listener.target.removeEventListener('mouseout',
- wrapper, False)
- del self._mouseout_listener
class LinkPalette(Palette):
+
def __init__(self, browser, title, url, owner_document):
Palette.__init__(self)
@@ -236,56 +191,10 @@ class ImagePalette(Palette):
os.close(fd)
os.chmod(temp_file, 0664)
- cls = components.classes['@mozilla.org/network/io-service;1']
- io_service = cls.getService(interfaces.nsIIOService)
- uri = io_service.newURI(self._url, None, None)
-
- cls = components.classes['@mozilla.org/file/local;1']
- target_file = cls.createInstance(interfaces.nsILocalFile)
- target_file.initWithPath(temp_file)
-
- cls = components.classes[ \
- '@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
- persist = cls.createInstance(interfaces.nsIWebBrowserPersist)
- persist.persistFlags = 1 # PERSIST_FLAGS_FROM_CACHE
- listener = xpcom.server.WrapObject(_ImageProgressListener(temp_file),
- interfaces.nsIWebProgressListener)
- persist.progressListener = listener
- persist.saveURI(uri, None, None, None, None, target_file)
-
def __download_activate_cb(self, menu_item):
downloadmanager.save_link(self._url, self._title, self._owner_document)
-class _ImageProgressListener(object):
- _com_interfaces_ = interfaces.nsIWebProgressListener
-
- def __init__(self, temp_file):
- self._temp_file = temp_file
-
- def onLocationChange(self, webProgress, request, location):
- pass
-
- def onProgressChange(self, webProgress, request, curSelfProgress,
- maxSelfProgress, curTotalProgress, maxTotalProgress):
- pass
-
- def onSecurityChange(self, webProgress, request, state):
- pass
-
- def onStatusChange(self, webProgress, request, status, message):
- pass
-
- def onStateChange(self, webProgress, request, stateFlags, status):
- if stateFlags & interfaces.nsIWebProgressListener.STATE_IS_REQUEST and \
- stateFlags & interfaces.nsIWebProgressListener.STATE_STOP:
- clipboard = gtk.Clipboard()
- clipboard.set_with_data([('text/uri-list', 0, 0)],
- _clipboard_get_func_cb,
- _clipboard_clear_func_cb,
- self._temp_file)
-
-
def _clipboard_get_func_cb(clipboard, selection_data, info, temp_file):
selection_data.set_uris(['file://' + temp_file])
diff --git a/progresslistener.py b/progresslistener.py
index fb08b13..fe9bd5c 100644
--- a/progresslistener.py
+++ b/progresslistener.py
@@ -17,9 +17,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gobject
-import xpcom
-from xpcom.components import interfaces
-
class ProgressListener(gobject.GObject):
_com_interfaces_ = interfaces.nsIWebProgressListener
diff --git a/promptservice.py b/promptservice.py
index bab2417..7ba2655 100644
--- a/promptservice.py
+++ b/promptservice.py
@@ -16,11 +16,6 @@
import logging
-import xpcom
-from xpcom import components
-from xpcom.components import interfaces
-from xpcom.server.factory import Factory
-
class PromptService:
_com_interfaces_ = interfaces.nsIPromptService
diff --git a/securitydialogs.py b/securitydialogs.py
index dbfd749..0c1563a 100644
--- a/securitydialogs.py
+++ b/securitydialogs.py
@@ -16,12 +16,6 @@
import logging
-import xpcom
-from xpcom import components
-from xpcom.components import interfaces
-from xpcom.server.factory import Factory
-
-
class SecurityDialogs:
_com_interfaces_ = interfaces.nsIBadCertListener
diff --git a/sessionhistory.py b/sessionhistory.py
index 2211551..c9c830d 100644
--- a/sessionhistory.py
+++ b/sessionhistory.py
@@ -22,8 +22,6 @@ from xpcom.components import interfaces
class HistoryListener(gobject.GObject):
- _com_interfaces_ = interfaces.nsISHistoryListener
-
__gsignals__ = {
'session-history-changed': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
@@ -35,10 +33,6 @@ class HistoryListener(gobject.GObject):
def __init__(self):
gobject.GObject.__init__(self)
- self._wrapped_self = xpcom.server.WrapObject( \
- self, interfaces.nsISHistoryListener)
- weak_ref = xpcom.client.WeakReference(self._wrapped_self)
-
def setup(self, web_navigation):
self._session_history = web_navigation.sessionHistory
self._session_history.addSHistoryListener(self._wrapped_self)
diff --git a/sessionstore.py b/sessionstore.py
index e09c3a1..08ba4a2 100644
--- a/sessionstore.py
+++ b/sessionstore.py
@@ -19,10 +19,6 @@
import logging
-from xpcom import components
-from xpcom.components import interfaces
-
-
def get_session(browser):
session_history = browser.web_navigation.sessionHistory
diff --git a/webactivity.py b/webactivity.py
index 48cd90f..69485f2 100644
--- a/webactivity.py
+++ b/webactivity.py
@@ -32,9 +32,7 @@ import cjson
import gconf
import locale
-# HACK: Needed by http://dev.sugarlabs.org/ticket/456
-import gnome
-gnome.init('Hulahop', '1.0')
+import webkit
from sugar.activity import activity
from sugar.graphics import style
@@ -128,12 +126,7 @@ def _seed_xs_cookie():
_logger.debug('seed_xs_cookie: Updated cookie successfully')
-import hulahop
-hulahop.set_app_version(os.environ['SUGAR_BUNDLE_VERSION'])
-hulahop.startup(_profile_path)
-
-from xpcom import components
-
+#TODO set app version and profile path
def _set_accept_languages():
''' Set intl.accept_languages based on the locale
@@ -147,10 +140,9 @@ def _set_accept_languages():
# e.g. es-uy, es
pref = lang[0] + "-" + lang[1].lower() + ", " + lang[0]
- cls = components.classes["@mozilla.org/preferences-service;1"]
- prefService = cls.getService(components.interfaces.nsIPrefService)
- branch = prefService.getBranch('')
- branch.setCharPref('intl.accept_languages', pref)
+
+ #TODO set locale for webkit
+
logging.debug('LANG set')
from browser import TabbedView
@@ -186,12 +178,6 @@ class WebActivity(activity.Activity):
_set_accept_languages()
_seed_xs_cookie()
- # don't pick up the sugar theme - use the native mozilla one instead
- cls = components.classes['@mozilla.org/preferences-service;1']
- pref_service = cls.getService(components.interfaces.nsIPrefService)
- branch = pref_service.getBranch("mozilla.widget.")
- branch.setBoolPref("disable-native-theme", True)
-
self._primary_toolbar = PrimaryToolbar(self._tabbed_view, self)
self._primary_toolbar.connect('add-link', self._link_add_button_cb)
@@ -452,24 +438,21 @@ class WebActivity(activity.Activity):
''' take screenshot and add link info to the model '''
browser = self._tabbed_view.props.current_browser
- uri = browser.progress.location
- cls = components.classes['@mozilla.org/intl/texttosuburi;1']
- texttosuburi = cls.getService(components.interfaces.nsITextToSubURI)
- ui_uri = texttosuburi.unEscapeURIForUI(uri.originCharset, uri.spec)
+ uri = browser.props.uri
for link in self.model.data['shared_links']:
- if link['hash'] == sha.new(ui_uri).hexdigest():
+ if link['hash'] == sha.new(uri).hexdigest():
_logger.debug('_add_link: link exist already a=%s b=%s' %(
- link['hash'], sha.new(ui_uri).hexdigest()))
+ link['hash'], sha.new(uri).hexdigest()))
return
buf = self._get_screenshot()
timestamp = time.time()
- self.model.add_link(ui_uri, browser.props.title, buf,
+ self.model.add_link(uri, browser.props.title, buf,
profile.get_nick_name(),
profile.get_color().to_string(), timestamp)
if self.messenger is not None:
- self.messenger._add_link(ui_uri, browser.props.title,
+ self.messenger._add_link(uri, browser.props.title,
profile.get_color().to_string(),
profile.get_nick_name(),
base64.b64encode(buf), timestamp)
diff --git a/webtoolbar.py b/webtoolbar.py
index e7c20be..86fab60 100644
--- a/webtoolbar.py
+++ b/webtoolbar.py
@@ -21,8 +21,6 @@ from gettext import gettext as _
import gobject
import gtk
import pango
-from xpcom.components import interfaces
-from xpcom import components
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.menuitem import MenuItem