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

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

Issue 2316573002: PlzNavigate: Support ResourceTiming API (Closed)
Patch Set: nit: ResourceResponseInfo->ResourceResponseInfos Created 4 years, 3 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(std::unique_ptr<Cr ossThreadResourceTimingInfoData> data) 13 std::unique_ptr<ResourceTimingInfo> ResourceTimingInfo::adopt(std::unique_ptr<Cr ossThreadResourceTimingInfoData> data)
14 { 14 {
15 std::unique_ptr<ResourceTimingInfo> info = ResourceTimingInfo::create(Atomic String(data->m_type), data->m_initialTime, data->m_isMainResource); 15 std::unique_ptr<ResourceTimingInfo> info = ResourceTimingInfo::create(Atomic String(data->m_type), data->m_initialTime, data->m_isMainResource);
16 info->m_originalTimingAllowOrigin = AtomicString(data->m_originalTimingAllow Origin); 16 info->m_originalTimingAllowOrigin = AtomicString(data->m_originalTimingAllow Origin);
17 info->m_loadFinishTime = data->m_loadFinishTime; 17 info->m_loadFinishTime = data->m_loadFinishTime;
18 info->m_initialRequest = ResourceRequest(data->m_initialRequest.get()); 18 info->m_initialURL = data->m_initialURL.copy();
19 info->m_finalResponse = ResourceResponse(data->m_finalResponse.get()); 19 info->m_finalResponse = ResourceResponse(data->m_finalResponse.get());
20 for (auto& responseData : data->m_redirectChain) 20 for (auto& responseData : data->m_redirectChain)
21 info->m_redirectChain.append(ResourceResponse(responseData.get())); 21 info->m_redirectChain.append(ResourceResponse(responseData.get()));
22 info->m_transferSize = data->m_transferSize; 22 info->m_transferSize = data->m_transferSize;
23 return info; 23 return info;
24 } 24 }
25 25
26 std::unique_ptr<CrossThreadResourceTimingInfoData> ResourceTimingInfo::copyData( ) const 26 std::unique_ptr<CrossThreadResourceTimingInfoData> ResourceTimingInfo::copyData( ) const
27 { 27 {
28 std::unique_ptr<CrossThreadResourceTimingInfoData> data = wrapUnique(new Cro ssThreadResourceTimingInfoData); 28 std::unique_ptr<CrossThreadResourceTimingInfoData> data = wrapUnique(new Cro ssThreadResourceTimingInfoData);
29 data->m_type = m_type.getString().isolatedCopy(); 29 data->m_type = m_type.getString().isolatedCopy();
30 data->m_originalTimingAllowOrigin = m_originalTimingAllowOrigin.getString(). isolatedCopy(); 30 data->m_originalTimingAllowOrigin = m_originalTimingAllowOrigin.getString(). isolatedCopy();
31 data->m_initialTime = m_initialTime; 31 data->m_initialTime = m_initialTime;
32 data->m_loadFinishTime = m_loadFinishTime; 32 data->m_loadFinishTime = m_loadFinishTime;
33 data->m_initialRequest = m_initialRequest.copyData(); 33 data->m_initialURL = m_initialURL.copy();
34 data->m_finalResponse = m_finalResponse.copyData(); 34 data->m_finalResponse = m_finalResponse.copyData();
35 for (const auto& response : m_redirectChain) 35 for (const auto& response : m_redirectChain)
36 data->m_redirectChain.append(response.copyData()); 36 data->m_redirectChain.append(response.copyData());
37 data->m_transferSize = m_transferSize; 37 data->m_transferSize = m_transferSize;
38 data->m_isMainResource = m_isMainResource; 38 data->m_isMainResource = m_isMainResource;
39 return data; 39 return data;
40 } 40 }
41 41
42 void ResourceTimingInfo::addRedirect(const ResourceResponse& redirectResponse, l ong long encodedDataLength, bool crossOrigin) 42 void ResourceTimingInfo::addRedirect(const ResourceResponse& redirectResponse, b ool crossOrigin)
43 { 43 {
44 m_redirectChain.append(redirectResponse); 44 m_redirectChain.append(redirectResponse);
45 if (m_hasCrossOriginRedirect) 45 if (m_hasCrossOriginRedirect)
46 return; 46 return;
47 if (crossOrigin) { 47 if (crossOrigin) {
48 m_hasCrossOriginRedirect = true; 48 m_hasCrossOriginRedirect = true;
49 m_transferSize = 0; 49 m_transferSize = 0;
50 } else { 50 } else {
51 DCHECK_GE(encodedDataLength, 0); 51 DCHECK_GE(redirectResponse.encodedDataLength(), 0);
52 m_transferSize += encodedDataLength; 52 m_transferSize += redirectResponse.encodedDataLength();
53 } 53 }
54 } 54 }
55 55
56 } // namespace blink 56 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698