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") {
"//chrome/browser/performance_hints/android:jni_headers",
"//chrome/browser/preferences:jni_headers",
"//chrome/browser/profiles/android:jni_headers",
"//chrome/browser/tab:jni_headers",
"//chrome/browser/touch_to_fill/android:jni_headers",
"//chrome/browser/ui/android/favicon:jni_headers",
"//chrome/browser/ui/messages/android: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/TabWebContentsDelegateAndroidImpl.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/TabModelObserverJniBridge.java",
"java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java",
......
......@@ -1514,7 +1514,6 @@ chrome_java_sources = [
"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/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/TabStateExtractor.java",
"java/src/org/chromium/chrome/browser/tab/TabStateFileManager.java",
......@@ -1527,8 +1526,6 @@ chrome_java_sources = [
"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/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/EncryptedFilePersistedTabDataStorage.java",
"java/src/org/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage.java",
......
......@@ -19,6 +19,7 @@ include_rules = [
"+chrome/browser/flags",
"+chrome/browser/android/lifecycle",
"+chrome/browser/preferences",
"+chrome/browser/tab",
"+chrome/browser/ui/android/native_page",
"+components/browser_ui/styles/android",
"+components/browser_ui/widget/android",
......
......@@ -2575,8 +2575,6 @@ static_library("browser") {
"android/usb/web_usb_chooser_android.h",
"android/warmup_manager.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.h",
"android/webapk/webapk_icon_hasher.cc",
......@@ -2897,6 +2895,7 @@ static_library("browser") {
"//chrome/browser/payments/android:jni_headers",
"//chrome/browser/safety_check/android",
"//chrome/browser/share",
"//chrome/browser/tab:android_internal",
"//chrome/browser/updates",
"//chrome/common:non_code_constants",
"//chrome/services/media_gallery_util/public/cpp",
......
......@@ -15,8 +15,8 @@
#include "base/callback_forward.h"
#include "base/macros.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/tab/web_contents_state.h"
#include "components/infobars/core/infobar_manager.h"
#include "components/omnibox/browser/location_bar_model.h"
#include "components/sessions/core/session_id.h"
......
......@@ -17,19 +17,26 @@ android_library("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/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/TabViewProvider.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
srcjar_deps = [ "//chrome/browser/ui:tab_model_enums_java" ]
deps = [
":jni_headers",
"//base:base_java",
"//base:jni_java",
"//chrome/browser/contextmenu:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/ui/android/native_page: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:web_contents_delegate_java",
"//components/external_intents/android:java",
......@@ -38,4 +45,26 @@ android_library("java") {
"//content/public/android:content_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 = [
"-chrome",
"+base/android/java/src/org/chromium/base",
"+chrome/browser/contextmenu/java",
"+chrome/browser/profiles/android/java",
"+chrome/browser/ui/android/native_page",
"+components/browser_ui/util/android/java",
"+components/embedder_support/android/java",
......@@ -12,12 +13,13 @@ include_rules = [
"+components/navigation_interception/android/java",
"+content/public/android/java/src/org/chromium/content_public",
"+ui/android/java/src/org/chromium/ui/base",
"+ui/android/java/src/org/chromium/ui/util",
"+url/android/java",
]
specific_include_rules = {
'Tab\.java': [
"-components",
"+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;
* Object that contains the state of a tab, including its navigation history.
*/
public class TabState {
/** Special value for mTimestampMillis. */
private static final long TIMESTAMP_NOT_SET = -1;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// 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 <stdint.h>
......@@ -17,7 +17,7 @@
#include "base/android/jni_string.h"
#include "base/logging.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/sessions/content/content_serialized_navigation_builder.h"
#include "components/sessions/core/serialized_navigation_entry.h"
......@@ -267,7 +267,7 @@ bool ExtractNavigationEntries(
// Read each SerializedNavigationEntry as a separate pickle to avoid
// optional reads of one tab bleeding into the next tab's data.
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) ||
!iter.ReadBytes(&tab_navigation_data, tab_navigation_data_length)) {
LOG(ERROR) << "Failed to restore tab entry from byte array. "
......@@ -361,7 +361,7 @@ WebContents* RestoreContentsFromByteBuffer(
&is_off_the_record,
&current_entry_index, &navigations);
if (!success)
return NULL;
return nullptr;
std::vector<std::unique_ptr<content::NavigationEntry>> entries =
sessions::ContentSerializedNavigationBuilder::ToNavigationEntries(
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_WEB_CONTENTS_STATE_H_
#define CHROME_BROWSER_ANDROID_WEB_CONTENTS_STATE_H_
#ifndef CHROME_BROWSER_TAB_WEB_CONTENTS_STATE_H_
#define CHROME_BROWSER_TAB_WEB_CONTENTS_STATE_H_
#include <vector>
......@@ -17,7 +17,7 @@ class SerializedNavigationEntry;
namespace content {
class BrowserContext;
class WebContents;
}
} // namespace content
// Stores state for a WebContents, including its navigation history.
class WebContentsState {
......@@ -73,4 +73,4 @@ class WebContentsState {
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