• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
6 #define CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 
12 class GURL;
13 
14 namespace content {
15 
16 // Simpler version of ResourceHandleClient that lends itself to proxying.
17 class WebPluginResourceClient {
18  public:
~WebPluginResourceClient()19   virtual ~WebPluginResourceClient() {}
20 
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,
27                                   uint32 last_modified,
28                                   bool request_is_seekable) = 0;
29   virtual void DidReceiveData(const char* buffer, int length,
30                               int data_offset) = 0;
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.
AddRangeRequestResourceId(unsigned long resource_id)40   virtual void AddRangeRequestResourceId(unsigned long resource_id) { }
41 };
42 
43 }  // namespace content
44 
45 #endif  // CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
46