diff -r ea8f13f76d26 -r 09f38f85a3af WebBrowser/WebBrowserPage.py --- a/WebBrowser/WebBrowserPage.py Mon Mar 28 16:34:22 2016 +0200 +++ b/WebBrowser/WebBrowserPage.py Mon Mar 28 17:04:18 2016 +0200 @@ -40,12 +40,12 @@ import Preferences import UI.PixmapCache import Globals - -try: - from PyQt5.QtNetwork import QSslCertificate - SSL_AVAILABLE = True -except ImportError: - SSL_AVAILABLE = False +## +##try: +## from PyQt5.QtNetwork import QSslCertificate +## SSL_AVAILABLE = True +##except ImportError: +## SSL_AVAILABLE = False class WebBrowserPage(QWebEnginePage): @@ -77,8 +77,8 @@ ## self.__proxy.setPrimaryNetworkAccessManager( ## WebBrowserWindow.networkManager()) ## self.setNetworkAccessManager(self.__proxy) - - self.__sslConfiguration = None +## +## self.__sslConfiguration = None ## self.__proxy.finished.connect(self.__managerFinished) ## ## self.__adBlockedEntries = [] @@ -389,122 +389,32 @@ ## agent = QWebPage.userAgentForUrl(self, url) ## return agent ## - # TODO: SSL -## def __managerFinished(self, reply): -## """ -## Private slot to handle a finished reply. -## -## This slot is used to get SSL related information for a reply. -## -## @param reply reference to the finished reply (QNetworkReply) +## def hasValidSslInfo(self): ## """ -## try: -## frame = reply.request().originatingObject() -## except AttributeError: -## frame = None -## -## mainFrameRequest = frame == self.mainFrame() -## -## if mainFrameRequest and \ -## self.__sslConfiguration is not None and \ -## reply.url() == self.mainFrame().url(): -## self.__sslConfiguration = None +## Public method to check, if the page has a valid SSL certificate. ## -## if reply.error() == QNetworkReply.NoError and \ -## mainFrameRequest and \ -## self.__sslConfiguration is None and \ -## reply.url().scheme().lower() == "https" and \ -## reply.url() == self.mainFrame().url(): -## self.__sslConfiguration = reply.sslConfiguration() -## self.__sslConfiguration.url = QUrl(reply.url()) -## -## if reply.error() == QNetworkReply.NoError and \ -## mainFrameRequest and \ -## reply.url() == self.mainFrame().url(): -## modified = reply.header(QNetworkRequest.LastModifiedHeader) -## if modified and modified.isValid(): -## manager = WebBrowserWindow.bookmarksManager() -## from .Bookmarks.BookmarkNode import BookmarkNode -## for bookmark in manager.bookmarksForUrl(reply.url()): -## manager.setTimestamp(bookmark, BookmarkNode.TsModified, -## modified) - -## def getSslCertificate(self): -## """ -## Public method to get a reference to the SSL certificate. -## -## @return amended SSL certificate (QSslCertificate) +## @return flag indicating a valid SSL certificate (boolean) ## """ ## if self.__sslConfiguration is None: -## return None -## -## sslInfo = self.__sslConfiguration.peerCertificate() -## sslInfo.url = QUrl(self.__sslConfiguration.url) -## return sslInfo -## -## def getSslCertificateChain(self): -## """ -## Public method to get a reference to the SSL certificate chain. -## -## @return SSL certificate chain (list of QSslCertificate) -## """ -## if self.__sslConfiguration is None: -## return [] +## return False ## -## chain = self.__sslConfiguration.peerCertificateChain() -## return chain -## -## def getSslConfiguration(self): -## """ -## Public method to return a reference to the current SSL configuration. -## -## @return reference to the SSL configuration in use (QSslConfiguration) -## """ -## return self.__sslConfiguration -## -## def showSslInfo(self, pos): -## """ -## Public slot to show some SSL information for the loaded page. +## certList = self.__sslConfiguration.peerCertificateChain() +## if not certList: +## return False ## -## @param pos position to show the info at (QPoint) -## """ -## if SSL_AVAILABLE and self.__sslConfiguration is not None: -## from E5Network.E5SslInfoWidget import E5SslInfoWidget -## widget = E5SslInfoWidget( -## self.mainFrame().url(), self.__sslConfiguration, self.view()) -## widget.showAt(pos) -## else: -## E5MessageBox.warning( -## self.view(), -## self.tr("SSL Info"), -## self.tr("""This site does not contain SSL information.""")) -## - def hasValidSslInfo(self): - """ - Public method to check, if the page has a valid SSL certificate. - - @return flag indicating a valid SSL certificate (boolean) - """ - if self.__sslConfiguration is None: - return False - - certList = self.__sslConfiguration.peerCertificateChain() - if not certList: - return False - - certificateDict = Globals.toDict( - Preferences.Prefs.settings.value("Ssl/CaCertificatesDict")) - for server in certificateDict: - localCAList = QSslCertificate.fromData(certificateDict[server]) - for cert in certList: - if cert in localCAList: - return True - - for cert in certList: - if cert.isBlacklisted(): - return False - - return True +## certificateDict = Globals.toDict( +## Preferences.Prefs.settings.value("Ssl/CaCertificatesDict")) +## for server in certificateDict: +## localCAList = QSslCertificate.fromData(certificateDict[server]) +## for cert in certList: +## if cert in localCAList: +## return True +## +## for cert in certList: +## if cert.isBlacklisted(): +## return False +## +## return True ## @classmethod ## def webPluginFactory(cls):