# SpeculativeLoadingParameters.Builder

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

*** ** * ** ***


```
public final class SpeculativeLoadingParameters.Builder
```

<br />

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/webkit/PrerenderParameters` or `https://developer.android.com/reference/androidx/webkit/PrefetchParameters` instead.

A builder class to use to construct the `https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters`.

## Summary

| ### Public constructors |
|---|
| `[Builder](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#Builder())()` **This method is deprecated.** Deprecated in Java |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [addAdditionalHeader](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#addAdditionalHeader(java.lang.String,java.lang.String))(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html key, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html value)` **This method is deprecated.** Deprecated in Java |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [addAdditionalHeaders](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#addAdditionalHeaders(java.util.Map<java.lang.String,java.lang.String>))(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/String.html> additionalHeaders)` **This method is deprecated.** Deprecated in Java |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters` | `@https://developer.android.com/reference/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/androidx/webkit/WebViewFeature.PROFILE_URL_PREFETCH, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") @https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [build](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#build())()` **This method is deprecated.** Deprecated in Java |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [setExpectedNoVarySearchData](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/NoVarySearchHeader expectedNoVarySearchHeader )` **This method is deprecated.** Deprecated in Java |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [setJavaScriptEnabled](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setJavaScriptEnabled(boolean))(boolean javaScriptEnabled)` **This method is deprecated.** Deprecated in Java |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | `@https://developer.android.com/reference/androidx/webkit/Profile.ExperimentalUrlPrefetch [setVariationsId](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setVariationsId(java.lang.Integer))(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Integer.html variationsId)` **This method is deprecated.** Deprecated in Java |

## Public constructors

### Builder

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

```
public [Builder](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#Builder())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

## Public methods

### addAdditionalHeader

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

```
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters.Builder [addAdditionalHeader](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#addAdditionalHeader(java.lang.String,java.lang.String))(@NonNull String key, @NonNull String value)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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

Header keys must be RFC 2616-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.

### addAdditionalHeaders

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

```
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters.Builder [addAdditionalHeaders](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#addAdditionalHeaders(java.util.Map<java.lang.String,java.lang.String>))(@NonNull Map<String, String> additionalHeaders)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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-compliant.

### build

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

```
@RequiresFeature(name = WebViewFeature.PROFILE_URL_PREFETCH, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters [build](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#build())()
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Use to finish building the PrefetchParams

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters` | built PrefetchParams object. |

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

### setExpectedNoVarySearchData

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

```
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters.Builder [setExpectedNoVarySearchData](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setExpectedNoVarySearchData(androidx.webkit.NoVarySearchHeader))(
    @NonNull NoVarySearchHeader expectedNoVarySearchHeader
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

Sets the "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).

### setJavaScriptEnabled

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

```
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters.Builder [setJavaScriptEnabled](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setJavaScriptEnabled(boolean))(boolean javaScriptEnabled)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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

Note: This flag is ignored for prefetches initiated by the prerendering API. The value from `https://developer.android.com/reference/android/webkit/WebSettings.html#getJavaScriptEnabled()` will be used instead.

### setVariationsId

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

```
@Profile.ExperimentalUrlPrefetch
public @NonNull SpeculativeLoadingParameters.Builder [setVariationsId](https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder#setVariationsId(java.lang.Integer))(@Nullable Integer variationsId)
```

> [!CAUTION]
> **This method is deprecated.**   
> Deprecated in Java

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

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Integer.html variationsId` | An Integer ID for this prefetch configuration, or `null` if no specific variations ID is applicable. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/webkit/SpeculativeLoadingParameters.Builder` | This builder instance for chaining. |