// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.tabmodel;
import android.content.ComponentName;
import androidx.annotation.Nullable;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.WebContents;
/** Interface for handling tab related async operations over multiple activities. */
public interface AsyncTabParams {
/**
* @return The {@link LoadUrlParams} associated with the initial URL to load.
*/
LoadUrlParams getLoadUrlParams();
/**
* @return The request ID (tab ID) for this {@link AsyncTabParams}.
*/
@Nullable
Integer getRequestId();
/**
* @return The {@link WebContents} associated with this {@link AsyncTabParams}.
*/
@Nullable
WebContents getWebContents();
/**
* @return The {@link ComponentName} that should handle this Intent.
*/
@Nullable
ComponentName getComponentName();
/**
* @return The tab that would be reparenting through this {@link AsyncTabParams}.
*/
@Nullable
Tab getTabToReparent();
/** Destroy any internal fields if it is necessary. */
void destroy();
}