From f558daf03fc401ffa48cf2892593dbcd0ffbc868 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 08 Aug 2007 14:57:56 +0000 Subject: Increase robustness of session resuming. --- 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(): -- cgit v0.9.1