chrome.browsingData

설명

chrome.browsingData API를 사용하여 사용자의 로컬 프로필에서 인터넷 사용 기록을 삭제합니다.

권한

browsingData

이 API를 사용하려면 확장 프로그램 매니페스트에서 "browsingData" 권한을 선언해야 합니다.

{
  "name": "My extension",
  ...
  "permissions": [
    "browsingData",
  ],
  ...
}

개념 및 사용법

이 API의 가장 간단한 사용 사례는 사용자의 인터넷 사용 기록을 삭제하기 위한 시간 기반 메커니즘입니다. 코드는 사용자의 인터넷 사용 기록이 삭제되어야 하는 이전 날짜를 나타내는 타임스탬프를 제공해야 합니다. 이 타임스탬프는 Unix 에포크 (getTime() 메서드를 사용하여 JavaScript Date 객체에서 가져올 수 있음) 이후의 밀리초 수로 형식이 지정됩니다.

예를 들어 사용자의 지난 주 인터넷 사용 기록을 모두 삭제하려면 다음과 같이 코드를 작성할 수 있습니다.

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.remove({
  "since": oneWeekAgo
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

chrome.browsingData.remove() 메서드를 사용하면 한 번의 호출로 다양한 유형의 인터넷 사용 기록을 삭제할 수 있으며 더 구체적인 여러 메서드를 호출하는 것보다 훨씬 빠릅니다. 하지만 한 가지 특정 유형의 인터넷 사용 기록 (예: 쿠키)만 삭제하려는 경우 더 세분화된 메서드를 사용하면 JSON으로 채워진 호출 대신 읽기 쉬운 대안을 사용할 수 있습니다.

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.removeCookies({
  "since": oneWeekAgo
}, callback);

사용자가 데이터를 동기화하는 경우 chrome.browsingData.remove()는 동기화 계정의 쿠키를 삭제한 후 자동으로 다시 빌드할 수 있습니다. 이는 동기화가 계속 작동하여 결국 서버에서 데이터가 삭제될 수 있게 하기 위함입니다. 그러나 동기화 계정의 쿠키를 삭제하는 데 더 구체적인 chrome.browsingData.removeCookies()를 사용할 수 있으며 이 경우 동기화가 일시중지됩니다.

특정 출처

특정 출처의 데이터를 삭제하거나 출처 집합을 삭제 대상에서 제외하려면 RemovalOptions.originsRemovalOptions.excludeOrigins 매개변수를 사용하면 됩니다. 쿠키, 캐시, 저장소 (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers, WebSQL)에만 적용할 수 있습니다.

chrome.browsingData.remove({
  "origins": ["https://www.example.com"]
}, {
  "cacheStorage": true,
  "cookies": true,
  "fileSystems": true,
  "indexedDB": true,
  "localStorage": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

출처 유형

API 옵션 객체에 originTypes 속성을 추가하면 적용해야 하는 출처 유형을 지정할 수 있습니다. 출처는 다음 세 가지 카테고리로 구분됩니다.

  • unprotectedWeb는 사용자가 특별한 조치를 취하지 않고 방문하는 웹사이트의 일반적인 사례를 처리합니다. originTypes를 지정하지 않으면 API는 기본적으로 보호되지 않는 웹 출처에서 데이터를 삭제합니다.
  • protectedWeb는 호스팅된 애플리케이션으로 설치된 웹 출처를 포함합니다. 예를 들어 Angry Birds를 설치하면 출처 https://chrome.angrybirds.com가 보호되고 unprotectedWeb 카테고리에서 삭제됩니다. 이러한 출처의 데이터 삭제를 트리거할 때는 주의해야 합니다. 게임 데이터가 영구적으로 삭제되므로 사용자에게 수신 사실을 알려야 합니다. 조그만 돼지 집을 필요 이상으로 자주 두드리고 싶어 하는 사람은 없습니다.
  • extensionchrome-extensions: 스키마 아래의 출처를 포함합니다. 다시 말하지만 확장 프로그램 데이터를 삭제하는 것은 매우 주의해야 합니다.

보호된 웹사이트의 데이터만 삭제하도록 이전 예를 조정하여 다음과 같이 할 수 있습니다.

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.remove({
  "since": oneWeekAgo,
  "originTypes": {
    "protectedWeb": true
  }
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

이 API를 사용하려면 chrome-extension-samples 저장소의 browsingData API 예를 설치하세요.

유형

DataTypeSet

데이터 유형 집합입니다. 누락된 데이터 유형은 false로 해석됩니다.

속성

  • 앱 캐시

    불리언 선택사항

    웹사이트의 앱 캐시

  • 캐시

    불리언 선택사항

    브라우저의 캐시입니다.

  • cacheStorage

    불리언 선택사항

    Chrome 72 이상

    캐시 스토리지

  • 쿠키

    불리언 선택사항

    브라우저의 쿠키입니다.

  • 다운로드

    불리언 선택사항

    브라우저의 다운로드 목록입니다.

  • fileSystems

    불리언 선택사항

    웹사이트의 파일 시스템

  • formData

    불리언 선택사항

    브라우저에 저장된 양식 데이터입니다.

  • 기록

    불리언 선택사항

    브라우저의 방문 기록입니다.

  • indexedDB

    불리언 선택사항

    웹사이트의 IndexedDB 데이터

  • localStorage

    불리언 선택사항

    웹사이트의 로컬 저장소 데이터

  • 비밀번호

    불리언 선택사항

    저장된 비밀번호.

  • pluginData

    불리언 선택사항

    Chrome 88 이후 지원 중단됨

    플래시 지원이 중단되었습니다. 이 데이터 유형은 무시됩니다.

    플러그인 데이터입니다.

  • serverBoundCertificates

    불리언 선택사항

    Chrome 76 이후 지원 중단됨

    서버 결합 인증서에 대한 지원이 삭제되었습니다. 이 데이터 유형은 무시됩니다.

    서버 결합 인증서

  • serviceWorkers

    불리언 선택사항

    서비스 워커

  • webSQL

    불리언 선택사항

    웹사이트의 WebSQL 데이터

RemovalOptions

삭제할 데이터를 정확하게 결정하는 옵션입니다.

속성

  • excludeOrigins

    string[] 선택사항

    Chrome 74 이상

    있는 경우 이 목록에 있는 출처의 데이터는 삭제에서 제외됩니다. origins과(와) 함께 사용할 수 없습니다. 쿠키, 저장용량, 캐시에 대해서만 지원됩니다. 등록 가능한 전체 도메인의 쿠키가 제외됩니다.

  • originTypes

    객체(선택사항)

    속성으로 지워야 하는 출발지 유형을 지정하는 객체입니다. 이 객체를 지정하지 않으면 기본적으로 '보호되지 않은' 출처만 삭제됩니다. 'protectedWeb' 또는 'extensions'를 추가하기 전에 정말 애플리케이션 데이터를 삭제하고 싶은지 확인하세요.

    • 확장 프로그램

      불리언 선택사항

      사용자가 설치한 확장 프로그램 및 패키지 애플리케이션은 _반드시_ 주의를 기울여야 합니다.

    • protectedWeb

      불리언 선택사항

      호스팅된 애플리케이션으로 설치된 웹사이트는 주의하세요.

    • unprotectedWeb

      불리언 선택사항

      일반 웹사이트

  • origins

    [string, ...string[]] optional

    Chrome 74 이상

    있는 경우 이 목록에 있는 출처의 데이터만 삭제됩니다. 쿠키, 저장용량, 캐시에 대해서만 지원됩니다. 등록 가능한 전체 도메인의 쿠키가 삭제되었습니다.

  • 이후

    숫자 선택사항

    에포크 이후 밀리초로 표시되는 이 날짜 또는 그 이후에 누적된 데이터를 삭제합니다 (JavaScript Date 객체의 getTime 메서드를 통해 액세스 가능). 없는 경우 기본값은 0입니다 (모든 인터넷 사용 기록 삭제).

방법

remove()

프로미스
chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
  callback?: function,
)

사용자 프로필에 저장된 다양한 유형의 인터넷 사용 기록을 삭제합니다.

매개변수

  • dataToRemove

    삭제할 데이터 유형 집합입니다.

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeAppcache()

프로미스
chrome.browsingData.removeAppcache(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 앱 캐시 데이터를 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeCache()

프로미스
chrome.browsingData.removeCache(
  options: RemovalOptions,
  callback?: function,
)

브라우저의 캐시를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeCacheStorage()

Promise Chrome 72 이상
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 캐시 저장소 데이터를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeCookies()

프로미스
chrome.browsingData.removeCookies(
  options: RemovalOptions,
  callback?: function,
)

특정 기간 내에 수정된 브라우저의 쿠키 및 서버 결합 인증서를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeDownloads()

프로미스
chrome.browsingData.removeDownloads(
  options: RemovalOptions,
  callback?: function,
)

다운로드한 파일 자체가 아닌 브라우저의 다운로드한 파일 목록을 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeFileSystems()

프로미스
chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 파일 시스템 데이터를 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeFormData()

프로미스
chrome.browsingData.removeFormData(
  options: RemovalOptions,
  callback?: function,
)

브라우저에 저장된 양식 데이터를 지웁니다 (자동 완성).

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeHistory()

프로미스
chrome.browsingData.removeHistory(
  options: RemovalOptions,
  callback?: function,
)

브라우저의 기록을 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeIndexedDB()

프로미스
chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 IndexedDB 데이터를 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeLocalStorage()

프로미스
chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 로컬 저장소 데이터를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removePasswords()

프로미스
chrome.browsingData.removePasswords(
  options: RemovalOptions,
  callback?: function,
)

브라우저에 저장된 비밀번호를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removePluginData()

Promise Chrome 88 이후 지원 중단됨
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

플래시 지원이 중단되었습니다. 이 함수는 효과가 없습니다.

플러그인 데이터를 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeServiceWorkers()

Promise Chrome 72 이상
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 서비스 워커를 지웁니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

removeWebSQL()

프로미스
chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
  callback?: function,
)

웹사이트의 WebSQL 데이터를 삭제합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • Promise<void>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.

settings()

프로미스
chrome.browsingData.settings(
  callback?: function,
)

'인터넷 사용 기록 삭제' 설정 UI에서 현재 선택된 데이터 유형을 보고합니다. 참고: 이 API에 포함된 데이터 유형 중 일부는 설정 UI에서 사용할 수 없으며, 일부 UI 설정은 여기에 나열된 2개 이상의 데이터 유형을 제어합니다.

매개변수

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (result: object) => void

    • 결과

      객체

      • dataRemovalPermitted

        모든 유형이 결과에 표시되며, 삭제가 허용되는 경우 (예: 기업 정책에 의해) true, 허용되지 않는 경우 false의 값이 포함됩니다.

      • dataToRemove

        모든 유형이 결과에 표시되며, 모두 삭제하도록 선택되고 삭제가 허용된 경우 true의 값이 있고, 그렇지 않은 경우에는 false입니다.

반환 값

  • Promise<object>

    Chrome 96 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.