Add ability for multi process mode
This commit is contained in:
parent
8b05d168f7
commit
3ec5892102
|
@ -70,9 +70,11 @@ birdyWebSettings.set_enable_developer_extras(False)
|
|||
birdyWebSettings.set_enable_page_cache(False)
|
||||
birdyWebSettings.set_hardware_acceleration_policy(WebKit2.HardwareAccelerationPolicy.NEVER)
|
||||
defaultUserAgent = birdyWebSettings.get_user_agent()
|
||||
singleProcessMode = False
|
||||
remakeViewOnNavigation = False # Always entirely remake view on navigation, could break some websites - use for super low memory situations
|
||||
|
||||
def birdyWebViewConstructor(webView):
|
||||
if webView:
|
||||
if webView and singleProcessMode:
|
||||
return WebKit2.WebView.new_with_related_view(webView)
|
||||
|
||||
self = WebKit2.WebView.new_with_context(birdyWebContext)
|
||||
|
@ -113,16 +115,13 @@ class birdyBrowserWindow(Gtk.Window):
|
|||
self.cMenuBar.add(self.cMenuLoadingIndication)
|
||||
|
||||
homepage = "about:blank"
|
||||
self.cLastUrl = "about:blank"
|
||||
self.cUrlEntry = Gtk.Entry()
|
||||
self.cUrlEntry.set_text(homepage)
|
||||
#self.cUrlEntry.props.enable_emoji_completion = True # lol
|
||||
self.cUrlEntry.connect("activate",self.cUrlEntryNavigate)
|
||||
self.cMainBox.add(self.cUrlEntry)
|
||||
self.cWebView = birdyWebViewConstructor(webView)
|
||||
self.cWebView.connect("load-changed",self.cWebViewLoadChanged)
|
||||
self.cWebView.connect("notify::uri",self.cUrlChanged)
|
||||
self.cWebView.connect("notify::title",self.cTitleChanged)
|
||||
self.cMainBox.add(self.cWebView)
|
||||
self.cCreateWebView(webView)
|
||||
self.cWebView.load_uri(homepage)
|
||||
self.cResizeElements()
|
||||
self.set_focus(self.cUrlEntry)
|
||||
|
@ -130,6 +129,13 @@ class birdyBrowserWindow(Gtk.Window):
|
|||
self.show_all()
|
||||
self.cMenuLoadingIndication.hide()
|
||||
|
||||
def cCreateWebView(self,webView):
|
||||
self.cWebView = birdyWebViewConstructor(webView)
|
||||
self.cWebView.connect("load-changed",self.cWebViewLoadChanged)
|
||||
self.cWebView.connect("notify::uri",self.cUrlChanged)
|
||||
self.cWebView.connect("notify::title",self.cTitleChanged)
|
||||
self.cMainBox.add(self.cWebView)
|
||||
|
||||
def cResizeElements(self):
|
||||
# cMenuBar
|
||||
self.cMainBox.move(self.cMenuBar,0,0)
|
||||
|
@ -158,6 +164,15 @@ class birdyBrowserWindow(Gtk.Window):
|
|||
|
||||
def cUrlChanged(self,widget,prop):
|
||||
url = widget.get_uri()
|
||||
|
||||
if url != self.cLastUrl and remakeViewOnNavigation and not singleProcessMode:
|
||||
self.cWebView.destroy()
|
||||
self.cCreateWebView(False)
|
||||
self.cResizeElements()
|
||||
self.show_all()
|
||||
self.cWebView.load_uri(url)
|
||||
|
||||
self.cLastUrl = url
|
||||
if url == "about:blank": return
|
||||
if self.cUrlEntry.get_text() != url: self.cUrlEntry.set_text(url)
|
||||
|
||||
|
@ -180,6 +195,13 @@ class birdyBrowserWindow(Gtk.Window):
|
|||
url = defaultProtocol + "://" + url
|
||||
|
||||
self.set_focus(self.cWebView)
|
||||
|
||||
if not singleProcessMode:
|
||||
self.cWebView.destroy()
|
||||
self.cCreateWebView(False)
|
||||
self.cResizeElements()
|
||||
self.show_all()
|
||||
|
||||
self.cWebView.load_uri(url)
|
||||
|
||||
browserWindows.append(birdyBrowserWindow(False))
|
||||
|
|
Loading…
Reference in New Issue