diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-26 13:46:27 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-26 13:46:27 (GMT) |
commit | 55f8b01e2b29d390604b8a09093ef2e3e353ee7a (patch) | |
tree | 11f4d943a092e709b13ac2dcb261dc7922afc43c /sessionhistory.py | |
parent | ef15fd0bc70bb7b593ff022b19080891fd60e067 (diff) |
Refactored a bit the progress listener and created a session history listener.
Diffstat (limited to 'sessionhistory.py')
-rw-r--r-- | sessionhistory.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/sessionhistory.py b/sessionhistory.py new file mode 100644 index 0000000..566a9ef --- /dev/null +++ b/sessionhistory.py @@ -0,0 +1,61 @@ +# Copyright (C) 2007, One Laptop Per Child +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import logging + +import gobject +import xpcom +from xpcom.components import interfaces + +class HistoryListener(gobject.GObject): + _com_interfaces_ = interfaces.nsISHistoryListener + + def __init__(self, browser): + gobject.GObject.__init__(self) + + self._wrapped_self = xpcom.server.WrapObject(self, interfaces.nsISHistoryListener) + weak_ref = xpcom.client.WeakReference(self._wrapped_self) + + session_history = browser.web_navigation.sessionHistory + session_history.addSHistoryListener(self._wrapped_self) + + def OnHistoryGoBack(self, back_uri): + return True + + def OnHistoryGoForward(self, forward_uri): + return True + + def OnHistoryGotoIndex(self, index, goto_uri): + return True + + def OnHistoryNewEntry(self, new_uri): + logging.debug(new_uri.spec) + + def OnHistoryPurge(self, num_entries): + return True + + def OnHistoryReload(self, reload_uri, reload_flags): + return True + +_session_history_listener = None + +def init(browser): + global _session_history_listener + _session_history_listener = HistoryListener(browser) + +def get_instance(): + global _session_history_listener + return _session_history_listener |