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

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

Issue 2837943006: [WIP] Support PerformanceResourceTiming for Service Worker Navigation Preload (Closed)
Patch Set: clean up 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 /* 1 /*
2 * Copyright (C) 2013 Intel Inc. All rights reserved. 2 * Copyright (C) 2013 Intel Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 transfer_size_ += encoded_data_length; 97 transfer_size_ += encoded_data_length;
98 } 98 }
99 long long TransferSize() const { return transfer_size_; } 99 long long TransferSize() const { return transfer_size_; }
100 100
101 void ClearLoadTimings() { 101 void ClearLoadTimings() {
102 final_response_.SetResourceLoadTiming(nullptr); 102 final_response_.SetResourceLoadTiming(nullptr);
103 for (ResourceResponse& redirect : redirect_chain_) 103 for (ResourceResponse& redirect : redirect_chain_)
104 redirect.SetResourceLoadTiming(nullptr); 104 redirect.SetResourceLoadTiming(nullptr);
105 } 105 }
106 106
107 void SetNegativeAllowed(bool negative_allowed) {
108 negative_allowed_ = negative_allowed;
109 }
110 bool NegativeAllowed() const { return negative_allowed_; }
111
107 private: 112 private:
108 ResourceTimingInfo(const AtomicString& type, 113 ResourceTimingInfo(const AtomicString& type,
109 const double time, 114 const double time,
110 bool is_main_resource) 115 bool is_main_resource)
111 : type_(type), 116 : type_(type), initial_time_(time), is_main_resource_(is_main_resource) {}
112 initial_time_(time),
113 transfer_size_(0),
114 is_main_resource_(is_main_resource),
115 has_cross_origin_redirect_(false) {}
116 117
117 AtomicString type_; 118 AtomicString type_;
118 AtomicString original_timing_allow_origin_; 119 AtomicString original_timing_allow_origin_;
119 double initial_time_; 120 double initial_time_;
120 double load_finish_time_; 121 double load_finish_time_;
121 KURL initial_url_; 122 KURL initial_url_;
122 ResourceResponse final_response_; 123 ResourceResponse final_response_;
123 Vector<ResourceResponse> redirect_chain_; 124 Vector<ResourceResponse> redirect_chain_;
124 long long transfer_size_; 125 long long transfer_size_ = 0;
125 bool is_main_resource_; 126 bool is_main_resource_;
126 bool has_cross_origin_redirect_; 127 bool has_cross_origin_redirect_ = false;
128 bool negative_allowed_ = false;
127 }; 129 };
128 130
129 struct CrossThreadResourceTimingInfoData { 131 struct CrossThreadResourceTimingInfoData {
130 WTF_MAKE_NONCOPYABLE(CrossThreadResourceTimingInfoData); 132 WTF_MAKE_NONCOPYABLE(CrossThreadResourceTimingInfoData);
131 USING_FAST_MALLOC(CrossThreadResourceTimingInfoData); 133 USING_FAST_MALLOC(CrossThreadResourceTimingInfoData);
132 134
133 public: 135 public:
134 CrossThreadResourceTimingInfoData() {} 136 CrossThreadResourceTimingInfoData() {}
135 137
136 String type_; 138 String type_;
137 String original_timing_allow_origin_; 139 String original_timing_allow_origin_;
138 double initial_time_; 140 double initial_time_;
139 double load_finish_time_; 141 double load_finish_time_;
140 KURL initial_url_; 142 KURL initial_url_;
141 std::unique_ptr<CrossThreadResourceResponseData> final_response_; 143 std::unique_ptr<CrossThreadResourceResponseData> final_response_;
142 Vector<std::unique_ptr<CrossThreadResourceResponseData>> redirect_chain_; 144 Vector<std::unique_ptr<CrossThreadResourceResponseData>> redirect_chain_;
143 long long transfer_size_; 145 long long transfer_size_;
144 bool is_main_resource_; 146 bool is_main_resource_;
147 bool negative_allowed_;
145 }; 148 };
146 149
147 template <> 150 template <>
148 struct CrossThreadCopier<ResourceTimingInfo> { 151 struct CrossThreadCopier<ResourceTimingInfo> {
149 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceTimingInfoData>> 152 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceTimingInfoData>>
150 Type; 153 Type;
151 static Type Copy(const ResourceTimingInfo& info) { 154 static Type Copy(const ResourceTimingInfo& info) {
152 return WTF::Passed(info.CopyData()); 155 return WTF::Passed(info.CopyData());
153 } 156 }
154 }; 157 };
155 158
156 } // namespace blink 159 } // namespace blink
157 160
158 #endif 161 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698