1 // Copyright (c) 2013 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.
5 #ifndef CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
6 #define CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
10 #include "base/basictypes.h"
16 // Simpler version of ResourceHandleClient that lends itself to proxying.
17 class WebPluginResourceClient
{
19 virtual ~WebPluginResourceClient() {}
21 virtual void WillSendRequest(const GURL
& url
, int http_status_code
) = 0;
22 // The request_is_seekable parameter indicates whether byte range requests
23 // can be issued for the underlying stream.
24 virtual void DidReceiveResponse(const std::string
& mime_type
,
25 const std::string
& headers
,
26 uint32 expected_length
,
28 bool request_is_seekable
) = 0;
29 virtual void DidReceiveData(const char* buffer
, int length
,
31 // The resource ids passed here ensures that data for range requests
32 // is cleared. This applies for seekable streams.
33 virtual void DidFinishLoading(unsigned long resource_id
) = 0;
34 virtual void DidFail(unsigned long resource_id
) = 0;
35 virtual bool IsMultiByteResponseExpected() = 0;
36 virtual int ResourceId() = 0;
37 // Tells this object that it will get responses from multiple resources.
38 // This is necessary since the plugin process uses a single instance of
39 // PluginStreamUrl object for multiple range requests.
40 virtual void AddRangeRequestResourceId(unsigned long resource_id
) { }
43 } // namespace content
45 #endif // CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_