def __init__(self, url, hp, css, *args, **kwargs): super(BrowserTab, self).__init__(*args, **kwargs) self.url = url self.hp = hp self.css = css self.webcontext = WebKit2.WebContext() self.webcontext.register_uri_scheme( "gemini", lambda rq, *args: self._handle_gemini_rq(rq, *args)) self.webcontext.register_uri_scheme( "gemkit-builtin", lambda rq, *args: self._handle_builtin_rq(rq, *args)) # FIXME these don't do anything, but I can't find an unregister API self.webcontext.register_uri_scheme( "http", lambda rq, *args: self._handle_http_rq(rq, *args)) self.webcontext.register_uri_scheme( "https", lambda rq, *args: self._handle_http_rq(rq, *args)) self.webview = WebKit2.WebView.new_with_context(self.webcontext) self.first_link = 0 self.has_input = False self.webview.load_uri(url) self.show() scrolled_window = Gtk.ScrolledWindow() scrolled_window.add(self.webview) self.pack_start(scrolled_window, True, True, 0) scrolled_window.show_all()
def _web_context(self): print("Creating WebContext...") ctx = WebKit2.WebContext( website_data_manager=self._website_data_manager) ctx.set_spell_checking_enabled(False) ctx.set_tls_errors_policy(WebKit2.TLSErrorsPolicy.FAIL) return ctx
def __init__(self, application): self.application = application self.autostart_pref = UlauncherSystemdController() self.settings = Settings.get_instance() self.context = WebKit2.WebContext() self.context.register_uri_scheme('prefs', self.on_scheme_callback) self.context.register_uri_scheme('file2', self.serve_file) self.context.set_cache_model( WebKit2.CacheModel.DOCUMENT_VIEWER) # disable caching
def __init__(self, request_editor): super(ResponseContainer, self).__init__() self.last_response: Optional[requests.Response] = None self.lang_manager = GtkSource.LanguageManager() style_manager = GtkSource.StyleSchemeManager() # scheme: GtkSource.StyleScheme = mgr.get_scheme('classic') scheme: GtkSource.StyleScheme = style_manager.get_scheme('kate') self.response_text.get_buffer().set_style_scheme(scheme) # TODO: Lazy load the web view self.response_webview: WebKit2.WebView = WebKit2.WebView() \ .new_with_context(WebKit2.WebContext().new_ephemeral()) self.response_webview_scroll_window.add(self.response_webview)
def __init__(self): from pathlib import Path self.window.connect('destroy', Gtk.main_quit) self.header_bar.set_title(self.title) self.header_bar.set_subtitle("Browsing for everyone, everytime.") self.header_bar.set_show_close_button(True) self.window.set_size_request(900, 600) self.cookie_context = WebKit2.WebContext() self.cookie_manager = WebKit2.WebContext.get_cookie_manager( self.cookie_context) self.cookie_manager.set_accept_policy( WebKit2.CookieAcceptPolicy.ALWAYS) self.cookie_manager.set_persistent_storage( '{home_dir}/.config/prisma/prismacook.ies'.format( home_dir=Path.home()), WebKit2.CookiePersistentStorage.TEXT) self.webview = WebKit2.WebView.new_with_context(self.cookie_context) if path.exists('/usr/share/pixmaps/prism/homepage/index.html'): self.default_url = 'file:///usr/share/pixmaps/prism/homepage/index.html' if 'file:///' in self.default_url: self.security.set_label('🏠 | Home') elif 'https' in self.default_url: self.security.set_label('🔒 | Home') else: self.security.set_label('🔓 | Home') self.initialize_widgets() self.connect_signals() self.window.set_titlebar(self.header_bar) self.window.show_all()
self.vbox.pack_start(self.sw, True, True, 0) self.add(self.vbox) self.view.load_uri(URI) def on_change_uri(self, widget): new_uri = self.entry_chunk_size.get_text() self.view.load_uri(new_uri) def on_init_web_ext(self): print("{py_webkit2_webextension_minimal_gui] on_init_web_ext") context.set_web_extensions_directory(".") if __name__ == "__main__": # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # The initialization of the web-extensions must be done as soon as possible. # When this program will run, it will scan the local directory '.' for .so files. # Then it will search for the entry point (webkit_web_extension_initialize), # if it exists, the program will attempt to run it. # => check "webkit2_webextension_minimal_so.vala" # context = WebKit2.WebContext().get_default() context.connect("initialize-web-extensions", on_init_web_ext) win = Webkit2_win() win.set_default_size(900, 700) win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main()