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

Side by Side Diff: chrome/browser/policy/cloud/device_management_service.cc

Issue 25112004: Move statistics_provider to chromeos/system (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, fix DeviceManagement Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/policy/cloud/device_management_service.h" 5 #include "chrome/browser/policy/cloud/device_management_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/message_loop/message_loop_proxy.h" 12 #include "base/message_loop/message_loop_proxy.h"
13 #include "base/strings/stringprintf.h"
14 #include "base/sys_info.h"
15 #include "chromeos/system/statistics_provider.h"
13 #include "net/base/escape.h" 16 #include "net/base/escape.h"
14 #include "net/base/load_flags.h" 17 #include "net/base/load_flags.h"
15 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
16 #include "net/cookies/cookie_monster.h" 19 #include "net/cookies/cookie_monster.h"
17 #include "net/dns/host_resolver.h" 20 #include "net/dns/host_resolver.h"
18 #include "net/http/http_network_layer.h" 21 #include "net/http/http_network_layer.h"
19 #include "net/http/http_response_headers.h" 22 #include "net/http/http_response_headers.h"
20 #include "net/proxy/proxy_service.h" 23 #include "net/proxy/proxy_service.h"
21 #include "net/ssl/ssl_config_service_defaults.h" 24 #include "net/ssl/ssl_config_service_defaults.h"
22 #include "net/url_request/static_http_user_agent_settings.h" 25 #include "net/url_request/static_http_user_agent_settings.h"
23 #include "net/url_request/url_fetcher.h" 26 #include "net/url_request/url_fetcher.h"
24 #include "net/url_request/url_request_context.h" 27 #include "net/url_request/url_request_context.h"
25 #include "net/url_request/url_request_context_getter.h" 28 #include "net/url_request/url_request_context_getter.h"
26 #include "net/url_request/url_request_status.h" 29 #include "net/url_request/url_request_status.h"
27 #include "url/gurl.h" 30 #include "url/gurl.h"
28 31
32 #if defined(OS_CHROMEOS)
33 #include "chromeos/system/statistics_provider.h"
Joao da Silva 2013/10/02 10:06:26 Unfortunately this is a no-go. We are moving this
stevenjb 2013/10/02 16:59:49 Components *can* rely on /src/chromeos. I'll look
stevenjb 2013/10/03 01:17:23 https://codereview.chromium.org/25690003 is defini
34 #endif
35
29 namespace em = enterprise_management; 36 namespace em = enterprise_management;
30 37
31 namespace policy { 38 namespace policy {
32 39
33 namespace { 40 namespace {
34 41
35 const char kPostContentType[] = "application/protobuf"; 42 const char kPostContentType[] = "application/protobuf";
36 43
37 const char kServiceTokenAuthHeader[] = "Authorization: GoogleLogin auth="; 44 const char kServiceTokenAuthHeader[] = "Authorization: GoogleLogin auth=";
38 const char kDMTokenAuthHeader[] = "Authorization: GoogleDMToken token="; 45 const char kDMTokenAuthHeader[] = "Authorization: GoogleDMToken token=";
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 } 214 }
208 215
209 return context_.get(); 216 return context_.get();
210 } 217 }
211 218
212 scoped_refptr<base::SingleThreadTaskRunner> 219 scoped_refptr<base::SingleThreadTaskRunner>
213 DeviceManagementRequestContextGetter::GetNetworkTaskRunner() const { 220 DeviceManagementRequestContextGetter::GetNetworkTaskRunner() const {
214 return base_context_getter_->GetNetworkTaskRunner(); 221 return base_context_getter_->GetNetworkTaskRunner();
215 } 222 }
216 223
224 std::string GetPlatformParameter() {
225 std::string os_name = base::SysInfo::OperatingSystemName();
226 std::string os_hardware = base::SysInfo::OperatingSystemArchitecture();
227
228 #if defined(OS_CHROMEOS)
229 std::string hwclass;
230 if (!chromeos::system::StatisticsProvider::GetInstance()
231 ->GetMachineStatistic(chromeos::system::kHardwareClassKey, &hwclass)) {
232 LOG(ERROR) << "Failed to get machine information";
233 }
234 os_name += ",CrOS," + base::SysInfo::GetLsbReleaseBoard();
235 os_hardware += "," + hwclass;
236 #endif
237
238 std::string os_version("-");
239 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
240 int32 os_major_version = 0;
241 int32 os_minor_version = 0;
242 int32 os_bugfix_version = 0;
243 base::SysInfo::OperatingSystemVersionNumbers(&os_major_version,
244 &os_minor_version,
245 &os_bugfix_version);
246 os_version = base::StringPrintf("%d.%d.%d",
247 os_major_version,
248 os_minor_version,
249 os_bugfix_version);
250 #endif
251
252 return base::StringPrintf(
253 "%s|%s|%s", os_name.c_str(), os_hardware.c_str(), os_version.c_str());
254 }
255
217 } // namespace 256 } // namespace
218 257
219 // Request job implementation used with DeviceManagementService. 258 // Request job implementation used with DeviceManagementService.
220 class DeviceManagementRequestJobImpl : public DeviceManagementRequestJob { 259 class DeviceManagementRequestJobImpl : public DeviceManagementRequestJob {
221 public: 260 public:
222 DeviceManagementRequestJobImpl(JobType type, 261 DeviceManagementRequestJobImpl(JobType type,
223 const std::string& agent_parameter, 262 const std::string& agent_parameter,
224 const std::string& platform_parameter, 263 const std::string& platform_parameter,
225 DeviceManagementService* service); 264 DeviceManagementService* service);
226 virtual ~DeviceManagementRequestJobImpl(); 265 virtual ~DeviceManagementRequestJobImpl();
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 const int DeviceManagementService::kURLFetcherID = 0xde71ce1d; 516 const int DeviceManagementService::kURLFetcherID = 0xde71ce1d;
478 517
479 DeviceManagementService::~DeviceManagementService() { 518 DeviceManagementService::~DeviceManagementService() {
480 // All running jobs should have been cancelled by now. 519 // All running jobs should have been cancelled by now.
481 DCHECK(pending_jobs_.empty()); 520 DCHECK(pending_jobs_.empty());
482 DCHECK(queued_jobs_.empty()); 521 DCHECK(queued_jobs_.empty());
483 } 522 }
484 523
485 DeviceManagementRequestJob* DeviceManagementService::CreateJob( 524 DeviceManagementRequestJob* DeviceManagementService::CreateJob(
486 DeviceManagementRequestJob::JobType type) { 525 DeviceManagementRequestJob::JobType type) {
526 if (platform_parameter_.empty())
527 platform_parameter_ = GetPlatformParameter();
487 return new DeviceManagementRequestJobImpl( 528 return new DeviceManagementRequestJobImpl(
488 type, agent_parameter_, platform_parameter_, this); 529 type, agent_parameter_, platform_parameter_, this);
489 } 530 }
490 531
491 void DeviceManagementService::ScheduleInitialization(int64 delay_milliseconds) { 532 void DeviceManagementService::ScheduleInitialization(int64 delay_milliseconds) {
492 if (initialized_) 533 if (initialized_)
493 return; 534 return;
494 base::MessageLoop::current()->PostDelayedTask( 535 base::MessageLoop::current()->PostDelayedTask(
495 FROM_HERE, 536 FROM_HERE,
496 base::Bind(&DeviceManagementService::Initialize, 537 base::Bind(&DeviceManagementService::Initialize,
(...skipping 22 matching lines...) Expand all
519 delete job->first; 560 delete job->first;
520 queued_jobs_.push_back(job->second); 561 queued_jobs_.push_back(job->second);
521 } 562 }
522 pending_jobs_.clear(); 563 pending_jobs_.clear();
523 } 564 }
524 565
525 DeviceManagementService::DeviceManagementService( 566 DeviceManagementService::DeviceManagementService(
526 scoped_refptr<net::URLRequestContextGetter> request_context, 567 scoped_refptr<net::URLRequestContextGetter> request_context,
527 const std::string& server_url, 568 const std::string& server_url,
528 const std::string& user_agent, 569 const std::string& user_agent,
529 const std::string& agent_parameter, 570 const std::string& agent_parameter)
530 const std::string& platform_parameter)
531 : request_context_(request_context), 571 : request_context_(request_context),
532 server_url_(server_url), 572 server_url_(server_url),
533 user_agent_(user_agent), 573 user_agent_(user_agent),
534 agent_parameter_(agent_parameter), 574 agent_parameter_(agent_parameter),
535 platform_parameter_(platform_parameter),
536 initialized_(false), 575 initialized_(false),
537 weak_ptr_factory_(this) { 576 weak_ptr_factory_(this) {
538 } 577 }
539 578
540 void DeviceManagementService::StartJob(DeviceManagementRequestJobImpl* job) { 579 void DeviceManagementService::StartJob(DeviceManagementRequestJobImpl* job) {
541 net::URLFetcher* fetcher = net::URLFetcher::Create( 580 net::URLFetcher* fetcher = net::URLFetcher::Create(
542 kURLFetcherID, job->GetURL(server_url_), net::URLFetcher::POST, this); 581 kURLFetcherID, job->GetURL(server_url_), net::URLFetcher::POST, this);
543 fetcher->SetRequestContext(request_context_getter_.get()); 582 fetcher->SetRequestContext(request_context_getter_.get());
544 job->ConfigureRequest(fetcher); 583 job->ConfigureRequest(fetcher);
545 pending_jobs_[fetcher] = job; 584 pending_jobs_[fetcher] = job;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 } 627 }
589 } 628 }
590 629
591 const JobQueue::iterator elem = 630 const JobQueue::iterator elem =
592 std::find(queued_jobs_.begin(), queued_jobs_.end(), job); 631 std::find(queued_jobs_.begin(), queued_jobs_.end(), job);
593 if (elem != queued_jobs_.end()) 632 if (elem != queued_jobs_.end())
594 queued_jobs_.erase(elem); 633 queued_jobs_.erase(elem);
595 } 634 }
596 635
597 } // namespace policy 636 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698