Commit f2976777 authored by Dan Harrington's avatar Dan Harrington Committed by Commit Bot

feed v2: Add postTask to xsurface

Bug: b/165288064, 1117571
Change-Id: Id7d98858484644044c5ac6da8714541a0eae0d96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2363388Reviewed-by: default avatarJustin DeWitt <dewittj@chromium.org>
Commit-Queue: Dan H <harringtond@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800218}
parent 623e0d1b
...@@ -23,6 +23,7 @@ import org.chromium.base.annotations.CalledByNative; ...@@ -23,6 +23,7 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskTraits;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.feed.shared.ScrollTracker; import org.chromium.chrome.browser.feed.shared.ScrollTracker;
...@@ -250,6 +251,23 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand ...@@ -250,6 +251,23 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand
public void logWarning(String tag, String format, Object... args) { public void logWarning(String tag, String format, Object... args) {
Log.w(tag, format, args); Log.w(tag, format, args);
} }
@Override
public void postTask(int taskType, Runnable task, long delayMs) {
TaskTraits traits;
switch (taskType) {
case ProcessScopeDependencyProvider.TASK_TYPE_UI_THREAD:
traits = UiThreadTaskTraits.DEFAULT;
break;
case ProcessScopeDependencyProvider.TASK_TYPE_BACKGROUND_MAY_BLOCK:
traits = TaskTraits.BEST_EFFORT_MAY_BLOCK;
break;
default:
assert false : "Invalid task type";
return;
}
PostTask.postDelayedTask(traits, task, delayMs);
}
} }
/** /**
......
...@@ -46,4 +46,18 @@ public interface ProcessScopeDependencyProvider { ...@@ -46,4 +46,18 @@ public interface ProcessScopeDependencyProvider {
default ImageFetchClient getImageFetchClient() { default ImageFetchClient getImageFetchClient() {
return null; return null;
} }
// Posts task to the UI thread.
int TASK_TYPE_UI_THREAD = 1;
// Posts to a background thread. The task may block.
int TASK_TYPE_BACKGROUND_MAY_BLOCK = 2;
/**
* Runs task on a Chrome executor, see PostTask.java.
*
* @param taskType Type of task to run. Determines which thread and what priority is used.
* @param task The task to run
* @param delayMs The delay before executing the task in milliseconds.
*/
default void postTask(int taskType, Runnable task, long delayMs) {}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment