Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java |
index 6d8b2b0d62837b270900a02820cf01ef02f3b7fb..389ca6c4732b753bf1c783dc0d10591a79fb51fa 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java |
@@ -16,13 +16,16 @@ import org.chromium.content_public.browser.WebContents; |
public class TabReparentingParams implements AsyncTabParams { |
private final Tab mTabToReparent; |
private final Intent mOriginalIntent; |
+ private final Runnable mFinalizeCallback; |
/** |
* Basic constructor for {@link TabReparentingParams}. |
*/ |
- public TabReparentingParams(Tab tabToReparent, Intent originalIntent) { |
+ public TabReparentingParams( |
+ Tab tabToReparent, Intent originalIntent, Runnable finalizeCallback) { |
mTabToReparent = tabToReparent; |
mOriginalIntent = originalIntent; |
+ mFinalizeCallback = finalizeCallback; |
} |
@Override |
@@ -50,4 +53,15 @@ public class TabReparentingParams implements AsyncTabParams { |
return mTabToReparent; |
} |
+ /** |
+ * Carry out any remaining finalization to be done after the tab is reparented. |
+ */ |
+ public void finalizeTabReparenting() { |
+ mFinalizeCallback.run(); |
+ } |
+ |
+ @Override |
+ public void destroy() { |
+ if (mTabToReparent != null) mTabToReparent.destroy(); |
+ } |
} |