| OLD | NEW | 
|    1 // Copyright 2014 The Chromium Authors. All rights reserved. |    1 // Copyright 2014 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/ui/android/tab_model/tab_model_jni_bridge.h" |    5 #include "chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h" | 
|    6  |    6  | 
|    7 #include "base/android/jni_android.h" |    7 #include "base/android/jni_android.h" | 
|    8 #include "base/android/jni_string.h" |    8 #include "base/android/jni_string.h" | 
|    9 #include "base/android/jni_weak_ref.h" |    9 #include "base/android/jni_weak_ref.h" | 
|   10 #include "base/metrics/histogram.h" |   10 #include "base/metrics/histogram.h" | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|   40 }  // namespace |   40 }  // namespace | 
|   41  |   41  | 
|   42 TabModelJniBridge::TabModelJniBridge(JNIEnv* env, |   42 TabModelJniBridge::TabModelJniBridge(JNIEnv* env, | 
|   43                                      jobject jobj, |   43                                      jobject jobj, | 
|   44                                      bool is_incognito) |   44                                      bool is_incognito) | 
|   45     : TabModel(FindProfile(is_incognito)), |   45     : TabModel(FindProfile(is_incognito)), | 
|   46       java_object_(env, env->NewWeakGlobalRef(jobj)) { |   46       java_object_(env, env->NewWeakGlobalRef(jobj)) { | 
|   47   TabModelList::AddTabModel(this); |   47   TabModelList::AddTabModel(this); | 
|   48 } |   48 } | 
|   49  |   49  | 
|   50 void TabModelJniBridge::Destroy(JNIEnv* env, jobject obj) { |   50 void TabModelJniBridge::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 
|   51   delete this; |   51   delete this; | 
|   52 } |   52 } | 
|   53  |   53  | 
|   54 ScopedJavaLocalRef<jobject> TabModelJniBridge::GetProfileAndroid(JNIEnv* env, |   54 ScopedJavaLocalRef<jobject> TabModelJniBridge::GetProfileAndroid( | 
|   55                                                                  jobject obj) { |   55     JNIEnv* env, | 
 |   56     const JavaParamRef<jobject>& obj) { | 
|   56   ProfileAndroid* profile_android = ProfileAndroid::FromProfile(GetProfile()); |   57   ProfileAndroid* profile_android = ProfileAndroid::FromProfile(GetProfile()); | 
|   57   if (!profile_android) |   58   if (!profile_android) | 
|   58     return ScopedJavaLocalRef<jobject>(); |   59     return ScopedJavaLocalRef<jobject>(); | 
|   59   return profile_android->GetJavaObject(); |   60   return profile_android->GetJavaObject(); | 
|   60 } |   61 } | 
|   61  |   62  | 
|   62 void TabModelJniBridge::TabAddedToModel(JNIEnv* env, |   63 void TabModelJniBridge::TabAddedToModel(JNIEnv* env, | 
|   63                                         jobject obj, |   64                                         const JavaParamRef<jobject>& obj, | 
|   64                                         jobject jtab) { |   65                                         const JavaParamRef<jobject>& jtab) { | 
|   65   // Tab#initialize() should have been called by now otherwise we can't push |   66   // Tab#initialize() should have been called by now otherwise we can't push | 
|   66   // the window id. |   67   // the window id. | 
|   67   TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); |   68   TabAndroid* tab = TabAndroid::GetNativeTab(env, jtab); | 
|   68   if (tab) tab->SetWindowSessionID(GetSessionId()); |   69   if (tab) tab->SetWindowSessionID(GetSessionId()); | 
|   69 } |   70 } | 
|   70  |   71  | 
|   71 int TabModelJniBridge::GetTabCount() const { |   72 int TabModelJniBridge::GetTabCount() const { | 
|   72   JNIEnv* env = AttachCurrentThread(); |   73   JNIEnv* env = AttachCurrentThread(); | 
|   73   return Java_TabModelJniBridge_getCount(env, java_object_.get(env).obj()); |   74   return Java_TabModelJniBridge_getCount(env, java_object_.get(env).obj()); | 
|   74 } |   75 } | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  138   } |  139   } | 
|  139   return tab->web_contents(); |  140   return tab->web_contents(); | 
|  140 } |  141 } | 
|  141  |  142  | 
|  142 bool TabModelJniBridge::IsSessionRestoreInProgress() const { |  143 bool TabModelJniBridge::IsSessionRestoreInProgress() const { | 
|  143   JNIEnv* env = AttachCurrentThread(); |  144   JNIEnv* env = AttachCurrentThread(); | 
|  144   return Java_TabModelJniBridge_isSessionRestoreInProgress( |  145   return Java_TabModelJniBridge_isSessionRestoreInProgress( | 
|  145       env, java_object_.get(env).obj()); |  146       env, java_object_.get(env).obj()); | 
|  146 } |  147 } | 
|  147  |  148  | 
|  148 void TabModelJniBridge::BroadcastSessionRestoreComplete(JNIEnv* env, |  149 void TabModelJniBridge::BroadcastSessionRestoreComplete( | 
|  149                                                         jobject obj) { |  150     JNIEnv* env, | 
 |  151     const JavaParamRef<jobject>& obj) { | 
|  150   TabModel::BroadcastSessionRestoreComplete(); |  152   TabModel::BroadcastSessionRestoreComplete(); | 
|  151 } |  153 } | 
|  152  |  154  | 
|  153 inline static base::TimeDelta GetTimeDelta(jlong ms) { |  155 inline static base::TimeDelta GetTimeDelta(jlong ms) { | 
|  154   return base::TimeDelta::FromMilliseconds(static_cast<int64>(ms)); |  156   return base::TimeDelta::FromMilliseconds(static_cast<int64>(ms)); | 
|  155 } |  157 } | 
|  156  |  158  | 
|  157 void LogFromCloseMetric(JNIEnv* env, |  159 void LogFromCloseMetric(JNIEnv* env, | 
|  158                         const JavaParamRef<jclass>& jcaller, |  160                         const JavaParamRef<jclass>& jcaller, | 
|  159                         jlong ms, |  161                         jlong ms, | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  213 bool TabModelJniBridge::Register(JNIEnv* env) { |  215 bool TabModelJniBridge::Register(JNIEnv* env) { | 
|  214   return RegisterNativesImpl(env); |  216   return RegisterNativesImpl(env); | 
|  215 } |  217 } | 
|  216  |  218  | 
|  217 static jlong Init(JNIEnv* env, |  219 static jlong Init(JNIEnv* env, | 
|  218                   const JavaParamRef<jobject>& obj, |  220                   const JavaParamRef<jobject>& obj, | 
|  219                   jboolean is_incognito) { |  221                   jboolean is_incognito) { | 
|  220   TabModel* tab_model = new TabModelJniBridge(env, obj, is_incognito); |  222   TabModel* tab_model = new TabModelJniBridge(env, obj, is_incognito); | 
|  221   return reinterpret_cast<intptr_t>(tab_model); |  223   return reinterpret_cast<intptr_t>(tab_model); | 
|  222 } |  224 } | 
| OLD | NEW |