# WebStorageCompat

Artifact: [androidx.webkit:webkit](https://developer.android.com/jetpack/androidx/releases/webkit) [View Source](https://cs.android.com/search?q=file:androidx/webkit/WebStorageCompat.java+class:androidx.webkit.WebStorageCompat) Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

*** ** * ** ***


```
class WebStorageCompat
```

<br />

*** ** * ** ***

Compatibility class for `https://developer.android.com/reference/android/webkit/WebStorage.html` that introduces new methods to completely clear data.

WebStorage is tied to WebView `https://developer.android.com/reference/kotlin/androidx/webkit/Profile` instances. If your app uses multiple profiles, then you should ensure that you clear data for all relevant profiles.

A `https://developer.android.com/reference/android/webkit/WebStorage.html` instance can be obtained from `https://developer.android.com/reference/android/webkit/WebStorage.html#getInstance()`, or from `https://developer.android.com/reference/kotlin/androidx/webkit/Profile#getWebStorage()` if your app is using multiple WebView profiles.

## Summary

| ### Public functions |
|---|---|
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") @https://developer.android.com/reference/kotlin/androidx/annotation/UiThread https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingData(android.webkit.WebStorage,java.lang.Runnable)(instance: https://developer.android.com/reference/android/webkit/WebStorage.html, doneCallback: https://developer.android.com/reference/java/lang/Runnable.html)` Delete all data stored by websites in the given WebStorage instance. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") @https://developer.android.com/reference/kotlin/androidx/annotation/UiThread https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingData(android.webkit.WebStorage,java.util.concurrent.Executor,java.lang.Runnable)( instance: https://developer.android.com/reference/android/webkit/WebStorage.html, executor: https://developer.android.com/reference/java/util/concurrent/Executor.html, doneCallback: https://developer.android.com/reference/java/lang/Runnable.html )` Delete all data stored by websites in the given WebStorage instance. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") @https://developer.android.com/reference/kotlin/androidx/annotation/UiThread https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingDataForSite(android.webkit.WebStorage,java.lang.String,java.lang.Runnable)( instance: https://developer.android.com/reference/android/webkit/WebStorage.html, site: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, doneCallback: https://developer.android.com/reference/java/lang/Runnable.html )` Delete data stored by web storage APIs for the specified domain in the given WebStorage instance. |
| `java-static https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") @https://developer.android.com/reference/kotlin/androidx/annotation/UiThread https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingDataForSite(android.webkit.WebStorage,java.lang.String,java.util.concurrent.Executor,java.lang.Runnable)( instance: https://developer.android.com/reference/android/webkit/WebStorage.html, site: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, executor: https://developer.android.com/reference/java/util/concurrent/Executor.html, doneCallback: https://developer.android.com/reference/java/lang/Runnable.html )` Delete data stored by web storage APIs for the specified domain in the given WebStorage instance. |

## Public functions

### deleteBrowsingData

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@RequiresFeature(name = WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
@UiThread
java-static fun deleteBrowsingData(instance: WebStorage, doneCallback: Runnable): Unit
```

Delete all data stored by websites in the given WebStorage instance.

This method functions as `https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingData(android.webkit.WebStorage,java.util.concurrent.Executor,java.lang.Runnable)`, but invokes the `doneCallback` on the UI thread.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#DELETE_BROWSING_DATA()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingData(android.webkit.WebStorage,java.util.concurrent.Executor,java.lang.Runnable)` |   |

### deleteBrowsingData

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@RequiresFeature(name = WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
@UiThread
java-static fun deleteBrowsingData(
    instance: WebStorage,
    executor: Executor,
    doneCallback: Runnable
): Unit
```

Delete all data stored by websites in the given WebStorage instance. This includes network cache, cookies, and any JavaScript-readable storage.

This method will delete all data that was stored before being invoked. Deletion is not an atomic operation, so it may also delete data that is stored during deletion, but this is not guaranteed.

| Parameters |
|---|---|
| `instance: https://developer.android.com/reference/android/webkit/WebStorage.html` | WebStorage instance to delete all data in. |
| `executor: https://developer.android.com/reference/java/util/concurrent/Executor.html` | Executor to run the `doneCallback`. |
| `doneCallback: https://developer.android.com/reference/java/lang/Runnable.html` | callback that will be invoked when deletion is complete. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#DELETE_BROWSING_DATA()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

### deleteBrowsingDataForSite

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@RequiresFeature(name = WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
@UiThread
java-static fun deleteBrowsingDataForSite(
    instance: WebStorage,
    site: String,
    doneCallback: Runnable
): String
```

Delete data stored by web storage APIs for the specified domain in the given WebStorage instance.

This method functions as `https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingDataForSite(android.webkit.WebStorage,java.lang.String,java.util.concurrent.Executor,java.lang.Runnable)`, but invokes the `doneCallback` on the UI thread.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#DELETE_BROWSING_DATA()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/WebStorageCompat#deleteBrowsingDataForSite(android.webkit.WebStorage,java.lang.String,java.util.concurrent.Executor,java.lang.Runnable)` |   |

### deleteBrowsingDataForSite

Added in [1.13.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.13.0)

```
@RequiresFeature(name = WebViewFeature.DELETE_BROWSING_DATA, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
@UiThread
java-static fun deleteBrowsingDataForSite(
    instance: WebStorage,
    site: String,
    executor: Executor,
    doneCallback: Runnable
): String
```

Delete data stored by web storage APIs for the specified domain in the given WebStorage instance. This includes network cache, cookies, and any JavaScript-readable storage.

For partitioned storage, this method will remove all data owned by the site, as well as all storage for content embedded in the specified site, e.g. iframed content.

This method deletes storage for the [site](https://developer.mozilla.org/en-US/docs/Glossary/Site) part of the input argument. This means that if the input argument contains a subdomain (for example `www.example.com`), then this method will delete everything belonging to `example.com`.

This method will delete all data that was stored before being invoked. Deletion is not an atomic operation, so it may also delete data that is stored during deletion, but this is not guaranteed.

| Parameters |
|---|---|
| `instance: https://developer.android.com/reference/android/webkit/WebStorage.html` | WebStorage instance to delete all data in. |
| `site: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The site to delete for. This can be a domain name, or a full URL. |
| `executor: https://developer.android.com/reference/java/util/concurrent/Executor.html` | Executor to run the `doneCallback`. |
| `doneCallback: https://developer.android.com/reference/java/lang/Runnable.html` | callback that will be invoked when deletion is complete. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The domain that was used for deletion. This will be the top-level domain part of the `domain` parameter. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if unable to parse the `domain` as a domain name. |
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#DELETE_BROWSING_DATA()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |