Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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()