// Copyright 2016 The Chromium Authors. All rights reserved.
// 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 android.content.Intent;
import android.support.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 original {@link Intent} that contains this {@link AsyncTabParams}.
*/
@Nullable Intent getOriginalIntent();
/**
* @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();
}