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

Side by Side Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceTimingInfo.cpp

Issue 2847893003: Support PerformanceResourceTiming for Service Worker Navigation Preload (Closed)
Patch Set: s/timestams/timestamps/ Created 3 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 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 "platform/loader/fetch/ResourceTimingInfo.h" 5 #include "platform/loader/fetch/ResourceTimingInfo.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "platform/CrossThreadCopier.h" 8 #include "platform/CrossThreadCopier.h"
9 #include "platform/wtf/PtrUtil.h" 9 #include "platform/wtf/PtrUtil.h"
10 10
11 namespace blink { 11 namespace blink {
12 12
13 PassRefPtr<ResourceTimingInfo> ResourceTimingInfo::Adopt( 13 PassRefPtr<ResourceTimingInfo> ResourceTimingInfo::Adopt(
14 std::unique_ptr<CrossThreadResourceTimingInfoData> data) { 14 std::unique_ptr<CrossThreadResourceTimingInfoData> data) {
15 RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::Create( 15 RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::Create(
16 AtomicString(data->type_), data->initial_time_, data->is_main_resource_); 16 AtomicString(data->type_), data->initial_time_, data->is_main_resource_);
17 info->original_timing_allow_origin_ = 17 info->original_timing_allow_origin_ =
18 AtomicString(data->original_timing_allow_origin_); 18 AtomicString(data->original_timing_allow_origin_);
19 info->load_finish_time_ = data->load_finish_time_; 19 info->load_finish_time_ = data->load_finish_time_;
20 info->initial_url_ = data->initial_url_.Copy(); 20 info->initial_url_ = data->initial_url_.Copy();
21 info->final_response_ = ResourceResponse(data->final_response_.get()); 21 info->final_response_ = ResourceResponse(data->final_response_.get());
22 for (auto& response_data : data->redirect_chain_) 22 for (auto& response_data : data->redirect_chain_)
23 info->redirect_chain_.push_back(ResourceResponse(response_data.get())); 23 info->redirect_chain_.push_back(ResourceResponse(response_data.get()));
24 info->transfer_size_ = data->transfer_size_; 24 info->transfer_size_ = data->transfer_size_;
25 info->negative_allowed_ = data->negative_allowed_;
25 return info.Release(); 26 return info.Release();
26 } 27 }
27 28
28 std::unique_ptr<CrossThreadResourceTimingInfoData> 29 std::unique_ptr<CrossThreadResourceTimingInfoData>
29 ResourceTimingInfo::CopyData() const { 30 ResourceTimingInfo::CopyData() const {
30 std::unique_ptr<CrossThreadResourceTimingInfoData> data = 31 std::unique_ptr<CrossThreadResourceTimingInfoData> data =
31 WTF::WrapUnique(new CrossThreadResourceTimingInfoData); 32 WTF::WrapUnique(new CrossThreadResourceTimingInfoData);
32 data->type_ = type_.GetString().IsolatedCopy(); 33 data->type_ = type_.GetString().IsolatedCopy();
33 data->original_timing_allow_origin_ = 34 data->original_timing_allow_origin_ =
34 original_timing_allow_origin_.GetString().IsolatedCopy(); 35 original_timing_allow_origin_.GetString().IsolatedCopy();
35 data->initial_time_ = initial_time_; 36 data->initial_time_ = initial_time_;
36 data->load_finish_time_ = load_finish_time_; 37 data->load_finish_time_ = load_finish_time_;
37 data->initial_url_ = initial_url_.Copy(); 38 data->initial_url_ = initial_url_.Copy();
38 data->final_response_ = final_response_.CopyData(); 39 data->final_response_ = final_response_.CopyData();
39 for (const auto& response : redirect_chain_) 40 for (const auto& response : redirect_chain_)
40 data->redirect_chain_.push_back(response.CopyData()); 41 data->redirect_chain_.push_back(response.CopyData());
41 data->transfer_size_ = transfer_size_; 42 data->transfer_size_ = transfer_size_;
42 data->is_main_resource_ = is_main_resource_; 43 data->is_main_resource_ = is_main_resource_;
44 data->negative_allowed_ = negative_allowed_;
43 return data; 45 return data;
44 } 46 }
45 47
46 void ResourceTimingInfo::AddRedirect(const ResourceResponse& redirect_response, 48 void ResourceTimingInfo::AddRedirect(const ResourceResponse& redirect_response,
47 bool cross_origin) { 49 bool cross_origin) {
48 redirect_chain_.push_back(redirect_response); 50 redirect_chain_.push_back(redirect_response);
49 if (has_cross_origin_redirect_) 51 if (has_cross_origin_redirect_)
50 return; 52 return;
51 if (cross_origin) { 53 if (cross_origin) {
52 has_cross_origin_redirect_ = true; 54 has_cross_origin_redirect_ = true;
53 transfer_size_ = 0; 55 transfer_size_ = 0;
54 } else { 56 } else {
55 DCHECK_GE(redirect_response.EncodedDataLength(), 0); 57 DCHECK_GE(redirect_response.EncodedDataLength(), 0);
56 transfer_size_ += redirect_response.EncodedDataLength(); 58 transfer_size_ += redirect_response.EncodedDataLength();
57 } 59 }
58 } 60 }
59 61
60 } // namespace blink 62 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698