@duckduckgo/content-scope-scripts
    Preparing search index...

    History view

    "History Messages".InitialSetupRequest

    Configure initial history system settings.

    Types:

    {
    "locale": "en",
    "env": "production",
    "platform": {
    "name": "macos"
    }
    }

    With "History Messages".DefaultStyles overrides

    {
    "locale": "en",
    "env": "production",
    "platform": {
    "name": "macos"
    },
    "defaultStyles": {
    "lightBackgroundColor": "#E9EBEC",
    "darkBackgroundColor": "#27282A"
    }
    }

    "History Messages".GetRangesRequest

    Retrieves available time ranges for history filtering.

    Types:

    {
    "ranges": [
    {
    "id": "today",
    "count": 13
    },
    {
    "id": "yesterday",
    "count": 10
    },
    {
    "id": "monday",
    "count": 2
    },
    {
    "id": "older",
    "count": 120
    }
    ]
    }

    "History Messages".QueryRequest

    Queries history items with filtering and pagination.

    Types:

    params for a query: (note: can be an empty string!)

    {
    "query": {
    "term": "example.com"
    },
    "offset": 0,
    "limit": 50,
    "source": "initial"
    }

    params for a range, note: the values here will match what you returned from getRanges

    {
    "query": {
    "range": "today"
    },
    "offset": 0,
    "limit": 50,
    "source": "initial"
    }

    Response, note: always return the same query I sent:

    {
    "info": {
    "finished": false,
    "query": {
    "term": "example.com"
    }
    },
    "value": [
    {
    "id": "12345",
    "dateRelativeDay": "Today - Wednesday 15 January 2025",
    "dateShort": "15 Jan 2025",
    "dateTimeOfDay": "11:01",
    "domain": "example.com",
    "etldPlusOne": "example.com",
    "title": "Example Website",
    "url": "https://example.com/page",
    "favicon": {
    "src": "...",
    "maxAvailableSize": 64
    }
    }
    ]
    }

    params

    {
    "range": "today"
    }

    response

    {
    "action": "delete"
    }

    params

    {
    "domain": "youtube.com"
    }

    response

    {
    "action": "delete"
    }

    params

    {
    "term": "youtube"
    }

    response

    {
    "action": "delete"
    }

    response, if deleted

    {
    "action": "delete"
    }

    response, otherwise

    {
    "action": "none"
    }

    "History Messages".EntriesMenuRequest

    Sent when a right-click is issued on a section title (or when the three-dots button is clicked)

    Types:

    params

    {
    "ids": ["abc", "def"]
    }

    response, if deleted

    {
    "action": "delete"
    }

    response, to trigger a domain search

    {
    "action": "domain-search"
    }

    response, otherwise

    {
    "action": "none"
    }

    "History Messages".EntriesDeleteRequest "History Messages".EntriesDeleteRequest

    Sent when the delete key is pressed on an item, or a group of items

    Types:

    Note: if a single id is sent, no modal/confirmation should be shown - but you must still reply with an "History Messages".ActionResponse when the action was completed.

    If multiple ids are sent, then present a modal window for confirmation, eventually responding to the message with "History Messages".ActionResponse

    example payload

    { 
    "url": "https://example.com/path",
    "target": "same-tab"
    }
    { 
    "url": "https://example.com/path",
    "target": "new-tab"
    }

    "History Messages".ReportInitExceptionNotification

    Reports initialization errors in the history system.

    {
    "message": "Failed to initialize history database"
    }

    "History Messages".ReportPageExceptionNotification

    Reports errors during page history operations.

    {
    "message": "Failed to load page history"
    }