[Feed] Import feed@eb5622ba5a63b0e62ee8cc7afd49d087faa107c9

******************************Resource Sizes Diff******************************
Specifics:
       +77,856 bytes main lib size
      +562,136 bytes main dex size
       +64,120 bytes secondary dex size
    +1,019,376 bytes normalized apk size
InstallSize:
      +393,902 bytes APK size
    +1,126,622 bytes Estimated installed size (Android Go)
    +2,923,976 bytes Estimated installed size
InstallBreakdown (+2,920,885 bytes):
        +4,021 bytes Native resources (no l10n) size
        +2,776 bytes Non-compiled Android resources size
       +77,856 bytes Native code size
          +793 bytes Package metadata size
    +2,807,307 bytes Java code size
       +28,132 bytes Compiled Android resources size
Dex:
        +3,248 entries fields
        +4,765 entries methods
        +1,353 entries types
        +2,835 entries strings

Bug: 948739
Change-Id: I39a56c41e0d386e4da772dbc7bb65f485aefdc8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613779
Reviewed-by: Dan H <harringtond@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Commit-Queue: Dan H <harringtond@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661059}
diff --git a/DEPS b/DEPS
index f95dfe1..0cdc071 100644
--- a/DEPS
+++ b/DEPS
@@ -212,7 +212,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'feed_revision': '80206bfdbfec6a374e1ee5055331bd302551457d',
+  'feed_revision': 'eb5622ba5a63b0e62ee8cc7afd49d087faa107c9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling android_sdk_build-tools_version
   # and whatever else without interference from each other.
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedAppLifecycle.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedAppLifecycle.java
index 55de18d..63e184207 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedAppLifecycle.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedAppLifecycle.java
@@ -7,7 +7,7 @@
 import android.app.Activity;
 import android.support.annotation.IntDef;
 
-import com.google.android.libraries.feed.api.lifecycle.AppLifecycleListener;
+import com.google.android.libraries.feed.api.client.lifecycle.AppLifecycleListener;
 
 import org.chromium.base.ActivityState;
 import org.chromium.base.ApplicationStatus;
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedConfiguration.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedConfiguration.java
index 73f86ff..50dfdfe 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedConfiguration.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedConfiguration.java
@@ -44,12 +44,12 @@
 
     private static final String INITIAL_NON_CACHED_PAGE_SIZE = "initial_non_cached_page_size";
     /** Default value for initial non cached page size. */
-    public static final int INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT = 10;
+    public static final long INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT = 10;
 
     private static final String LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS =
             "logging_immediate_content_threshold_ms";
     /** Default value for logging immediate content threshold. */
-    public static final int LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT = 1000;
+    public static final long LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT = 1000;
 
     private static final String MANAGE_INTERESTS_ENABLED = "manage_interests_enabled";
     /** Default value for whether to use menu options to launch interest management page. */
@@ -57,15 +57,15 @@
 
     private static final String NON_CACHED_MIN_PAGE_SIZE = "non_cached_min_page_size";
     /** Default value for non cached minimum page size. */
-    public static final int NON_CACHED_MIN_PAGE_SIZE_DEFAULT = 5;
+    public static final long NON_CACHED_MIN_PAGE_SIZE_DEFAULT = 5;
 
     private static final String NON_CACHED_PAGE_SIZE = "non_cached_page_size";
     /** Default value for non cached page size. */
-    public static final int NON_CACHED_PAGE_SIZE_DEFAULT = 25;
+    public static final long NON_CACHED_PAGE_SIZE_DEFAULT = 25;
 
     private static final String SESSION_LIFETIME_MS = "session_lifetime_ms";
     /** Default value for session lifetime. */
-    public static final int SESSION_LIFETIME_MS_DEFAULT = 3600000;
+    public static final long SESSION_LIFETIME_MS_DEFAULT = 3600000;
 
     private static final String SNIPPETS_ENABLED = "snippets_enabled";
     /** Default value for whether to show article snippets. */
@@ -136,7 +136,7 @@
     static int getInitialNonCachedPageSize() {
         return ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS, INITIAL_NON_CACHED_PAGE_SIZE,
-                INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT);
+                (int) INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT);
     }
 
     /**
@@ -148,7 +148,7 @@
         return (long) ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS,
                 LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS,
-                LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT);
+                (int) LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT);
     }
 
     /** return Whether to show context menu option to launch to customization page. */
@@ -164,7 +164,7 @@
     static int getNonCachedMinPageSize() {
         return ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS, NON_CACHED_MIN_PAGE_SIZE,
-                NON_CACHED_MIN_PAGE_SIZE_DEFAULT);
+                (int) NON_CACHED_MIN_PAGE_SIZE_DEFAULT);
     }
 
     /** @return Used to decide where to place the more button. */
@@ -172,7 +172,7 @@
     static int getNonCachedPageSize() {
         return ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS, NON_CACHED_PAGE_SIZE,
-                NON_CACHED_PAGE_SIZE_DEFAULT);
+                (int) NON_CACHED_PAGE_SIZE_DEFAULT);
     }
 
     /** @return Time until feed stops restoring the UI. */
@@ -180,7 +180,7 @@
     static long getSessionLifetimeMs() {
         return (long) ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS, SESSION_LIFETIME_MS,
-                SESSION_LIFETIME_MS_DEFAULT);
+                (int) SESSION_LIFETIME_MS_DEFAULT);
     }
 
     /**
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedDebuggingBridge.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedDebuggingBridge.java
index b536fdf..31ae060 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedDebuggingBridge.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedDebuggingBridge.java
@@ -4,7 +4,7 @@
 
 package org.chromium.chrome.browser.feed;
 
-import com.google.android.libraries.feed.api.requestmanager.RequestManager;
+import com.google.android.libraries.feed.api.client.requestmanager.RequestManager;
 import com.google.android.libraries.feed.api.scope.FeedProcessScope;
 import com.google.android.libraries.feed.common.logging.Dumper;
 
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedLoggingBridge.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedLoggingBridge.java
index cc2d5ce..de50cb6 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedLoggingBridge.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedLoggingBridge.java
@@ -6,6 +6,7 @@
 
 import android.support.annotation.NonNull;
 
+import com.google.android.libraries.feed.api.client.stream.Stream.ScrollListener;
 import com.google.android.libraries.feed.api.host.logging.ActionType;
 import com.google.android.libraries.feed.api.host.logging.BasicLoggingApi;
 import com.google.android.libraries.feed.api.host.logging.ContentLoggingData;
@@ -17,7 +18,6 @@
 import com.google.android.libraries.feed.api.host.logging.SpinnerType;
 import com.google.android.libraries.feed.api.host.logging.Task;
 import com.google.android.libraries.feed.api.host.logging.ZeroStateShowReason;
-import com.google.android.libraries.feed.api.stream.ScrollListener;
 import com.google.search.now.ui.action.FeedActionProto;
 
 import org.chromium.base.annotations.JNINamespace;
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
index 439ff51..fdbdb5c 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
@@ -17,6 +17,9 @@
 import android.view.View;
 import android.widget.ScrollView;
 
+import com.google.android.libraries.feed.api.client.scope.StreamScope;
+import com.google.android.libraries.feed.api.client.stream.Header;
+import com.google.android.libraries.feed.api.client.stream.Stream;
 import com.google.android.libraries.feed.api.host.action.ActionApi;
 import com.google.android.libraries.feed.api.host.stream.CardConfiguration;
 import com.google.android.libraries.feed.api.host.stream.SnackbarApi;
@@ -26,10 +29,7 @@
 import com.google.android.libraries.feed.api.host.stream.TooltipCallbackApi;
 import com.google.android.libraries.feed.api.host.stream.TooltipInfo;
 import com.google.android.libraries.feed.api.scope.FeedProcessScope;
-import com.google.android.libraries.feed.api.scope.FeedStreamScope;
-import com.google.android.libraries.feed.api.stream.Header;
 import com.google.android.libraries.feed.api.stream.NonDismissibleHeader;
-import com.google.android.libraries.feed.api.stream.Stream;
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.VisibleForTesting;
@@ -372,9 +372,9 @@
 
         TooltipApi tooltipApi = new BasicTooltipApi();
 
-        FeedStreamScope streamScope =
+        StreamScope streamScope =
                 feedProcessScope
-                        .createFeedStreamScopeBuilder(chromeActivity, mImageLoader, actionApi,
+                        .createStreamScopeBuilder(chromeActivity, mImageLoader, actionApi,
                                 new BasicStreamConfiguration(),
                                 new BasicCardConfiguration(
                                         chromeActivity.getResources(), mUiConfig),
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java
index 5b1ceff..fb90075 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java
@@ -10,9 +10,9 @@
 import android.view.View;
 import android.widget.ScrollView;
 
-import com.google.android.libraries.feed.api.stream.ContentChangedListener;
-import com.google.android.libraries.feed.api.stream.ScrollListener;
-import com.google.android.libraries.feed.api.stream.Stream;
+import com.google.android.libraries.feed.api.client.stream.Stream;
+import com.google.android.libraries.feed.api.client.stream.Stream.ContentChangedListener;
+import com.google.android.libraries.feed.api.client.stream.Stream.ScrollListener;
 
 import org.chromium.base.MemoryPressureListener;
 import org.chromium.base.VisibleForTesting;
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
index 238bd268..a6b73ff 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
@@ -6,6 +6,7 @@
 
 import android.support.annotation.Nullable;
 
+import com.google.android.libraries.feed.api.client.scope.ProcessScopeBuilder;
 import com.google.android.libraries.feed.api.host.config.ApplicationInfo;
 import com.google.android.libraries.feed.api.host.config.Configuration;
 import com.google.android.libraries.feed.api.host.config.DebugBehavior;
@@ -136,15 +137,13 @@
         NetworkClient networkClient = sTestNetworkClient == null ?
             new FeedNetworkBridge(profile) : sTestNetworkClient;
         sFeedLoggingBridge = new FeedLoggingBridge(profile);
-        sFeedProcessScope =
-                new FeedProcessScope
-                        .Builder(configHostApi, Executors.newSingleThreadExecutor(),
-                                sFeedLoggingBridge, networkClient, schedulerBridge,
-                                DebugBehavior.SILENT, ContextUtils.getApplicationContext(),
-                                applicationInfo, new StubFeedTooltiSupportedApi())
-                        .setContentStorage(contentStorage)
-                        .setJournalStorage(journalStorage)
-                        .build();
+        sFeedProcessScope = (FeedProcessScope) new ProcessScopeBuilder(configHostApi,
+                Executors.newSingleThreadExecutor(), sFeedLoggingBridge, networkClient,
+                schedulerBridge, DebugBehavior.SILENT, ContextUtils.getApplicationContext(),
+                applicationInfo, new StubFeedTooltiSupportedApi())
+                                    .setContentStorage(contentStorage)
+                                    .setJournalStorage(journalStorage)
+                                    .build();
         schedulerBridge.initializeFeedDependencies(sFeedProcessScope.getRequestManager());
 
         sFeedOfflineIndicator = new FeedOfflineBridge(profile, sFeedProcessScope.getKnownContent());
@@ -176,13 +175,11 @@
         ApplicationInfo applicationInfo =
                 new ApplicationInfo.Builder(ContextUtils.getApplicationContext()).build();
 
-        sFeedProcessScope =
-                new FeedProcessScope
-                        .Builder(configHostApi, Executors.newSingleThreadExecutor(),
-                                sFeedLoggingBridge, networkClient, sFeedScheduler,
-                                DebugBehavior.SILENT, ContextUtils.getApplicationContext(),
-                                applicationInfo, new StubFeedTooltiSupportedApi())
-                        .build();
+        sFeedProcessScope = (FeedProcessScope) new ProcessScopeBuilder(configHostApi,
+                Executors.newSingleThreadExecutor(), sFeedLoggingBridge, networkClient,
+                sFeedScheduler, DebugBehavior.SILENT, ContextUtils.getApplicationContext(),
+                applicationInfo, new StubFeedTooltiSupportedApi())
+                                    .build();
     }
 
     /** Use supplied NetworkClient instead of real one, for tests. */
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java
index 2974bdc..11d066fb 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java
@@ -6,8 +6,8 @@
 
 import android.support.annotation.NonNull;
 
+import com.google.android.libraries.feed.api.client.requestmanager.RequestManager;
 import com.google.android.libraries.feed.api.host.scheduler.SchedulerApi;
-import com.google.android.libraries.feed.api.requestmanager.RequestManager;
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/StreamLifecycleManager.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/StreamLifecycleManager.java
index f2ad96e..56d92cb 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/StreamLifecycleManager.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/StreamLifecycleManager.java
@@ -7,7 +7,7 @@
 import android.app.Activity;
 import android.support.annotation.IntDef;
 
-import com.google.android.libraries.feed.api.stream.Stream;
+import com.google.android.libraries.feed.api.client.stream.Stream;
 
 import org.chromium.base.ActivityState;
 import org.chromium.base.ApplicationStatus;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedAppLifecycleTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedAppLifecycleTest.java
index c9ad451..ca7a590 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedAppLifecycleTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedAppLifecycleTest.java
@@ -14,8 +14,8 @@
 import android.app.Activity;
 import android.support.test.filters.SmallTest;
 
+import com.google.android.libraries.feed.api.client.lifecycle.AppLifecycleListener;
 import com.google.android.libraries.feed.api.host.network.NetworkClient;
-import com.google.android.libraries.feed.api.lifecycle.AppLifecycleListener;
 
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedConfigurationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedConfigurationTest.java
index 674072c..d14f631 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedConfigurationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedConfigurationTest.java
@@ -253,21 +253,21 @@
         Assert.assertEquals(FeedConfiguration.FEED_SERVER_METHOD_DEFAULT,
                 configuration.getValueOrDefault(ConfigKey.FEED_SERVER_METHOD, ""));
         Assert.assertEquals(FeedConfiguration.FEED_SERVER_RESPONSE_LENGTH_PREFIXED_DEFAULT,
-                configuration.getValueOrDefault(ConfigKey.FEED_SERVER_RESPONSE_LENGTH_PREFIXED, 0));
+                configuration.getValueOrDefault(
+                        ConfigKey.FEED_SERVER_RESPONSE_LENGTH_PREFIXED, false));
         Assert.assertFalse(configuration.getValueOrDefault(ConfigKey.FEED_UI_ENABLED, true));
-        Assert.assertEquals(Integer.valueOf(FeedConfiguration.INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT),
+        Assert.assertEquals((long) FeedConfiguration.INITIAL_NON_CACHED_PAGE_SIZE_DEFAULT,
                 configuration.getValueOrDefault(ConfigKey.INITIAL_NON_CACHED_PAGE_SIZE, 0));
-        Assert.assertEquals(
-                Long.valueOf(FeedConfiguration.LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT),
+        Assert.assertEquals((long) FeedConfiguration.LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS_DEFAULT,
                 configuration.getValueOrDefault(
                         ConfigKey.LOGGING_IMMEDIATE_CONTENT_THRESHOLD_MS, 0l));
         Assert.assertFalse(
                 configuration.getValueOrDefault(ConfigKey.MANAGE_INTERESTS_ENABLED, true));
-        Assert.assertEquals(Integer.valueOf(FeedConfiguration.NON_CACHED_MIN_PAGE_SIZE_DEFAULT),
+        Assert.assertEquals((long) FeedConfiguration.NON_CACHED_MIN_PAGE_SIZE_DEFAULT,
                 configuration.getValueOrDefault(ConfigKey.NON_CACHED_MIN_PAGE_SIZE, 0));
-        Assert.assertEquals(Integer.valueOf(FeedConfiguration.NON_CACHED_PAGE_SIZE_DEFAULT),
+        Assert.assertEquals((long) FeedConfiguration.NON_CACHED_PAGE_SIZE_DEFAULT,
                 configuration.getValueOrDefault(ConfigKey.NON_CACHED_PAGE_SIZE, 0));
-        Assert.assertEquals(Long.valueOf(FeedConfiguration.SESSION_LIFETIME_MS_DEFAULT),
+        Assert.assertEquals((long) FeedConfiguration.SESSION_LIFETIME_MS_DEFAULT,
                 configuration.getValueOrDefault(ConfigKey.SESSION_LIFETIME_MS, 0l));
         Assert.assertFalse(configuration.getValueOrDefault(ConfigKey.SNIPPETS_ENABLED, true));
         Assert.assertFalse(
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedSchedulerBridgeConformanceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedSchedulerBridgeConformanceTest.java
index 0cf73ea..42d2461 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedSchedulerBridgeConformanceTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedSchedulerBridgeConformanceTest.java
@@ -7,7 +7,7 @@
 import android.support.test.filters.SmallTest;
 import android.support.test.rule.UiThreadTestRule;
 
-import com.google.android.libraries.feed.api.requestmanager.RequestManager;
+import com.google.android.libraries.feed.api.client.requestmanager.RequestManager;
 import com.google.android.libraries.feed.testing.conformance.scheduler.SchedulerConformanceTest;
 
 import org.junit.After;
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/feed/StreamLifecycleManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/feed/StreamLifecycleManagerTest.java
index 13f21da..05fb689 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/feed/StreamLifecycleManagerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/feed/StreamLifecycleManagerTest.java
@@ -21,7 +21,7 @@
 import android.app.Activity;
 import android.support.test.filters.SmallTest;
 
-import com.google.android.libraries.feed.api.stream.Stream;
+import com.google.android.libraries.feed.api.client.stream.Stream;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/third_party/feed/README.chromium b/third_party/feed/README.chromium
index 839dc15..214134e 100644
--- a/third_party/feed/README.chromium
+++ b/third_party/feed/README.chromium
@@ -2,7 +2,7 @@
 Short name: feed
 URL: https://chromium.googlesource.com/feed
 Version: 0
-Revision: 80206bfdbfec6a374e1ee5055331bd302551457d
+Revision: eb5622ba5a63b0e62ee8cc7afd49d087faa107c9
 License: Apache 2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/feed/java_sources.gni b/third_party/feed/java_sources.gni
index 9ee2e9f..165ffb2 100644
--- a/third_party/feed/java_sources.gni
+++ b/third_party/feed/java_sources.gni
@@ -8,6 +8,14 @@
   "src/src/main/java/com/google/android/libraries/feed/api/client/knowncontent/ContentMetadata.java",
   "src/src/main/java/com/google/android/libraries/feed/api/client/knowncontent/ContentRemoval.java",
   "src/src/main/java/com/google/android/libraries/feed/api/client/knowncontent/KnownContent.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/lifecycle/AppLifecycleListener.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/requestmanager/RequestManager.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/scope/ProcessScope.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/scope/ProcessScopeBuilder.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/scope/StreamScope.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/scope/StreamScopeBuilder.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/stream/Header.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/client/stream/Stream.java",
   "src/src/main/java/com/google/android/libraries/feed/api/common/MutationContext.java",
   "src/src/main/java/com/google/android/libraries/feed/api/host/action/ActionApi.java",
   "src/src/main/java/com/google/android/libraries/feed/api/host/action/ActionEnabledApi.java",
@@ -55,21 +63,52 @@
   "src/src/main/java/com/google/android/libraries/feed/api/host/stream/TooltipCallbackApi.java",
   "src/src/main/java/com/google/android/libraries/feed/api/host/stream/TooltipInfo.java",
   "src/src/main/java/com/google/android/libraries/feed/api/host/stream/TooltipSupportedApi.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionmanager/ActionManager.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionmanager/ActionReader.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionparser/ActionParser.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionparser/ActionParserFactory.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionparser/ActionSource.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/actionparser/ActionSourceConverter.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/ActionPropertiesWithId.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/DismissActionWithSemanticProperties.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/PayloadWithId.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/SemanticPropertiesWithId.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/ThreadUtils.java",
   "src/src/main/java/com/google/android/libraries/feed/api/internal/knowncontent/FeedKnownContent.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/lifecycle/Resettable.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/FeatureChange.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/FeatureChangeObserver.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelChild.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelCursor.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelError.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelFeature.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelProvider.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelProviderFactory.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelProviderObserver.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/ModelToken.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/RemoveTracking.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/TokenCompleted.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/modelprovider/TokenCompletedObserver.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/protocoladapter/ProtocolAdapter.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/requestmanager/FeedRequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/api/internal/sessionmanager/FeedSessionManager.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/lifecycle/AppLifecycleListener.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/lifecycle/Resettable.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/ActionPropertiesMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/ContentMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/LocalActionMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/SemanticPropertiesMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/SessionMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/Store.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/StoreListener.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/store/UploadableActionMutation.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/stream/BasicStreamFactory.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/stream/StreamFactory.java",
   "src/src/main/java/com/google/android/libraries/feed/api/requestmanager/ActionUploadRequestManager.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/requestmanager/RequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/api/scope/ClearAllListener.java",
   "src/src/main/java/com/google/android/libraries/feed/api/scope/FeedProcessScope.java",
   "src/src/main/java/com/google/android/libraries/feed/api/scope/FeedStreamScope.java",
   "src/src/main/java/com/google/android/libraries/feed/api/sessionmanager/SessionManager.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/stream/ContentChangedListener.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/stream/Header.java",
   "src/src/main/java/com/google/android/libraries/feed/api/stream/NonDismissibleHeader.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/stream/ScrollListener.java",
-  "src/src/main/java/com/google/android/libraries/feed/api/stream/Stream.java",
   "src/src/main/java/com/google/android/libraries/feed/basicstream/BasicStream.java",
   "src/src/main/java/com/google/android/libraries/feed/basicstream/internal/StreamItemAnimator.java",
   "src/src/main/java/com/google/android/libraries/feed/basicstream/internal/StreamItemTouchCallbacks.java",
@@ -205,43 +244,6 @@
   "src/src/main/java/com/google/android/libraries/feed/hostimpl/storage/InMemoryJournalStorage.java",
   "src/src/main/java/com/google/android/libraries/feed/hostimpl/storage/PersistentContentStorage.java",
   "src/src/main/java/com/google/android/libraries/feed/hostimpl/storage/PersistentJournalStorage.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionmanager/ActionManager.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionmanager/ActionReader.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionparser/ActionParser.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionparser/ActionParserFactory.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionparser/ActionSource.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/actionparser/ActionSourceConverter.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/ActionPropertiesWithId.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/DismissActionWithSemanticProperties.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/PayloadWithId.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/SemanticPropertiesWithId.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/ThreadUtils.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/FeatureChange.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/FeatureChangeObserver.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelChild.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelCursor.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelError.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelFeature.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelProvider.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelProviderFactory.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelProviderObserver.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/ModelToken.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/RemoveTracking.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/TokenCompleted.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/modelprovider/TokenCompletedObserver.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/protocoladapter/ProtocolAdapter.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/requestmanager/FeedRequestManager.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/ActionPropertiesMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/ContentMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/LocalActionMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/SemanticPropertiesMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/SessionMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/Store.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/StoreListener.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/store/UploadableActionMutation.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/stream/BasicStreamFactory.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/stream/StreamFactory.java",
   "src/src/main/java/com/google/android/libraries/feed/mocknetworkclient/MockServerNetworkClient.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/AdapterFactory.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/AdapterParameters.java",
@@ -333,6 +335,8 @@
 ]
 
 feed_conformance_test_lib_sources = [
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/testing/ContentIdGenerators.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/internal/common/testing/InternalProtocolBuilder.java",
   "src/src/main/java/com/google/android/libraries/feed/common/concurrent/testing/FakeDirectExecutor.java",
   "src/src/main/java/com/google/android/libraries/feed/common/concurrent/testing/FakeMainThreadRunner.java",
   "src/src/main/java/com/google/android/libraries/feed/common/concurrent/testing/FakeTaskQueue.java",
@@ -345,8 +349,6 @@
   "src/src/main/java/com/google/android/libraries/feed/common/testing/RunnableSubject.java",
   "src/src/main/java/com/google/android/libraries/feed/common/testing/SessionTestUtils.java",
   "src/src/main/java/com/google/android/libraries/feed/common/time/testing/FakeClock.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/testing/ContentIdGenerators.java",
-  "src/src/main/java/com/google/android/libraries/feed/internalapi/common/testing/InternalProtocolBuilder.java",
   "src/src/main/java/com/google/android/libraries/feed/testing/conformance/network/NetworkClientConformanceTest.java",
   "src/src/main/java/com/google/android/libraries/feed/testing/conformance/scheduler/SchedulerConformanceTest.java",
   "src/src/main/java/com/google/android/libraries/feed/testing/conformance/storage/ContentStorageConformanceTest.java",
diff --git a/third_party/feed/proto_sources.gni b/third_party/feed/proto_sources.gni
index a616f1a..01caa60b 100644
--- a/third_party/feed/proto_sources.gni
+++ b/third_party/feed/proto_sources.gni
@@ -3,8 +3,8 @@
 # found in the LICENSE file.
 
 feed_lib_proto_sources = [
+  "src/src/main/proto/com/google/android/libraries/feed/api/internal/proto/stream_data.proto",
   "src/src/main/proto/com/google/android/libraries/feed/basicstream/internal/proto/stream_saved_instance_state.proto",
-  "src/src/main/proto/com/google/android/libraries/feed/internalapi/proto/stream_data.proto",
   "src/src/main/proto/com/google/android/libraries/feed/sharedstream/proto/scroll_state.proto",
   "src/src/main/proto/com/google/android/libraries/feed/sharedstream/proto/ui_refresh_reason.proto",
   "src/src/main/proto/com/google/android/libraries/feed/testing/proto/ui_context_for_test.proto",