Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/globalhistory.py
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2008-06-12 14:11:25 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2008-06-12 14:11:25 (GMT)
commitfe774bf35bffed6249b8cc0feaa3859aca7ca4ea (patch)
treef601c05806967b1018babb17cbe2cd5ab59652dc /globalhistory.py
parent9e3c4d01dc2b368ef0636cce598dd655446fb883 (diff)
First go at autocompletion. Still using a fake, in-memory backend.
Diffstat (limited to 'globalhistory.py')
-rw-r--r--globalhistory.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/globalhistory.py b/globalhistory.py
new file mode 100644
index 0000000..635deca
--- /dev/null
+++ b/globalhistory.py
@@ -0,0 +1,81 @@
+# Copyright (C) 2008, Red Hat, Inc.
+#
+# 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
+
+from xpcom import components
+from xpcom.components import interfaces
+from xpcom.server.factory import Factory
+
+import places
+
+_global_history = None
+
+class GlobalHistory:
+ _com_interfaces_ = interfaces.nsIGlobalHistory, \
+ interfaces.nsIGlobalHistory2, \
+ interfaces.nsIGlobalHistory3
+
+ cid = '{2a53cf28-c48e-4a01-ba18-3d3fef3e2985}'
+ description = 'Sugar Global History'
+
+ def __init__(self):
+ self._store = places.get_store()
+
+ def addPage(self, url):
+ self.addURI(url, False, True, None)
+
+ def isVisited(self, uri):
+ place = self._store.lookup_place(uri.spec)
+ return place != None
+
+ def addURI(self, uri, redirect, toplevel, referrer):
+ place = places.Place(uri.spec)
+
+ place.redirect = redirect
+ place.toplevel = toplevel
+ place.referrer = referrer
+
+ self._store.add_place(place)
+
+ def setPageTitle(self, uri, title):
+ place = self._store.lookup_place(uri.spec)
+ if place:
+ place.title = title
+ self._store.update_place(place)
+
+ def addDocumentRedirect(self, old_channel, new_channel, flags, toplevel):
+ pass
+
+ def getURIGeckoFlags(self, uri):
+ place = self._store.lookup_place(uri.spec)
+ if place:
+ return place.gecko_flags
+ else:
+ return 0
+
+ def setURIGeckoFlags(self, uri, flags):
+ place = self._store.lookup_place(uri.spec)
+ if place:
+ place.gecko_flags = flags
+ self._store.update_place(place)
+
+def init():
+ global _global_history
+ _global_history = GlobalHistory()
+
+components.registrar.registerFactory(GlobalHistory.cid,
+ GlobalHistory.description,
+ '@mozilla.org/browser/global-history;2',
+ Factory(GlobalHistory))