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

Side by Side Diff: components/web_restrictions/browser/web_restrictions_client.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 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 "components/web_restrictions/browser/web_restrictions_client.h" 5 #include "components/web_restrictions/browser/web_restrictions_client.h"
6 6
7 #include "base/android/jni_string.h" 7 #include "base/android/jni_string.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "jni/WebRestrictionsClient_jni.h" 12 #include "jni/WebRestrictionsClient_jni.h"
13 13
14 using base::android::ScopedJavaGlobalRef; 14 using base::android::ScopedJavaGlobalRef;
15 15
16 namespace web_restrictions { 16 namespace web_restrictions {
17 17
18 namespace { 18 namespace {
19 19
20 const size_t kMaxCacheSize = 100; 20 const size_t kMaxCacheSize = 100;
21 21
22 bool RequestPermissionTask( 22 bool RequestPermissionTask(
23 const GURL& url, 23 const GURL& url,
24 const base::android::JavaRef<jobject>& java_provider) { 24 const base::android::JavaRef<jobject>& java_provider) {
25 JNIEnv* env = base::android::AttachCurrentThread(); 25 JNIEnv* env = base::android::AttachCurrentThread();
26 return Java_WebRestrictionsClient_requestPermission( 26 return Java_WebRestrictionsClient_requestPermission(
27 env, java_provider.obj(), 27 env, java_provider,
28 base::android::ConvertUTF8ToJavaString(env, url.spec()).obj()); 28 base::android::ConvertUTF8ToJavaString(env, url.spec()));
29 } 29 }
30 30
31 bool CheckSupportsRequestTask( 31 bool CheckSupportsRequestTask(
32 const base::android::JavaRef<jobject>& java_provider) { 32 const base::android::JavaRef<jobject>& java_provider) {
33 JNIEnv* env = base::android::AttachCurrentThread(); 33 JNIEnv* env = base::android::AttachCurrentThread();
34 return Java_WebRestrictionsClient_supportsRequest(env, java_provider.obj()); 34 return Java_WebRestrictionsClient_supportsRequest(env, java_provider);
35 } 35 }
36 36
37 } // namespace 37 } // namespace
38 38
39 // static 39 // static
40 bool WebRestrictionsClient::Register(JNIEnv* env) { 40 bool WebRestrictionsClient::Register(JNIEnv* env) {
41 return RegisterNativesImpl(env); 41 return RegisterNativesImpl(env);
42 } 42 }
43 43
44 WebRestrictionsClient::WebRestrictionsClient() 44 WebRestrictionsClient::WebRestrictionsClient()
45 : initialized_(false), supports_request_(false) { 45 : initialized_(false), supports_request_(false) {
46 single_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get(); 46 single_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
47 base::SequencedWorkerPool* worker_pool = 47 base::SequencedWorkerPool* worker_pool =
48 content::BrowserThread::GetBlockingPool(); 48 content::BrowserThread::GetBlockingPool();
49 background_task_runner_ = 49 background_task_runner_ =
50 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( 50 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
51 worker_pool->GetSequenceToken(), 51 worker_pool->GetSequenceToken(),
52 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); 52 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
53 } 53 }
54 54
55 WebRestrictionsClient::~WebRestrictionsClient() { 55 WebRestrictionsClient::~WebRestrictionsClient() {
56 if (java_provider_.is_null()) 56 if (java_provider_.is_null())
57 return; 57 return;
58 JNIEnv* env = base::android::AttachCurrentThread(); 58 JNIEnv* env = base::android::AttachCurrentThread();
59 Java_WebRestrictionsClient_onDestroy(env, java_provider_.obj()); 59 Java_WebRestrictionsClient_onDestroy(env, java_provider_);
60 java_provider_.Reset(); 60 java_provider_.Reset();
61 } 61 }
62 62
63 void WebRestrictionsClient::SetAuthority( 63 void WebRestrictionsClient::SetAuthority(
64 const std::string& content_provider_authority) { 64 const std::string& content_provider_authority) {
65 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 65 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
66 // Destroy any existing content resolver. 66 // Destroy any existing content resolver.
67 JNIEnv* env = base::android::AttachCurrentThread(); 67 JNIEnv* env = base::android::AttachCurrentThread();
68 if (!java_provider_.is_null()) { 68 if (!java_provider_.is_null()) {
69 Java_WebRestrictionsClient_onDestroy(env, java_provider_.obj()); 69 Java_WebRestrictionsClient_onDestroy(env, java_provider_);
70 java_provider_.Reset(); 70 java_provider_.Reset();
71 } 71 }
72 ClearCache(); 72 ClearCache();
73 provider_authority_ = content_provider_authority; 73 provider_authority_ = content_provider_authority;
74 74
75 // Initialize the content resolver. 75 // Initialize the content resolver.
76 initialized_ = !content_provider_authority.empty(); 76 initialized_ = !content_provider_authority.empty();
77 if (!initialized_) 77 if (!initialized_)
78 return; 78 return;
79 java_provider_.Reset(Java_WebRestrictionsClient_create( 79 java_provider_.Reset(Java_WebRestrictionsClient_create(
80 env, 80 env,
81 base::android::ConvertUTF8ToJavaString(env, content_provider_authority) 81 base::android::ConvertUTF8ToJavaString(env, content_provider_authority),
82 .obj(),
83 reinterpret_cast<jlong>(this))); 82 reinterpret_cast<jlong>(this)));
84 supports_request_ = false; 83 supports_request_ = false;
85 base::PostTaskAndReplyWithResult( 84 base::PostTaskAndReplyWithResult(
86 content::BrowserThread::GetBlockingPool(), FROM_HERE, 85 content::BrowserThread::GetBlockingPool(), FROM_HERE,
87 base::Bind(&CheckSupportsRequestTask, java_provider_), 86 base::Bind(&CheckSupportsRequestTask, java_provider_),
88 base::Bind(&WebRestrictionsClient::RequestSupportKnown, 87 base::Bind(&WebRestrictionsClient::RequestSupportKnown,
89 base::Unretained(this), provider_authority_)); 88 base::Unretained(this), provider_authority_));
90 } 89 }
91 90
92 UrlAccess WebRestrictionsClient::ShouldProceed( 91 UrlAccess WebRestrictionsClient::ShouldProceed(
93 bool is_main_frame, 92 bool is_main_frame,
94 const GURL& url, 93 const GURL& url,
95 const base::Callback<void(bool)>& callback) { 94 const base::Callback<void(bool)>& callback) {
96 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 95 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
97 if (!initialized_) 96 if (!initialized_)
98 return ALLOW; 97 return ALLOW;
99 auto iter = cache_.find(url); 98 auto iter = cache_.find(url);
100 if (iter != cache_.end()) { 99 if (iter != cache_.end()) {
101 RecordURLAccess(url); 100 RecordURLAccess(url);
102 JNIEnv* env = base::android::AttachCurrentThread(); 101 JNIEnv* env = base::android::AttachCurrentThread();
103 return Java_ShouldProceedResult_shouldProceed(env, iter->second.obj()) 102 return Java_ShouldProceedResult_shouldProceed(env, iter->second) ? ALLOW
104 ? ALLOW 103 : DISALLOW;
105 : DISALLOW;
106 } 104 }
107 base::PostTaskAndReplyWithResult( 105 base::PostTaskAndReplyWithResult(
108 background_task_runner_.get(), FROM_HERE, 106 background_task_runner_.get(), FROM_HERE,
109 base::Bind(&WebRestrictionsClient::ShouldProceedTask, url, 107 base::Bind(&WebRestrictionsClient::ShouldProceedTask, url,
110 java_provider_), 108 java_provider_),
111 base::Bind(&WebRestrictionsClient::OnShouldProceedComplete, 109 base::Bind(&WebRestrictionsClient::OnShouldProceedComplete,
112 base::Unretained(this), provider_authority_, url, callback)); 110 base::Unretained(this), provider_authority_, url, callback));
113 111
114 return PENDING; 112 return PENDING;
115 } 113 }
116 114
117 bool WebRestrictionsClient::SupportsRequest() const { 115 bool WebRestrictionsClient::SupportsRequest() const {
118 return initialized_ && supports_request_; 116 return initialized_ && supports_request_;
119 } 117 }
120 118
121 int WebRestrictionsClient::GetResultColumnCount(const GURL& url) const { 119 int WebRestrictionsClient::GetResultColumnCount(const GURL& url) const {
122 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 120 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
123 if (!initialized_) 121 if (!initialized_)
124 return 0; 122 return 0;
125 auto iter = cache_.find(url); 123 auto iter = cache_.find(url);
126 if (iter == cache_.end()) 124 if (iter == cache_.end())
127 return 0; 125 return 0;
128 return Java_ShouldProceedResult_getColumnCount( 126 return Java_ShouldProceedResult_getColumnCount(
129 base::android::AttachCurrentThread(), iter->second.obj()); 127 base::android::AttachCurrentThread(), iter->second);
130 } 128 }
131 129
132 std::string WebRestrictionsClient::GetResultColumnName(const GURL& url, 130 std::string WebRestrictionsClient::GetResultColumnName(const GURL& url,
133 int column) const { 131 int column) const {
134 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 132 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
135 if (!initialized_) 133 if (!initialized_)
136 return std::string(); 134 return std::string();
137 auto iter = cache_.find(url); 135 auto iter = cache_.find(url);
138 if (iter == cache_.end()) 136 if (iter == cache_.end())
139 return std::string(); 137 return std::string();
140 138
141 JNIEnv* env = base::android::AttachCurrentThread(); 139 JNIEnv* env = base::android::AttachCurrentThread();
142 return base::android::ConvertJavaStringToUTF8( 140 return base::android::ConvertJavaStringToUTF8(
143 env, 141 env,
144 Java_ShouldProceedResult_getColumnName(env, iter->second.obj(), column) 142 Java_ShouldProceedResult_getColumnName(env, iter->second, column).obj());
145 .obj());
146 } 143 }
147 144
148 int WebRestrictionsClient::GetResultIntValue(const GURL& url, 145 int WebRestrictionsClient::GetResultIntValue(const GURL& url,
149 int column) const { 146 int column) const {
150 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 147 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
151 if (!initialized_) 148 if (!initialized_)
152 return 0; 149 return 0;
153 auto iter = cache_.find(url); 150 auto iter = cache_.find(url);
154 if (iter == cache_.end()) 151 if (iter == cache_.end())
155 return 0; 152 return 0;
156 return Java_ShouldProceedResult_getInt(base::android::AttachCurrentThread(), 153 return Java_ShouldProceedResult_getInt(base::android::AttachCurrentThread(),
157 iter->second.obj(), column); 154 iter->second, column);
158 } 155 }
159 156
160 std::string WebRestrictionsClient::GetResultStringValue(const GURL& url, 157 std::string WebRestrictionsClient::GetResultStringValue(const GURL& url,
161 int column) const { 158 int column) const {
162 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 159 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
163 if (!initialized_) 160 if (!initialized_)
164 return std::string(); 161 return std::string();
165 auto iter = cache_.find(url); 162 auto iter = cache_.find(url);
166 if (iter == cache_.end()) 163 if (iter == cache_.end())
167 return std::string(); 164 return std::string();
168 165
169 JNIEnv* env = base::android::AttachCurrentThread(); 166 JNIEnv* env = base::android::AttachCurrentThread();
170 return base::android::ConvertJavaStringToUTF8( 167 return base::android::ConvertJavaStringToUTF8(
171 env, Java_ShouldProceedResult_getString(env, iter->second.obj(), column) 168 env, Java_ShouldProceedResult_getString(env, iter->second, column).obj());
172 .obj());
173 } 169 }
174 170
175 void WebRestrictionsClient::RequestPermission( 171 void WebRestrictionsClient::RequestPermission(
176 const GURL& url, 172 const GURL& url,
177 const base::Callback<void(bool)>& request_success) { 173 const base::Callback<void(bool)>& request_success) {
178 if (!initialized_) { 174 if (!initialized_) {
179 request_success.Run(false); 175 request_success.Run(false);
180 return; 176 return;
181 } 177 }
182 base::PostTaskAndReplyWithResult( 178 base::PostTaskAndReplyWithResult(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 supports_request_ = supports_request; 221 supports_request_ = supports_request;
226 } 222 }
227 223
228 void WebRestrictionsClient::OnShouldProceedComplete( 224 void WebRestrictionsClient::OnShouldProceedComplete(
229 std::string provider_authority, 225 std::string provider_authority,
230 const GURL& url, 226 const GURL& url,
231 const base::Callback<void(bool)>& callback, 227 const base::Callback<void(bool)>& callback,
232 const ScopedJavaGlobalRef<jobject>& result) { 228 const ScopedJavaGlobalRef<jobject>& result) {
233 UpdateCache(provider_authority, url, result); 229 UpdateCache(provider_authority, url, result);
234 JNIEnv* env = base::android::AttachCurrentThread(); 230 JNIEnv* env = base::android::AttachCurrentThread();
235 callback.Run(Java_ShouldProceedResult_shouldProceed(env, result.obj())); 231 callback.Run(Java_ShouldProceedResult_shouldProceed(env, result));
236 } 232 }
237 233
238 void WebRestrictionsClient::ClearCache() { 234 void WebRestrictionsClient::ClearCache() {
239 DCHECK(single_thread_task_runner_->BelongsToCurrentThread()); 235 DCHECK(single_thread_task_runner_->BelongsToCurrentThread());
240 cache_.clear(); 236 cache_.clear();
241 recent_urls_.clear(); 237 recent_urls_.clear();
242 } 238 }
243 239
244 // static 240 // static
245 ScopedJavaGlobalRef<jobject> WebRestrictionsClient::ShouldProceedTask( 241 ScopedJavaGlobalRef<jobject> WebRestrictionsClient::ShouldProceedTask(
246 const GURL& url, 242 const GURL& url,
247 const base::android::JavaRef<jobject>& java_provider) { 243 const base::android::JavaRef<jobject>& java_provider) {
248 JNIEnv* env = base::android::AttachCurrentThread(); 244 JNIEnv* env = base::android::AttachCurrentThread();
249 base::android::ScopedJavaGlobalRef<jobject> result( 245 base::android::ScopedJavaGlobalRef<jobject> result(
250 Java_WebRestrictionsClient_shouldProceed( 246 Java_WebRestrictionsClient_shouldProceed(
251 env, java_provider.obj(), 247 env, java_provider,
252 base::android::ConvertUTF8ToJavaString(env, url.spec()).obj())); 248 base::android::ConvertUTF8ToJavaString(env, url.spec())));
253 return result; 249 return result;
254 } 250 }
255 251
256 void NotifyWebRestrictionsChanged( 252 void NotifyWebRestrictionsChanged(
257 JNIEnv* env, 253 JNIEnv* env,
258 const base::android::JavaParamRef<jobject>& clazz, 254 const base::android::JavaParamRef<jobject>& clazz,
259 jlong provider_ptr) { 255 jlong provider_ptr) {
260 WebRestrictionsClient* provider = 256 WebRestrictionsClient* provider =
261 reinterpret_cast<WebRestrictionsClient*>(provider_ptr); 257 reinterpret_cast<WebRestrictionsClient*>(provider_ptr);
262 // TODO(knn): Also reload existing interstitials/error pages. 258 // TODO(knn): Also reload existing interstitials/error pages.
263 provider->OnWebRestrictionsChanged(); 259 provider->OnWebRestrictionsChanged();
264 } 260 }
265 261
266 } // namespace web_restrictions 262 } // namespace web_restrictions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698