| 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 |