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

Side by Side Diff: chrome/browser/extensions/api/messaging/message_property_provider.cc

Issue 1112573002: [chrome/browser/extensions] Replace MessageLoopProxy usage with ThreadTaskRunnerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolving ng browser unittest issues Created 5 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/extensions/api/messaging/message_property_provider.h" 5 #include "chrome/browser/extensions/api/messaging/message_property_provider.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/strings/string_piece.h" 9 #include "base/strings/string_piece.h"
10 #include "base/thread_task_runner_handle.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
13 #include "content/public/browser/browser_thread.h" 13 #include "content/public/browser/browser_thread.h"
14 #include "extensions/common/api/runtime.h" 14 #include "extensions/common/api/runtime.h"
15 #include "net/base/completion_callback.h" 15 #include "net/base/completion_callback.h"
16 #include "net/cert/asn1_util.h" 16 #include "net/cert/asn1_util.h"
17 #include "net/cert/jwk_serializer.h" 17 #include "net/cert/jwk_serializer.h"
18 #include "net/ssl/channel_id_service.h" 18 #include "net/ssl/channel_id_service.h"
19 #include "net/url_request/url_request_context.h" 19 #include "net/url_request/url_request_context.h"
20 #include "net/url_request/url_request_context_getter.h" 20 #include "net/url_request/url_request_context_getter.h"
21 #include "url/gurl.h" 21 #include "url/gurl.h"
22 22
23 namespace extensions { 23 namespace extensions {
24 24
25 MessagePropertyProvider::MessagePropertyProvider() {} 25 MessagePropertyProvider::MessagePropertyProvider() {}
26 26
27 void MessagePropertyProvider::GetChannelID(Profile* profile, 27 void MessagePropertyProvider::GetChannelID(Profile* profile,
28 const GURL& source_url, const ChannelIDCallback& reply) { 28 const GURL& source_url, const ChannelIDCallback& reply) {
29 if (!source_url.is_valid()) { 29 if (!source_url.is_valid()) {
30 // This isn't a real URL, so there's no sense in looking for a channel ID 30 // This isn't a real URL, so there's no sense in looking for a channel ID
31 // for it. Dispatch with an empty tls channel ID. 31 // for it. Dispatch with an empty tls channel ID.
32 reply.Run(std::string()); 32 reply.Run(std::string());
33 return; 33 return;
34 } 34 }
35 scoped_refptr<net::URLRequestContextGetter> request_context_getter( 35 scoped_refptr<net::URLRequestContextGetter> request_context_getter(
36 profile->GetRequestContext()); 36 profile->GetRequestContext());
37 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE, 37 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
38 base::Bind(&MessagePropertyProvider::GetChannelIDOnIOThread, 38 base::Bind(&MessagePropertyProvider::GetChannelIDOnIOThread,
39 base::MessageLoopProxy::current(), 39 base::ThreadTaskRunnerHandle::Get(),
40 request_context_getter, 40 request_context_getter,
41 source_url.host(), 41 source_url.host(),
42 reply)); 42 reply));
43 } 43 }
44 44
45 // Helper struct to bind the memory addresses that will be written to by 45 // Helper struct to bind the memory addresses that will be written to by
46 // ChannelIDService::GetChannelID to the callback provided to 46 // ChannelIDService::GetChannelID to the callback provided to
47 // MessagePropertyProvider::GetChannelID. 47 // MessagePropertyProvider::GetChannelID.
48 struct MessagePropertyProvider::GetChannelIDOutput { 48 struct MessagePropertyProvider::GetChannelIDOutput {
49 std::string domain_bound_private_key; 49 std::string domain_bound_private_key;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 if (!net::JwkSerializer::ConvertSpkiFromDerToJwk(spki, &jwk_value)) { 98 if (!net::JwkSerializer::ConvertSpkiFromDerToJwk(spki, &jwk_value)) {
99 original_task_runner->PostTask(FROM_HERE, no_tls_channel_id_closure); 99 original_task_runner->PostTask(FROM_HERE, no_tls_channel_id_closure);
100 return; 100 return;
101 } 101 }
102 std::string jwk_str; 102 std::string jwk_str;
103 base::JSONWriter::Write(&jwk_value, &jwk_str); 103 base::JSONWriter::Write(&jwk_value, &jwk_str);
104 original_task_runner->PostTask(FROM_HERE, base::Bind(reply, jwk_str)); 104 original_task_runner->PostTask(FROM_HERE, base::Bind(reply, jwk_str));
105 } 105 }
106 106
107 } // namespace extensions 107 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698