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

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

Issue 2746113002: platform/loader: move network/Resource* to loader/fetch (Closed)
Patch Set: git rebase master Created 3 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "platform/network/ResourceTimingInfo.h"
6
7 #include "platform/CrossThreadCopier.h"
8 #include "wtf/PtrUtil.h"
9 #include <memory>
10
11 namespace blink {
12
13 PassRefPtr<ResourceTimingInfo> ResourceTimingInfo::adopt(
14 std::unique_ptr<CrossThreadResourceTimingInfoData> data) {
15 RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(
16 AtomicString(data->m_type), data->m_initialTime, data->m_isMainResource);
17 info->m_originalTimingAllowOrigin =
18 AtomicString(data->m_originalTimingAllowOrigin);
19 info->m_loadFinishTime = data->m_loadFinishTime;
20 info->m_initialURL = data->m_initialURL.copy();
21 info->m_finalResponse = ResourceResponse(data->m_finalResponse.get());
22 for (auto& responseData : data->m_redirectChain)
23 info->m_redirectChain.push_back(ResourceResponse(responseData.get()));
24 info->m_transferSize = data->m_transferSize;
25 return info.release();
26 }
27
28 std::unique_ptr<CrossThreadResourceTimingInfoData>
29 ResourceTimingInfo::copyData() const {
30 std::unique_ptr<CrossThreadResourceTimingInfoData> data =
31 WTF::wrapUnique(new CrossThreadResourceTimingInfoData);
32 data->m_type = m_type.getString().isolatedCopy();
33 data->m_originalTimingAllowOrigin =
34 m_originalTimingAllowOrigin.getString().isolatedCopy();
35 data->m_initialTime = m_initialTime;
36 data->m_loadFinishTime = m_loadFinishTime;
37 data->m_initialURL = m_initialURL.copy();
38 data->m_finalResponse = m_finalResponse.copyData();
39 for (const auto& response : m_redirectChain)
40 data->m_redirectChain.push_back(response.copyData());
41 data->m_transferSize = m_transferSize;
42 data->m_isMainResource = m_isMainResource;
43 return data;
44 }
45
46 void ResourceTimingInfo::addRedirect(const ResourceResponse& redirectResponse,
47 bool crossOrigin) {
48 m_redirectChain.push_back(redirectResponse);
49 if (m_hasCrossOriginRedirect)
50 return;
51 if (crossOrigin) {
52 m_hasCrossOriginRedirect = true;
53 m_transferSize = 0;
54 } else {
55 DCHECK_GE(redirectResponse.encodedDataLength(), 0);
56 m_transferSize += redirectResponse.encodedDataLength();
57 }
58 }
59
60 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698