Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(479)

Side by Side Diff: chrome/browser/android/tab_android.cc

Issue 2237943002: Remove now-unnecessary .obj() in Java method calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@switch-context
Patch Set: Rebase *again* :( Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/tab_android.h" 5 #include "chrome/browser/android/tab_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 : weak_java_tab_(env, obj), 128 : weak_java_tab_(env, obj),
129 content_layer_(cc::Layer::Create()), 129 content_layer_(cc::Layer::Create()),
130 tab_content_manager_(NULL), 130 tab_content_manager_(NULL),
131 synced_tab_delegate_(new browser_sync::SyncedTabDelegateAndroid(this)) { 131 synced_tab_delegate_(new browser_sync::SyncedTabDelegateAndroid(this)) {
132 Java_Tab_setNativePtr(env, obj, reinterpret_cast<intptr_t>(this)); 132 Java_Tab_setNativePtr(env, obj, reinterpret_cast<intptr_t>(this));
133 } 133 }
134 134
135 TabAndroid::~TabAndroid() { 135 TabAndroid::~TabAndroid() {
136 GetContentLayer()->RemoveAllChildren(); 136 GetContentLayer()->RemoveAllChildren();
137 JNIEnv* env = base::android::AttachCurrentThread(); 137 JNIEnv* env = base::android::AttachCurrentThread();
138 Java_Tab_clearNativePtr(env, weak_java_tab_.get(env).obj()); 138 Java_Tab_clearNativePtr(env, weak_java_tab_.get(env));
139 } 139 }
140 140
141 base::android::ScopedJavaLocalRef<jobject> TabAndroid::GetJavaObject() { 141 base::android::ScopedJavaLocalRef<jobject> TabAndroid::GetJavaObject() {
142 JNIEnv* env = base::android::AttachCurrentThread(); 142 JNIEnv* env = base::android::AttachCurrentThread();
143 return weak_java_tab_.get(env); 143 return weak_java_tab_.get(env);
144 } 144 }
145 145
146 scoped_refptr<cc::Layer> TabAndroid::GetContentLayer() const { 146 scoped_refptr<cc::Layer> TabAndroid::GetContentLayer() const {
147 return content_layer_; 147 return content_layer_;
148 } 148 }
149 149
150 int TabAndroid::GetAndroidId() const { 150 int TabAndroid::GetAndroidId() const {
151 JNIEnv* env = base::android::AttachCurrentThread(); 151 JNIEnv* env = base::android::AttachCurrentThread();
152 return Java_Tab_getId(env, weak_java_tab_.get(env).obj()); 152 return Java_Tab_getId(env, weak_java_tab_.get(env));
153 } 153 }
154 154
155 int TabAndroid::GetSyncId() const { 155 int TabAndroid::GetSyncId() const {
156 JNIEnv* env = base::android::AttachCurrentThread(); 156 JNIEnv* env = base::android::AttachCurrentThread();
157 return Java_Tab_getSyncId(env, weak_java_tab_.get(env).obj()); 157 return Java_Tab_getSyncId(env, weak_java_tab_.get(env));
158 } 158 }
159 159
160 base::string16 TabAndroid::GetTitle() const { 160 base::string16 TabAndroid::GetTitle() const {
161 JNIEnv* env = base::android::AttachCurrentThread(); 161 JNIEnv* env = base::android::AttachCurrentThread();
162 return base::android::ConvertJavaStringToUTF16( 162 return base::android::ConvertJavaStringToUTF16(
163 Java_Tab_getTitle(env, weak_java_tab_.get(env).obj())); 163 Java_Tab_getTitle(env, weak_java_tab_.get(env)));
164 } 164 }
165 165
166 GURL TabAndroid::GetURL() const { 166 GURL TabAndroid::GetURL() const {
167 JNIEnv* env = base::android::AttachCurrentThread(); 167 JNIEnv* env = base::android::AttachCurrentThread();
168 return GURL(base::android::ConvertJavaStringToUTF8( 168 return GURL(base::android::ConvertJavaStringToUTF8(
169 Java_Tab_getUrl(env, weak_java_tab_.get(env).obj()))); 169 Java_Tab_getUrl(env, weak_java_tab_.get(env))));
170 } 170 }
171 171
172 bool TabAndroid::LoadIfNeeded() { 172 bool TabAndroid::LoadIfNeeded() {
173 JNIEnv* env = base::android::AttachCurrentThread(); 173 JNIEnv* env = base::android::AttachCurrentThread();
174 return Java_Tab_loadIfNeeded(env, weak_java_tab_.get(env).obj()); 174 return Java_Tab_loadIfNeeded(env, weak_java_tab_.get(env));
175 } 175 }
176 176
177 Profile* TabAndroid::GetProfile() const { 177 Profile* TabAndroid::GetProfile() const {
178 if (!web_contents()) 178 if (!web_contents())
179 return NULL; 179 return NULL;
180 180
181 return Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 181 return Profile::FromBrowserContext(web_contents()->GetBrowserContext());
182 } 182 }
183 183
184 browser_sync::SyncedTabDelegate* TabAndroid::GetSyncedTabDelegate() const { 184 browser_sync::SyncedTabDelegate* TabAndroid::GetSyncedTabDelegate() const {
185 return synced_tab_delegate_.get(); 185 return synced_tab_delegate_.get();
186 } 186 }
187 187
188 void TabAndroid::SetWindowSessionID(SessionID::id_type window_id) { 188 void TabAndroid::SetWindowSessionID(SessionID::id_type window_id) {
189 session_window_id_.set_id(window_id); 189 session_window_id_.set_id(window_id);
190 190
191 if (!web_contents()) 191 if (!web_contents())
192 return; 192 return;
193 193
194 SessionTabHelper* session_tab_helper = 194 SessionTabHelper* session_tab_helper =
195 SessionTabHelper::FromWebContents(web_contents()); 195 SessionTabHelper::FromWebContents(web_contents());
196 session_tab_helper->SetWindowID(session_window_id_); 196 session_tab_helper->SetWindowID(session_window_id_);
197 } 197 }
198 198
199 void TabAndroid::SetSyncId(int sync_id) { 199 void TabAndroid::SetSyncId(int sync_id) {
200 JNIEnv* env = base::android::AttachCurrentThread(); 200 JNIEnv* env = base::android::AttachCurrentThread();
201 Java_Tab_setSyncId(env, weak_java_tab_.get(env).obj(), sync_id); 201 Java_Tab_setSyncId(env, weak_java_tab_.get(env), sync_id);
202 } 202 }
203 203
204 void TabAndroid::HandlePopupNavigation(chrome::NavigateParams* params) { 204 void TabAndroid::HandlePopupNavigation(chrome::NavigateParams* params) {
205 DCHECK(params->source_contents == web_contents()); 205 DCHECK(params->source_contents == web_contents());
206 DCHECK(params->target_contents == NULL || 206 DCHECK(params->target_contents == NULL ||
207 params->target_contents == web_contents()); 207 params->target_contents == web_contents());
208 208
209 WindowOpenDisposition disposition = params->disposition; 209 WindowOpenDisposition disposition = params->disposition;
210 const GURL& url = params->url; 210 const GURL& url = params->url;
211 211
212 if (disposition == NEW_POPUP || 212 if (disposition == NEW_POPUP ||
213 disposition == NEW_FOREGROUND_TAB || 213 disposition == NEW_FOREGROUND_TAB ||
214 disposition == NEW_BACKGROUND_TAB || 214 disposition == NEW_BACKGROUND_TAB ||
215 disposition == NEW_WINDOW || 215 disposition == NEW_WINDOW ||
216 disposition == OFF_THE_RECORD) { 216 disposition == OFF_THE_RECORD) {
217 JNIEnv* env = AttachCurrentThread(); 217 JNIEnv* env = AttachCurrentThread();
218 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env); 218 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env);
219 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec())); 219 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec()));
220 ScopedJavaLocalRef<jstring> jheaders( 220 ScopedJavaLocalRef<jstring> jheaders(
221 ConvertUTF8ToJavaString(env, params->extra_headers)); 221 ConvertUTF8ToJavaString(env, params->extra_headers));
222 ScopedJavaLocalRef<jobject> jpost_data; 222 ScopedJavaLocalRef<jobject> jpost_data;
223 if (params->uses_post && params->post_data) 223 if (params->uses_post && params->post_data)
224 jpost_data = params->post_data->ToJavaObject(env); 224 jpost_data = params->post_data->ToJavaObject(env);
225 Java_Tab_openNewTab(env, 225 Java_Tab_openNewTab(env, jobj, jurl, jheaders, jpost_data, disposition,
226 jobj.obj(),
227 jurl.obj(),
228 jheaders.obj(),
229 jpost_data.obj(),
230 disposition,
231 params->created_with_opener, 226 params->created_with_opener,
232 params->is_renderer_initiated); 227 params->is_renderer_initiated);
233 } else { 228 } else {
234 NOTIMPLEMENTED(); 229 NOTIMPLEMENTED();
235 } 230 }
236 } 231 }
237 232
238 bool TabAndroid::HasPrerenderedUrl(GURL gurl) { 233 bool TabAndroid::HasPrerenderedUrl(GURL gurl) {
239 prerender::PrerenderManager* prerender_manager = GetPrerenderManager(); 234 prerender::PrerenderManager* prerender_manager = GetPrerenderManager();
240 if (!prerender_manager) 235 if (!prerender_manager)
(...skipping 11 matching lines...) Expand all
252 } 247 }
253 } 248 }
254 return false; 249 return false;
255 } 250 }
256 251
257 void TabAndroid::SwapTabContents(content::WebContents* old_contents, 252 void TabAndroid::SwapTabContents(content::WebContents* old_contents,
258 content::WebContents* new_contents, 253 content::WebContents* new_contents,
259 bool did_start_load, 254 bool did_start_load,
260 bool did_finish_load) { 255 bool did_finish_load) {
261 JNIEnv* env = base::android::AttachCurrentThread(); 256 JNIEnv* env = base::android::AttachCurrentThread();
262 Java_Tab_swapWebContents( 257 Java_Tab_swapWebContents(env, weak_java_tab_.get(env),
263 env, 258 new_contents->GetJavaWebContents(), did_start_load,
264 weak_java_tab_.get(env).obj(), 259 did_finish_load);
265 new_contents->GetJavaWebContents().obj(),
266 did_start_load,
267 did_finish_load);
268 } 260 }
269 261
270 void TabAndroid::DefaultSearchProviderChanged( 262 void TabAndroid::DefaultSearchProviderChanged(
271 bool google_base_url_domain_changed) { 263 bool google_base_url_domain_changed) {
272 // TODO(kmadhusu): Move this function definition to a common place and update 264 // TODO(kmadhusu): Move this function definition to a common place and update
273 // BrowserInstantController::DefaultSearchProviderChanged to use the same. 265 // BrowserInstantController::DefaultSearchProviderChanged to use the same.
274 if (!web_contents()) 266 if (!web_contents())
275 return; 267 return;
276 268
277 InstantService* instant_service = 269 InstantService* instant_service =
(...skipping 18 matching lines...) Expand all
296 InfoBarService::FromWebContents(web_contents())->set_ignore_next_reload(); 288 InfoBarService::FromWebContents(web_contents())->set_ignore_next_reload();
297 } 289 }
298 290
299 void TabAndroid::OnWebContentsInstantSupportDisabled( 291 void TabAndroid::OnWebContentsInstantSupportDisabled(
300 const content::WebContents* contents) { 292 const content::WebContents* contents) {
301 DCHECK(contents); 293 DCHECK(contents);
302 if (web_contents() != contents) 294 if (web_contents() != contents)
303 return; 295 return;
304 296
305 JNIEnv* env = base::android::AttachCurrentThread(); 297 JNIEnv* env = base::android::AttachCurrentThread();
306 Java_Tab_onWebContentsInstantSupportDisabled(env, 298 Java_Tab_onWebContentsInstantSupportDisabled(env, weak_java_tab_.get(env));
307 weak_java_tab_.get(env).obj());
308 } 299 }
309 300
310 void TabAndroid::Observe(int type, 301 void TabAndroid::Observe(int type,
311 const content::NotificationSource& source, 302 const content::NotificationSource& source,
312 const content::NotificationDetails& details) { 303 const content::NotificationDetails& details) {
313 JNIEnv* env = base::android::AttachCurrentThread(); 304 JNIEnv* env = base::android::AttachCurrentThread();
314 switch (type) { 305 switch (type) {
315 case chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED: { 306 case chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED: {
316 TabSpecificContentSettings* settings = 307 TabSpecificContentSettings* settings =
317 TabSpecificContentSettings::FromWebContents(web_contents()); 308 TabSpecificContentSettings::FromWebContents(web_contents());
318 if (!settings->IsBlockageIndicated(CONTENT_SETTINGS_TYPE_POPUPS)) { 309 if (!settings->IsBlockageIndicated(CONTENT_SETTINGS_TYPE_POPUPS)) {
319 // TODO(dfalcantara): Create an InfoBarDelegate to keep the 310 // TODO(dfalcantara): Create an InfoBarDelegate to keep the
320 // PopupBlockedInfoBar logic native-side instead of straddling the JNI 311 // PopupBlockedInfoBar logic native-side instead of straddling the JNI
321 // boundary. 312 // boundary.
322 int num_popups = 0; 313 int num_popups = 0;
323 PopupBlockerTabHelper* popup_blocker_helper = 314 PopupBlockerTabHelper* popup_blocker_helper =
324 PopupBlockerTabHelper::FromWebContents(web_contents()); 315 PopupBlockerTabHelper::FromWebContents(web_contents());
325 if (popup_blocker_helper) 316 if (popup_blocker_helper)
326 num_popups = popup_blocker_helper->GetBlockedPopupsCount(); 317 num_popups = popup_blocker_helper->GetBlockedPopupsCount();
327 318
328 if (num_popups > 0) 319 if (num_popups > 0)
329 PopupBlockedInfoBarDelegate::Create(web_contents(), num_popups); 320 PopupBlockedInfoBarDelegate::Create(web_contents(), num_popups);
330 321
331 settings->SetBlockageHasBeenIndicated(CONTENT_SETTINGS_TYPE_POPUPS); 322 settings->SetBlockageHasBeenIndicated(CONTENT_SETTINGS_TYPE_POPUPS);
332 } 323 }
333 break; 324 break;
334 } 325 }
335 case content::NOTIFICATION_NAV_ENTRY_CHANGED: 326 case content::NOTIFICATION_NAV_ENTRY_CHANGED:
336 Java_Tab_onNavEntryChanged(env, weak_java_tab_.get(env).obj()); 327 Java_Tab_onNavEntryChanged(env, weak_java_tab_.get(env));
337 break; 328 break;
338 default: 329 default:
339 NOTREACHED() << "Unexpected notification " << type; 330 NOTREACHED() << "Unexpected notification " << type;
340 break; 331 break;
341 } 332 }
342 } 333 }
343 334
344 void TabAndroid::OnFaviconUpdated(favicon::FaviconDriver* favicon_driver, 335 void TabAndroid::OnFaviconUpdated(favicon::FaviconDriver* favicon_driver,
345 NotificationIconType notification_icon_type, 336 NotificationIconType notification_icon_type,
346 const GURL& icon_url, 337 const GURL& icon_url,
347 bool icon_url_changed, 338 bool icon_url_changed,
348 const gfx::Image& image) { 339 const gfx::Image& image) {
349 if (notification_icon_type != NON_TOUCH_LARGEST && 340 if (notification_icon_type != NON_TOUCH_LARGEST &&
350 notification_icon_type != TOUCH_LARGEST) { 341 notification_icon_type != TOUCH_LARGEST) {
351 return; 342 return;
352 } 343 }
353 344
354 SkBitmap favicon = image.AsImageSkia().GetRepresentation(1.0f).sk_bitmap(); 345 SkBitmap favicon = image.AsImageSkia().GetRepresentation(1.0f).sk_bitmap();
355 if (favicon.empty()) 346 if (favicon.empty())
356 return; 347 return;
357 348
358 JNIEnv* env = base::android::AttachCurrentThread(); 349 JNIEnv* env = base::android::AttachCurrentThread();
359 Java_Tab_onFaviconAvailable(env, weak_java_tab_.get(env).obj(), 350 Java_Tab_onFaviconAvailable(env, weak_java_tab_.get(env),
360 gfx::ConvertToJavaBitmap(&favicon).obj()); 351 gfx::ConvertToJavaBitmap(&favicon));
361 } 352 }
362 353
363 void TabAndroid::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) { 354 void TabAndroid::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
364 delete this; 355 delete this;
365 } 356 }
366 357
367 void TabAndroid::InitWebContents( 358 void TabAndroid::InitWebContents(
368 JNIEnv* env, 359 JNIEnv* env,
369 const JavaParamRef<jobject>& obj, 360 const JavaParamRef<jobject>& obj,
370 jboolean incognito, 361 jboolean incognito,
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 printing::PrintViewManagerBasic::FromWebContents(web_contents()); 625 printing::PrintViewManagerBasic::FromWebContents(web_contents());
635 if (print_view_manager == NULL) 626 if (print_view_manager == NULL)
636 return false; 627 return false;
637 628
638 print_view_manager->PrintNow(); 629 print_view_manager->PrintNow();
639 return true; 630 return true;
640 } 631 }
641 632
642 void TabAndroid::SetPendingPrint() { 633 void TabAndroid::SetPendingPrint() {
643 JNIEnv* env = base::android::AttachCurrentThread(); 634 JNIEnv* env = base::android::AttachCurrentThread();
644 Java_Tab_setPendingPrint(env, weak_java_tab_.get(env).obj()); 635 Java_Tab_setPendingPrint(env, weak_java_tab_.get(env));
645 } 636 }
646 637
647 ScopedJavaLocalRef<jobject> TabAndroid::GetFavicon( 638 ScopedJavaLocalRef<jobject> TabAndroid::GetFavicon(
648 JNIEnv* env, 639 JNIEnv* env,
649 const JavaParamRef<jobject>& obj) { 640 const JavaParamRef<jobject>& obj) {
650 ScopedJavaLocalRef<jobject> bitmap; 641 ScopedJavaLocalRef<jobject> bitmap;
651 favicon::FaviconDriver* favicon_driver = 642 favicon::FaviconDriver* favicon_driver =
652 favicon::ContentFaviconDriver::FromWebContents(web_contents_.get()); 643 favicon::ContentFaviconDriver::FromWebContents(web_contents_.get());
653 644
654 if (!favicon_driver) 645 if (!favicon_driver)
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 if (only_editable && !managed->CanBeEditedByUser(nodes[i])) 758 if (only_editable && !managed->CanBeEditedByUser(nodes[i]))
768 continue; 759 continue;
769 return nodes[i]->id(); 760 return nodes[i]->id();
770 } 761 }
771 762
772 return -1; 763 return -1;
773 } 764 }
774 765
775 void TabAndroid::ShowOfflinePages() { 766 void TabAndroid::ShowOfflinePages() {
776 JNIEnv* env = base::android::AttachCurrentThread(); 767 JNIEnv* env = base::android::AttachCurrentThread();
777 Java_Tab_showOfflinePages(env, weak_java_tab_.get(env).obj()); 768 Java_Tab_showOfflinePages(env, weak_java_tab_.get(env));
778 } 769 }
779 770
780 void TabAndroid::OnLoFiResponseReceived(bool is_preview) { 771 void TabAndroid::OnLoFiResponseReceived(bool is_preview) {
781 JNIEnv* env = base::android::AttachCurrentThread(); 772 JNIEnv* env = base::android::AttachCurrentThread();
782 Java_Tab_onLoFiResponseReceived(env, weak_java_tab_.get(env).obj(), 773 Java_Tab_onLoFiResponseReceived(env, weak_java_tab_.get(env), is_preview);
783 is_preview);
784 } 774 }
785 775
786 jboolean TabAndroid::IsOfflinePage(JNIEnv* env, 776 jboolean TabAndroid::IsOfflinePage(JNIEnv* env,
787 const JavaParamRef<jobject>& obj) { 777 const JavaParamRef<jobject>& obj) {
788 return offline_pages::OfflinePageUtils::GetOfflinePageFromWebContents( 778 return offline_pages::OfflinePageUtils::GetOfflinePageFromWebContents(
789 web_contents()) != nullptr; 779 web_contents()) != nullptr;
790 } 780 }
791 781
792 ScopedJavaLocalRef<jobject> TabAndroid::GetOfflinePage( 782 ScopedJavaLocalRef<jobject> TabAndroid::GetOfflinePage(
793 JNIEnv* env, 783 JNIEnv* env,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 874 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
885 TRACE_EVENT0("native", "TabAndroid::Init"); 875 TRACE_EVENT0("native", "TabAndroid::Init");
886 // This will automatically bind to the Java object and pass ownership there. 876 // This will automatically bind to the Java object and pass ownership there.
887 new TabAndroid(env, obj); 877 new TabAndroid(env, obj);
888 } 878 }
889 879
890 // static 880 // static
891 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { 881 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) {
892 return RegisterNativesImpl(env); 882 return RegisterNativesImpl(env);
893 } 883 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698