resource_response.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// See http://dev.chromium.org/developers/design-documents/multi-process-resource-loading 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_ 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_ 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include <string> 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/compiler_specific.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/ref_counted.h" 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "content/common/content_export.h" 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "content/public/common/resource_response_info.h" 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "net/url_request/url_request_status.h" 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "url/gurl.h" 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace content { 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Parameters for a resource response header. 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct ResourceResponseHead : ResourceResponseInfo { 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The response error_code. 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int error_code; 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TimeTicks::Now() when the browser received the request from the renderer. 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::TimeTicks request_start; 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // TimeTicks::Now() when the browser sent the response to the renderer. 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) base::TimeTicks response_start; 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Parameters for a synchronous resource response. 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct SyncLoadResult : ResourceResponseHead { 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The final URL after any redirects. 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) GURL final_url; 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The response data. 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) std::string data; 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Simple wrapper that refcounts ResourceResponseHead. 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Inherited, rather than typedef'd, to allow forward declarations. 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)struct CONTENT_EXPORT ResourceResponse 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : public base::RefCounted<ResourceResponse> { 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ResourceResponseHead head; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch friend class base::RefCounted<ResourceResponse>; 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ~ResourceResponse() {} 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace content 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_ 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch