Opis
użyć interfejsu chrome.browsingData API, aby usunąć dane przeglądania z lokalnego profilu użytkownika;
Uprawnienia
browsingDataAby korzystać z tego interfejsu API, musisz zadeklarować uprawnienie "browsingData" w pliku manifestu rozszerzenia.
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
Pojęcia i zastosowanie
Najprostszym przypadkiem użycia tego interfejsu API jest mechanizm oparty na czasie, który służy do czyszczenia danych przeglądania użytkownika.
Kod powinien zawierać sygnaturę czasową wskazującą datę historyczną, po której dane przeglądania użytkownika powinny zostać usunięte. Ta sygnatura czasowa jest sformatowana jako liczba milisekund od początku epoki systemu Unix (którą można pobrać z obiektu Date w JavaScript za pomocą metody getTime()).
Aby na przykład wyczyścić wszystkie dane przeglądania użytkownika z ostatniego tygodnia, możesz napisać kod w ten sposób:
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);
Metoda chrome.browsingData.remove() umożliwia usunięcie różnych typów danych przeglądania za pomocą jednego wywołania i jest znacznie szybsza niż wywoływanie wielu bardziej szczegółowych metod. Jeśli jednak chcesz wyczyścić tylko jeden konkretny typ danych przeglądania (np. pliki cookie), bardziej szczegółowe metody stanowią czytelną alternatywę dla wywołania wypełnionego kodem 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);
Jeśli użytkownik synchronizuje dane, chrome.browsingData.remove() może automatycznie odbudować plik cookie na potrzeby konta synchronizacji po jego wyczyszczeniu. Dzięki temu synchronizacja będzie nadal działać, a dane będzie można ostatecznie usunąć z serwera. Jednak bardziej szczegółowe polecenie
chrome.browsingData.removeCookies() może służyć do usuwania plików cookie z konta synchronizacji, a synchronizacja
zostanie w tym przypadku wstrzymana.
Określone źródła
Aby usunąć dane z określonego źródła lub wykluczyć z usuwania zestaw źródeł, możesz użyć parametrów RemovalOptions.origins i RemovalOptions.excludeOrigins. Można je stosować tylko do plików cookie, pamięci podręcznej i pamięci (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers i WebSQL).
chrome.browsingData.remove({
"origins": ["https://www.example.com"]
}, {
"cacheStorage": true,
"cookies": true,
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"serviceWorkers": true,
"webSQL": true
}, callback);
Typy punktów początkowych
Dodanie właściwości originTypes do obiektu opcji interfejsów API umożliwia określenie typów domen, których ma dotyczyć ta zmiana. Pochodzenia są podzielone na 3 kategorie:
unprotectedWebobejmuje ogólny przypadek witryn, które użytkownicy odwiedzają bez podejmowania żadnych specjalnych działań. Jeśli nie określisz parametruoriginTypes, interfejs API domyślnie usunie dane z niechronionych źródeł internetowych.protectedWebobejmuje źródła internetowe, które zostały zainstalowane jako aplikacje hostowane. Na przykład zainstalowanie aplikacji Angry Birds chroni źródłohttps://chrome.angrybirds.comi usuwa je z kategoriiunprotectedWeb. Zachowaj ostrożność podczas wywoływania usuwania danych z tych źródeł: upewnij się, że użytkownicy wiedzą, co się stanie, ponieważ spowoduje to nieodwracalne usunięcie danych z gier. Nikt nie chce przewracać małych domków świnek częściej niż to konieczne.extensionobejmuje źródła w schemaciechrome-extensions:. Usuwanie danych rozszerzenia to, powtórzmy, coś, do czego należy podchodzić z dużą ostrożnością.
Poprzedni przykład możemy zmodyfikować tak, aby usuwać tylko dane z chronionych witryn:
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);
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu browsingData API z repozytorium chrome-extension-samples.
Typy
DataTypeSet
Zbiór typów danych. Brakujące typy danych są interpretowane jako false.
Właściwości
-
appcache
wartość logiczna opcjonalna
pamięci podręczne aplikacji witryn,
-
Pamięć podręczna
wartość logiczna opcjonalna
pamięć podręczna przeglądarki;
-
cacheStorage
wartość logiczna opcjonalna
Chrome w wersji 72 lub nowszejPamięć podręczna
-
ciasteczka
wartość logiczna opcjonalna
pliki cookie przeglądarki,
-
pobrane
wartość logiczna opcjonalna
listę pobierania w przeglądarce;
-
fileSystems
wartość logiczna opcjonalna
systemy plików witryn,
-
formData
wartość logiczna opcjonalna
Dane formularzy zapisane w przeglądarce.
-
historia
wartość logiczna opcjonalna
historia przeglądarki,
-
indexedDB
wartość logiczna opcjonalna
dane IndexedDB witryn,
-
localStorage
wartość logiczna opcjonalna
dane przechowywane lokalnie przez witryny;
-
hasła
wartość logiczna opcjonalna
WycofanoUsunęliśmy obsługę usuwania haseł za pomocą rozszerzeń. Ten typ danych zostanie zignorowany.
zapisane hasła,
-
pluginData
wartość logiczna opcjonalna
Wycofane w Chrome 88Obsługa technologii Flash została usunięta. Ten typ danych zostanie zignorowany.
dane wtyczek,
-
serverBoundCertificates
wartość logiczna opcjonalna
Wycofane w Chrome 76Obsługa certyfikatów powiązanych z serwerem została usunięta. Ten typ danych zostanie zignorowany.
certyfikaty powiązane z serwerem,
-
serviceWorkers
wartość logiczna opcjonalna
Skrypty service worker.
-
webSQL
wartość logiczna opcjonalna
dane WebSQL witryn,
RemovalOptions
Opcje, które określają, jakie dane zostaną usunięte.
Właściwości
-
excludeOrigins
string[] opcjonalny
Chrome 74 lub nowszyJeśli ta lista jest dostępna, dane dotyczące źródeł na niej wymienionych nie są usuwane. Nie można używać razem z
origins. Obsługiwane tylko w przypadku plików cookie, pamięci i pamięci podręcznej. Pliki cookie są wykluczane w całej domenie podlegającej rejestracji. -
originTypes
obiekt opcjonalny
Obiekt, którego właściwości określają, które typy pochodzenia powinny zostać wyczyszczone. Jeśli ten obiekt nie zostanie określony, domyślnie czyszczone są tylko „niechronione” źródła. Zanim dodasz „protectedWeb” lub „extensions”, upewnij się, że na pewno chcesz usunąć dane aplikacji.
-
rozszerzenie
wartość logiczna opcjonalna
rozszerzenia i aplikacje pakietowe zainstalowane przez użytkownika (zachowaj _szczególną_ ostrożność);
-
protectedWeb
wartość logiczna opcjonalna
Witryny zainstalowane jako aplikacje hostowane (zachowaj ostrożność!).
-
unprotectedWeb
wartość logiczna opcjonalna
zwykłych witryn,
-
-
pochodzenie,
[string, ...string[]] opcjonalny
Chrome 74 lub nowszyJeśli ta lista jest dostępna, usuwane są tylko dane dotyczące źródeł z tej listy. Obsługiwane tylko w przypadku plików cookie, pamięci i pamięci podręcznej. Pliki cookie są usuwane z całej domeny podlegającej rejestracji.
-
od
number opcjonalny
Usuń dane zgromadzone w tym dniu lub po nim (w milisekundach od początku epoki, dostępne za pomocą metody
getTimeobiektu JavaScriptDate). Jeśli nie jest podana, domyślnie przyjmuje wartość 0 (co spowoduje usunięcie wszystkich danych przeglądania).
Metody
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
): Promise<void>
Usuwa różne typy danych przeglądania przechowywanych w profilu użytkownika.
Parametry
-
Opcje
-
dataToRemove
Zbiór typów danych do usunięcia.
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość po zakończeniu usuwania.
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
): Promise<void>
Usuwa dane pamięci podręcznej aplikacji witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy dane pamięci podręcznej aplikacji witryn zostaną wyczyszczone.
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
): Promise<void>
Czyści pamięć podręczną przeglądarki.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaProblem zostaje rozwiązany po wyczyszczeniu pamięci podręcznej przeglądarki.
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
): Promise<void>
Usuwa dane z pamięci podręcznej witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem, gdy pamięć podręczna witryn zostanie wyczyszczona.
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
): Promise<void>
Usuwa pliki cookie przeglądarki i certyfikaty powiązane z serwerem, które zostały zmodyfikowane w określonym przedziale czasu.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem, gdy pliki cookie przeglądarki i certyfikaty powiązane z serwerem zostaną wyczyszczone.
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
): Promise<void>
Czyści listę pobranych plików w przeglądarce (nie same pobrane pliki).
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem, gdy lista pobranych plików w przeglądarce zostanie wyczyszczona.
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
): Promise<void>
Usuwa dane systemu plików witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZakończenie działania następuje po wyczyszczeniu systemów plików witryn.
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
): Promise<void>
Usuwa zapisane w przeglądarce dane formularzy (autouzupełnianie).
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje się, gdy dane formularza przeglądarki zostaną wyczyszczone.
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
): Promise<void>
Czyści historię przeglądarki.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy historia przeglądarki zostanie wyczyszczona.
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
): Promise<void>
Usuwa dane IndexedDB witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem, gdy dane IndexedDB witryn zostały wyczyszczone.
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
): Promise<void>
Usuwa dane zapisane w pamięci lokalnej witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy pamięć lokalna witryn zostanie wyczyszczona.
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
): Promise<void>
Usunęliśmy obsługę usuwania haseł za pomocą rozszerzeń. Ta funkcja nie ma żadnego wpływu.
Usuwa zapisane hasła z przeglądarki.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy hasła w przeglądarce zostaną wyczyszczone.
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
): Promise<void>
Obsługa technologii Flash została usunięta. Ta funkcja nie ma żadnego wpływu.
Usuwa dane wtyczek.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy dane wtyczek zostaną wyczyszczone.
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
): Promise<void>
Usuwa instancje robocze usług witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaRozwiązuje problem, gdy pracownicy usługi witryn zostali wyczyszczeni.
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
): Promise<void>
Usuwa dane WebSQL witryn.
Parametry
-
Opcje
Zwroty
-
Promise<void>
Chrome 96 lub nowsza wersjaZwraca wartość, gdy bazy danych WebSQL witryn zostaną wyczyszczone.
settings()
chrome.browsingData.settings(): Promise<object>
Raport informuje, jakie typy danych są obecnie wybrane w interfejsie ustawień „Wyczyść dane przeglądania”. Uwaga: niektóre typy danych uwzględnione w tym interfejsie API są niedostępne w interfejsie ustawień, a niektóre ustawienia interfejsu użytkownika kontrolują więcej niż 1 typ danych wymieniony tutaj.
Zwroty
-
Promise<object>
Chrome 96 lub nowsza wersja