OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/in_process_webkit/indexed_db_key_utility_client.h" | 5 #include "content/browser/in_process_webkit/indexed_db_key_utility_client.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
10 #include "content/browser/utility_process_host.h" | 10 #include "content/browser/utility_process_host.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 BrowserThread::IO, FROM_HERE, | 269 BrowserThread::IO, FROM_HERE, |
270 base::Bind(&KeyUtilityClientImpl::StartUtilityProcessInternal, this)); | 270 base::Bind(&KeyUtilityClientImpl::StartUtilityProcessInternal, this)); |
271 return; | 271 return; |
272 } | 272 } |
273 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 273 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
274 DCHECK(state_ == STATE_UNINITIALIZED); | 274 DCHECK(state_ == STATE_UNINITIALIZED); |
275 | 275 |
276 client_ = new KeyUtilityClientImpl::Client(this); | 276 client_ = new KeyUtilityClientImpl::Client(this); |
277 utility_process_host_ = new UtilityProcessHost( | 277 utility_process_host_ = new UtilityProcessHost( |
278 client_.get(), BrowserThread::IO); | 278 client_.get(), BrowserThread::IO); |
| 279 #if defined(OS_LINUX) |
| 280 utility_process_host_->set_should_use_zygote(true); |
| 281 #endif |
279 utility_process_host_->StartBatchMode(); | 282 utility_process_host_->StartBatchMode(); |
280 state_ = STATE_INITIALIZED; | 283 state_ = STATE_INITIALIZED; |
281 waitable_event_.Signal(); | 284 waitable_event_.Signal(); |
282 } | 285 } |
283 | 286 |
284 void KeyUtilityClientImpl::EndUtilityProcessInternal() { | 287 void KeyUtilityClientImpl::EndUtilityProcessInternal() { |
285 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 288 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
286 BrowserThread::PostTask( | 289 BrowserThread::PostTask( |
287 BrowserThread::IO, FROM_HERE, | 290 BrowserThread::IO, FROM_HERE, |
288 base::Bind(&KeyUtilityClientImpl::EndUtilityProcessInternal, this)); | 291 base::Bind(&KeyUtilityClientImpl::EndUtilityProcessInternal, this)); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 void KeyUtilityClientImpl::Client::OnInjectIDBKeyFinished( | 389 void KeyUtilityClientImpl::Client::OnInjectIDBKeyFinished( |
387 const content::SerializedScriptValue& value) { | 390 const content::SerializedScriptValue& value) { |
388 parent_->SetValueAfterInjection(value); | 391 parent_->SetValueAfterInjection(value); |
389 parent_->FinishInjectingKey(); | 392 parent_->FinishInjectingKey(); |
390 } | 393 } |
391 | 394 |
392 void KeyUtilityClientImpl::Client::OnIDBKeysFromValuesAndKeyPathFailed( | 395 void KeyUtilityClientImpl::Client::OnIDBKeysFromValuesAndKeyPathFailed( |
393 int id) { | 396 int id) { |
394 parent_->FinishCreatingKeys(); | 397 parent_->FinishCreatingKeys(); |
395 } | 398 } |
OLD | NEW |