Basic cookie handling
This commit is contained in:
parent
a4d80ddcac
commit
ae95b5ea3b
1
TODO
1
TODO
@ -26,7 +26,6 @@ Bookmarks
|
||||
Internationalization
|
||||
more completions (URLs, ...)
|
||||
SSL handling
|
||||
cookie handling
|
||||
history
|
||||
|
||||
Minor features
|
||||
|
@ -28,6 +28,8 @@ from argparse import ArgumentParser
|
||||
from base64 import b64encode
|
||||
|
||||
import qutebrowser.config.websettings as websettings
|
||||
import qutebrowser.network.networkmanager as networkmanager
|
||||
import qutebrowser.browser.cookies as cookies
|
||||
|
||||
# Print a nice traceback on segfault -- only available on Python 3.3+, but if
|
||||
# it's unavailable, it doesn't matter much.
|
||||
@ -126,6 +128,8 @@ class QuteBrowser(QApplication):
|
||||
sys.exit(1)
|
||||
self.config = config.instance
|
||||
websettings.init(self._dirs.user_cache_dir)
|
||||
cookies.init(self._dirs.user_data_dir)
|
||||
networkmanager.init(cookies.cookiejar)
|
||||
|
||||
self.commandmanager = CommandManager()
|
||||
self.searchmanager = SearchManager()
|
||||
@ -478,6 +482,10 @@ class QuteBrowser(QApplication):
|
||||
config.state.save()
|
||||
except AttributeError:
|
||||
logging.exception("Could not save window geometry.")
|
||||
try:
|
||||
cookies.cookiejar.save()
|
||||
except AttributeError:
|
||||
logging.exception("Could not save cookies.")
|
||||
try:
|
||||
if do_quit:
|
||||
self.mainwindow.tabs.shutdown_complete.connect(
|
||||
|
@ -23,7 +23,7 @@ from PyQt5.QtWebKitWidgets import QWebPage
|
||||
|
||||
import qutebrowser.utils.url as urlutils
|
||||
import qutebrowser.config.config as config
|
||||
from qutebrowser.network.networkmanager import NetworkManager
|
||||
import qutebrowser.network.networkmanager as networkmanager
|
||||
from qutebrowser.utils.misc import read_file
|
||||
|
||||
|
||||
@ -41,8 +41,7 @@ class BrowserPage(QWebPage):
|
||||
self._extension_handlers = {
|
||||
QWebPage.ErrorPageExtension: self._handle_errorpage,
|
||||
}
|
||||
self.network_access_manager = NetworkManager(self)
|
||||
self.setNetworkAccessManager(self.network_access_manager)
|
||||
self.setNetworkAccessManager(networkmanager.networkmanager)
|
||||
|
||||
def _handle_errorpage(self, opt, out):
|
||||
"""Display an error page if needed.
|
||||
|
@ -742,6 +742,14 @@ class LastClose(String):
|
||||
('quit', "Quit qutebrowser."))
|
||||
|
||||
|
||||
class AcceptCookies(String):
|
||||
|
||||
"""Whether to accept a cookie."""
|
||||
|
||||
valid_values = ValidValues(('default', "Default QtWebKit behaviour"),
|
||||
('never', "Don't accept cookies at all."))
|
||||
|
||||
|
||||
class KeyBinding(Command):
|
||||
|
||||
"""The command of a keybinding."""
|
||||
|
@ -43,7 +43,7 @@ import qutebrowser.utils.message as message
|
||||
from qutebrowser.config._conftypes import ValidationError
|
||||
from qutebrowser.config._iniparsers import (ReadConfigParser,
|
||||
ReadWriteConfigParser)
|
||||
from qutebrowser.config._lineparser import LineConfigParser
|
||||
from qutebrowser.config.lineparser import LineConfigParser
|
||||
|
||||
instance = None
|
||||
state = None
|
||||
|
@ -209,6 +209,14 @@ DATA = OrderedDict([
|
||||
('user-agent',
|
||||
SettingValue(types.String(), ''),
|
||||
"User agent to send. Empty to send the default."),
|
||||
|
||||
('accept-cookies',
|
||||
SettingValue(types.AcceptCookies(), 'default'),
|
||||
"Whether to accept cookies."),
|
||||
|
||||
('store-cookies',
|
||||
SettingValue(types.Bool(), 'false'),
|
||||
"Whether to store cookies."),
|
||||
)),
|
||||
|
||||
('completion', sect.KeyValue(
|
||||
|
@ -23,6 +23,21 @@ import qutebrowser.config.config as config
|
||||
from qutebrowser.network.qutescheme import QuteSchemeHandler
|
||||
|
||||
|
||||
networkmanager = None
|
||||
|
||||
|
||||
def init(cookiejar):
|
||||
"""Initialize the global NetworkManager.
|
||||
|
||||
Args:
|
||||
cookiejar: The QCookieJar to use.
|
||||
"""
|
||||
global networkmanager
|
||||
networkmanager = NetworkManager()
|
||||
networkmanager.setCookieJar(cookiejar)
|
||||
cookiejar.setParent(None)
|
||||
|
||||
|
||||
class NetworkManager(QNetworkAccessManager):
|
||||
|
||||
"""Our own QNetworkAccessManager.
|
||||
|
@ -30,6 +30,7 @@ import qutebrowser.config.config as config
|
||||
import qutebrowser.keyinput.modeman as modeman
|
||||
import qutebrowser.utils.message as message
|
||||
import qutebrowser.utils.webelem as webelem
|
||||
import qutebrowser.network.networkmanager as networkmanager
|
||||
from qutebrowser.browser.webpage import BrowserPage
|
||||
from qutebrowser.browser.hints import HintManager
|
||||
from qutebrowser.utils.signals import SignalCache
|
||||
@ -209,7 +210,7 @@ class WebView(QWebView):
|
||||
self.destroyed.connect(functools.partial(self._on_destroyed, self))
|
||||
self.deleteLater()
|
||||
|
||||
netman = self.page_.network_access_manager
|
||||
netman = networkmanager.networkmanager
|
||||
self._destroyed[netman] = False
|
||||
netman.abort_requests()
|
||||
netman.destroyed.connect(functools.partial(self._on_destroyed, netman))
|
||||
|
Loading…
Reference in New Issue
Block a user