diff options
author | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-12 15:30:40 +0000 |
---|---|---|
committer | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-12 15:30:40 +0000 |
commit | 609c9c9f4597a94e8eab49f675f088c05478f0fc (patch) | |
tree | e947334ad5d249e7763b378ba7e27d5d97a35c03 /components/nacl/renderer/progress_event.h | |
parent | 6c38b34525413dd0f892444851522f681d4720a3 (diff) | |
download | chromium_src-609c9c9f4597a94e8eab49f675f088c05478f0fc.zip chromium_src-609c9c9f4597a94e8eab49f675f088c05478f0fc.tar.gz chromium_src-609c9c9f4597a94e8eab49f675f088c05478f0fc.tar.bz2 |
Pepper: Clean up ProgressEvent logic.
This simplifies NexeLoadManager, which is getting pretty big. This also removes
an unused field from ProgressEvent, and adds a convenience function for posting
a task to dispatch a progress event from the main thread, which is often
necessary to ensure that progress events are posted to the DOM after other
state changes.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=269362
R=dmichael@chromium.org
Review URL: https://codereview.chromium.org/270453004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269784 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/nacl/renderer/progress_event.h')
-rw-r--r-- | components/nacl/renderer/progress_event.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/components/nacl/renderer/progress_event.h b/components/nacl/renderer/progress_event.h new file mode 100644 index 0000000..53be606 --- /dev/null +++ b/components/nacl/renderer/progress_event.h @@ -0,0 +1,53 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_ +#define COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_ + +#include <string> + +#include "ppapi/c/pp_instance.h" +#include "ppapi/c/private/ppb_nacl_private.h" + +namespace nacl { + +// See http://www.w3.org/TR/progress-events/ for more details on progress +// events. +struct ProgressEvent { + explicit ProgressEvent(PP_NaClEventType event_type_param) + : event_type(event_type_param), + length_is_computable(false), + loaded_bytes(0), + total_bytes(0) { + } + + ProgressEvent(PP_NaClEventType event_type_param, + const std::string& resource_url_param, + bool length_is_computable_param, + uint64_t loaded_bytes_param, + uint64_t total_bytes_param) + : event_type(event_type_param), + resource_url(resource_url_param), + length_is_computable(length_is_computable_param), + loaded_bytes(loaded_bytes_param), + total_bytes(total_bytes_param) { + } + + PP_NaClEventType event_type; + std::string resource_url; + bool length_is_computable; + uint64_t loaded_bytes; + uint64_t total_bytes; +}; + +// Dispatches a progress event to the DOM frame corresponding to the specified +// plugin instance. +// This posts a task to the main thread to perform the actual dispatch, since +// it's usually intended for progress events to be dispatched after all other +// state changes are handled. +void DispatchProgressEvent(PP_Instance instance, const ProgressEvent& event); + +} // namespace nacl + +#endif // COMPONENTS_NACL_RENDERER_NEXE_PROGRESS_EVENT_H_ |