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

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

Issue 2316573002: PlzNavigate: Support ResourceTiming API (Closed)
Patch Set: Rebase Created 4 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
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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 const AtomicString& originalTimingAllowOrigin) { 71 const AtomicString& originalTimingAllowOrigin) {
72 m_originalTimingAllowOrigin = originalTimingAllowOrigin; 72 m_originalTimingAllowOrigin = originalTimingAllowOrigin;
73 } 73 }
74 const AtomicString& originalTimingAllowOrigin() const { 74 const AtomicString& originalTimingAllowOrigin() const {
75 return m_originalTimingAllowOrigin; 75 return m_originalTimingAllowOrigin;
76 } 76 }
77 77
78 void setLoadFinishTime(double time) { m_loadFinishTime = time; } 78 void setLoadFinishTime(double time) { m_loadFinishTime = time; }
79 double loadFinishTime() const { return m_loadFinishTime; } 79 double loadFinishTime() const { return m_loadFinishTime; }
80 80
81 void setInitialRequest(const ResourceRequest& request) { 81 void setInitialURL(const KURL& url) { m_initialURL = url; }
82 m_initialRequest = request; 82 const KURL& initialURL() const { return m_initialURL; }
83 }
84 const ResourceRequest& initialRequest() const { return m_initialRequest; }
85 83
86 void setFinalResponse(const ResourceResponse& response) { 84 void setFinalResponse(const ResourceResponse& response) {
87 m_finalResponse = response; 85 m_finalResponse = response;
88 } 86 }
89 const ResourceResponse& finalResponse() const { return m_finalResponse; } 87 const ResourceResponse& finalResponse() const { return m_finalResponse; }
90 88
91 void addRedirect(const ResourceResponse& redirectResponse, 89 void addRedirect(const ResourceResponse& redirectResponse, bool crossOrigin);
92 long long encodedDataLength,
93 bool crossOrigin);
94 const Vector<ResourceResponse>& redirectChain() const { 90 const Vector<ResourceResponse>& redirectChain() const {
95 return m_redirectChain; 91 return m_redirectChain;
96 } 92 }
97 93
98 void addFinalTransferSize(long long encodedDataLength) { 94 void addFinalTransferSize(long long encodedDataLength) {
99 m_transferSize += encodedDataLength; 95 m_transferSize += encodedDataLength;
100 } 96 }
101 long long transferSize() const { return m_transferSize; } 97 long long transferSize() const { return m_transferSize; }
102 98
103 void clearLoadTimings() { 99 void clearLoadTimings() {
104 m_finalResponse.setResourceLoadTiming(nullptr); 100 m_finalResponse.setResourceLoadTiming(nullptr);
105 for (ResourceResponse& redirect : m_redirectChain) 101 for (ResourceResponse& redirect : m_redirectChain)
106 redirect.setResourceLoadTiming(nullptr); 102 redirect.setResourceLoadTiming(nullptr);
107 } 103 }
108 104
109 private: 105 private:
110 ResourceTimingInfo(const AtomicString& type, 106 ResourceTimingInfo(const AtomicString& type,
111 const double time, 107 const double time,
112 bool isMainResource) 108 bool isMainResource)
113 : m_type(type), 109 : m_type(type),
114 m_initialTime(time), 110 m_initialTime(time),
115 m_transferSize(0), 111 m_transferSize(0),
116 m_isMainResource(isMainResource), 112 m_isMainResource(isMainResource),
117 m_hasCrossOriginRedirect(false) {} 113 m_hasCrossOriginRedirect(false) {}
118 114
119 AtomicString m_type; 115 AtomicString m_type;
120 AtomicString m_originalTimingAllowOrigin; 116 AtomicString m_originalTimingAllowOrigin;
121 double m_initialTime; 117 double m_initialTime;
122 double m_loadFinishTime; 118 double m_loadFinishTime;
123 ResourceRequest m_initialRequest; 119 KURL m_initialURL;
124 ResourceResponse m_finalResponse; 120 ResourceResponse m_finalResponse;
125 Vector<ResourceResponse> m_redirectChain; 121 Vector<ResourceResponse> m_redirectChain;
126 long long m_transferSize; 122 long long m_transferSize;
127 bool m_isMainResource; 123 bool m_isMainResource;
128 bool m_hasCrossOriginRedirect; 124 bool m_hasCrossOriginRedirect;
129 }; 125 };
130 126
131 struct CrossThreadResourceTimingInfoData { 127 struct CrossThreadResourceTimingInfoData {
132 WTF_MAKE_NONCOPYABLE(CrossThreadResourceTimingInfoData); 128 WTF_MAKE_NONCOPYABLE(CrossThreadResourceTimingInfoData);
133 USING_FAST_MALLOC(CrossThreadResourceTimingInfoData); 129 USING_FAST_MALLOC(CrossThreadResourceTimingInfoData);
134 130
135 public: 131 public:
136 CrossThreadResourceTimingInfoData() {} 132 CrossThreadResourceTimingInfoData() {}
137 133
138 String m_type; 134 String m_type;
139 String m_originalTimingAllowOrigin; 135 String m_originalTimingAllowOrigin;
140 double m_initialTime; 136 double m_initialTime;
141 double m_loadFinishTime; 137 double m_loadFinishTime;
142 std::unique_ptr<CrossThreadResourceRequestData> m_initialRequest; 138 KURL m_initialURL;
143 std::unique_ptr<CrossThreadResourceResponseData> m_finalResponse; 139 std::unique_ptr<CrossThreadResourceResponseData> m_finalResponse;
144 Vector<std::unique_ptr<CrossThreadResourceResponseData>> m_redirectChain; 140 Vector<std::unique_ptr<CrossThreadResourceResponseData>> m_redirectChain;
145 long long m_transferSize; 141 long long m_transferSize;
146 bool m_isMainResource; 142 bool m_isMainResource;
147 }; 143 };
148 144
149 template <> 145 template <>
150 struct CrossThreadCopier<ResourceTimingInfo> { 146 struct CrossThreadCopier<ResourceTimingInfo> {
151 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceTimingInfoData>> 147 typedef WTF::PassedWrapper<std::unique_ptr<CrossThreadResourceTimingInfoData>>
152 Type; 148 Type;
153 static Type copy(const ResourceTimingInfo& info) { 149 static Type copy(const ResourceTimingInfo& info) {
154 return passed(info.copyData()); 150 return passed(info.copyData());
155 } 151 }
156 }; 152 };
157 153
158 } // namespace blink 154 } // namespace blink
159 155
160 #endif 156 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698