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

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

Issue 2888273003: [Offline Pages] Add an observer for requests in the CCT namespace. (Closed)
Patch Set: Created 3 years, 7 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/android/offline_pages/cct_request_observer.h"
6
7 #include "base/android/callback_android.h"
8 #include "base/android/jni_int_wrapper.h"
9 #include "base/android/jni_string.h"
10 #include "chrome/browser/android/app_hooks.h"
11 #include "components/offline_pages/core/client_namespace_constants.h"
12 #include "components/offline_pages/core/offline_page_feature.h"
13 #include "jni/CCTRequestStatus_jni.h"
14
15 namespace offline_pages {
16 namespace {
17 int kCCTRequestObserverUserDataKey;
18 } // namespace
19
20 using chrome::android::AppHooks;
21
22 // static
23 void CCTRequestObserver::AttachToRequestCoordinator(
24 RequestCoordinator* coordinator) {
25 base::android::ScopedJavaLocalRef<jobject> callback =
26 AppHooks::GetOfflinePagesCCTRequestDoneCallback();
27 if (!callback.obj())
28 return;
29
30 auto request_observer = base::WrapUnique(new CCTRequestObserver(callback));
31 coordinator->AddObserver(request_observer.get());
32 coordinator->SetUserData(&kCCTRequestObserverUserDataKey,
33 std::move(request_observer));
34 }
35
36 CCTRequestObserver::~CCTRequestObserver() = default;
37 CCTRequestObserver::CCTRequestObserver(
38 base::android::ScopedJavaLocalRef<jobject> callback) {
39 JNIEnv* env = base::android::AttachCurrentThread();
40 j_callback_.Reset(env, callback.obj());
41 }
42
43 void CCTRequestObserver::OnAdded(const SavePageRequest& request) {}
44 void CCTRequestObserver::OnCompleted(
45 const SavePageRequest& request,
46 RequestNotifier::BackgroundSavePageResult status) {
47 if (request.client_id().name_space != kCCTNamespace) {
48 return;
49 }
50
51 JNIEnv* env = base::android::AttachCurrentThread();
52 base::android::ScopedJavaLocalRef<jobject> callback_info =
53 Java_CCTRequestStatus_create(
54 env, as_jint((int)status),
chili 2017/05/23 01:04:00 what's the difference between static_cast<int> and
dewittj 2017/05/23 16:03:05 You are right that I should have used static_cast.
David Trainor- moved to gerrit 2017/05/23 16:53:14 Yeah IIUC static_cast<> is a more restrictive form
55 base::android::ConvertUTF8ToJavaString(env, request.client_id().id));
56
57 base::android::RunCallbackAndroid(j_callback_, callback_info);
58 }
59
60 void CCTRequestObserver::OnChanged(const SavePageRequest& request) {}
61 void CCTRequestObserver::OnNetworkProgress(const SavePageRequest& request,
62 int64_t received_bytes) {}
63
64 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698