Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1367)

Unified Diff: webkit/glue/plugins/test/plugin_schedule_timer_test.h

Issue 329013: Implemented NPN_ScheduleTimer and NPN_UnscheduleTimer. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/glue/plugins/test/plugin_client.cc ('k') | webkit/glue/plugins/test/plugin_schedule_timer_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/plugins/test/plugin_schedule_timer_test.h
===================================================================
--- webkit/glue/plugins/test/plugin_schedule_timer_test.h (revision 0)
+++ webkit/glue/plugins/test/plugin_schedule_timer_test.h (revision 0)
@@ -0,0 +1,70 @@
+// Copyright (c) 2006-2008 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 WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H
+#define WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H
+
+#include <vector>
+
+#include "base/at_exit.h"
+#include "base/time.h"
+#include "webkit/glue/plugins/test/plugin_test.h"
+
+namespace NPAPIClient {
+
+// This class tests scheduling and unscheduling of timers using
+// NPN_ScheduleTimer and NPN_UnscheduleTimer.
+class ScheduleTimerTest : public PluginTest {
+ public:
+ ScheduleTimerTest(NPP id, NPNetscapeFuncs *host_functions);
+
+ virtual NPError New(uint16 mode, int16 argc, const char* argn[],
+ const char* argv[], NPSavedData* saved);
+
+ void OnTimer(uint32 timer_id);
+
+ private:
+ // base::Time needs one of these.
+ base::AtExitManager at_exit_manager_;
+
+ // Table mapping timer index (as used in event schedule) to timer id.
+ static const int kNumTimers = 3;
+ uint32 timer_ids_[kNumTimers];
+
+ // Schedule of events for test.
+ static const int kNumEvents = 11;
+ struct Event {
+ int time;
+
+ // The index of the timer that triggered the event or -1 for the first
+ // event.
+ int received_index;
+
+ // The index of the timer to schedule on this event or -1.
+ int scheduled_index;
+
+ // Info about the timer to be scheduled (if any).
+ uint32 scheduled_interval;
+ bool schedule_repeated;
+
+ // The index of the timer to unschedule on this event or -1.
+ int unscheduled_index;
+ };
+ static Event schedule_[kNumEvents];
+ int num_received_events_;
+
+ // Set of events that have been received (by index).
+ bool received_events_[kNumEvents];
+
+ // Time of initial event.
+ base::Time start_time_;
+
+ // Returns index of matching unreceived event or -1 if not found.
+ int FindUnreceivedEvent(int time, uint32 timer_id);
+ void HandleEvent(int event_index);
+};
+
+} // namespace NPAPIClient
+
+#endif // WEBKIT_GLUE_PLUGINS_TEST_PLUGIN_SCHEDULE_TIMER_TEST_H
« no previous file with comments | « webkit/glue/plugins/test/plugin_client.cc ('k') | webkit/glue/plugins/test/plugin_schedule_timer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698