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

Side by Side Diff: chrome/browser/android/offline_pages/offline_page_bridge.cc

Issue 2706343007: Only show Last N Pages in the UI when the corresponding tab is visible. (cont'd) (Closed)
Patch Set: Rebase. Created 3 years, 9 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/offline_pages/offline_page_bridge.h" 5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/android/offline_pages/offline_page_utils.h" 21 #include "chrome/browser/android/offline_pages/offline_page_utils.h"
22 #include "chrome/browser/android/offline_pages/request_coordinator_factory.h" 22 #include "chrome/browser/android/offline_pages/request_coordinator_factory.h"
23 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/browser/profiles/profile_android.h" 24 #include "chrome/browser/profiles/profile_android.h"
25 #include "components/offline_pages/core/background/request_coordinator.h" 25 #include "components/offline_pages/core/background/request_coordinator.h"
26 #include "components/offline_pages/core/background/request_queue_results.h" 26 #include "components/offline_pages/core/background/request_queue_results.h"
27 #include "components/offline_pages/core/background/save_page_request.h" 27 #include "components/offline_pages/core/background/save_page_request.h"
28 #include "components/offline_pages/core/offline_page_feature.h" 28 #include "components/offline_pages/core/offline_page_feature.h"
29 #include "components/offline_pages/core/offline_page_item.h" 29 #include "components/offline_pages/core/offline_page_item.h"
30 #include "components/offline_pages/core/offline_page_model.h" 30 #include "components/offline_pages/core/offline_page_model.h"
31 #include "components/offline_pages/core/recent_tabs/recent_tabs_ui_adapter_deleg ate.h"
31 #include "components/offline_pages/core/request_header/offline_page_header.h" 32 #include "components/offline_pages/core/request_header/offline_page_header.h"
32 #include "content/public/browser/browser_context.h" 33 #include "content/public/browser/browser_context.h"
33 #include "content/public/browser/web_contents.h" 34 #include "content/public/browser/web_contents.h"
34 #include "jni/OfflinePageBridge_jni.h" 35 #include "jni/OfflinePageBridge_jni.h"
35 #include "jni/SavePageRequest_jni.h" 36 #include "jni/SavePageRequest_jni.h"
36 #include "net/base/filename_util.h" 37 #include "net/base/filename_util.h"
37 38
38 using base::android::ConvertJavaStringToUTF8; 39 using base::android::ConvertJavaStringToUTF8;
39 using base::android::ConvertUTF8ToJavaString; 40 using base::android::ConvertUTF8ToJavaString;
40 using base::android::JavaParamRef; 41 using base::android::JavaParamRef;
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 // Callback with null to signal that results are unavailable. 566 // Callback with null to signal that results are unavailable.
566 const JavaParamRef<jobject> empty_result(nullptr); 567 const JavaParamRef<jobject> empty_result(nullptr);
567 base::android::RunCallbackAndroid(j_callback_obj, empty_result); 568 base::android::RunCallbackAndroid(j_callback_obj, empty_result);
568 return; 569 return;
569 } 570 }
570 571
571 coordinator->RemoveRequests( 572 coordinator->RemoveRequests(
572 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); 573 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref));
573 } 574 }
574 575
576 void OfflinePageBridge::RegisterRecentTab(JNIEnv* env,
577 const JavaParamRef<jobject>& obj,
578 int tab_id) {
579 RequestCoordinator* request_coordinator =
580 RequestCoordinatorFactory::GetForBrowserContext(browser_context_);
581
582 RecentTabsUIAdapterDelegate* ui_adapter_delegate =
583 RecentTabsUIAdapterDelegate::FromDownloadUIAdapter(
584 RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter(
585 offline_page_model_, request_coordinator));
586 ui_adapter_delegate->RegisterTab(tab_id);
587 }
588
589 void OfflinePageBridge::UnregisterRecentTab(JNIEnv* env,
590 const JavaParamRef<jobject>& obj,
591 int tab_id) {
592 RequestCoordinator* request_coordinator =
593 RequestCoordinatorFactory::GetForBrowserContext(browser_context_);
594
595 RecentTabsUIAdapterDelegate* ui_adapter_delegate =
596 RecentTabsUIAdapterDelegate::FromDownloadUIAdapter(
597 RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter(
598 offline_page_model_, request_coordinator));
599 ui_adapter_delegate->UnregisterTab(tab_id);
600 }
601
575 void OfflinePageBridge::NotifyIfDoneLoading() const { 602 void OfflinePageBridge::NotifyIfDoneLoading() const {
576 if (!offline_page_model_->is_loaded()) 603 if (!offline_page_model_->is_loaded())
577 return; 604 return;
578 JNIEnv* env = base::android::AttachCurrentThread(); 605 JNIEnv* env = base::android::AttachCurrentThread();
579 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_); 606 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_);
580 } 607 }
581 608
582 609
583 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( 610 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId(
584 JNIEnv* env, 611 JNIEnv* env,
585 const ClientId& client_id) const { 612 const ClientId& client_id) const {
586 return Java_OfflinePageBridge_createClientId( 613 return Java_OfflinePageBridge_createClientId(
587 env, ConvertUTF8ToJavaString(env, client_id.name_space), 614 env, ConvertUTF8ToJavaString(env, client_id.name_space),
588 ConvertUTF8ToJavaString(env, client_id.id)); 615 ConvertUTF8ToJavaString(env, client_id.id));
589 } 616 }
590 617
591 bool RegisterOfflinePageBridge(JNIEnv* env) { 618 bool RegisterOfflinePageBridge(JNIEnv* env) {
592 return RegisterNativesImpl(env); 619 return RegisterNativesImpl(env);
593 } 620 }
594 621
595 } // namespace android 622 } // namespace android
596 } // namespace offline_pages 623 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698