1*6777b538SAndroid Build Coastguard Worker // Copyright 2014 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef COMPONENTS_NACL_RENDERER_PROGRESS_EVENT_H_ 6*6777b538SAndroid Build Coastguard Worker #define COMPONENTS_NACL_RENDERER_PROGRESS_EVENT_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <stdint.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #include <string> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "components/nacl/renderer/ppb_nacl_private.h" 13*6777b538SAndroid Build Coastguard Worker #include "ppapi/c/pp_instance.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace nacl { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker // See http://www.w3.org/TR/progress-events/ for more details on progress 18*6777b538SAndroid Build Coastguard Worker // events. 19*6777b538SAndroid Build Coastguard Worker struct ProgressEvent { ProgressEventProgressEvent20*6777b538SAndroid Build Coastguard Worker explicit ProgressEvent(PP_NaClEventType event_type_param) 21*6777b538SAndroid Build Coastguard Worker : event_type(event_type_param), 22*6777b538SAndroid Build Coastguard Worker length_is_computable(false), 23*6777b538SAndroid Build Coastguard Worker loaded_bytes(0), 24*6777b538SAndroid Build Coastguard Worker total_bytes(0) { 25*6777b538SAndroid Build Coastguard Worker } 26*6777b538SAndroid Build Coastguard Worker ProgressEventProgressEvent27*6777b538SAndroid Build Coastguard Worker ProgressEvent(PP_NaClEventType event_type_param, 28*6777b538SAndroid Build Coastguard Worker const std::string& resource_url_param, 29*6777b538SAndroid Build Coastguard Worker bool length_is_computable_param, 30*6777b538SAndroid Build Coastguard Worker uint64_t loaded_bytes_param, 31*6777b538SAndroid Build Coastguard Worker uint64_t total_bytes_param) 32*6777b538SAndroid Build Coastguard Worker : event_type(event_type_param), 33*6777b538SAndroid Build Coastguard Worker resource_url(resource_url_param), 34*6777b538SAndroid Build Coastguard Worker length_is_computable(length_is_computable_param), 35*6777b538SAndroid Build Coastguard Worker loaded_bytes(loaded_bytes_param), 36*6777b538SAndroid Build Coastguard Worker total_bytes(total_bytes_param) { 37*6777b538SAndroid Build Coastguard Worker } 38*6777b538SAndroid Build Coastguard Worker 39*6777b538SAndroid Build Coastguard Worker PP_NaClEventType event_type; 40*6777b538SAndroid Build Coastguard Worker std::string resource_url; 41*6777b538SAndroid Build Coastguard Worker bool length_is_computable; 42*6777b538SAndroid Build Coastguard Worker uint64_t loaded_bytes; 43*6777b538SAndroid Build Coastguard Worker uint64_t total_bytes; 44*6777b538SAndroid Build Coastguard Worker }; 45*6777b538SAndroid Build Coastguard Worker 46*6777b538SAndroid Build Coastguard Worker // Dispatches a progress event to the DOM frame corresponding to the specified 47*6777b538SAndroid Build Coastguard Worker // plugin instance. 48*6777b538SAndroid Build Coastguard Worker // This posts a task to the main thread to perform the actual dispatch, since 49*6777b538SAndroid Build Coastguard Worker // it's usually intended for progress events to be dispatched after all other 50*6777b538SAndroid Build Coastguard Worker // state changes are handled. 51*6777b538SAndroid Build Coastguard Worker void DispatchProgressEvent(PP_Instance instance, const ProgressEvent& event); 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Worker } // namespace nacl 54*6777b538SAndroid Build Coastguard Worker 55*6777b538SAndroid Build Coastguard Worker #endif // COMPONENTS_NACL_RENDERER_PROGRESS_EVENT_H_ 56