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

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

Issue 1308363003: Revert of jni_generator: Make all object-returning natives return ScopedJavaLocalRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « chrome/browser/android/tab_state.h ('k') | chrome/browser/android/url_utilities.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/android/tab_state.h" 5 #include "chrome/browser/android/tab_state.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 #include <limits> 8 #include <limits>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 WebContents::CreateParams params(profile); 435 WebContents::CreateParams params(profile);
436 params.initially_hidden = initially_hidden; 436 params.initially_hidden = initially_hidden;
437 scoped_ptr<WebContents> web_contents(WebContents::Create(params)); 437 scoped_ptr<WebContents> web_contents(WebContents::Create(params));
438 web_contents->GetController().Restore( 438 web_contents->GetController().Restore(
439 current_entry_index, 439 current_entry_index,
440 NavigationController::RESTORE_CURRENT_SESSION, 440 NavigationController::RESTORE_CURRENT_SESSION,
441 &scoped_entries); 441 &scoped_entries);
442 return web_contents.release(); 442 return web_contents.release();
443 } 443 }
444 444
445 ScopedJavaLocalRef<jobject> WebContentsState::RestoreContentsFromByteBuffer( 445 jobject WebContentsState::RestoreContentsFromByteBuffer(
446 JNIEnv* env, 446 JNIEnv* env,
447 jclass clazz, 447 jclass clazz,
448 jobject state, 448 jobject state,
449 jint saved_state_version, 449 jint saved_state_version,
450 jboolean initially_hidden) { 450 jboolean initially_hidden) {
451 void* data = env->GetDirectBufferAddress(state); 451 void* data = env->GetDirectBufferAddress(state);
452 int size = env->GetDirectBufferCapacity(state); 452 int size = env->GetDirectBufferCapacity(state);
453 453
454 WebContents* web_contents = WebContentsState::RestoreContentsFromByteBuffer( 454 WebContents* web_contents = WebContentsState::RestoreContentsFromByteBuffer(
455 data, 455 data,
456 size, 456 size,
457 saved_state_version, 457 saved_state_version,
458 initially_hidden); 458 initially_hidden);
459 459
460 if (web_contents) 460 return web_contents ? web_contents->GetJavaWebContents().Release() : nullptr;
461 return web_contents->GetJavaWebContents();
462 else
463 return ScopedJavaLocalRef<jobject>();
464 } 461 }
465 462
466 ScopedJavaLocalRef<jobject> 463 ScopedJavaLocalRef<jobject>
467 WebContentsState::CreateSingleNavigationStateAsByteBuffer( 464 WebContentsState::CreateSingleNavigationStateAsByteBuffer(
468 JNIEnv* env, 465 JNIEnv* env,
469 jstring url, 466 jstring url,
470 jstring referrer_url, 467 jstring referrer_url,
471 jint referrer_policy, 468 jint referrer_policy,
472 jboolean is_off_the_record) { 469 jboolean is_off_the_record) {
473 content::Referrer referrer; 470 content::Referrer referrer;
(...skipping 20 matching lines...) Expand all
494 0); 491 0);
495 } 492 }
496 493
497 // Static JNI methods. 494 // Static JNI methods.
498 495
499 static void FreeWebContentsStateBuffer(JNIEnv* env, jclass clazz, jobject obj) { 496 static void FreeWebContentsStateBuffer(JNIEnv* env, jclass clazz, jobject obj) {
500 void* data = env->GetDirectBufferAddress(obj); 497 void* data = env->GetDirectBufferAddress(obj);
501 free(data); 498 free(data);
502 } 499 }
503 500
504 static ScopedJavaLocalRef<jobject> RestoreContentsFromByteBuffer( 501 static jobject RestoreContentsFromByteBuffer(JNIEnv* env,
505 JNIEnv* env, 502 jclass clazz,
506 jclass clazz, 503 jobject state,
507 jobject state, 504 jint saved_state_version,
508 jint saved_state_version, 505 jboolean initially_hidden) {
509 jboolean initially_hidden) {
510 return WebContentsState::RestoreContentsFromByteBuffer(env, 506 return WebContentsState::RestoreContentsFromByteBuffer(env,
511 clazz, 507 clazz,
512 state, 508 state,
513 saved_state_version, 509 saved_state_version,
514 initially_hidden); 510 initially_hidden);
515 } 511 }
516 512
517 static ScopedJavaLocalRef<jobject> GetContentsStateAsByteBuffer(JNIEnv* env, 513 static jobject GetContentsStateAsByteBuffer(
518 jclass clazz, 514 JNIEnv* env, jclass clazz, jobject jtab) {
519 jobject jtab) {
520 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, jtab); 515 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, jtab);
521 return WebContentsState::GetContentsStateAsByteBuffer(env, tab_android); 516 return WebContentsState::GetContentsStateAsByteBuffer(
517 env, tab_android).Release();
522 } 518 }
523 519
524 static ScopedJavaLocalRef<jobject> CreateSingleNavigationStateAsByteBuffer( 520 static jobject CreateSingleNavigationStateAsByteBuffer(
525 JNIEnv* env, 521 JNIEnv* env,
526 jclass clazz, 522 jclass clazz,
527 jstring url, 523 jstring url,
528 jstring referrer_url, 524 jstring referrer_url,
529 jint referrer_policy, 525 jint referrer_policy,
530 jboolean is_off_the_record) { 526 jboolean is_off_the_record) {
531 return WebContentsState::CreateSingleNavigationStateAsByteBuffer( 527 return WebContentsState::CreateSingleNavigationStateAsByteBuffer(
532 env, url, referrer_url, referrer_policy, is_off_the_record); 528 env, url, referrer_url, referrer_policy, is_off_the_record).Release();
533 } 529 }
534 530
535 static ScopedJavaLocalRef<jstring> GetDisplayTitleFromByteBuffer( 531 static jstring GetDisplayTitleFromByteBuffer(JNIEnv* env,
536 JNIEnv* env, 532 jclass clazz,
537 jclass clazz, 533 jobject state,
538 jobject state, 534 jint saved_state_version) {
539 jint saved_state_version) {
540 void* data = env->GetDirectBufferAddress(state); 535 void* data = env->GetDirectBufferAddress(state);
541 int size = env->GetDirectBufferCapacity(state); 536 int size = env->GetDirectBufferCapacity(state);
542 537
543 ScopedJavaLocalRef<jstring> result = 538 ScopedJavaLocalRef<jstring> result =
544 WebContentsState::GetDisplayTitleFromByteBuffer( 539 WebContentsState::GetDisplayTitleFromByteBuffer(
545 env, data, size, saved_state_version); 540 env, data, size, saved_state_version);
546 return result; 541 return result.Release();
547 } 542 }
548 543
549 static ScopedJavaLocalRef<jstring> GetVirtualUrlFromByteBuffer( 544 static jstring GetVirtualUrlFromByteBuffer(JNIEnv* env,
550 JNIEnv* env, 545 jclass clazz,
551 jclass clazz, 546 jobject state,
552 jobject state, 547 jint saved_state_version) {
553 jint saved_state_version) {
554 void* data = env->GetDirectBufferAddress(state); 548 void* data = env->GetDirectBufferAddress(state);
555 int size = env->GetDirectBufferCapacity(state); 549 int size = env->GetDirectBufferCapacity(state);
556 ScopedJavaLocalRef<jstring> result = 550 ScopedJavaLocalRef<jstring> result =
557 WebContentsState::GetVirtualUrlFromByteBuffer( 551 WebContentsState::GetVirtualUrlFromByteBuffer(
558 env, data, size, saved_state_version); 552 env, data, size, saved_state_version);
559 return result; 553 return result.Release();
560 } 554 }
561 555
562 // Creates a historical tab entry from the serialized tab contents contained 556 // Creates a historical tab entry from the serialized tab contents contained
563 // within |state|. 557 // within |state|.
564 static void CreateHistoricalTab(JNIEnv* env, 558 static void CreateHistoricalTab(JNIEnv* env,
565 jclass clazz, 559 jclass clazz,
566 jobject state, 560 jobject state,
567 jint saved_state_version) { 561 jint saved_state_version) {
568 scoped_ptr<WebContents> web_contents(WebContents::FromJavaWebContents( 562 scoped_ptr<WebContents> web_contents(
569 WebContentsState::RestoreContentsFromByteBuffer(env, clazz, state, 563 WebContents::FromJavaWebContents(
570 saved_state_version, true) 564 WebContentsState::RestoreContentsFromByteBuffer(env,
571 .obj())); 565 clazz,
566 state,
567 saved_state_version,
568 true)));
572 if (web_contents.get()) 569 if (web_contents.get())
573 TabAndroid::CreateHistoricalTabFromContents(web_contents.get()); 570 TabAndroid::CreateHistoricalTabFromContents(web_contents.get());
574 } 571 }
575 572
576 bool RegisterTabState(JNIEnv* env) { 573 bool RegisterTabState(JNIEnv* env) {
577 return RegisterNativesImpl(env); 574 return RegisterNativesImpl(env);
578 } 575 }
OLDNEW
« no previous file with comments | « chrome/browser/android/tab_state.h ('k') | chrome/browser/android/url_utilities.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698