Fine tuned the safe browsing update notifications.

Thu, 10 Aug 2017 13:58:50 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 10 Aug 2017 13:58:50 +0200
changeset 5842
c3f41b959a65
parent 5841
f227183ae1df
child 5843
76eee727ccd9

Fine tuned the safe browsing update notifications.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric6.UI.NotificationWidget.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.UI.UserInterface.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.WebBrowser.WebBrowserWindow.html file | annotate | diff | comparison | revisions
UI/NotificationWidget.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
WebBrowser/SafeBrowsing/SafeBrowsingManager.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
i18n/eric6_de.qm file | annotate | diff | comparison | revisions
i18n/eric6_de.ts file | annotate | diff | comparison | revisions
i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
i18n/eric6_en.ts file | annotate | diff | comparison | revisions
i18n/eric6_es.ts file | annotate | diff | comparison | revisions
i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
i18n/eric6_it.ts file | annotate | diff | comparison | revisions
i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Thu Aug 10 11:57:04 2017 +0200
+++ b/APIs/Python3/eric6.api	Thu Aug 10 13:58:50 2017 +0200
@@ -8946,7 +8946,7 @@
 eric6.UI.UserInterface.UserInterface.showFindFilesDialog?4(txt="", searchDir="", openFiles=False)
 eric6.UI.UserInterface.UserInterface.showLogViewer?4()
 eric6.UI.UserInterface.UserInterface.showMenu?7
-eric6.UI.UserInterface.UserInterface.showNotification?4(icon, heading, text)
+eric6.UI.UserInterface.UserInterface.showNotification?4(icon, heading, text, timeout=None)
 eric6.UI.UserInterface.UserInterface.showPluginsAvailable?4()
 eric6.UI.UserInterface.UserInterface.showPreferences?4(pageName=None)
 eric6.UI.UserInterface.UserInterface.showReplaceFilesDialog?4(txt="", searchDir="", openFiles=False)
@@ -11276,6 +11276,7 @@
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.getQtHelpCollectionFileName?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.getSourceFileList?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.getWindow?4()
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.globalStatusBar?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.greaseMonkeyManager?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.helpEngine?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.hideFullScreenNavigation?4()
@@ -11318,7 +11319,7 @@
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.setLoadingActions?4(b)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.setUseQtHelp?4(use)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.showFullScreenNavigation?4()
-eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.showNotification?4(icon, heading, text)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.showNotification?4(icon, heading, text, timeout=None)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.shutdown?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.speedDial?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.syncManager?4()
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Thu Aug 10 11:57:04 2017 +0200
+++ b/Documentation/Help/source.qhp	Thu Aug 10 13:58:50 2017 +0200
@@ -12391,7 +12391,7 @@
       <keyword name="SafeBrowsingManager.__lookupHashes" id="SafeBrowsingManager.__lookupHashes" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__lookupHashes" />
       <keyword name="SafeBrowsingManager.__setAutoUpdateThreatLists" id="SafeBrowsingManager.__setAutoUpdateThreatLists" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__setAutoUpdateThreatLists" />
       <keyword name="SafeBrowsingManager.__setPlatforms" id="SafeBrowsingManager.__setPlatforms" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__setPlatforms" />
-      <keyword name="SafeBrowsingManager.__showStatusBarMessage" id="SafeBrowsingManager.__showStatusBarMessage" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__showStatusBarMessage" />
+      <keyword name="SafeBrowsingManager.__showNotificationMessage" id="SafeBrowsingManager.__showNotificationMessage" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__showNotificationMessage" />
       <keyword name="SafeBrowsingManager.__syncFullHashes" id="SafeBrowsingManager.__syncFullHashes" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__syncFullHashes" />
       <keyword name="SafeBrowsingManager.__threatListsUpdateTimerTimeout" id="SafeBrowsingManager.__threatListsUpdateTimerTimeout" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__threatListsUpdateTimerTimeout" />
       <keyword name="SafeBrowsingManager.__verifyThreatListChecksum" id="SafeBrowsingManager.__verifyThreatListChecksum" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html#SafeBrowsingManager.__verifyThreatListChecksum" />
@@ -16356,6 +16356,7 @@
       <keyword name="WebBrowserWindow.getQtHelpCollectionFileName" id="WebBrowserWindow.getQtHelpCollectionFileName" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.getQtHelpCollectionFileName" />
       <keyword name="WebBrowserWindow.getSourceFileList" id="WebBrowserWindow.getSourceFileList" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.getSourceFileList" />
       <keyword name="WebBrowserWindow.getWindow" id="WebBrowserWindow.getWindow" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.getWindow" />
+      <keyword name="WebBrowserWindow.globalStatusBar" id="WebBrowserWindow.globalStatusBar" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.globalStatusBar" />
       <keyword name="WebBrowserWindow.greaseMonkeyManager" id="WebBrowserWindow.greaseMonkeyManager" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.greaseMonkeyManager" />
       <keyword name="WebBrowserWindow.helpEngine" id="WebBrowserWindow.helpEngine" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.helpEngine" />
       <keyword name="WebBrowserWindow.hideFullScreenNavigation" id="WebBrowserWindow.hideFullScreenNavigation" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.hideFullScreenNavigation" />
--- a/Documentation/Source/eric6.UI.NotificationWidget.html	Thu Aug 10 11:57:04 2017 +0200
+++ b/Documentation/Source/eric6.UI.NotificationWidget.html	Thu Aug 10 13:58:50 2017 +0200
@@ -169,9 +169,9 @@
 <p>
         Public method to set the timeout for the notification.
 </p><dl>
-<dt><i>timeout</i></dt>
+<dt><i>timeout</i> (int)</dt>
 <dd>
-timeout to be used in seconds (integer)
+timeout to be used in seconds (0 = indefinitely)
 </dd>
 </dl><a NAME="NotificationWidget.show" ID="NotificationWidget.show"></a>
 <h4>NotificationWidget.show</h4>
--- a/Documentation/Source/eric6.UI.UserInterface.html	Thu Aug 10 11:57:04 2017 +0200
+++ b/Documentation/Source/eric6.UI.UserInterface.html	Thu Aug 10 13:58:50 2017 +0200
@@ -1999,7 +1999,7 @@
 </dl><dl>
 <dt>Return Type:</dt>
 <dd>
-tuple of int and str
+tuple of int
 </dd>
 </dl><a NAME="UserInterface.__versionsDownloadCanceled" ID="UserInterface.__versionsDownloadCanceled"></a>
 <h4>UserInterface.__versionsDownloadCanceled</h4>
@@ -2543,19 +2543,23 @@
         Public method to show the Log-Viewer.
 </p><a NAME="UserInterface.showNotification" ID="UserInterface.showNotification"></a>
 <h4>UserInterface.showNotification</h4>
-<b>showNotification</b>(<i>icon, heading, text</i>)
+<b>showNotification</b>(<i>icon, heading, text, timeout=None</i>)
 <p>
         Public method to show a desktop notification.
 </p><dl>
-<dt><i>icon</i></dt>
+<dt><i>icon</i> (QPixmap)</dt>
 <dd>
-icon to be shown in the notification (QPixmap)
-</dd><dt><i>heading</i></dt>
+icon to be shown in the notification
+</dd><dt><i>heading</i> (str)</dt>
 <dd>
-heading of the notification (string)
-</dd><dt><i>text</i></dt>
+heading of the notification
+</dd><dt><i>text</i> (str)</dt>
 <dd>
-text of the notification (string)
+text of the notification
+</dd><dt><i>timeout</i> (int)</dt>
+<dd>
+time in seconds the notification should be shown
+            (None = use configured timeout, 0 = indefinitely)
 </dd>
 </dl><a NAME="UserInterface.showPluginsAvailable" ID="UserInterface.showPluginsAvailable"></a>
 <h4>UserInterface.showPluginsAvailable</h4>
--- a/Documentation/Source/eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html	Thu Aug 10 11:57:04 2017 +0200
+++ b/Documentation/Source/eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html	Thu Aug 10 13:58:50 2017 +0200
@@ -82,8 +82,8 @@
 <td><a href="#SafeBrowsingManager.__setPlatforms">__setPlatforms</a></td>
 <td>Private method to set the platforms to be checked against.</td>
 </tr><tr>
-<td><a href="#SafeBrowsingManager.__showStatusBarMessage">__showStatusBarMessage</a></td>
-<td>Private method to show some message in the main window status bar.</td>
+<td><a href="#SafeBrowsingManager.__showNotificationMessage">__showNotificationMessage</a></td>
+<td>Private method to show some message in a notification widget.</td>
 </tr><tr>
 <td><a href="#SafeBrowsingManager.__syncFullHashes">__syncFullHashes</a></td>
 <td>Private method to download full hashes matching given prefixes.</td>
@@ -191,15 +191,23 @@
 <b>__setPlatforms</b>(<i></i>)
 <p>
         Private method to set the platforms to be checked against.
-</p><a NAME="SafeBrowsingManager.__showStatusBarMessage" ID="SafeBrowsingManager.__showStatusBarMessage"></a>
-<h4>SafeBrowsingManager.__showStatusBarMessage</h4>
-<b>__showStatusBarMessage</b>(<i>message</i>)
+</p><a NAME="SafeBrowsingManager.__showNotificationMessage" ID="SafeBrowsingManager.__showNotificationMessage"></a>
+<h4>SafeBrowsingManager.__showNotificationMessage</h4>
+<b>__showNotificationMessage</b>(<i>message, timeout=5</i>)
 <p>
-        Private method to show some message in the main window status bar.
+        Private method to show some message in a notification widget.
+</p><p>
+        If desktop notifications have been disabled, the message will
+        be shown in the status bar of the main window (either the main
+        web browser window or the eric main window)
 </p><dl>
 <dt><i>message</i> (str)</dt>
 <dd>
 message to be shown
+</dd><dt><i>timeout</i> (int)</dt>
+<dd>
+amount of time in seconds the message should be shown
+            (0 = indefinitely)
 </dd>
 </dl><a NAME="SafeBrowsingManager.__syncFullHashes" ID="SafeBrowsingManager.__syncFullHashes"></a>
 <h4>SafeBrowsingManager.__syncFullHashes</h4>
--- a/Documentation/Source/eric6.WebBrowser.WebBrowserWindow.html	Thu Aug 10 11:57:04 2017 +0200
+++ b/Documentation/Source/eric6.WebBrowser.WebBrowserWindow.html	Thu Aug 10 13:58:50 2017 +0200
@@ -105,6 +105,9 @@
 <td><a href="#WebBrowserWindow.getWindow">getWindow</a></td>
 <td>Class method to get a reference to the most recent active web browser window.</td>
 </tr><tr>
+<td><a href="#WebBrowserWindow.globalStatusBar">globalStatusBar</a></td>
+<td>Class method to get a reference to a global status bar.</td>
+</tr><tr>
 <td><a href="#WebBrowserWindow.greaseMonkeyManager">greaseMonkeyManager</a></td>
 <td>Class method to get a reference to the GreaseMonkey manager.</td>
 </tr><tr>
@@ -787,6 +790,25 @@
 <dd>
 WebBrowserWindow
 </dd>
+</dl><a NAME="WebBrowserWindow.globalStatusBar" ID="WebBrowserWindow.globalStatusBar"></a>
+<h4>WebBrowserWindow.globalStatusBar (class method)</h4>
+<b>globalStatusBar</b>(<i></i>)
+<p>
+        Class method to get a reference to a global status bar.
+</p><p>
+        The global status bar is the status bar of the main window. If
+        no such window exists and the web browser was called from the eric IDE,
+        the status bar of the IDE is returned.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the global status bar
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+QStatusBar
+</dd>
 </dl><a NAME="WebBrowserWindow.greaseMonkeyManager" ID="WebBrowserWindow.greaseMonkeyManager"></a>
 <h4>WebBrowserWindow.greaseMonkeyManager (class method)</h4>
 <b>greaseMonkeyManager</b>(<i></i>)
@@ -965,19 +987,23 @@
 </dd>
 </dl><a NAME="WebBrowserWindow.showNotification" ID="WebBrowserWindow.showNotification"></a>
 <h4>WebBrowserWindow.showNotification (class method)</h4>
-<b>showNotification</b>(<i>icon, heading, text</i>)
+<b>showNotification</b>(<i>icon, heading, text, timeout=None</i>)
 <p>
         Class method to show a desktop notification.
 </p><dl>
-<dt><i>icon</i></dt>
+<dt><i>icon</i> (QPixmap)</dt>
 <dd>
-icon to be shown in the notification (QPixmap)
-</dd><dt><i>heading</i></dt>
+icon to be shown in the notification
+</dd><dt><i>heading</i> (str)</dt>
 <dd>
-heading of the notification (string)
-</dd><dt><i>text</i></dt>
+heading of the notification
+</dd><dt><i>text</i> (str)</dt>
 <dd>
-text of the notification (string)
+text of the notification
+</dd><dt><i>timeout</i> (int)</dt>
+<dd>
+time in seconds the notification should be shown
+            (None = use configured timeout, 0 = indefinitely)
 </dd>
 </dl><a NAME="WebBrowserWindow.speedDial" ID="WebBrowserWindow.speedDial"></a>
 <h4>WebBrowserWindow.speedDial (class method)</h4>
--- a/UI/NotificationWidget.py	Thu Aug 10 11:57:04 2017 +0200
+++ b/UI/NotificationWidget.py	Thu Aug 10 13:58:50 2017 +0200
@@ -87,7 +87,8 @@
         """
         Public method to set the timeout for the notification.
         
-        @param timeout timeout to be used in seconds (integer)
+        @param timeout timeout to be used in seconds (0 = indefinitely)
+        @type int
         """
         self.__timeout = timeout * 1000
     
@@ -101,8 +102,9 @@
         
         if not self.__settingPosition:
             self.__timer.stop()
-            self.__timer.setInterval(self.__timeout)
-            self.__timer.start()
+            if self.__timeout > 0:
+                self.__timer.setInterval(self.__timeout)
+                self.__timer.start()
         
         super(NotificationWidget, self).show()
         
--- a/UI/UserInterface.py	Thu Aug 10 11:57:04 2017 +0200
+++ b/UI/UserInterface.py	Thu Aug 10 13:58:50 2017 +0200
@@ -6748,13 +6748,19 @@
     ## Support for desktop notifications below
     ##########################################
     
-    def showNotification(self, icon, heading, text):
+    def showNotification(self, icon, heading, text, timeout=None):
         """
         Public method to show a desktop notification.
         
-        @param icon icon to be shown in the notification (QPixmap)
-        @param heading heading of the notification (string)
-        @param text text of the notification (string)
+        @param icon icon to be shown in the notification
+        @type QPixmap
+        @param heading heading of the notification
+        @type str
+        @param text text of the notification
+        @type str
+        @param timeout time in seconds the notification should be shown
+            (None = use configured timeout, 0 = indefinitely)
+        @type int
         """
         if Preferences.getUI("NotificationsEnabled"):
             if self.__notification is None:
@@ -6763,8 +6769,9 @@
             self.__notification.setPixmap(icon)
             self.__notification.setHeading(heading)
             self.__notification.setText(text)
-            self.__notification.setTimeout(
-                Preferences.getUI("NotificationTimeout"))
+            if timeout is None:
+                timeout = Preferences.getUI("NotificationTimeout")
+            self.__notification.setTimeout(timeout)
             self.__notification.move(Preferences.getUI("NotificationPosition"))
             self.__notification.show()
     
--- a/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Thu Aug 10 11:57:04 2017 +0200
+++ b/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Thu Aug 10 13:58:50 2017 +0200
@@ -25,6 +25,8 @@
 import Preferences
 import Utilities
 
+import UI.PixmapCache
+
 from .SafeBrowsingAPIClient import SafeBrowsingAPIClient
 from .SafeBrowsingCache import SafeBrowsingCache, ThreatList, HashPrefixList
 from .SafeBrowsingUrl import SafeBrowsingUrl
@@ -133,15 +135,33 @@
         """
         return self.__enabled and self.__apiClient.fairUseDelayExpired()
     
-    def __showStatusBarMessage(self, message):
+    def __showNotificationMessage(self, message, timeout=5):
         """
-        Private method to show some message in the main window status bar.
+        Private method to show some message in a notification widget.
+        
+        If desktop notifications have been disabled, the message will
+        be shown in the status bar of the main window (either the main
+        web browser window or the eric main window)
         
         @param message message to be shown
         @type str
+        @param timeout amount of time in seconds the message should be shown
+            (0 = indefinitely)
+        @type int
         """
         from WebBrowser.WebBrowserWindow import WebBrowserWindow
-        WebBrowserWindow.mainWindow().statusBar().showMessage(message, 5000)
+        
+        if WebBrowserWindow.notificationsEnabled():
+            WebBrowserWindow.showNotification(
+                UI.PixmapCache.getPixmap("safeBrowsing48.png"),
+                self.tr("Google Safe Browsing"),
+                message,
+                timeout=timeout,
+            )
+        else:
+            statusBar = WebBrowserWindow.globalStatusBar()
+            if statusBar is not None:
+                statusBar.showMessage(message, timeout * 1000)
     
     def __setAutoUpdateThreatLists(self):
         """
@@ -174,13 +194,14 @@
         """
         ok = False
         if self.__enabled:
-            self.__showStatusBarMessage(self.tr("Updating threat lists..."))
+            self.__showNotificationMessage(
+                self.tr("Updating threat lists..."), 0)
             ok = self.updateHashPrefixCache()[0]
             if ok:
-                self.__showStatusBarMessage(
+                self.__showNotificationMessage(
                     self.tr("Updating threat lists done"))
             else:
-                self.__showStatusBarMessage(
+                self.__showNotificationMessage(
                     self.tr("Updating threat lists failed"))
         
         if ok:
--- a/WebBrowser/WebBrowserWindow.py	Thu Aug 10 11:57:04 2017 +0200
+++ b/WebBrowser/WebBrowserWindow.py	Thu Aug 10 13:58:50 2017 +0200
@@ -4719,17 +4719,23 @@
     ##########################################
     
     @classmethod
-    def showNotification(cls, icon, heading, text):
+    def showNotification(cls, icon, heading, text, timeout=None):
         """
         Class method to show a desktop notification.
         
-        @param icon icon to be shown in the notification (QPixmap)
-        @param heading heading of the notification (string)
-        @param text text of the notification (string)
+        @param icon icon to be shown in the notification
+        @type QPixmap
+        @param heading heading of the notification
+        @type str
+        @param text text of the notification
+        @type str
+        @param timeout time in seconds the notification should be shown
+            (None = use configured timeout, 0 = indefinitely)
+        @type int
         """
         if cls._fromEric:
             e5App().getObject("UserInterface").showNotification(
-                icon, heading, text)
+                icon, heading, text, timeout)
         else:
             if Preferences.getUI("NotificationsEnabled"):
                 if cls._notification is None:
@@ -4738,8 +4744,9 @@
                 cls._notification.setPixmap(icon)
                 cls._notification.setHeading(heading)
                 cls._notification.setText(text)
-                cls._notification.setTimeout(
-                    Preferences.getUI("NotificationTimeout"))
+                if timeout is None:
+                    timeout = Preferences.getUI("NotificationTimeout")
+                cls._notification.setTimeout(timeout)
                 cls._notification.move(
                     Preferences.getUI("NotificationPosition"))
                 cls._notification.show()
@@ -4756,6 +4763,29 @@
         else:
             return Preferences.getUI("NotificationsEnabled")
     
+    ######################################
+    ## Support for global status bar below
+    ######################################
+    
+    @classmethod
+    def globalStatusBar(cls):
+        """
+        Class method to get a reference to a global status bar.
+        
+        The global status bar is the status bar of the main window. If
+        no such window exists and the web browser was called from the eric IDE,
+        the status bar of the IDE is returned.
+        
+        @return reference to the global status bar
+        @rtype QStatusBar
+        """
+        if cls.BrowserWindows:
+            return cls.BrowserWindows[0].statusBar()
+        elif cls._fromEric:
+            return e5App().getObject("UserInterface").statusBar()
+        else:
+            return None
+    
     ###################################
     ## Support for download files below
     ###################################
--- a/i18n/eric6_cs.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_cs.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -51114,50 +51114,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
Binary file i18n/eric6_de.qm has changed
--- a/i18n/eric6_de.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_de.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50147,50 +50147,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation>Safe Browsing ist deaktiviert.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation>Die &apos;Fair Use&apos; Wartezeit ist noch nicht abgelaufen. Ablaufzeitpunkt ist {0}.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation>Aktualisiere Bedrohungslisten</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation>Lösche überholte Bedrohungslisten</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation>Aktualisiere Hashpräfixe</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation>Die Prüsumme des lokalen Zwischenspeichers entspricht nicht der des Servers. Ein löschen des Zwischenspeichers könnte das Problem beheben. Aktualisierung der Bedrohungslisten wurde abgebrochen.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation>Aktualisiere Bedrohungslisten...</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation>Aktualisierung der Bedrohungslisten abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation>Aktualisierung der Bedrohungslisten fehlgeschlagen</translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation>Google Safe Browsing</translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_empty.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_empty.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -7758,9 +7758,6 @@
     </message>
 </context>
 <context>
-    <name>E5ErrorMessage</name>
-</context>
-<context>
     <name>E5ErrorMessageFilterDialog</name>
     <message>
         <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="14"/>
@@ -49747,50 +49744,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_en.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_en.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -7772,9 +7772,6 @@
     </message>
 </context>
 <context>
-    <name>E5ErrorMessage</name>
-</context>
-<context>
     <name>E5ErrorMessageFilterDialog</name>
     <message>
         <location filename="../E5Gui/E5ErrorMessageFilterDialog.ui" line="14"/>
@@ -49788,50 +49785,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_es.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_es.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50185,50 +50185,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation>La Navegación Segura está deshabilitada.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation>El periodo de uso justo no ha expirado todavía. Expirará el {0}.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation>Actualizando listas de amenazas</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation>Borrando listas obsoletas de amenazas</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation>Acutalizando prefijos de hash</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation>La checksum de la caché local no coincide con el servidor. Considere limpiar la caché. La actualización de amenazas se ha abortado.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_fr.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_fr.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50900,50 +50900,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_it.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_it.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -51413,50 +51413,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_pt.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_pt.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -51405,50 +51405,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_ru.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_ru.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50363,50 +50363,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation>Сервис Safe Browsing отключен.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation>Не завершен период ожидания для &quot;честного&quot; использования сайта. Завершение периода наступит {0}.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation>Обновление списков угроз</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation>Удаление устаревших списков угроз</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation>Обновление хеш-префиксов</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation>Контрольная сумма локального кэша не соответствует серверу. Подумайте об очистке кэша. Обновление списка угроз было прервано.</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_tr.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_tr.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50810,50 +50810,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>
--- a/i18n/eric6_zh_CN.ts	Thu Aug 10 11:57:04 2017 +0200
+++ b/i18n/eric6_zh_CN.ts	Thu Aug 10 13:58:50 2017 +0200
@@ -50965,50 +50965,55 @@
 <context>
     <name>SafeBrowsingManager</name>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="207"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="228"/>
         <source>Safe Browsing is disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="211"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="232"/>
         <source>The fair use wait period has not expired yet.Expiration will be at {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="231"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="252"/>
         <source>Updating threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="245"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="266"/>
         <source>Deleting obsolete threat lists</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="264"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="285"/>
         <source>Updating hash prefixes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="290"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="311"/>
         <source>Local cache checksum does not match the server. Consider cleaning the cache. Threat update has been aborted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="177"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="197"/>
         <source>Updating threat lists...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="180"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="201"/>
         <source>Updating threat lists done</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="183"/>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="204"/>
         <source>Updating threat lists failed</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../WebBrowser/SafeBrowsing/SafeBrowsingManager.py" line="155"/>
+        <source>Google Safe Browsing</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SearchReplaceWidget</name>

eric ide

mercurial