chrome.browsingData

설명

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

권한

browsingData

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

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

개념 및 사용법

이 API의 가장 간단한 사용 사례는 사용자의 인터넷 사용 기록을 지우는 시간 기반 메커니즘입니다. 코드는 사용자의 인터넷 사용 기록을 삭제해야 하는 이전 날짜를 나타내는 타임스탬프를 제공해야 합니다. 이 타임스탬프는 Unix epoch (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

      부울 선택사항

      일반 웹사이트

  • 출처

    string[] 선택사항

    Chrome 74 이상

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

  • 이후

    number 선택사항

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

방법

remove()

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

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

매개변수

  • dataToRemove

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

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeAppcache()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeCache()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeCacheStorage()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeCookies()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeDownloads()

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

다운로드한 파일 자체가 아닌 브라우저의 다운로드된 파일 목록을 지웁니다.

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeFileSystems()

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

웹사이트의 파일 시스템 데이터를 삭제합니다.

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeFormData()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeHistory()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeIndexedDB()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeLocalStorage()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removePasswords()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removePluginData()

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

플래시 지원이 중단되었습니다. 이 함수는 아무런 영향을 미치지 않습니다.

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeServiceWorkers()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

removeWebSQL()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    ()=>void

반환 값

  • Promise<void>

    Chrome 96 이상

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

settings()

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

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

매개변수

  • 콜백

    함수 선택사항

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

    (result: object)=>void

    • 결과

      객체

      • dataRemovalPermitted

        모든 유형이 결과에 표시되며 삭제가 허용된 경우 (예: 엔터프라이즈 정책)에는 true 값이, 삭제되지 않는 경우 false의 값이 표시됩니다.

      • dataToRemove

        모든 유형이 결과에 표시되며, 모두 삭제되도록 선택되어 삭제가 허용된 경우 값 true이(가) 표시되고 그렇지 않으면 false이(가) 표시됩니다.

반환 값

  • Promise<object>

    Chrome 96 이상

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