Home | History | Annotate | Download | only in npapi
      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:
     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.
     40   virtual void AddRangeRequestResourceId(unsigned long resource_id) { }
     41 };
     42 
     43 }  // namespace content
     44 
     45 #endif  // CONTENT_CHILD_NPAPI_WEBPLUGIN_RESOURCE_CLIENT_H_
     46