| OLD | NEW |
| 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 Loading... |
| 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 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 562 // Callback with null to signal that results are unavailable. | 563 // Callback with null to signal that results are unavailable. |
| 563 const JavaParamRef<jobject> empty_result(nullptr); | 564 const JavaParamRef<jobject> empty_result(nullptr); |
| 564 base::android::RunCallbackAndroid(j_callback_obj, empty_result); | 565 base::android::RunCallbackAndroid(j_callback_obj, empty_result); |
| 565 return; | 566 return; |
| 566 } | 567 } |
| 567 | 568 |
| 568 coordinator->RemoveRequests( | 569 coordinator->RemoveRequests( |
| 569 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); | 570 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); |
| 570 } | 571 } |
| 571 | 572 |
| 573 void OfflinePageBridge::RegisterRecentTab(JNIEnv* env, |
| 574 const JavaParamRef<jobject>& obj, |
| 575 int tab_id) { |
| 576 RequestCoordinator* request_coordinator = |
| 577 RequestCoordinatorFactory::GetForBrowserContext(browser_context_); |
| 578 |
| 579 RecentTabsUIAdapterDelegate* ui_adapter_delegate = |
| 580 RecentTabsUIAdapterDelegate::FromDownloadUIAdapter( |
| 581 RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter( |
| 582 offline_page_model_, request_coordinator)); |
| 583 ui_adapter_delegate->RegisterTab(tab_id); |
| 584 } |
| 585 |
| 586 void OfflinePageBridge::UnregisterRecentTab(JNIEnv* env, |
| 587 const JavaParamRef<jobject>& obj, |
| 588 int tab_id) { |
| 589 RequestCoordinator* request_coordinator = |
| 590 RequestCoordinatorFactory::GetForBrowserContext(browser_context_); |
| 591 |
| 592 RecentTabsUIAdapterDelegate* ui_adapter_delegate = |
| 593 RecentTabsUIAdapterDelegate::FromDownloadUIAdapter( |
| 594 RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter( |
| 595 offline_page_model_, request_coordinator)); |
| 596 ui_adapter_delegate->UnregisterTab(tab_id); |
| 597 } |
| 598 |
| 572 void OfflinePageBridge::NotifyIfDoneLoading() const { | 599 void OfflinePageBridge::NotifyIfDoneLoading() const { |
| 573 if (!offline_page_model_->is_loaded()) | 600 if (!offline_page_model_->is_loaded()) |
| 574 return; | 601 return; |
| 575 JNIEnv* env = base::android::AttachCurrentThread(); | 602 JNIEnv* env = base::android::AttachCurrentThread(); |
| 576 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_); | 603 Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_); |
| 577 } | 604 } |
| 578 | 605 |
| 579 | 606 |
| 580 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( | 607 ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( |
| 581 JNIEnv* env, | 608 JNIEnv* env, |
| 582 const ClientId& client_id) const { | 609 const ClientId& client_id) const { |
| 583 return Java_OfflinePageBridge_createClientId( | 610 return Java_OfflinePageBridge_createClientId( |
| 584 env, ConvertUTF8ToJavaString(env, client_id.name_space), | 611 env, ConvertUTF8ToJavaString(env, client_id.name_space), |
| 585 ConvertUTF8ToJavaString(env, client_id.id)); | 612 ConvertUTF8ToJavaString(env, client_id.id)); |
| 586 } | 613 } |
| 587 | 614 |
| 588 bool RegisterOfflinePageBridge(JNIEnv* env) { | 615 bool RegisterOfflinePageBridge(JNIEnv* env) { |
| 589 return RegisterNativesImpl(env); | 616 return RegisterNativesImpl(env); |
| 590 } | 617 } |
| 591 | 618 |
| 592 } // namespace android | 619 } // namespace android |
| 593 } // namespace offline_pages | 620 } // namespace offline_pages |
| OLD | NEW |