Commit 7dc6dcd4 authored by Henrique Nakashima's avatar Henrique Nakashima Committed by Commit Bot

Modularize TabState, WebContentsState and JNI bridge

Move them to chrome/browser/tab:java, from where they can be used by
other modules.

Bug: 1090048
Change-Id: I6a99ffa0974d426b6cc3e8304d30f76242eacf43
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2246983
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: default avatarJinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789124}
parent d6335920
...@@ -655,6 +655,7 @@ group("jni_headers") { ...@@ -655,6 +655,7 @@ group("jni_headers") {
"//chrome/browser/performance_hints/android:jni_headers", "//chrome/browser/performance_hints/android:jni_headers",
"//chrome/browser/preferences:jni_headers", "//chrome/browser/preferences:jni_headers",
"//chrome/browser/profiles/android:jni_headers", "//chrome/browser/profiles/android:jni_headers",
"//chrome/browser/tab:jni_headers",
"//chrome/browser/touch_to_fill/android:jni_headers", "//chrome/browser/touch_to_fill/android:jni_headers",
"//chrome/browser/ui/android/favicon:jni_headers", "//chrome/browser/ui/android/favicon:jni_headers",
"//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/ui/messages/android:jni_headers",
...@@ -3120,7 +3121,6 @@ generate_jni("chrome_jni_headers") { ...@@ -3120,7 +3121,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/tab/TabImpl.java", "java/src/org/chromium/chrome/browser/tab/TabImpl.java",
"java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl.java", "java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl.java",
"java/src/org/chromium/chrome/browser/tab/TrustedCdn.java", "java/src/org/chromium/chrome/browser/tab/TrustedCdn.java",
"java/src/org/chromium/chrome/browser/tab/WebContentsStateBridge.java",
"java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java",
"java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java",
"java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java", "java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java",
......
...@@ -1514,7 +1514,6 @@ chrome_java_sources = [ ...@@ -1514,7 +1514,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/tab/TabImpl.java", "java/src/org/chromium/chrome/browser/tab/TabImpl.java",
"java/src/org/chromium/chrome/browser/tab/TabImportanceManager.java", "java/src/org/chromium/chrome/browser/tab/TabImportanceManager.java",
"java/src/org/chromium/chrome/browser/tab/TabParentIntent.java", "java/src/org/chromium/chrome/browser/tab/TabParentIntent.java",
"java/src/org/chromium/chrome/browser/tab/TabState.java",
"java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java", "java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java",
"java/src/org/chromium/chrome/browser/tab/TabStateExtractor.java", "java/src/org/chromium/chrome/browser/tab/TabStateExtractor.java",
"java/src/org/chromium/chrome/browser/tab/TabStateFileManager.java", "java/src/org/chromium/chrome/browser/tab/TabStateFileManager.java",
...@@ -1527,8 +1526,6 @@ chrome_java_sources = [ ...@@ -1527,8 +1526,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java", "java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java",
"java/src/org/chromium/chrome/browser/tab/TabWebContentsUserData.java", "java/src/org/chromium/chrome/browser/tab/TabWebContentsUserData.java",
"java/src/org/chromium/chrome/browser/tab/TrustedCdn.java", "java/src/org/chromium/chrome/browser/tab/TrustedCdn.java",
"java/src/org/chromium/chrome/browser/tab/WebContentsState.java",
"java/src/org/chromium/chrome/browser/tab/WebContentsStateBridge.java",
"java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java", "java/src/org/chromium/chrome/browser/tab/state/CriticalPersistedTabData.java",
"java/src/org/chromium/chrome/browser/tab/state/EncryptedFilePersistedTabDataStorage.java", "java/src/org/chromium/chrome/browser/tab/state/EncryptedFilePersistedTabDataStorage.java",
"java/src/org/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage.java", "java/src/org/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage.java",
......
...@@ -19,6 +19,7 @@ include_rules = [ ...@@ -19,6 +19,7 @@ include_rules = [
"+chrome/browser/flags", "+chrome/browser/flags",
"+chrome/browser/android/lifecycle", "+chrome/browser/android/lifecycle",
"+chrome/browser/preferences", "+chrome/browser/preferences",
"+chrome/browser/tab",
"+chrome/browser/ui/android/native_page", "+chrome/browser/ui/android/native_page",
"+components/browser_ui/styles/android", "+components/browser_ui/styles/android",
"+components/browser_ui/widget/android", "+components/browser_ui/widget/android",
......
...@@ -2575,8 +2575,6 @@ static_library("browser") { ...@@ -2575,8 +2575,6 @@ static_library("browser") {
"android/usb/web_usb_chooser_android.h", "android/usb/web_usb_chooser_android.h",
"android/warmup_manager.cc", "android/warmup_manager.cc",
"android/web_contents_factory.cc", "android/web_contents_factory.cc",
"android/web_contents_state.cc",
"android/web_contents_state.h",
"android/webapk/webapk_handler_delegate.cc", "android/webapk/webapk_handler_delegate.cc",
"android/webapk/webapk_handler_delegate.h", "android/webapk/webapk_handler_delegate.h",
"android/webapk/webapk_icon_hasher.cc", "android/webapk/webapk_icon_hasher.cc",
...@@ -2897,6 +2895,7 @@ static_library("browser") { ...@@ -2897,6 +2895,7 @@ static_library("browser") {
"//chrome/browser/payments/android:jni_headers", "//chrome/browser/payments/android:jni_headers",
"//chrome/browser/safety_check/android", "//chrome/browser/safety_check/android",
"//chrome/browser/share", "//chrome/browser/share",
"//chrome/browser/tab:android_internal",
"//chrome/browser/updates", "//chrome/browser/updates",
"//chrome/common:non_code_constants", "//chrome/common:non_code_constants",
"//chrome/services/media_gallery_util/public/cpp", "//chrome/services/media_gallery_util/public/cpp",
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "chrome/browser/android/web_contents_state.h"
#include "chrome/browser/sync/glue/synced_tab_delegate_android.h" #include "chrome/browser/sync/glue/synced_tab_delegate_android.h"
#include "chrome/browser/tab/web_contents_state.h"
#include "components/infobars/core/infobar_manager.h" #include "components/infobars/core/infobar_manager.h"
#include "components/omnibox/browser/location_bar_model.h" #include "components/omnibox/browser/location_bar_model.h"
#include "components/sessions/core/session_id.h" #include "components/sessions/core/session_id.h"
......
...@@ -17,19 +17,26 @@ android_library("java") { ...@@ -17,19 +17,26 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/tab/TabHidingType.java", "java/src/org/chromium/chrome/browser/tab/TabHidingType.java",
"java/src/org/chromium/chrome/browser/tab/TabLifecycle.java", "java/src/org/chromium/chrome/browser/tab/TabLifecycle.java",
"java/src/org/chromium/chrome/browser/tab/TabObserver.java", "java/src/org/chromium/chrome/browser/tab/TabObserver.java",
"java/src/org/chromium/chrome/browser/tab/TabState.java",
"java/src/org/chromium/chrome/browser/tab/TabViewManager.java", "java/src/org/chromium/chrome/browser/tab/TabViewManager.java",
"java/src/org/chromium/chrome/browser/tab/TabViewProvider.java", "java/src/org/chromium/chrome/browser/tab/TabViewProvider.java",
"java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java", "java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java",
"java/src/org/chromium/chrome/browser/tab/WebContentsState.java",
"java/src/org/chromium/chrome/browser/tab/WebContentsStateBridge.java",
] ]
# TabSelectionType, TabLaunchType # TabSelectionType, TabLaunchType
srcjar_deps = [ "//chrome/browser/ui:tab_model_enums_java" ] srcjar_deps = [ "//chrome/browser/ui:tab_model_enums_java" ]
deps = [ deps = [
":jni_headers",
"//base:base_java", "//base:base_java",
"//base:jni_java",
"//chrome/browser/contextmenu:java", "//chrome/browser/contextmenu:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/ui/android/native_page:java", "//chrome/browser/ui/android/native_page:java",
"//components/browser_ui/util/android:java", "//components/browser_ui/util/android:java",
"//components/embedder_support/android:browser_context_java",
"//components/embedder_support/android:content_view_java", "//components/embedder_support/android:content_view_java",
"//components/embedder_support/android:web_contents_delegate_java", "//components/embedder_support/android:web_contents_delegate_java",
"//components/external_intents/android:java", "//components/external_intents/android:java",
...@@ -38,4 +45,26 @@ android_library("java") { ...@@ -38,4 +45,26 @@ android_library("java") {
"//content/public/android:content_java", "//content/public/android:content_java",
"//ui/android:ui_full_java", "//ui/android:ui_full_java",
] ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni("jni_headers") {
sources =
[ "java/src/org/chromium/chrome/browser/tab/WebContentsStateBridge.java" ]
}
source_set("android_internal") {
sources = [
"web_contents_state.cc",
"web_contents_state.h",
]
deps = [
":jni_headers",
"//base",
"//components/embedder_support/android:browser_context",
"//components/sessions",
"//content/public/browser",
]
} }
...@@ -4,6 +4,7 @@ include_rules = [ ...@@ -4,6 +4,7 @@ include_rules = [
"-chrome", "-chrome",
"+base/android/java/src/org/chromium/base", "+base/android/java/src/org/chromium/base",
"+chrome/browser/contextmenu/java", "+chrome/browser/contextmenu/java",
"+chrome/browser/profiles/android/java",
"+chrome/browser/ui/android/native_page", "+chrome/browser/ui/android/native_page",
"+components/browser_ui/util/android/java", "+components/browser_ui/util/android/java",
"+components/embedder_support/android/java", "+components/embedder_support/android/java",
...@@ -12,12 +13,13 @@ include_rules = [ ...@@ -12,12 +13,13 @@ include_rules = [
"+components/navigation_interception/android/java", "+components/navigation_interception/android/java",
"+content/public/android/java/src/org/chromium/content_public", "+content/public/android/java/src/org/chromium/content_public",
"+ui/android/java/src/org/chromium/ui/base", "+ui/android/java/src/org/chromium/ui/base",
"+ui/android/java/src/org/chromium/ui/util",
"+url/android/java",
] ]
specific_include_rules = { specific_include_rules = {
'Tab\.java': [ 'Tab\.java': [
"-components", "-components",
"+components/embedder_support/android/java/src/org/chromium/components/embedder_support/view", "+components/embedder_support/android/java/src/org/chromium/components/embedder_support/view",
"+url/android/java/src/org/chromium/url",
], ],
} }
...@@ -14,7 +14,6 @@ import org.chromium.ui.util.ColorUtils; ...@@ -14,7 +14,6 @@ import org.chromium.ui.util.ColorUtils;
* Object that contains the state of a tab, including its navigation history. * Object that contains the state of a tab, including its navigation history.
*/ */
public class TabState { public class TabState {
/** Special value for mTimestampMillis. */ /** Special value for mTimestampMillis. */
private static final long TIMESTAMP_NOT_SET = -1; private static final long TIMESTAMP_NOT_SET = -1;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/android/web_contents_state.h" #include "chrome/browser/tab/web_contents_state.h"
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "base/android/jni_string.h" #include "base/android/jni_string.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/pickle.h" #include "base/pickle.h"
#include "chrome/android/chrome_jni_headers/WebContentsStateBridge_jni.h" #include "chrome/browser/tab/jni_headers/WebContentsStateBridge_jni.h"
#include "components/embedder_support/android/browser_context/browser_context_handle.h" #include "components/embedder_support/android/browser_context/browser_context_handle.h"
#include "components/sessions/content/content_serialized_navigation_builder.h" #include "components/sessions/content/content_serialized_navigation_builder.h"
#include "components/sessions/core/serialized_navigation_entry.h" #include "components/sessions/core/serialized_navigation_entry.h"
...@@ -267,7 +267,7 @@ bool ExtractNavigationEntries( ...@@ -267,7 +267,7 @@ bool ExtractNavigationEntries(
// Read each SerializedNavigationEntry as a separate pickle to avoid // Read each SerializedNavigationEntry as a separate pickle to avoid
// optional reads of one tab bleeding into the next tab's data. // optional reads of one tab bleeding into the next tab's data.
int tab_navigation_data_length = 0; int tab_navigation_data_length = 0;
const char* tab_navigation_data = NULL; const char* tab_navigation_data = nullptr;
if (!iter.ReadInt(&tab_navigation_data_length) || if (!iter.ReadInt(&tab_navigation_data_length) ||
!iter.ReadBytes(&tab_navigation_data, tab_navigation_data_length)) { !iter.ReadBytes(&tab_navigation_data, tab_navigation_data_length)) {
LOG(ERROR) << "Failed to restore tab entry from byte array. " LOG(ERROR) << "Failed to restore tab entry from byte array. "
...@@ -361,7 +361,7 @@ WebContents* RestoreContentsFromByteBuffer( ...@@ -361,7 +361,7 @@ WebContents* RestoreContentsFromByteBuffer(
&is_off_the_record, &is_off_the_record,
&current_entry_index, &navigations); &current_entry_index, &navigations);
if (!success) if (!success)
return NULL; return nullptr;
std::vector<std::unique_ptr<content::NavigationEntry>> entries = std::vector<std::unique_ptr<content::NavigationEntry>> entries =
sessions::ContentSerializedNavigationBuilder::ToNavigationEntries( sessions::ContentSerializedNavigationBuilder::ToNavigationEntries(
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_WEB_CONTENTS_STATE_H_ #ifndef CHROME_BROWSER_TAB_WEB_CONTENTS_STATE_H_
#define CHROME_BROWSER_ANDROID_WEB_CONTENTS_STATE_H_ #define CHROME_BROWSER_TAB_WEB_CONTENTS_STATE_H_
#include <vector> #include <vector>
...@@ -17,7 +17,7 @@ class SerializedNavigationEntry; ...@@ -17,7 +17,7 @@ class SerializedNavigationEntry;
namespace content { namespace content {
class BrowserContext; class BrowserContext;
class WebContents; class WebContents;
} } // namespace content
// Stores state for a WebContents, including its navigation history. // Stores state for a WebContents, including its navigation history.
class WebContentsState { class WebContentsState {
...@@ -73,4 +73,4 @@ class WebContentsState { ...@@ -73,4 +73,4 @@ class WebContentsState {
jboolean is_off_the_record); jboolean is_off_the_record);
}; };
#endif // CHROME_BROWSER_ANDROID_WEB_CONTENTS_STATE_H_ #endif // CHROME_BROWSER_TAB_WEB_CONTENTS_STATE_H_
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