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

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

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 // 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/network/ResourceTimingInfo.h" 5 #include "platform/network/ResourceTimingInfo.h"
6 6
7 #include "platform/CrossThreadCopier.h" 7 #include "platform/CrossThreadCopier.h"
8 #include "wtf/PtrUtil.h" 8 #include "wtf/PtrUtil.h"
9 #include <memory> 9 #include <memory>
10 10
11 namespace blink { 11 namespace blink {
12 12
13 std::unique_ptr<ResourceTimingInfo> ResourceTimingInfo::adopt( 13 std::unique_ptr<ResourceTimingInfo> ResourceTimingInfo::adopt(
14 std::unique_ptr<CrossThreadResourceTimingInfoData> data) { 14 std::unique_ptr<CrossThreadResourceTimingInfoData> data) {
15 std::unique_ptr<ResourceTimingInfo> info = ResourceTimingInfo::create( 15 std::unique_ptr<ResourceTimingInfo> info = ResourceTimingInfo::create(
16 AtomicString(data->m_type), data->m_initialTime, data->m_isMainResource); 16 AtomicString(data->m_type), data->m_initialTime, data->m_isMainResource);
17 info->m_originalTimingAllowOrigin = 17 info->m_originalTimingAllowOrigin =
18 AtomicString(data->m_originalTimingAllowOrigin); 18 AtomicString(data->m_originalTimingAllowOrigin);
19 info->m_loadFinishTime = data->m_loadFinishTime; 19 info->m_loadFinishTime = data->m_loadFinishTime;
20 info->m_initialRequest = ResourceRequest(data->m_initialRequest.get()); 20 info->m_initialURL = data->m_initialURL.copy();
21 info->m_finalResponse = ResourceResponse(data->m_finalResponse.get()); 21 info->m_finalResponse = ResourceResponse(data->m_finalResponse.get());
22 for (auto& responseData : data->m_redirectChain) 22 for (auto& responseData : data->m_redirectChain)
23 info->m_redirectChain.append(ResourceResponse(responseData.get())); 23 info->m_redirectChain.append(ResourceResponse(responseData.get()));
24 info->m_transferSize = data->m_transferSize; 24 info->m_transferSize = data->m_transferSize;
25 return info; 25 return info;
26 } 26 }
27 27
28 std::unique_ptr<CrossThreadResourceTimingInfoData> 28 std::unique_ptr<CrossThreadResourceTimingInfoData>
29 ResourceTimingInfo::copyData() const { 29 ResourceTimingInfo::copyData() const {
30 std::unique_ptr<CrossThreadResourceTimingInfoData> data = 30 std::unique_ptr<CrossThreadResourceTimingInfoData> data =
31 wrapUnique(new CrossThreadResourceTimingInfoData); 31 wrapUnique(new CrossThreadResourceTimingInfoData);
32 data->m_type = m_type.getString().isolatedCopy(); 32 data->m_type = m_type.getString().isolatedCopy();
33 data->m_originalTimingAllowOrigin = 33 data->m_originalTimingAllowOrigin =
34 m_originalTimingAllowOrigin.getString().isolatedCopy(); 34 m_originalTimingAllowOrigin.getString().isolatedCopy();
35 data->m_initialTime = m_initialTime; 35 data->m_initialTime = m_initialTime;
36 data->m_loadFinishTime = m_loadFinishTime; 36 data->m_loadFinishTime = m_loadFinishTime;
37 data->m_initialRequest = m_initialRequest.copyData(); 37 data->m_initialURL = m_initialURL.copy();
38 data->m_finalResponse = m_finalResponse.copyData(); 38 data->m_finalResponse = m_finalResponse.copyData();
39 for (const auto& response : m_redirectChain) 39 for (const auto& response : m_redirectChain)
40 data->m_redirectChain.append(response.copyData()); 40 data->m_redirectChain.append(response.copyData());
41 data->m_transferSize = m_transferSize; 41 data->m_transferSize = m_transferSize;
42 data->m_isMainResource = m_isMainResource; 42 data->m_isMainResource = m_isMainResource;
43 return data; 43 return data;
44 } 44 }
45 45
46 void ResourceTimingInfo::addRedirect(const ResourceResponse& redirectResponse, 46 void ResourceTimingInfo::addRedirect(const ResourceResponse& redirectResponse,
47 long long encodedDataLength,
48 bool crossOrigin) { 47 bool crossOrigin) {
49 m_redirectChain.append(redirectResponse); 48 m_redirectChain.append(redirectResponse);
50 if (m_hasCrossOriginRedirect) 49 if (m_hasCrossOriginRedirect)
51 return; 50 return;
52 if (crossOrigin) { 51 if (crossOrigin) {
53 m_hasCrossOriginRedirect = true; 52 m_hasCrossOriginRedirect = true;
54 m_transferSize = 0; 53 m_transferSize = 0;
55 } else { 54 } else {
56 DCHECK_GE(encodedDataLength, 0); 55 DCHECK_GE(redirectResponse.encodedDataLength(), 0);
57 m_transferSize += encodedDataLength; 56 m_transferSize += redirectResponse.encodedDataLength();
58 } 57 }
59 } 58 }
60 59
61 } // namespace blink 60 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698