summaryrefslogtreecommitdiffstats
path: root/components/nacl/renderer/progress_event.h
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-12 15:30:40 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-12 15:30:40 +0000
commit609c9c9f4597a94e8eab49f675f088c05478f0fc (patch)
treee947334ad5d249e7763b378ba7e27d5d97a35c03 /components/nacl/renderer/progress_event.h
parent6c38b34525413dd0f892444851522f681d4720a3 (diff)
downloadchromium_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.h53
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_