Example #1
0
 def setup_websettings(self):
     self.webview.props.full_content_zoom = True
     self.websettings = WebKit.WebSettings()
     self.websettings.props.html5_local_storage_database_path = \
                                 get_or_create_directory(op.join(
                                         GLib.get_user_cache_dir(),
                                         'fogger/%s/db' % self.app.uuid))
     self.websettings.props.enable_accelerated_compositing = True
     self.websettings.props.enable_dns_prefetching = True
     self.websettings.props.enable_fullscreen = True
     self.websettings.props.enable_offline_web_application_cache = True
     self.websettings.props.javascript_can_open_windows_automatically = True
     self.websettings.props.enable_html5_database = True
     self.websettings.props.enable_html5_local_storage = True
     self.websettings.props.enable_hyperlink_auditing = False
     self.websettings.props.enable_file_access_from_file_uris = True
     self.websettings.props.enable_universal_access_from_file_uris = True
     self.websettings.props.enable_site_specific_quirks = True
     self.websettings.props.enable_spell_checking = True
     self.websettings.props.enable_webaudio = True
     self.websettings.props.enable_webgl = True
     self.websettings.props.enable_page_cache = True
     self.websettings.props.enable_plugins = True
     if logger.level == logging.DEBUG:
         self.websettings.props.enable_developer_extras = True
     self.webview.set_settings(self.websettings)
Example #2
0
    def init_gui(self):
        self.vbox = Gtk.VBox()

        #---- set up webkit pane -----#
        self.webview = WebKit.WebView()
        self.webview.connect("navigation-requested",
                             self.navigation_request_cb)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
        scroll.set_shadow_type(Gtk.ShadowType.NONE)
        scroll.add(self.webview)

        # set up webkit settings to match gtk font settings
        self.websettings = WebKit.WebSettings()
        self.webview.set_settings(self.websettings)
        self.apply_font_settings()
        self.webview.connect("style-set", self.style_set_cb)

        #---- pack everything into side pane ----#
        self.buttons = Gtk.HBox(spacing=3)
        self.buttons.set_margin_start(6)
        self.buttons.set_margin_end(6)
        self.vbox.pack_start(self.buttons, False, True, 6)
        self.vbox.pack_start(scroll, True, True, 0)

        self.vbox.show_all()
        self.vbox.set_size_request(200, -1)
        self.shell.add_widget(self.vbox, RB.ShellUILocation.RIGHT_SIDEBAR,
                              True, True)
Example #3
0
    def setup_websettings(self):
        self.webview.props.full_content_zoom = True
        self.websettings = WebKit.WebSettings()
        self.websettings.props.html5_local_storage_database_path = \
                                    get_or_create_directory(op.join(
                                            GLib.get_user_cache_dir(),
                                            'fogger/%s/db' % self.app.uuid))
        self.websettings.props.enable_accelerated_compositing = True
        self.websettings.props.enable_dns_prefetching = True
        self.websettings.props.enable_fullscreen = True
        self.websettings.props.enable_offline_web_application_cache = True
        self.websettings.props.javascript_can_open_windows_automatically = True
        self.websettings.props.enable_html5_database = True
        self.websettings.props.enable_html5_local_storage = True
        self.websettings.props.enable_hyperlink_auditing = False
        self.websettings.props.enable_file_access_from_file_uris = True
        self.websettings.props.enable_universal_access_from_file_uris = True
        self.websettings.props.enable_site_specific_quirks = True
        self.websettings.props.enable_spell_checking = True
        self.websettings.props.enable_webaudio = True
        self.websettings.props.enable_webgl = True
        self.websettings.props.enable_page_cache = True
        self.websettings.props.enable_plugins = True
        if logger.level == logging.DEBUG:
            self.websettings.props.enable_developer_extras = True

        # Change user-agent if USERAGENT environment variable is present.
        # e.g. add to launcher :
        # Exec=/usr/bin/env USERAGENT="iPad" /opt/extras.ubuntu.com/fogger/bin/fogger uuid
        useragent = os.getenv('USERAGENT')
        if useragent:
            self.websettings.set_property('user-agent', useragent)

        self.webview.set_settings(self.websettings)
Example #4
0
    def init_view(self):
        settings = WebKit.WebSettings()
        for setting in self.webkit_settings:
            settings.set_property(*setting)
        
        dimensions = self.load_config()
        
        self.view = WebKit.WebView()
        self.view.set_settings(settings)
        
        self.sw = Gtk.ScrolledWindow()
        self.sw.add(self.view)

        self.win = Gtk.Window()
        self.win.set_size_request(self.min_width, self.min_height)
        self.win.resize(dimensions['w'], dimensions['h'])
        self.win.move(dimensions['x'], dimensions['y'])
        self.win.add(self.sw)
        self.win.set_title("Wasabi Twitter")
        self.win.connect("destroy", Gtk.main_quit)
        self.win.connect("configure-event", self.window_resized)
        self.win.show_all()

        #self.view.connect("navigation-requested", self.on_nav_req)
        self.view.connect("new-window-policy-decision-requested", self.open_external_link)
        self.view.connect("navigation-policy-decision-requested", self.open_link)
        GLib.timeout_add_seconds(self.refresh_time, self.fetch_tweets, self.view, self.sw)
        
        self.view.load_string(self.full_content, "text/html", "UTF-8", "wasabi://home")
        
        Gtk.main()
Example #5
0
    def __init__(self, application, **kwargs):
        #print(self.game_list)
        self.lutris = application

        window = Gtk.Window()
        window.set_size_request(800, 600)

        # webkit (see use of webkit, cause this use jdk with alot dependencies)
        webView = WebKit.WebView()
        webView.connect("load-finished", self.on_load_finished)
        webView.connect("navigation-requested", self.on_navigation_requested)
        webView.open('' + os.path.join(datapath.get(), 'xmb', 'index.html'))

        settings = WebKit.WebSettings()
        settings.set_property('enable-default-context-menu', False)
        settings.set_property('enable-file-access-from-file-uris', True)
        webView.set_settings(settings)

        # to close window correct
        window.connect("destroy", self.on_quit)

        # scroll
        scrolls = Gtk.ScrolledWindow()
        scrolls.add(webView)

        # add webkit and start window
        #window.fullscreen()
        window.add(scrolls)
        window.show_all()
        Gtk.main()
Example #6
0
 def on_styles_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     styles_img = self.styles_img.get_stock()
     if styles_img.stock_id == "gtk-yes":
         self.styles_img.set_from_stock("gtk-no", 4)
         self.styles = "OFF"
         settings.set_property('enable-frame-flattening', 'True')
         settings.set_property('enable-fullscreen', 'True')
         settings.set_property('enable-html5-database', 'True')
         settings.set_property('enable-html5-local-storage', 'True')
         settings.set_property('enable-hyperlink-auditing', 'True')
         settings.set_property('media-playback-allows-inline', 'True')
         settings.set_property('media-playback-requires-user-gesture',
                               'True')
         settings.set_property('auto-load-images', 'True')
         settings.set_property('enable-caret-browsing', 'True')
         settings.set_property('enable-site-specific-quirks', 'True')
         settings.set_property('enable-smooth-scrolling', 'True')
     else:
         self.styles_img.set_from_stock("gtk-yes", 4)
         self.styles = "ON"
         settings.set_property('enable-frame-flattening', 'False')
         settings.set_property('enable-fullscreen', 'False')
         settings.set_property('enable-html5-database', 'False')
         settings.set_property('enable-html5-local-storage', 'False')
         settings.set_property('enable-hyperlink-auditing', 'False')
         settings.set_property('media-playback-allows-inline', 'False')
         settings.set_property('media-playback-requires-user-gesture',
                               'False')
         settings.set_property('auto-load-images', 'False')
         settings.set_property('enable-caret-browsing', 'False')
         settings.set_property('enable-site-specific-quirks', 'False')
         settings.set_property('enable-smooth-scrolling', 'False')
     self.webview.set_settings(settings)
     self.refresh_website()
Example #7
0
    def __init__(self):
        # Create window
        self.window = gtk.Window()
        self.window.set_icon_from_file(settings['icon'])
        self.window.connect('destroy', lambda w: gtk.main_quit())
        self.window.set_default_size(settings['window_width'],
                                     settings['window_height'])

        # Create navigation bar
        self.nav = gtk.HBox()

        self.back = gtk.ToolButton(gtk.STOCK_GO_BACK)
        self.forward = gtk.ToolButton(gtk.STOCK_GO_FORWARD)
        self.refresh = gtk.ToolButton(gtk.STOCK_REFRESH)
        self.address_bar = gtk.Entry()

        self.back.connect('clicked', self.go_back)
        self.forward.connect('clicked', self.go_forward)
        self.refresh.connect('clicked', self.refresh_page)
        self.address_bar.connect('activate', self.load_page)

        # Buttons and url-field
        self.nav.pack_start(self.back, expand=False, fill=False, padding=0)
        self.nav.pack_start(self.forward, expand=False, fill=False, padding=0)
        self.nav.pack_start(self.refresh, expand=False, fill=False, padding=0)
        self.nav.pack_start(self.address_bar,
                            expand=True,
                            fill=True,
                            padding=5)

        # Create view for webpage
        self.view = gtk.ScrolledWindow()
        self.wv = webkit.WebView()

        # Webview settings
        wvs = webkit.WebSettings()
        wvs.set_property('user-agent', settings['ua'])

        self.wv.set_settings(wvs)
        self.wv.open(settings['start_url'])
        self.wv.connect('title-changed', self.change_title)
        self.wv.connect('load-committed', self.change_url)
        self.view.add(self.wv)

        # Add everything and initialize
        self.container = gtk.VBox()
        if settings['enable_nav'] == "true":
            self.container.pack_start(self.nav,
                                      expand=False,
                                      fill=False,
                                      padding=0)
        self.container.pack_start(self.view, expand=True, fill=True, padding=0)

        self.window.add(self.container)
        self.window.show_all()
        gtk.main()
Example #8
0
 def on_dns_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     dns_img = self.dns_img.get_stock()
     if dns_img.stock_id == "gtk-yes":
         self.dns_img.set_from_stock("gtk-no", 4)
         self.dns_prefetching = "OFF"
         settings.set_property('enable-dns-prefetching', 'False')
     else:
         self.dns_img.set_from_stock("gtk-yes", 4)
         self.dns_prefetching = "ON"
         settings.set_property('enable-dns-prefetching', 'True')
     self.webview.set_settings(settings)
Example #9
0
    def __init__(self):

        Gtk.ScrolledWindow.__init__(self)

        self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.webview = WebKit.WebView()
        self.webview.set_settings(WebKit.WebSettings())
        self.webview.set_zoom_level(0.8)
        self.add(self.webview)
        self.show_all()

        self.webview.connect("title-changed", self.__title_changed)
Example #10
0
    def __init__(self, coding='utf-8'):
        Gtk.VBox.__init__(self, False)

        self.coding = coding
        self.uri = 'file://' + os.path.dirname(__file__)

        self.settings = WebKit.WebSettings()

        self.settings.set_property('enable-default-context-menu', False)
        self.settings.set_property('enable-developer-extras', True)
        self.settings.set_property('enable-plugins', True)
        self.settings.set_property('enable-java_applet', False)
        self.settings.set_property('enable-page-cache', True)
        self.settings.set_property('enable-file-access-from-file-uris', True)
        self.settings.set_property('enable-offline-web-application_cache',
                                   False)
        self.settings.set_property('enable-html5-local-storage', False)
        self.settings.set_property('enable-html5-database', False)
        self.settings.set_property('enable-xss-auditor', False)
        try:
            self.settings.set_property('enable-dns-prefetching', False)
        except TypeError:
            pass
        self.settings.set_property('enable-caret-browsing', False)
        self.settings.set_property('resizable-text-areas', False)
        self.settings.web_security_enabled = False

        try:
            self.settings.set_property('enable-accelerated-compositing', True)
        except TypeError:
            print "No support for accelerated compositing"

        self.view = WebKit.WebView()
        self.view.set_settings(self.settings)

        #Added new properties in this way cause 'from' is recognized as a key word
        self.view.get_settings().set_property(
            'enable-universal-access-from-file-uris', True)

        self.view.connect('load-started', self.__started)
        self.view.connect('load-finished', self.__finished)
        self.view.connect('console-message', self.__console_message)
        self.view.connect('navigation-policy-decision-requested',
                          self.__process)
        self.view.connect('new-window-policy-decision-requested',
                          self.__on_new_window_requested)

        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
        scroll.set_shadow_type(Gtk.ShadowType.IN)
        scroll.add(self.view)

        self.pack_start(scroll, True, True, 0)
Example #11
0
 def on_webaudio_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     webaudio_img = self.webaudio_img.get_stock()
     if webaudio_img.stock_id == "gtk-yes":
         self.webaudio_img.set_from_stock("gtk-no", 4)
         self.webaudio = "OFF"
         settings.set_property("enable-webaudio", 'False')
     else:
         self.webaudio_img.set_from_stock("gtk-yes", 4)
         self.webaudio = "ON"
         settings.set_property("enable-webaudio", 'True')
     self.webview.set_settings(settings)
     self.refresh_website()
Example #12
0
 def __init__(self, config):
     self.config = config
     self.user_agent = WebKit.WebSettings.get_user_agent(
         WebKit.WebSettings())
     if self.config["proxy"] != None:
         self.proxies = {
             'http': self.config["proxy"],
             'https': self.config["proxy"]
         }
         self.proxy = urllib2.ProxyHandler(self.proxies)
     else:
         self.proxy = None
     self.urls = []
Example #13
0
 def start_inspector(self):
     view = self.webview
     self.webview = WebKit.WebView()
     settings = WebKit.WebSettings()
     settings.set_property('enable-developer-extras', True)
     view.set_settings(settings)
     self.inspector = view.get_inspector()
     self.inspector.connect("inspect-web-view", self.inspect)
     self.webview = WebKit.WebView()
     self.scrolledwindowinspector.add(self.webview)
     self.scrolledwindowinspector.show()
     self.source_code_text_view.hide()
     self.main_view_box_foot.show()
Example #14
0
    def on_xss_button_press_event(self, widget):
        settings = WebKit.WebSettings()
        xss_img = self.xss_img.get_stock()
        if xss_img.stock_id == "gtk-yes":
            self.xss_img.set_from_stock("gtk-no", 4)
            self.xss = "OFF"
            settings.set_property('enable-xss-auditor', 'False')

        else:
            self.xss_img.set_from_stock("gtk-yes", 4)
            self.xss = "ON"
            settings.set_property('enable-xss-auditor', 'True')
        self.webview.set_settings(settings)
        self.refresh_website()
Example #15
0
 def on_logs_img_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     logs_img = self.logs_img.get_stock()
     if logs_img.stock_id == "gtk-no":
         self.logs_img.set_from_stock("gtk-yes", 4)
         self.logs_mode = "OFF"  # set logging mode to: OFF
         settings.set_property('enable-private-browsing', 'True')
         self.main_view_box_left.hide()
     else:
         self.logs_img.set_from_stock("gtk-no", 4)
         self.logs_mode = "ON"  # set logging mode to: ON
         settings.set_property('enable-private-browsing', 'False')
         self.main_view_box_left.show()
     self.webview.set_settings(settings)
Example #16
0
 def on_navigation_mode_img_button_press_event(self, widget):
     navigation_img = self.navigation_mode_img.get_stock()
     if navigation_img.stock_id == "gtk-orientation-landscape":
         self.navigation_mode_img.set_from_stock("gtk-find-and-replace", 4)
         self.navigation_mode = "INSPECTOR"  # set navigation mode to: INSPECTOR
         self.start_inspector()
     else:
         self.navigation_mode_img.set_from_stock(
             "gtk-orientation-landscape", 4)
         self.navigation_mode = "EXPLORER"  # set navigation mode to: EXPLORER
         settings = WebKit.WebSettings()
         settings.set_property('enable-developer-extras', False)
         self.webview.set_settings(settings)
         self.main_view_box_foot.hide()
     self.set_referer()  # set referer according to Navigation mode
Example #17
0
 def on_java_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     java_img = self.java_img.get_stock()
     if java_img.stock_id == "gtk-yes":
         self.java_img.set_from_stock("gtk-no", 4)
         self.java = "OFF"
         self.flash = "OFF"
         settings.set_property("enable-java-applet", 'False')
     else:
         self.java_img.set_from_stock("gtk-yes", 4)
         self.java = "ON"
         self.flash = "ON"
         settings.set_property("enable-java-applet", 'True')
     self.webview.set_settings(settings)
     self.refresh_website()
Example #18
0
 def __init__(self):
     super().__init__()
     self.settings = WebKit.WebSettings()
     self.settings.set_property('auto-shrink-images', True)
     self.settings.set_property('default-font-family', 'Kelson Sans')
     self.settings.set_property('default-font-size', 30)
     self.view = WebKit.WebView()
     self.view.set_settings(self.settings)
     with open(dirs.get_blog_css_path()) as f:
         self.css = f.read()
     self.container = Gtk.ScrolledWindow()
     self.v_adj = self.container.get_vadjustment()
     self.container.add(self.view)
     self.view_actor = GtkClutter.Actor.new_with_contents(self.container)
     self.add_child(self.view_actor)
     self.view.connect("document-load-finished", self._reload)
    def __init__(self):

        Gtk.Notebook.__init__(self)

        self.set_tab_pos(Gtk.PositionType.RIGHT)

        self.set_scrollable(True)

        label = Gtk.Label("Web Doc")
        label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000'))
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.webview = WebKit.WebView()
        self.webview.set_settings(WebKit.WebSettings())
        self.webview.set_zoom_level(0.5)
        #buffer.set_text("%s-%s" % (paquete, modulo))
        scroll.add(self.webview)
        self.append_page(scroll, label)

        label = Gtk.Label("__gdoc__")
        label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000'))
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.gdoc = Gtk.TextView()
        self.gdoc.set_editable(False)
        self.gdoc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
        #buffer.set_text("%s-%s" % (paquete, modulo))
        scroll.add(self.gdoc)
        self.append_page(scroll, label)

        label = Gtk.Label("__doc__")
        label.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse('#000000'))
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.doc = Gtk.TextView()
        self.doc.set_editable(False)
        self.doc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
        #buffer.set_text("%s-%s" % (paquete, modulo))
        scroll.add(self.doc)
        self.append_page(scroll, label)

        self.show_all()
Example #20
0
    def __init__(self, owner):
        Gtk.VBox.__init__(self)

        view = WebKit.WebView()
        view.set_transparent(True)
        # Eventually need to open a local changes file from real location
        lines = None
        base_uri = "file:///usr/share/os-installer/changes/"
        with open("%s/changes/index.html" % RESOURCE_DIR, "r") as html:
            lines = "\n".join(html.readlines())

        view.load_html_string(lines, base_uri)

        settings = WebKit.WebSettings()
        settings.set_property("enable_file_access_from_file_uris", True)
        view.set_settings(settings)
        self.title = Gtk.Label(
            "<span font=\"20.5\" color=\"#82807b\">%s</span>" % _("Changes"))
        self.title.set_use_markup(True)

        self.image = Gtk.Image()
        self.image.set_from_icon_name("learnmore-symbolic",
                                      Gtk.IconSize.DIALOG)
        self.image.set_padding(10, 10)

        header = Gtk.HBox()
        header.pack_start(self.image, False, False, 0)
        header.pack_start(self.title, False, False, 0)
        self.pack_start(header, False, False, 3)

        # We need a way to go back to the main window.. :)
        self.back = Gtk.Button()
        back_image = Gtk.Image()
        back_image.set_from_icon_name("go-home-symbolic", Gtk.IconSize.BUTTON)
        self.back.set_image(back_image)
        self.back.set_relief(Gtk.ReliefStyle.NONE)
        self.back.connect("clicked", lambda x: owner.go_home())

        header.pack_end(self.back, False, False, 0)

        scroller = Gtk.ScrolledWindow(None, None)
        scroller.add(view)
        scroller.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
        self.pack_start(scroller, True, True, 0)
Example #21
0
    def on_cache_button_press_event(self, widget):
        settings = WebKit.WebSettings()
        cache_img = self.cache_img.get_stock()
        if cache_img.stock_id == "gtk-yes":
            self.cache_img.set_from_stock("gtk-no", 4)
            self.cache = "OFF"

            settings.set_property('enable-page-cache', 'True')
            settings.set_property('enable-offline-web-application-cache',
                                  'True')

        else:
            self.cache_img.set_from_stock("gtk-yes", 4)
            self.cache = "ON"
            settings.set_property('enable-page-cache', 'False')
            settings.set_property('enable-offline-web-application-cache',
                                  'False')
        self.webview.set_settings(settings)
        self.refresh_website()
Example #22
0
 def on_javascript_button_press_event(self, widget):
     settings = WebKit.WebSettings()
     javascript_img = self.javascript_img.get_stock()
     if javascript_img.stock_id == "gtk-yes":
         self.javascript_img.set_from_stock("gtk-no", 4)
         self.javascript = "OFF"
         settings.set_property('enable-scripts', 'False')
         settings.set_property('javascript-can-access-clipboard', 'False')
         settings.set_property('javascript-can-open-windows-automatically',
                               'False')
     else:
         self.javascript_img.set_from_stock("gtk-yes", 4)
         self.javascript = "ON"
         settings.set_property('enable-scripts', 'True')
         settings.set_property('javascript-can-access-clipboard', 'False')
         settings.set_property('javascript-can-open-windows-automatically',
                               'True')
     self.webview.set_settings(settings)
     self.refresh_website()
Example #23
0
    def create_widgets(self):
        vbox = Gtk.Box(spacing=2, orientation=Gtk.Orientation.VERTICAL)

        self.webview = WebKit.WebView()

        settings = WebKit.WebSettings()
        settings.set_property(
            'user-agent',
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36'
        )  # Hack for loading the youtube player in older webkit versions!
        self.webview.set_settings(settings)

        scrolledWindow = Gtk.ScrolledWindow()
        scrolledWindow.add(self.webview)
        vbox.pack_start(scrolledWindow, True, True, 1)

        self.statusbar = Gtk.Statusbar()
        vbox.pack_start(self.statusbar, False, False, 1)

        self.add(vbox)
Example #24
0
 def set_browser_settings(self):
     settings = WebKit.WebSettings()
     settings.set_property('enable-frame-flattening', 'False')
     settings.set_property('enable-fullscreen', 'False')
     settings.set_property('enable-html5-database', 'False')
     settings.set_property('enable-html5-local-storage', 'False')
     settings.set_property('enable-hyperlink-auditing', 'False')
     settings.set_property('media-playback-allows-inline', 'False')
     settings.set_property('media-playback-requires-user-gesture', 'False')
     settings.set_property('auto-load-images', 'False')
     settings.set_property('enable-caret-browsing', 'False')
     settings.set_property('enable-site-specific-quirks', 'False')
     settings.set_property('enable-smooth-scrolling', 'False')
     settings.set_property('print-backgrounds', 'False')
     settings.set_property('enable-dns-prefetching', 'True')
     settings.set_property('enable-scripts', 'False')  # javascript
     settings.set_property('javascript-can-access-clipboard', 'False')
     settings.set_property('javascript-can-open-windows-automatically',
                           'False')
     settings.set_property("enable-java-applet", 'False')
     settings.set_property('enable-offline-web-application-cache', 'False')
     settings.set_property('enable-page-cache', 'False')
     settings.set_property('enable-private-browsing', 'True')
     settings.set_property('enable-webaudio', 'False')
     settings.set_property('enable-webgl', 'False')
     settings.set_property('enable-xss-auditor', 'True')
     settings.set_property('enable-page-cache', 'False')
     settings.set_property('enable-offline-web-application-cache', 'False')
     settings.set_property("enable-file-access-from-file-uris",
                           "False")  # hack.it! >;-)
     #settings.set_property('allow-modal-dialogs', 'False')
     #settings.set_property('enable-write-console-messages-to-stdout', 'False')
     #settings.set_property('draw-compositing-indicators', 'False')
     #settings.set_property('enable-accelerated-2d-canvas', 'False')
     #settings.set_property('enable-resizable-text-areas', 'False')
     #settings.set_property('enable-tabs-to-links', 'False')
     #settings.set_property('load-icons-ignoring-image-load-setting', 'False')
     self.webview.set_settings(settings)
     self.ipData = pygeoip.GeoIP(self.geodb)  # load geodb
Example #25
0
    def __init__(self, *args, **kwargs):
        # TODO: Change to DOCUMENT_VIEWER after we start caching remote
        # resources at item processing stage
        WebKit.set_cache_model(WebKit.CacheModel.DOCUMENT_BROWSER)
        WebKit.get_default_session().set_property('max-conns-per-host', 8)

        settings = WebKit.WebSettings()
        settings.set_properties(
            **{
                # These three saves us ~25MiB of residental memory
                'enable_scripts': False,
                'enable_plugins': False,
                'enable_java_applet': False,
                # We already have most files cached and load locally
                'enable_page_cache': False,
                'enable_dns_prefetching': False,
                'enable_private_browsing': True,
                # We don't use any of these features
                'enable_html5_database': False,
                'enable_html5_local_storage': False,
                'enable_offline_web_application_cache': False,
                'enable_xss_auditor': False,
                'resizable_text_areas': False,
                # Need this one of usability reasons.
                'enable_default_context_menu': False,
                # Enable in case developer tools are needed
                'enable_developer_extras': arguments.devtools
            })
        super(ItemView, self).__init__(*args, settings=settings, **kwargs)

        self.connect('show', self.on_show)
        self.connect('style-updated', self.on_style)
        self.connect('notify::item-id', self.on_item_change)
        self.connect('console-message', self.on_console_message)
        self.connect('context-menu', self.on_ctx_menu)

        # Load base template
        template_path = get_data_path('ui', 'feedview', 'template.html')
        self.load_uri('file://' + template_path)
Example #26
0
    def __init__(self):

        Gtk.Notebook.__init__(self)

        self.set_tab_pos(Gtk.PositionType.RIGHT)

        self.set_scrollable(True)

        label = Gtk.Label("Web Doc")
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.webview = WebKit.WebView()
        self.webview.set_settings(WebKit.WebSettings())
        self.webview.set_zoom_level(0.8)
        scroll.add(self.webview)
        self.append_page(scroll, label)

        label = Gtk.Label("__gdoc__")
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.gdoc = Gtk.TextView()
        self.gdoc.set_editable(False)
        self.gdoc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
        scroll.add(self.gdoc)
        self.append_page(scroll, label)

        label = Gtk.Label("__doc__")
        label.set_angle(-90)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.doc = Gtk.TextView()
        self.doc.set_editable(False)
        self.doc.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
        scroll.add(self.doc)
        self.append_page(scroll, label)

        self.show_all()
Example #27
0
    def addtab(self,
               widget=None,
               dummy=None,
               dummier=None,
               dummiest=None,
               openurl="http://google.com/"):
        self.web_view.append(webkit.WebView())
        self.websettings.append(webkit.WebSettings())
        # to set user agent, uncomment
        #self.websettings[len(self.websettings)-1].set_property('user-agent', 'iPad')
        # to enable, disable javascript
        self.websettings[len(self.websettings) - 1].set_property(
            'enable-scripts', False)
        # to enable, disable webgl
        self.websettings[len(self.websettings) - 1].set_property(
            "enable-webgl", True)

        self.web_view[len(self.web_view) - 1].set_settings(
            self.websettings[len(self.websettings) - 1])

        self.web_view[len(self.web_view) - 1].open(openurl)

        self.back_button.append(gtk.ToolButton(gtk.STOCK_GO_BACK))
        self.back_button[len(self.back_button) - 1].connect(
            "clicked", self.go_back)

        self.forward_button.append(gtk.ToolButton(gtk.STOCK_GO_FORWARD))
        self.forward_button[len(self.forward_button) - 1].connect(
            "clicked", self.go_forward)

        self.refresh_button.append(gtk.ToolButton(gtk.STOCK_REFRESH))
        self.refresh_button[len(self.refresh_button) - 1].connect(
            "clicked", self.refresh)

        self.url_bar.append(gtk.Entry())
        self.url_bar[len(self.url_bar) - 1].connect("activate", self.on_active)

        # enable (green), disable (red) javascript
        self.jsbutton.append(gtk.Button('js'))
        self.jsbutton[len(self.jsbutton) - 1].connect("activate",
                                                      self.toggle_js)
        self.jsbutton[len(self.jsbutton) - 1].connect("clicked",
                                                      self.toggle_js)
        self.jsbutton[len(self.jsbutton) - 1].modify_bg(
            gtk.StateType.NORMAL, Gdk.color_parse("red"))

        self.etcbutton.append(gtk.Button('Prefs'))
        self.historybutton.append(gtk.Button('Hist'))
        self.historybutton[len(self.historybutton) - 1].connect(
            "activate", self.historytab)
        self.historybutton[len(self.historybutton) - 1].connect(
            "clicked", self.historytab)
        self.etcbutton[len(self.etcbutton) - 1].connect(
            "activate", self.show_prefs)
        self.etcbutton[len(self.etcbutton) - 1].connect(
            "clicked", self.show_prefs)
        self.newtab.append(gtk.Button('+'))
        self.newtab[len(self.newtab) - 1].connect("activate", self.addtab)
        self.newtab[len(self.newtab) - 1].connect("clicked", self.addtab)
        self.closetab.append(gtk.Button('X'))
        self.closetab[len(self.closetab) - 1].connect("activate",
                                                      self.removetab)
        self.closetab[len(self.closetab) - 1].connect("clicked",
                                                      self.removetab)

        self.web_view[len(self.web_view) - 1].connect("load_committed",
                                                      self.update_buttons)
        self.web_view[len(self.web_view) - 1].connect("load_finished",
                                                      self.set_tab_title)
        self.web_view[len(self.web_view) - 1].connect("download_requested",
                                                      self.download)

        self.scroll_window.append(gtk.ScrolledWindow(None, None))
        self.scroll_window[len(self.scroll_window) - 1].add(
            self.web_view[len(self.web_view) - 1])
        self.scroll_window[len(self.scroll_window) - 1].set_policy(
            gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)

        self.hbox.append(gtk.HBox(False, 0))
        self.vbox.append(gtk.VBox(False, 0))
        self.mainbox = gtk.VBox(False, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.back_button[len(self.back_button) - 1], False, True, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.forward_button[len(self.forward_button) - 1], False, True, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.refresh_button[len(self.refresh_button) - 1], False, True, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.newtab[len(self.newtab) - 1], False, True, 3)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.closetab[len(self.closetab) - 1], False, True, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.url_bar[len(self.url_bar) - 1], True, True, 3)

        self.hbox[len(self.hbox) - 1].pack_start(
            self.jsbutton[len(self.jsbutton) - 1], False, True, 0)

        self.hbox[len(self.hbox) - 1].pack_start(
            self.historybutton[len(self.historybutton) - 1], False, True, 0)
        self.hbox[len(self.hbox) - 1].pack_start(
            self.etcbutton[len(self.etcbutton) - 1], False, True, 0)
        self.vbox[len(self.vbox) - 1].pack_start(self.hbox[len(self.hbox) - 1],
                                                 False, True, 0)
        self.vbox[len(self.vbox) - 1].pack_start(
            self.scroll_window[len(self.scroll_window) - 1], True, True, 0)
        self.tabbook.append_page(self.vbox[len(self.vbox) - 1])
        self.tabbook.show_all()
        self.tabbook.set_current_page(len(self.vbox) - 1 + self.n)
Example #28
0
 def set_navigation_settings(self):
     settings = WebKit.WebSettings()
     settings.set_property('user-agent',
                           self.useragent.get_text())  # set User-agent
     self.webview.set_settings(settings)
     self.refresh_website()
Example #29
0
    def __init__(self, collection_type, window, builder, onActivate=None):
        self.collection_type = collection_type
        self.cache_folder = self.get_cache_folder()
        self.install_folder = self.get_install_folder()
        self.index_cache = {}
        
        if not os.path.exists(os.path.join(self.cache_folder, "index.json")):
            self.has_cache = False
        else:
            self.has_cache = True
        
        self.window = window
        self.builder = builder
        self.onActivate = onActivate

        self.progress_window = self.builder.get_object("progress_window")
        self.progress_button_close = self.builder.get_object("btnProgressClose")
        self.progress_button_activate = self.builder.get_object("btnProgressActivate")
        self.progress_button_abort = self.builder.get_object("btnProgressAbort")

        self.progresslabel = self.builder.get_object('progresslabel')
        self.progressbar = self.builder.get_object("progressbar")
        self.progressbar.set_text(_(''))
        self.progressbar.set_fraction(0)

        self.progress_window.set_title("")

        self.abort_download = False
        self.download_total_files = 0
        self.download_current_file = 0
        self._sigLoadFinished = None

        self.progress_button_activate.connect("clicked", lambda x: self.on_activate_clicked())
        self.progress_button_abort.connect("clicked", self.on_abort_clicked)
        self.progress_button_close.connect("clicked", self.on_progress_close)

        self.spiceDetail = Gtk.Dialog(_("Applet info"),
                            self.window,
                            Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT)
        self.spiceDetailSelectButton = self.spiceDetail.add_button(_("Select and Close"), Gtk.ResponseType.YES)
        self.spiceDetailSelectButton.connect("clicked", lambda x: self.close_select_detail())
        self.spiceDetailCloseButton = self.spiceDetail.add_button(_("Close"), Gtk.ResponseType.CANCEL)
        self.spiceDetailCloseButton.connect("clicked", lambda x: self.close_detail())
        self.spiceDetail.connect("destroy", self.on_close_detail)
        self.spiceDetail.connect("delete_event", self.on_close_detail)
        self.spiceDetail.set_default_size(640, 440)
        self.spiceDetail.set_size_request(640, 440)
        content_area = self.spiceDetail.get_content_area()

        if self.get_webkit_enabled():
            self.browser = WebKit.WebView()
            
            self.browser.connect('button-press-event', lambda w, e: e.button == 3)
            self.browser.connect('title-changed', self.browser_title_changed)
            self.browser.connect('console-message' , self.browser_console_message)
        
            settings = WebKit.WebSettings()
            settings.set_property('enable-xss-auditor', False)
            settings.set_property('enable-file-access-from-file-uris', True)
            settings.set_property('enable-accelerated-compositing', True)
            self.browser.set_settings(settings)

            scrolled_window = Gtk.ScrolledWindow()
            scrolled_window.set_shadow_type(Gtk.ShadowType.NONE)
            scrolled_window.set_border_width(0)
            scrolled_window.add(self.browser)
            content_area.pack_start(scrolled_window, True, True, 0)
            scrolled_window.show()

        if not callable(self.onActivate):
            self.progress_button_activate.hide()
Example #30
0
    def init_gui(self):
        self.vbox = Gtk.VBox()
        frame = Gtk.Frame()
        self.label = Gtk.Label(_('Nothing Playing'))
        frame.set_shadow_type(Gtk.ShadowType.IN)
        frame.set_label_align(0.0, 0.0)
        frame.set_label_widget(self.label)
        self.label.set_use_markup(True)
        self.label.set_padding(0, 4)

        #----- set up top 5 tree view -----#
        self.top_five_list = Gtk.ListStore(gobject.TYPE_STRING,
                                           gobject.TYPE_STRING)
        top_five_view = Gtk.TreeView.new_with_model(self.top_five_list)

        top_five_tvc1 = Gtk.TreeViewColumn()
        top_five_tvc2 = Gtk.TreeViewColumn()

        top_five_view.append_column(top_five_tvc1)
        top_five_view.append_column(top_five_tvc2)

        crt = Gtk.CellRendererText()

        top_five_tvc1.pack_start(crt, True)
        top_five_tvc2.pack_start(crt, True)

        top_five_tvc1.add_attribute(crt, 'text', 0)
        top_five_tvc2.add_attribute(crt, 'text', 1)

        top_five_view.set_headers_visible(False)
        frame.add(top_five_view)

        #---- set up webkit pane -----#
        self.webview = WebKit.WebView()
        self.webview.connect("navigation-requested",
                             self.navigation_request_cb)
        scroll = Gtk.ScrolledWindow()
        scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
        scroll.set_shadow_type(Gtk.ShadowType.IN)
        scroll.add(self.webview)

        # set up webkit settings to match gtk font settings
        self.websettings = WebKit.WebSettings()
        self.webview.set_settings(self.websettings)
        self.apply_font_settings()
        self.webview.connect("style-set", self.style_set_cb)

        #----- set up button group -----#
        vbox2 = Gtk.VBox()
        self.buttons = Gtk.HBox()

        #---- pack everything into side pane ----#
        self.vbox.pack_start(frame, False, True, 0)
        vbox2.pack_start(self.buttons, False, True, 0)
        vbox2.pack_start(scroll, True, True, 0)
        self.vbox.pack_start(vbox2, True, True, 0)

        self.vbox.show_all()
        self.vbox.set_size_request(200, -1)
        self.shell.add_widget(self.vbox, RB.ShellUILocation.RIGHT_SIDEBAR,
                              True, True)