Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sessionhistory.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-26 13:46:27 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-26 13:46:27 (GMT)
commit55f8b01e2b29d390604b8a09093ef2e3e353ee7a (patch)
tree11f4d943a092e709b13ac2dcb261dc7922afc43c /sessionhistory.py
parentef15fd0bc70bb7b593ff022b19080891fd60e067 (diff)
Refactored a bit the progress listener and created a session history listener.
Diffstat (limited to 'sessionhistory.py')
-rw-r--r--sessionhistory.py61
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