OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.tabmodel; | 5 package org.chromium.chrome.browser.tabmodel; |
6 | 6 |
7 import android.content.Intent; | 7 import android.content.Intent; |
8 | 8 |
9 import org.chromium.chrome.browser.tab.Tab; | 9 import org.chromium.chrome.browser.tab.Tab; |
10 import org.chromium.content_public.browser.LoadUrlParams; | 10 import org.chromium.content_public.browser.LoadUrlParams; |
11 import org.chromium.content_public.browser.WebContents; | 11 import org.chromium.content_public.browser.WebContents; |
12 | 12 |
13 /** | 13 /** |
14 * Class for handling tab reparenting operations across multiple activities. | 14 * Class for handling tab reparenting operations across multiple activities. |
15 */ | 15 */ |
16 public class TabReparentingParams implements AsyncTabParams { | 16 public class TabReparentingParams implements AsyncTabParams { |
17 private final Tab mTabToReparent; | 17 private final Tab mTabToReparent; |
18 private final Intent mOriginalIntent; | 18 private final Intent mOriginalIntent; |
19 private final Runnable mFinalizeCallback; | 19 private final Runnable mFinalizeCallback; |
| 20 private final boolean mStayInChrome; |
20 | 21 |
21 /** | 22 /** |
22 * Basic constructor for {@link TabReparentingParams}. | 23 * Basic constructor for {@link TabReparentingParams}. |
23 */ | 24 */ |
24 public TabReparentingParams( | 25 public TabReparentingParams(Tab tabToReparent, Intent originalIntent, Runnab
le finalizeCallback, |
25 Tab tabToReparent, Intent originalIntent, Runnable finalizeCallback)
{ | 26 boolean stayInChrome) { |
26 mTabToReparent = tabToReparent; | 27 mTabToReparent = tabToReparent; |
27 mOriginalIntent = originalIntent; | 28 mOriginalIntent = originalIntent; |
28 mFinalizeCallback = finalizeCallback; | 29 mFinalizeCallback = finalizeCallback; |
| 30 mStayInChrome = stayInChrome; |
29 } | 31 } |
30 | 32 |
31 @Override | 33 @Override |
32 public LoadUrlParams getLoadUrlParams() { | 34 public LoadUrlParams getLoadUrlParams() { |
33 return null; | 35 return null; |
34 } | 36 } |
35 | 37 |
36 @Override | 38 @Override |
37 public Intent getOriginalIntent() { | 39 public Intent getOriginalIntent() { |
38 return mOriginalIntent; | 40 return mOriginalIntent; |
39 } | 41 } |
40 | 42 |
41 @Override | 43 @Override |
42 public Integer getRequestId() { | 44 public Integer getRequestId() { |
43 return null; | 45 return null; |
44 } | 46 } |
45 | 47 |
46 @Override | 48 @Override |
47 public WebContents getWebContents() { | 49 public WebContents getWebContents() { |
48 return null; | 50 return null; |
49 } | 51 } |
50 | 52 |
51 @Override | 53 @Override |
52 public Tab getTabToReparent() { | 54 public Tab getTabToReparent() { |
53 return mTabToReparent; | 55 return mTabToReparent; |
54 } | 56 } |
55 | 57 |
56 /** | 58 /** |
| 59 * @return Whether the user should stay in Chrome after the tab is reparente
d. |
| 60 */ |
| 61 public boolean shouldStayInChrome() { |
| 62 return mStayInChrome; |
| 63 } |
| 64 |
| 65 /** |
57 * Carry out any remaining finalization to be done after the tab is reparent
ed. | 66 * Carry out any remaining finalization to be done after the tab is reparent
ed. |
58 */ | 67 */ |
59 public void finalizeTabReparenting() { | 68 public void finalizeTabReparenting() { |
60 if (mFinalizeCallback != null) mFinalizeCallback.run(); | 69 if (mFinalizeCallback != null) mFinalizeCallback.run(); |
61 } | 70 } |
62 | 71 |
63 @Override | 72 @Override |
64 public void destroy() { | 73 public void destroy() { |
65 if (mTabToReparent != null) mTabToReparent.destroy(); | 74 if (mTabToReparent != null) mTabToReparent.destroy(); |
66 } | 75 } |
67 } | 76 } |
OLD | NEW |