OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/android/foreign_session_helper.h" | 5 #include "chrome/browser/android/foreign_session_helper.h" |
6 | 6 |
7 #include <jni.h> | 7 #include <jni.h> |
8 | 8 |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 GURL tab_url = current_navigation.virtual_url(); | 60 GURL tab_url = current_navigation.virtual_url(); |
61 if (tab_url.SchemeIs(chrome::kChromeNativeScheme) || | 61 if (tab_url.SchemeIs(chrome::kChromeNativeScheme) || |
62 (tab_url.SchemeIs(chrome::kChromeUIScheme) && | 62 (tab_url.SchemeIs(chrome::kChromeUIScheme) && |
63 tab_url.host() == chrome::kChromeUINewTabHost)) | 63 tab_url.host() == chrome::kChromeUINewTabHost)) |
64 continue; | 64 continue; |
65 | 65 |
66 Java_ForeignSessionHelper_pushTab( | 66 Java_ForeignSessionHelper_pushTab( |
67 env, j_window.obj(), | 67 env, j_window.obj(), |
68 ConvertUTF8ToJavaString(env, tab_url.spec()).Release(), | 68 ConvertUTF8ToJavaString(env, tab_url.spec()).Release(), |
69 ConvertUTF16ToJavaString(env, current_navigation.title()).Release(), | 69 ConvertUTF16ToJavaString(env, current_navigation.title()).Release(), |
70 tab.timestamp.ToInternalValue(), tab.tab_id.id()); | 70 tab.timestamp.ToJavaTime(), |
| 71 tab.tab_id.id()); |
71 } | 72 } |
72 } | 73 } |
73 | 74 |
74 void CopyWindowsToJava( | 75 void CopyWindowsToJava( |
75 JNIEnv* env, | 76 JNIEnv* env, |
76 const SyncedSession* session, | 77 const SyncedSession* session, |
77 ScopedJavaLocalRef<jobject>& j_session) { | 78 ScopedJavaLocalRef<jobject>& j_session) { |
78 for (SyncedSession::SyncedWindowMap::const_iterator it = | 79 for (SyncedSession::SyncedWindowMap::const_iterator it = |
79 session->windows.begin(); it != session->windows.end(); ++it) { | 80 session->windows.begin(); it != session->windows.end(); ++it) { |
80 const SessionWindow* window = it->second; | 81 const SessionWindow* window = it->second; |
81 | 82 |
82 ScopedJavaLocalRef<jobject> last_pushed_window; | 83 ScopedJavaLocalRef<jobject> last_pushed_window; |
83 last_pushed_window.Reset( | 84 last_pushed_window.Reset( |
84 Java_ForeignSessionHelper_pushWindow( | 85 Java_ForeignSessionHelper_pushWindow( |
85 env, j_session.obj(), window->timestamp.ToInternalValue(), | 86 env, j_session.obj(), |
| 87 window->timestamp.ToJavaTime(), |
86 window->window_id.id())); | 88 window->window_id.id())); |
87 | 89 |
88 CopyTabsToJava(env, window, last_pushed_window); | 90 CopyTabsToJava(env, window, last_pushed_window); |
89 } | 91 } |
90 } | 92 } |
91 | 93 |
92 } // namespace | 94 } // namespace |
93 | 95 |
94 static jint Init(JNIEnv* env, jclass clazz, jobject profile) { | 96 static jint Init(JNIEnv* env, jclass clazz, jobject profile) { |
95 ForeignSessionHelper* foreign_session_helper = new ForeignSessionHelper( | 97 ForeignSessionHelper* foreign_session_helper = new ForeignSessionHelper( |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 pref_collapsed_sessions->SetBoolean(session->session_tag, true); | 188 pref_collapsed_sessions->SetBoolean(session->session_tag, true); |
187 | 189 |
188 last_pushed_session.Reset( | 190 last_pushed_session.Reset( |
189 Java_ForeignSessionHelper_pushSession( | 191 Java_ForeignSessionHelper_pushSession( |
190 env, | 192 env, |
191 result, | 193 result, |
192 ConvertUTF8ToJavaString(env, session->session_tag).Release(), | 194 ConvertUTF8ToJavaString(env, session->session_tag).Release(), |
193 ConvertUTF8ToJavaString(env, session->session_name).Release(), | 195 ConvertUTF8ToJavaString(env, session->session_name).Release(), |
194 ConvertUTF8ToJavaString(env, | 196 ConvertUTF8ToJavaString(env, |
195 session->DeviceTypeAsString()).Release(), | 197 session->DeviceTypeAsString()).Release(), |
196 session->modified_time.ToInternalValue())); | 198 session->modified_time.ToJavaTime())); |
197 | 199 |
198 CopyWindowsToJava(env, session, last_pushed_session); | 200 CopyWindowsToJava(env, session, last_pushed_session); |
199 } | 201 } |
200 | 202 |
201 return true; | 203 return true; |
202 } | 204 } |
203 | 205 |
204 jboolean ForeignSessionHelper::OpenForeignSessionTab(JNIEnv* env, | 206 jboolean ForeignSessionHelper::OpenForeignSessionTab(JNIEnv* env, |
205 jobject obj, | 207 jobject obj, |
206 jstring session_tag, | 208 jstring session_tag, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 jstring session_tag) { | 263 jstring session_tag) { |
262 SessionModelAssociator* associator = GetSessionModelAssociator(profile_); | 264 SessionModelAssociator* associator = GetSessionModelAssociator(profile_); |
263 if (associator) | 265 if (associator) |
264 associator->DeleteForeignSession(ConvertJavaStringToUTF8(env, session_tag)); | 266 associator->DeleteForeignSession(ConvertJavaStringToUTF8(env, session_tag)); |
265 } | 267 } |
266 | 268 |
267 // static | 269 // static |
268 bool ForeignSessionHelper::RegisterForeignSessionHelper(JNIEnv* env) { | 270 bool ForeignSessionHelper::RegisterForeignSessionHelper(JNIEnv* env) { |
269 return RegisterNativesImpl(env); | 271 return RegisterNativesImpl(env); |
270 } | 272 } |
OLD | NEW |