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