# PrefetchParameters.Builder

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

*** ** * ** ***


```
class PrefetchParameters.Builder
```

<br />

*** ** * ** ***

A builder class for constructing `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#Builder()()` Construct a new Builder. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#addAdditionalHeader(java.lang.String,java.lang.String)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Sets the header value for the given key. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#addAdditionalHeaders(java.util.Map<java.lang.String,java.lang.String>)(additionalHeaders: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Sets multiple headers at once. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#build()()` Build the `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters`. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch [setExpectedNoVarySearchData](https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))( expectedNoVarySearchHeader: https://developer.android.com/reference/kotlin/androidx/webkit/NoVarySearchHeader )` **This function is deprecated.** This is just an update in naming, and this method will disappear in a future release. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setExpectedNoVarySearchHeader(androidx.webkit.NoVarySearchHeader)( expectedNoVarySearchHeader: https://developer.android.com/reference/kotlin/androidx/webkit/NoVarySearchHeader )` Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prefetch's response. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch [setJavaScriptEnabled](https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setJavaScriptEnabled(boolean))(javaScriptEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` **This function is deprecated.** This method has been renamed to `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setShouldSendClientHints(boolean)` and will be removed in a future release. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setShouldSendClientHints(boolean)(shouldSendClientHints: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether the prefetch request will include client hints headers. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | `@https://developer.android.com/reference/kotlin/androidx/webkit/Profile.ExperimentalUrlPrefetch https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setVariationsId(java.lang.Integer)(variationsId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html?)` Sets an optional variations ID to associate with this prefetch request. |

## Public constructors

### Builder

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

```
Builder()
```

Construct a new Builder.

## Public functions

### addAdditionalHeader

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

```
@Profile.ExperimentalUrlPrefetch
fun addAdditionalHeader(key: String, value: String): PrefetchParameters.Builder
```

Sets the header value for the given key. If called multiple times for the same key, the last value will be used.

Header keys must be [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616) compliant.

The logic for handling additional header isn't guaranteed to match the `https://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String, java.util.Map&lt;java.lang.String,java.lang.String&gt;)`'s logic and is subject to change in the future.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The header key. |
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The header value. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### addAdditionalHeaders

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

```
@Profile.ExperimentalUrlPrefetch
fun addAdditionalHeaders(additionalHeaders: (Mutable)Map<String!, String!>): PrefetchParameters.Builder
```

Sets multiple headers at once. The headers passed in here will be merged with any that have been previously set (duplicate keys will be overridden).

Header keys must be [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616) -compliant.

| Parameters |
|---|---|
| `additionalHeaders: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | A map of additional headers to set. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### build

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

```
@Profile.ExperimentalUrlPrefetch
fun build(): PrefetchParameters
```

Build the `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters`.

### setExpectedNoVarySearchData

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

```
@Profile.ExperimentalUrlPrefetch
fun [setExpectedNoVarySearchData](https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))(
    expectedNoVarySearchHeader: NoVarySearchHeader
): PrefetchParameters.Builder
```

> [!CAUTION]
> **This function is deprecated.**   
>
> This is just an update in naming, and this method will disappear in a future release. Please use `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setExpectedNoVarySearchHeader(androidx.webkit.NoVarySearchHeader)`

Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prefetch's response.

This is used to help determine if WebView#loadUrl should either use an in-flight prefetch response to render the web contents or handle the URL as it typically does (i.e. start a network request).

| Parameters |
|---|---|
| `expectedNoVarySearchHeader: https://developer.android.com/reference/kotlin/androidx/webkit/NoVarySearchHeader` | The No-Vary-Search data expected to be returned in the prefetch's response. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### setExpectedNoVarySearchHeader

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

```
@Profile.ExperimentalUrlPrefetch
fun setExpectedNoVarySearchHeader(
    expectedNoVarySearchHeader: NoVarySearchHeader
): PrefetchParameters.Builder
```

Sets the [No-Vary-Search](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/No-Vary-Search) data that's expected to be returned via the header in the prefetch's response.

This is used to help determine if WebView#loadUrl should either use an in-flight prefetch response to render the web contents or handle the URL as it typically does (i.e. start a network request).

| Parameters |
|---|---|
| `expectedNoVarySearchHeader: https://developer.android.com/reference/kotlin/androidx/webkit/NoVarySearchHeader` | The No-Vary-Search data expected to be returned in the prefetch's response. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### setJavaScriptEnabled

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

```
@Profile.ExperimentalUrlPrefetch
fun [setJavaScriptEnabled](https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setJavaScriptEnabled(boolean))(javaScriptEnabled: Boolean): PrefetchParameters.Builder
```

> [!CAUTION]
> **This function is deprecated.**   
>
> This method has been renamed to `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder#setShouldSendClientHints(boolean)` and will be removed in a future release.

Set whether the page that is loaded will have JavaScript enabled. `true` if the WebView's that will be loading the prefetched response will have javascript enabled. This affects whether client hints header is sent with the prefetch request.

| Parameters |
|---|---|
| `javaScriptEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the WebView that will be loading the prefetched response will have JavaScript enabled. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### setShouldSendClientHints

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

```
@Profile.ExperimentalUrlPrefetch
fun setShouldSendClientHints(shouldSendClientHints: Boolean): PrefetchParameters.Builder
```

Sets whether the prefetch request will include client hints headers.

[Client hints](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Client_hints) are headers that tell the server about the current device, network or user, such as the device model or viewport size. When `true`, the prefetch request will include `Set-CH-*` headers. This includes low entropy hints and the high entropy hints that the server has previously requested.

| Parameters |
|---|---|
| `shouldSendClientHints: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the prefetch target requires client hints. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |

### setVariationsId

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

```
@Profile.ExperimentalUrlPrefetch
fun setVariationsId(variationsId: Int?): PrefetchParameters.Builder
```

Sets an optional variations ID to associate with this prefetch request.

| Parameters |
|---|---|
| `variationsId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html?` | An Integer ID for this prefetch configuration, or `null` if no specific variations ID is applicable. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/PrefetchParameters.Builder` | This builder instance for chaining. |