:py:mod:`dissect.target.plugins.apps.browser.safari` ==================================================== .. py:module:: dissect.target.plugins.apps.browser.safari Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.target.plugins.apps.browser.safari.SafariPlugin .. py:class:: SafariPlugin(target: dissect.target.target.Target) Bases: :py:obj:`dissect.target.plugins.apps.browser.browser.BrowserPlugin` Safari browser plugin. .. py:attribute:: __namespace__ :value: 'safari' Defines the plugin namespace. .. py:attribute:: DIRS :value: ('Library/Safari',) .. py:attribute:: BrowserHistoryRecord .. py:attribute:: installs .. py:method:: check_compatible() -> None Perform a compatibility check with the target. This function should return ``None`` if the plugin is compatible with the current target (``self.target``). For example, check if a certain file exists. Otherwise it should raise an :class:`UnsupportedPluginError`. :raises UnsupportedPluginError: If the plugin could not be loaded. .. py:method:: history() -> collections.abc.Iterator[BrowserHistoryRecord] Return browser history records from Safari. Yields BrowserHistoryRecord with the following fields: .. code-block:: text ts (datetime): Visit timestamp. browser (string): The browser from which the records are generated from. id (varint): Record ID. url (uri): History URL. title (string): Page title. description (string): Page description. host (string): Hostname. visit_type (varint): Visit type. visit_count (varint): Amount of visits. hidden (boolean): Hidden value (synthesized visits). typed (boolean): Typed value. session (varint): Session value. from_visit (varint): Record ID of the redirect source visit. from_url (uri): URL of the redirect source visit. source (path): The source file of the history record.