OLD | NEW |
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 Loading... |
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 |
OLD | NEW |