Home | History | Annotate | Download | only in renderer
      1 // Copyright 2014 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 COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_
      6 #define COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_
      7 
      8 #include <string>
      9 
     10 #include "ppapi/c/pp_instance.h"
     11 #include "ppapi/c/private/ppb_nacl_private.h"
     12 
     13 namespace nacl {
     14 
     15 // See http://www.w3.org/TR/progress-events/ for more details on progress
     16 // events.
     17 struct ProgressEvent {
     18   explicit ProgressEvent(PP_NaClEventType event_type_param)
     19       : event_type(event_type_param),
     20         length_is_computable(false),
     21         loaded_bytes(0),
     22         total_bytes(0) {
     23   }
     24 
     25   ProgressEvent(PP_NaClEventType event_type_param,
     26                 const std::string& resource_url_param,
     27                 bool length_is_computable_param,
     28                 uint64_t loaded_bytes_param,
     29                 uint64_t total_bytes_param)
     30       : event_type(event_type_param),
     31         resource_url(resource_url_param),
     32         length_is_computable(length_is_computable_param),
     33         loaded_bytes(loaded_bytes_param),
     34         total_bytes(total_bytes_param) {
     35   }
     36 
     37   PP_NaClEventType event_type;
     38   std::string resource_url;
     39   bool length_is_computable;
     40   uint64_t loaded_bytes;
     41   uint64_t total_bytes;
     42 };
     43 
     44 // Dispatches a progress event to the DOM frame corresponding to the specified
     45 // plugin instance.
     46 // This posts a task to the main thread to perform the actual dispatch, since
     47 // it's usually intended for progress events to be dispatched after all other
     48 // state changes are handled.
     49 void DispatchProgressEvent(PP_Instance instance, const ProgressEvent& event);
     50 
     51 }  // namespace nacl
     52 
     53 #endif  // COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_
     54