Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabPersistencePolicy.java

Issue 2984453002: Add Browser Actions tab model selector and open a tab through it if ChromeTabbedActivity is not ava…
Patch Set: Sync changes. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.browseractions;
6
7 import android.os.StrictMode;
8
9 import org.chromium.base.Callback;
10 import org.chromium.base.Log;
11 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
12 import org.chromium.chrome.browser.tabmodel.TabPersistencePolicy;
13 import org.chromium.chrome.browser.tabmodel.TabPersistentStore;
14
15 import java.io.File;
16 import java.util.List;
17 import java.util.concurrent.Executor;
18
19 import javax.annotation.Nullable;
20
21 /**
22 * Handles the Browser Actions Tab specific behaviors of tab persistence.
23 */
24 public class BrowserActionsTabPersistencePolicy implements TabPersistencePolicy {
25 static final String SAVED_STATE_DIRECTORY = "0";
26
27 private static final String TAG = "tabmodel";
28
29 /** Prevents two state directories from getting created simultaneously. */
30 private static final Object DIR_CREATION_LOCK = new Object();
31
32 private static File sStateDirectory;
33
34 @Override
35 public File getOrCreateStateDirectory() {
36 return getOrCreateBrowserActionsModeStateDirectory();
37 }
38
39 @Override
40 public String getStateFileName() {
41 return TabPersistentStore.getStateFileName("2");
42 }
43
44 @Override
45 public boolean shouldMergeOnStartup() {
46 return false;
47 }
48
49 @Override
50 @Nullable
51 public String getStateToBeMergedFileName() {
52 return null;
53 }
54
55 @Override
56 public boolean performInitialization(Executor executor) {
57 return true;
58 }
59
60 @Override
61 public void waitForInitializationToFinish() {}
62
63 @Override
64 public boolean isMergeInProgress() {
65 return false;
66 }
67
68 @Override
69 public void setMergeInProgress(boolean isStarted) {
70 assert false : "Merge not supported in Browser Actions";
71 }
72
73 @Override
74 public void cancelCleanupInProgress() {}
75
76 @Override
77 public void cleanupUnusedFiles(Callback<List<String>> filesToDelete) {}
78
79 @Override
80 public void setTabContentManager(TabContentManager cache) {}
81
82 @Override
83 public void notifyStateLoaded(int tabCountAtStartup) {}
84
85 @Override
86 public void destroy() {}
87
88 /**
89 * The folder where the state should be saved to.
90 * @return A file representing the directory that contains TabModelSelector states.
91 */
92 public static File getOrCreateBrowserActionsModeStateDirectory() {
93 synchronized (DIR_CREATION_LOCK) {
94 if (sStateDirectory == null) {
95 sStateDirectory = new File(
96 TabPersistentStore.getOrCreateBaseStateDirectory(), SAVE D_STATE_DIRECTORY);
97 StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWr ites();
98 try {
99 if (!sStateDirectory.exists() && !sStateDirectory.mkdirs()) {
100 Log.e(TAG, "Failed to create state folder: " + sStateDir ectory);
101 }
102 } finally {
103 StrictMode.setThreadPolicy(oldPolicy);
104 }
105 }
106 }
107 return sStateDirectory;
108 }
109 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698