OLD | NEW |
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 // This code glues the RLZ library DLL with Chrome. It allows Chrome to work | 5 // This code glues the RLZ library DLL with Chrome. It allows Chrome to work |
6 // with or without the DLL being present. If the DLL is not present the | 6 // with or without the DLL being present. If the DLL is not present the |
7 // functions do nothing and just return false. | 7 // functions do nothing and just return false. |
8 | 8 |
9 #include "components/rlz/rlz_tracker.h" | 9 #include "components/rlz/rlz_tracker.h" |
10 | 10 |
11 #include <algorithm> | 11 #include <algorithm> |
12 #include <utility> | 12 #include <utility> |
13 | 13 |
14 #include "base/bind.h" | 14 #include "base/bind.h" |
15 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
16 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
| 17 #include "base/strings/stringprintf.h" |
17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
18 #include "base/trace_event/trace_event.h" | 19 #include "base/trace_event/trace_event.h" |
19 #include "build/build_config.h" | 20 #include "build/build_config.h" |
20 #include "components/rlz/rlz_tracker_delegate.h" | 21 #include "components/rlz/rlz_tracker_delegate.h" |
21 #include "net/http/http_util.h" | |
22 | 22 |
23 namespace rlz { | 23 namespace rlz { |
24 namespace { | 24 namespace { |
25 | 25 |
26 // Maximum and minimum delay for financial ping we would allow to be set through | 26 // Maximum and minimum delay for financial ping we would allow to be set through |
27 // master preferences. Somewhat arbitrary, may need to be adjusted in future. | 27 // master preferences. Somewhat arbitrary, may need to be adjusted in future. |
28 const base::TimeDelta kMaxInitDelay = base::TimeDelta::FromSeconds(200); | 28 const base::TimeDelta kMaxInitDelay = base::TimeDelta::FromSeconds(200); |
29 const base::TimeDelta kMinInitDelay = base::TimeDelta::FromSeconds(20); | 29 const base::TimeDelta kMinInitDelay = base::TimeDelta::FromSeconds(20); |
30 | 30 |
31 void RecordProductEvents(bool first_run, | 31 void RecordProductEvents(bool first_run, |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 return nullptr; | 436 return nullptr; |
437 } | 437 } |
438 | 438 |
439 // static | 439 // static |
440 std::string RLZTracker::GetAccessPointHttpHeader(rlz_lib::AccessPoint point) { | 440 std::string RLZTracker::GetAccessPointHttpHeader(rlz_lib::AccessPoint point) { |
441 TRACE_EVENT0("RLZ", "RLZTracker::GetAccessPointHttpHeader"); | 441 TRACE_EVENT0("RLZ", "RLZTracker::GetAccessPointHttpHeader"); |
442 std::string extra_headers; | 442 std::string extra_headers; |
443 base::string16 rlz_string; | 443 base::string16 rlz_string; |
444 RLZTracker::GetAccessPointRlz(point, &rlz_string); | 444 RLZTracker::GetAccessPointRlz(point, &rlz_string); |
445 if (!rlz_string.empty()) { | 445 if (!rlz_string.empty()) { |
446 net::HttpUtil::AppendHeaderIfMissing("X-Rlz-String", | 446 return base::StringPrintf("X-Rlz-String: %s\r\n", |
447 base::UTF16ToUTF8(rlz_string), | 447 base::UTF16ToUTF8(rlz_string).c_str()); |
448 &extra_headers); | |
449 } | 448 } |
450 | 449 |
451 return extra_headers; | 450 return extra_headers; |
452 } | 451 } |
453 | 452 |
454 // GetAccessPointRlz() caches RLZ strings for all access points. If we had | 453 // GetAccessPointRlz() caches RLZ strings for all access points. If we had |
455 // a successful ping, then we update the cached value. | 454 // a successful ping, then we update the cached value. |
456 // static | 455 // static |
457 bool RLZTracker::GetAccessPointRlz(rlz_lib::AccessPoint point, | 456 bool RLZTracker::GetAccessPointRlz(rlz_lib::AccessPoint point, |
458 base::string16* rlz) { | 457 base::string16* rlz) { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 // This method is called during unit tests while the RLZTracker has not been | 557 // This method is called during unit tests while the RLZTracker has not been |
559 // initialized, so check for the presence of a delegate and exit if there is | 558 // initialized, so check for the presence of a delegate and exit if there is |
560 // none registered. | 559 // none registered. |
561 RLZTracker* tracker = GetInstance(); | 560 RLZTracker* tracker = GetInstance(); |
562 if (tracker->delegate_) | 561 if (tracker->delegate_) |
563 tracker->RecordFirstSearch(RLZTracker::ChromeAppList()); | 562 tracker->RecordFirstSearch(RLZTracker::ChromeAppList()); |
564 } | 563 } |
565 #endif | 564 #endif |
566 | 565 |
567 } // namespace rlz | 566 } // namespace rlz |
OLD | NEW |