# eric7.WebBrowser.SafeBrowsing.SafeBrowsingManager

Module implementing the interface for Google Safe Browsing.

### Global Attributes

None

### Classes

SafeBrowsingManager | Class implementing the interface for Google Safe Browsing.

### Functions

None

## SafeBrowsingManager

Class implementing the interface for Google Safe Browsing.

### Signals

progress(current)
  emitted to signal the current progress
progressMessage(message,maximum)
  emitted to give a message for the action about to be performed and the maximum value

### Derived from

QObject

### Class Attributes

enabled

### Class Methods

getIgnoreSchemes | Class method to get the schemes not to be checked.
isEnabled | Class method to check, if safe browsing is enabled.

### Methods

SafeBrowsingManager | Constructor
__lookupHashes | Private method to lookup the given hashes.
__setAutoUpdateThreatLists | Private method to set auto update for the threat lists.
__setLookupMethod | Private method to set the lookup method (Update API or Lookup API).
__setPlatforms | Private method to set the platforms to be checked against.
__showNotificationMessage | Private method to show some message in a notification widget.
__syncFullHashes | Private method to download full hashes matching given prefixes.
__threatListsUpdateTimerTimeout | Private slot to perform the auto update of the threat lists.
__verifyThreatListChecksum | Private method to verify the local checksum of a threat list with the checksum of the safe browsing server.
close | Public method to close the safe browsing interface.
configurationChanged | Public method to handle changes of the settings.
fairUseDelayExpired | Public method to check, if the fair use wait period has expired.
fullCacheCleanup | Public method to clean up the cache completely.
getPlatformString | Public method to get the platform string for a given platform type.
getThreatEntryString | Public method to get the threat entry string.
getThreatMessage | Public method to get a warning message for the given threat type.
getThreatMessages | Public method to get threat messages for the given threats.
getThreatType | Public method to get a display string for a given threat type.
isUpdatingThreatLists | Public method to check, if we are in the process of updating the threat lists.
lookupUrl | Public method to lookup an URL.
showSafeBrowsingDialog | Public slot to show the safe browsing management dialog.
updateHashPrefixCache | Public method to load or update the locally cached threat lists.

### Static Methods

None

#### SafeBrowsingManager.getIgnoreSchemes (class method)

getIgnoreSchemes()

Class method to get the schemes not to be checked.

Return:
  list of schemes to be ignored

Return Type:
  list of str

#### SafeBrowsingManager.isEnabled (class method)

isEnabled()

Class method to check, if safe browsing is enabled.

Return:
  flag indicating the enabled state

Return Type:
  bool

#### SafeBrowsingManager (Constructor)

SafeBrowsingManager()

Constructor

#### SafeBrowsingManager.__lookupHashes

__lookupHashes(fullHashes)

Private method to lookup the given hashes.

fullHashes (list of bytes)
  list of hashes to lookup

Return:
  names of threat lists hashes were found in

Return Type:
  list of ThreatList

#### SafeBrowsingManager.__setAutoUpdateThreatLists

__setAutoUpdateThreatLists()

Private method to set auto update for the threat lists.

#### SafeBrowsingManager.__setLookupMethod

__setLookupMethod()

Private method to set the lookup method (Update API or Lookup API).

#### SafeBrowsingManager.__setPlatforms

__setPlatforms()

Private method to set the platforms to be checked against.

#### SafeBrowsingManager.__showNotificationMessage

__showNotificationMessage(message, timeout=5)

Private method to show some message in a notification widget.

message (str)
  message to be shown
timeout (int)
  amount of time in seconds the message should be shown (0 = indefinitely)

#### SafeBrowsingManager.__syncFullHashes

__syncFullHashes(hashPrefixes)

Private method to download full hashes matching given prefixes.

This also updates the cache expiration timestamps.

hashPrefixes (list of bytes)
  list of hash prefixes to get full hashes for

#### SafeBrowsingManager.__threatListsUpdateTimerTimeout

__threatListsUpdateTimerTimeout()

Private slot to perform the auto update of the threat lists.

#### SafeBrowsingManager.__verifyThreatListChecksum

__verifyThreatListChecksum(threatList, remoteChecksum)

Private method to verify the local checksum of a threat list with the checksum of the safe browsing server.

threatList (ThreatList)
  threat list to calculate checksum for
remoteChecksum (bytes)
  SHA256 checksum as reported by the Google server

Return:
  flag indicating equality

Return Type:
  bool

#### SafeBrowsingManager.close

close()

Public method to close the safe browsing interface.

#### SafeBrowsingManager.configurationChanged

configurationChanged()

Public method to handle changes of the settings.

#### SafeBrowsingManager.fairUseDelayExpired

fairUseDelayExpired()

Public method to check, if the fair use wait period has expired.

Return:
  flag indicating expiration

Return Type:
  bool

#### SafeBrowsingManager.fullCacheCleanup

fullCacheCleanup()

Public method to clean up the cache completely.

#### SafeBrowsingManager.getPlatformString

getPlatformString(platformType)

Public method to get the platform string for a given platform type.

platformType (str)
  platform type as defined in the v4 API

Return:
  platform string

Return Type:
  str

#### SafeBrowsingManager.getThreatEntryString

getThreatEntryString(threatEntry)

Public method to get the threat entry string.

threatEntry (str)
  threat entry type as defined in the v4 API

Return:
  threat entry string

Return Type:
  str

#### SafeBrowsingManager.getThreatMessage

getThreatMessage(threatType)

Public method to get a warning message for the given threat type.

threatType (str)
  threat type to get the message for

Return:
  threat message

Return Type:
  str

#### SafeBrowsingManager.getThreatMessages

getThreatMessages(threatLists)

Public method to get threat messages for the given threats.

threatLists (list of ThreatList)
  list of threat lists to get a message for

Return:
  list of threat messages, one per unique threat type

Return Type:
  list of str

#### SafeBrowsingManager.getThreatType

getThreatType(threatList)

Public method to get a display string for a given threat type.

threatList (str)
  threat list to get display string for

Return:
  display string

Return Type:
  str

#### SafeBrowsingManager.isUpdatingThreatLists

isUpdatingThreatLists()

Public method to check, if we are in the process of updating the threat lists.

Return:
  flag indicating an update process is active

Return Type:
  bool

#### SafeBrowsingManager.lookupUrl

lookupUrl(url)

Public method to lookup an URL.

url (str or QUrl)
  URL to be checked

Return:
  tuple containing the list of threat lists the URL was found in and an error message

Return Type:
  tuple of (list of ThreatList, str)

Raises ValueError:
  raised for an invalid URL

#### SafeBrowsingManager.showSafeBrowsingDialog

showSafeBrowsingDialog()

Public slot to show the safe browsing management dialog.

#### SafeBrowsingManager.updateHashPrefixCache

updateHashPrefixCache()

Public method to load or update the locally cached threat lists.

Return:
  flag indicating success and an error message

Return Type:
  tuple of (bool, str)

Up