Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-08-08 14:57:56 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-08-08 14:57:56 (GMT)
commitf558daf03fc401ffa48cf2892593dbcd0ffbc868 (patch)
tree401390ea86c1a4b4591d7180c495ab151138aa15
parentb5ed8c31b4877f40ad76e01b70c23bcd60d3af62 (diff)
Increase robustness of session resuming.
-rw-r--r--sessionstore.py14
-rwxr-xr-xwebactivity.py14
2 files changed, 18 insertions, 10 deletions
diff --git a/sessionstore.py b/sessionstore.py
index 5e282e5..73251ff 100644
--- a/sessionstore.py
+++ b/sessionstore.py
@@ -25,16 +25,24 @@ from xpcom.components import interfaces
import json
def get_session(browser):
+ session_history = browser.web_navigation.sessionHistory
+
+ if session_history.count == 0:
+ return ''
+
session_data = {}
- session_data['history'] = _get_history(browser.web_navigation.sessionHistory)
+ session_data['history'] = _get_history(session_history)
logging.debug('%r' % session_data)
return json.write(session_data)
def set_session(browser, session_str):
session_data = json.read(session_str)
_set_history(browser.web_navigation.sessionHistory, session_data['history'])
-
- browser.web_navigation.gotoIndex(len(session_data['history']) - 1);
+
+ if session_data['history']:
+ browser.web_navigation.gotoIndex(len(session_data['history']) - 1)
+ else:
+ browser.load_uri('about:blank')
def _get_history(history):
logging.debug('%r' % history.count)
diff --git a/webactivity.py b/webactivity.py
index e4e70a8..6ebeb98 100755
--- a/webactivity.py
+++ b/webactivity.py
@@ -99,17 +99,17 @@ class WebActivity(activity.Activity):
self.metadata['mime_type'] = 'text/plain'
if self.metadata['mime_type'] == 'text/plain':
- session_data = self._browser.get_session()
-
if not self._jobject.metadata['title_set_by_user'] == '1':
if self._browser.props.title:
self.metadata['title'] = self._browser.props.title
- f = open(file_path, 'w')
- try:
- f.write(session_data)
- finally:
- f.close()
+ session_data = self._browser.get_session()
+ if session_data:
+ f = open(file_path, 'w')
+ try:
+ f.write(session_data)
+ finally:
+ f.close()
def destroy(self):
if downloadmanager.can_quit():