1e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/*
2e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * Copyright (C) 2010 Google Inc. All rights reserved.
3e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *
4e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * Redistribution and use in source and binary forms, with or without
5e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * modification, are permitted provided that the following conditions are
6e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * met:
7e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *
8e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *     * Redistributions of source code must retain the above copyright
9e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * notice, this list of conditions and the following disclaimer.
10e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *     * Redistributions in binary form must reproduce the above
11e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * copyright notice, this list of conditions and the following disclaimer
12e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * in the documentation and/or other materials provided with the
13e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * distribution.
14e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *     * Neither the name of Google Inc. nor the names of its
15e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * contributors may be used to endorse or promote products derived from
16e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * this software without specific prior written permission.
17e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *
18e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke */
30e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
31e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "config.h"
32e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "WebURLLoadTiming.h"
33e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
34e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "ResourceLoadTiming.h"
35e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "WebString.h"
36e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
37e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeusing namespace WebCore;
38e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
39e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkenamespace WebKit {
40e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
41e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::initialize()
42e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
43e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private = ResourceLoadTiming::create();
44e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
45e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
46e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::reset()
47e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
48e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private.reset();
49e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
50e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
51e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::assign(const WebURLLoadTiming& other)
52e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
53e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private = other.m_private;
54e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
55e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
56e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkedouble WebURLLoadTiming::requestTime() const
57e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
58e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->requestTime;
59e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
60e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
61e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setRequestTime(double time)
62e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
63e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->requestTime = time;
64e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
65e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
66e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::proxyStart() const
67e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
68e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->proxyStart;
69e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
70e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
71e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setProxyStart(int start)
72e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
73e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->proxyStart = start;
74e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
75e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
76e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::proxyEnd() const
77e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
78e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->proxyEnd;
79e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
80e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
81e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setProxyEnd(int end)
82e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
83e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->proxyEnd = end;
84e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
85e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
86e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::dnsStart() const
87e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
88e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->dnsStart;
89e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
90e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
91e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setDNSStart(int start)
92e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
93e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->dnsStart = start;
94e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
95e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
96e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::dnsEnd() const
97e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
98e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->dnsEnd;
99e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
100e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
101e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setDNSEnd(int end)
102e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
103e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->dnsEnd = end;
104e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
105e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
106e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::connectStart() const
107e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
108e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->connectStart;
109e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
110e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
111e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setConnectStart(int start)
112e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
113e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->connectStart = start;
114e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
115e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
116e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::connectEnd() const
117e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
118e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->connectEnd;
119e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
120e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
121e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setConnectEnd(int end)
122e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
123e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->connectEnd = end;
124e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
125e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
126e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::sendStart() const
127e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
128e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->sendStart;
129e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
130e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
131e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setSendStart(int start)
132e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
133e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->sendStart = start;
134e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
135e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
136e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::sendEnd() const
137e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
138e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->sendEnd;
139e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
140e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
141e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setSendEnd(int end)
142e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
143e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->sendEnd = end;
144e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
145e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
146e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::receiveHeadersEnd() const
147e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
148e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->receiveHeadersEnd;
149e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
150e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
151e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setReceiveHeadersEnd(int end)
152e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
153e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->receiveHeadersEnd = end;
154e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
155e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
156e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::sslStart() const
157e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
158e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->sslStart;
159e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
160e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
161e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setSSLStart(int start)
162e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
163e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->sslStart = start;
164e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
165e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
166e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeint WebURLLoadTiming::sslEnd() const
167e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
168e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private->sslEnd;
169e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
170e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
171e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkevoid WebURLLoadTiming::setSSLEnd(int end)
172e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
173e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private->sslEnd = end;
174e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
175e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
176e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeWebURLLoadTiming::WebURLLoadTiming(const PassRefPtr<ResourceLoadTiming>& value)
177e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    : m_private(value)
178e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
179e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
180e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
181e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeWebURLLoadTiming& WebURLLoadTiming::operator=(const PassRefPtr<ResourceLoadTiming>& value)
182e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
183e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    m_private = value;
184e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return *this;
185e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
186e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
187e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeWebURLLoadTiming::operator PassRefPtr<ResourceLoadTiming>() const
188e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke{
189e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    return m_private.get();
190e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke}
191e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
192e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke} // namespace WebKit
193