1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 : #ifndef PPluginModuleParent_h
7 : #define PPluginModuleParent_h
8 :
9 : #include "mozilla/plugins/PPluginModule.h"
10 : namespace mozilla {
11 : namespace plugins {
12 : class PPluginIdentifierParent;
13 : } // namespace plugins
14 : } // namespace mozilla
15 :
16 : namespace mozilla {
17 : namespace plugins {
18 : class PPluginInstanceParent;
19 : } // namespace plugins
20 : } // namespace mozilla
21 :
22 : namespace mozilla {
23 : namespace plugins {
24 : class PPluginScriptableObjectParent;
25 : } // namespace plugins
26 : } // namespace mozilla
27 :
28 : namespace mozilla {
29 : namespace dom {
30 : class PCrashReporterParent;
31 : } // namespace dom
32 : } // namespace mozilla
33 :
34 : #ifdef DEBUG
35 : #include "prenv.h"
36 : #endif // DEBUG
37 : #include "base/id_map.h"
38 : #include "mozilla/ipc/RPCChannel.h"
39 :
40 :
41 : namespace mozilla {
42 : namespace plugins {
43 : class PPluginInstanceParent;
44 : } // namespace plugins
45 : } // namespace mozilla
46 :
47 :
48 : namespace mozilla {
49 : namespace dom {
50 : class PCrashReporterParent;
51 : } // namespace dom
52 : } // namespace mozilla
53 :
54 :
55 : namespace mozilla {
56 : namespace plugins {
57 : class PPluginIdentifierParent;
58 : } // namespace plugins
59 : } // namespace mozilla
60 :
61 : namespace mozilla {
62 : namespace plugins {
63 :
64 :
65 : class /*NS_ABSTRACT_CLASS*/ PPluginModuleParent :
66 : protected mozilla::ipc::RPCChannel::RPCListener,
67 : protected mozilla::ipc::IProtocolManager<mozilla::ipc::RPCChannel::RPCListener>
68 : {
69 : friend class mozilla::plugins::PPluginInstanceParent;
70 :
71 : friend class mozilla::dom::PCrashReporterParent;
72 :
73 : friend class mozilla::plugins::PPluginIdentifierParent;
74 :
75 : protected:
76 : typedef mozilla::ipc::ActorHandle ActorHandle;
77 : typedef mozilla::ipc::Shmem Shmem;
78 : typedef base::FileDescriptor FileDescriptor;
79 : typedef mozilla::dom::NativeThreadId NativeThreadId;
80 : typedef mac_plugin_interposing::NSCursorInfo NSCursorInfo;
81 : typedef mozilla::plugins::PPluginIdentifierParent PPluginIdentifierParent;
82 : typedef mozilla::plugins::PPluginInstanceParent PPluginInstanceParent;
83 : typedef mozilla::plugins::PPluginScriptableObjectParent PPluginScriptableObjectParent;
84 : typedef mozilla::dom::PCrashReporterParent PCrashReporterParent;
85 : typedef base::ProcessId ProcessId;
86 : typedef mozilla::ipc::ProtocolId ProtocolId;
87 : typedef mozilla::ipc::Transport Transport;
88 : typedef mozilla::ipc::TransportDescriptor TransportDescriptor;
89 :
90 : typedef PPluginModule::State State;
91 :
92 : virtual bool
93 : RecvPPluginIdentifierConstructor(
94 : PPluginIdentifierParent* actor,
95 : const nsCString& aString,
96 : const int32_t& aInt,
97 : const bool& temporary);
98 : virtual bool
99 : RecvProcessNativeEventsInRPCCall() = 0;
100 : virtual bool
101 : RecvBackUpXResources(const FileDescriptor& aXSocketFd) = 0;
102 : virtual bool
103 : AnswerNPN_UserAgent(nsCString* userAgent) = 0;
104 : virtual bool
105 : AnswerNPN_GetValue_WithBoolReturn(
106 : const NPNVariable& aVariable,
107 : NPError* aError,
108 : bool* aBoolVal) = 0;
109 : virtual bool
110 : AnswerProcessSomeEvents() = 0;
111 : virtual bool
112 : RecvPluginShowWindow(
113 : const uint32_t& aWindowId,
114 : const bool& aModal,
115 : const int32_t& aX,
116 : const int32_t& aY,
117 : const size_t& aWidth,
118 : const size_t& aHeight) = 0;
119 : virtual bool
120 : RecvPluginHideWindow(const uint32_t& aWindowId) = 0;
121 : virtual bool
122 : RecvSetCursor(const NSCursorInfo& cursorInfo) = 0;
123 : virtual bool
124 : RecvShowCursor(const bool& show) = 0;
125 : virtual bool
126 : RecvPushCursor(const NSCursorInfo& cursorInfo) = 0;
127 : virtual bool
128 : RecvPopCursor() = 0;
129 : virtual bool
130 : RecvGetNativeCursorsSupported(bool* supported) = 0;
131 : virtual bool
132 : RecvNPN_SetException(
133 : PPluginScriptableObjectParent* actor,
134 : const nsCString& message) = 0;
135 : virtual bool
136 : RecvNPN_ReloadPlugins(const bool& aReloadPages) = 0;
137 : virtual PPluginIdentifierParent*
138 : AllocPPluginIdentifier(
139 : const nsCString& aString,
140 : const int32_t& aInt,
141 : const bool& temporary) = 0;
142 : virtual bool
143 : DeallocPPluginIdentifier(PPluginIdentifierParent* actor) = 0;
144 : virtual PPluginInstanceParent*
145 : AllocPPluginInstance(
146 : const nsCString& aMimeType,
147 : const uint16_t& aMode,
148 : const InfallibleTArray<nsCString>& aNames,
149 : const InfallibleTArray<nsCString>& aValues,
150 : NPError* rv) = 0;
151 : virtual bool
152 : DeallocPPluginInstance(PPluginInstanceParent* actor) = 0;
153 : virtual PCrashReporterParent*
154 : AllocPCrashReporter(
155 : NativeThreadId* tid,
156 : PRUint32* processType) = 0;
157 : virtual bool
158 : DeallocPCrashReporter(PCrashReporterParent* actor) = 0;
159 :
160 : virtual void
161 : ActorDestroy(ActorDestroyReason why);
162 :
163 : virtual void
164 : ProcessingError(Result code);
165 : virtual bool
166 : ShouldContinueFromReplyTimeout();
167 : virtual void
168 : EnteredCxxStack();
169 : virtual void
170 : ExitedCxxStack();
171 : virtual void
172 : EnteredCall();
173 : virtual void
174 : ExitedCall();
175 :
176 : public:
177 : typedef IPC::Message Message;
178 : typedef mozilla::ipc::RPCChannel Channel;
179 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
180 : typedef base::ProcessHandle ProcessHandle;
181 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
182 : typedef mozilla::ipc::SharedMemory SharedMemory;
183 : typedef mozilla::ipc::Trigger Trigger;
184 :
185 : public:
186 : PPluginModuleParent();
187 :
188 : virtual ~PPluginModuleParent();
189 :
190 : bool
191 : Open(
192 : Channel::Transport* aTransport,
193 : ProcessHandle aOtherProcess,
194 : MessageLoop* aThread = 0,
195 : AsyncChannel::Side aSide = Channel::Unknown);
196 :
197 : bool
198 : Open(
199 : AsyncChannel* aChannel,
200 : MessageLoop* aMessageLoop,
201 : AsyncChannel::Side aSide = Channel::Unknown);
202 :
203 : void
204 : Close();
205 :
206 : void
207 : SetReplyTimeoutMs(int32 aTimeoutMs);
208 :
209 : void
210 : ManagedPPluginInstanceParent(InfallibleTArray<PPluginInstanceParent*>& aArr) const;
211 : const InfallibleTArray<PPluginInstanceParent*>&
212 : ManagedPPluginInstanceParent() const;
213 :
214 : void
215 : ManagedPPluginIdentifierParent(InfallibleTArray<PPluginIdentifierParent*>& aArr) const;
216 : const InfallibleTArray<PPluginIdentifierParent*>&
217 : ManagedPPluginIdentifierParent() const;
218 :
219 : void
220 : ManagedPCrashReporterParent(InfallibleTArray<PCrashReporterParent*>& aArr) const;
221 : const InfallibleTArray<PCrashReporterParent*>&
222 : ManagedPCrashReporterParent() const;
223 :
224 : PPluginModule::State
225 : state();
226 :
227 : PPluginIdentifierParent*
228 : SendPPluginIdentifierConstructor(
229 : const nsCString& aString,
230 : const int32_t& aInt,
231 : const bool& temporary) NS_WARN_UNUSED_RESULT;
232 :
233 : PPluginIdentifierParent*
234 : SendPPluginIdentifierConstructor(
235 : PPluginIdentifierParent* actor,
236 : const nsCString& aString,
237 : const int32_t& aInt,
238 : const bool& temporary) NS_WARN_UNUSED_RESULT;
239 :
240 : bool
241 : SendProcessNativeEventsInRPCCall() NS_WARN_UNUSED_RESULT;
242 :
243 : bool
244 : CallNP_GetEntryPoints(NPError* rv) NS_WARN_UNUSED_RESULT;
245 :
246 : bool
247 : CallNP_Initialize(
248 : const uint32_t& aFlags,
249 : NPError* rv) NS_WARN_UNUSED_RESULT;
250 :
251 : PPluginInstanceParent*
252 : CallPPluginInstanceConstructor(
253 : const nsCString& aMimeType,
254 : const uint16_t& aMode,
255 : const InfallibleTArray<nsCString>& aNames,
256 : const InfallibleTArray<nsCString>& aValues,
257 : NPError* rv) NS_WARN_UNUSED_RESULT;
258 :
259 : PPluginInstanceParent*
260 : CallPPluginInstanceConstructor(
261 : PPluginInstanceParent* actor,
262 : const nsCString& aMimeType,
263 : const uint16_t& aMode,
264 : const InfallibleTArray<nsCString>& aNames,
265 : const InfallibleTArray<nsCString>& aValues,
266 : NPError* rv) NS_WARN_UNUSED_RESULT;
267 :
268 : bool
269 : CallNP_Shutdown(NPError* rv) NS_WARN_UNUSED_RESULT;
270 :
271 : bool
272 : CallOptionalFunctionsSupported(
273 : bool* aURLRedirectNotify,
274 : bool* aClearSiteData,
275 : bool* aGetSitesWithData) NS_WARN_UNUSED_RESULT;
276 :
277 : bool
278 : CallNPP_ClearSiteData(
279 : const nsCString& site,
280 : const uint64_t& flags,
281 : const uint64_t& maxAge,
282 : NPError* rv) NS_WARN_UNUSED_RESULT;
283 :
284 : bool
285 : CallNPP_GetSitesWithData(InfallibleTArray<nsCString>* sites) NS_WARN_UNUSED_RESULT;
286 :
287 : bool
288 : SendSetAudioSessionData(
289 : const nsID& aID,
290 : const nsString& aDisplayName,
291 : const nsString& aIconPath) NS_WARN_UNUSED_RESULT;
292 :
293 : bool
294 : SendSetParentHangTimeout(const uint32_t& seconds) NS_WARN_UNUSED_RESULT;
295 :
296 : PCrashReporterParent*
297 : CallPCrashReporterConstructor(
298 : NativeThreadId* tid,
299 : PRUint32* processType) NS_WARN_UNUSED_RESULT;
300 :
301 : PCrashReporterParent*
302 : CallPCrashReporterConstructor(
303 : PCrashReporterParent* actor,
304 : NativeThreadId* tid,
305 : PRUint32* processType) NS_WARN_UNUSED_RESULT;
306 :
307 : virtual int32
308 : Register(ChannelListener* aRouted);
309 : virtual int32
310 : RegisterID(
311 : ChannelListener* aRouted,
312 : int32 aId);
313 : virtual ChannelListener*
314 : Lookup(int32 aId);
315 : virtual void
316 : Unregister(int32 aId);
317 : virtual void
318 : RemoveManagee(
319 : int32 aProtocolId,
320 : ChannelListener* aListener);
321 : virtual Shmem::SharedMemory*
322 : CreateSharedMemory(
323 : size_t aSize,
324 : Shmem::SharedMemory::SharedMemoryType type,
325 : bool unsafe,
326 : Shmem::id_t* aId);
327 : virtual bool
328 : AdoptSharedMemory(
329 : Shmem::SharedMemory* segment,
330 : Shmem::id_t* aId);
331 : virtual Shmem::SharedMemory*
332 : LookupSharedMemory(Shmem::id_t aId);
333 : virtual bool
334 : IsTrackingSharedMemory(Shmem::SharedMemory* segment);
335 : virtual bool
336 : DestroySharedMemory(Shmem& aShmem);
337 : virtual ProcessHandle
338 : OtherProcess() const;
339 : virtual AsyncChannel*
340 : GetIPCChannel();
341 :
342 : virtual Result
343 : OnMessageReceived(const Message& __msg);
344 :
345 : virtual Result
346 : OnMessageReceived(
347 : const Message& __msg,
348 : Message*& __reply);
349 :
350 : virtual Result
351 : OnCallReceived(
352 : const Message& __msg,
353 : Message*& __reply);
354 :
355 : void
356 : OnProcessingError(Result code);
357 :
358 : bool
359 : OnReplyTimeout();
360 :
361 : void
362 : OnEnteredCxxStack();
363 : void
364 : OnExitedCxxStack();
365 : void
366 : OnEnteredCall();
367 : void
368 : OnExitedCall();
369 : bool
370 : IsOnCxxStack() const;
371 : void
372 : FlushPendingRPCQueue();
373 :
374 : void
375 : OnChannelClose();
376 :
377 : void
378 : OnChannelError();
379 :
380 : void
381 : OnChannelConnected(int32 pid);
382 :
383 : // Methods for managing shmem
384 : bool
385 : AllocShmem(
386 : size_t aSize,
387 : Shmem::SharedMemory::SharedMemoryType aType,
388 : Shmem* aMem);
389 :
390 : bool
391 : AllocUnsafeShmem(
392 : size_t aSize,
393 : Shmem::SharedMemory::SharedMemoryType aType,
394 : Shmem* aMem);
395 :
396 : bool
397 : AdoptShmem(
398 : Shmem& aMem,
399 : Shmem* aOutMem);
400 :
401 : bool
402 : DeallocShmem(Shmem& aMem);
403 :
404 : void
405 : ProcessNativeEventsInRPCCall();
406 :
407 : void
408 : SetOtherProcess(ProcessHandle aOtherProcess);
409 :
410 : protected:
411 : base::ProcessId
412 : OtherSidePID() const;
413 :
414 : bool
415 : TakeMinidump(nsILocalFile** aDump) const;
416 :
417 : bool
418 : BlockChild();
419 : bool
420 : UnblockChild();
421 :
422 : private:
423 : virtual void
424 : FatalError(const char* const msg) const;
425 :
426 : void
427 : DestroySubtree(ActorDestroyReason why);
428 :
429 : void
430 : DeallocSubtree();
431 :
432 : void
433 : DeallocShmems();
434 :
435 : template<typename T>
436 : void
437 0 : Write(
438 : const T& __v,
439 : Message* __msg)
440 : {
441 0 : IPC::WriteParam(__msg, __v);
442 0 : }
443 :
444 : template<typename T>
445 : bool
446 0 : Read(
447 : T* __v,
448 : const Message* __msg,
449 : void** __iter)
450 : {
451 0 : return IPC::ReadParam(__msg, __iter, __v);
452 : }
453 :
454 : void
455 : Write(
456 : PPluginScriptableObjectParent* __v,
457 : Message* __msg,
458 : bool __nullable);
459 :
460 : bool
461 : Read(
462 : PPluginScriptableObjectParent** __v,
463 : const Message* __msg,
464 : void** __iter,
465 : bool __nullable) NS_WARN_UNUSED_RESULT;
466 :
467 : void
468 : Write(
469 : PPluginInstanceParent* __v,
470 : Message* __msg,
471 : bool __nullable);
472 :
473 : bool
474 : Read(
475 : PPluginInstanceParent** __v,
476 : const Message* __msg,
477 : void** __iter,
478 : bool __nullable) NS_WARN_UNUSED_RESULT;
479 :
480 : void
481 : Write(
482 : PCrashReporterParent* __v,
483 : Message* __msg,
484 : bool __nullable);
485 :
486 : bool
487 : Read(
488 : PCrashReporterParent** __v,
489 : const Message* __msg,
490 : void** __iter,
491 : bool __nullable) NS_WARN_UNUSED_RESULT;
492 :
493 : void
494 : Write(
495 : PPluginIdentifierParent* __v,
496 : Message* __msg,
497 : bool __nullable);
498 :
499 : bool
500 : Read(
501 : PPluginIdentifierParent** __v,
502 : const Message* __msg,
503 : void** __iter,
504 : bool __nullable) NS_WARN_UNUSED_RESULT;
505 :
506 : Channel mChannel;
507 : IDMap<ChannelListener> mActorMap;
508 : int32 mLastRouteId;
509 : ProcessHandle mOtherProcess;
510 : IDMap<Shmem::SharedMemory> mShmemMap;
511 : Shmem::id_t mLastShmemId;
512 : State mState;
513 : // Sorted by pointer value
514 : InfallibleTArray<PPluginInstanceParent*> mManagedPPluginInstanceParent;
515 : // Sorted by pointer value
516 : InfallibleTArray<PPluginIdentifierParent*> mManagedPPluginIdentifierParent;
517 : // Sorted by pointer value
518 : InfallibleTArray<PCrashReporterParent*> mManagedPCrashReporterParent;
519 : };
520 :
521 :
522 : } // namespace plugins
523 : } // namespace mozilla
524 :
525 : #if 0
526 :
527 : //-----------------------------------------------------------------------------
528 : // Skeleton implementation of abstract actor class
529 :
530 : // Header file contents
531 : namespace mozilla {
532 : namespace plugins {
533 : class PluginModuleParent :
534 : public PPluginModuleParent
535 : {
536 : virtual bool
537 : RecvProcessNativeEventsInRPCCall();
538 :
539 : virtual bool
540 : RecvBackUpXResources(const FileDescriptor& aXSocketFd);
541 :
542 : virtual bool
543 : AnswerNPN_UserAgent(nsCString* userAgent);
544 :
545 : virtual bool
546 : AnswerNPN_GetValue_WithBoolReturn(
547 : const NPNVariable& aVariable,
548 : NPError* aError,
549 : bool* aBoolVal);
550 :
551 : virtual bool
552 : AnswerProcessSomeEvents();
553 :
554 : virtual bool
555 : RecvPluginShowWindow(
556 : const uint32_t& aWindowId,
557 : const bool& aModal,
558 : const int32_t& aX,
559 : const int32_t& aY,
560 : const size_t& aWidth,
561 : const size_t& aHeight);
562 :
563 : virtual bool
564 : RecvPluginHideWindow(const uint32_t& aWindowId);
565 :
566 : virtual bool
567 : RecvSetCursor(const NSCursorInfo& cursorInfo);
568 :
569 : virtual bool
570 : RecvShowCursor(const bool& show);
571 :
572 : virtual bool
573 : RecvPushCursor(const NSCursorInfo& cursorInfo);
574 :
575 : virtual bool
576 : RecvPopCursor();
577 :
578 : virtual bool
579 : RecvGetNativeCursorsSupported(bool* supported);
580 :
581 : virtual bool
582 : RecvNPN_SetException(
583 : PPluginScriptableObjectParent* actor,
584 : const nsCString& message);
585 :
586 : virtual bool
587 : RecvNPN_ReloadPlugins(const bool& aReloadPages);
588 :
589 : virtual PPluginIdentifierParent*
590 : AllocPPluginIdentifier(
591 : const nsCString& aString,
592 : const int32_t& aInt,
593 : const bool& temporary);
594 :
595 : virtual bool
596 : DeallocPPluginIdentifier(PPluginIdentifierParent* actor);
597 :
598 : virtual PPluginInstanceParent*
599 : AllocPPluginInstance(
600 : const nsCString& aMimeType,
601 : const uint16_t& aMode,
602 : const InfallibleTArray<nsCString>& aNames,
603 : const InfallibleTArray<nsCString>& aValues,
604 : NPError* rv);
605 :
606 : virtual bool
607 : DeallocPPluginInstance(PPluginInstanceParent* actor);
608 :
609 : virtual PCrashReporterParent*
610 : AllocPCrashReporter(
611 : NativeThreadId* tid,
612 : PRUint32* processType);
613 :
614 : virtual bool
615 : DeallocPCrashReporter(PCrashReporterParent* actor);
616 :
617 : PluginModuleParent();
618 : virtual ~PluginModuleParent();
619 : };
620 : } // namespace plugins
621 : } // namespace mozilla
622 :
623 :
624 : // C++ file contents
625 : namespace mozilla {
626 : namespace plugins {
627 : bool
628 : PluginModuleParent::RecvProcessNativeEventsInRPCCall()
629 : {
630 : return false;
631 : }
632 :
633 : bool
634 : PluginModuleParent::RecvBackUpXResources(const FileDescriptor& aXSocketFd)
635 : {
636 : return false;
637 : }
638 :
639 : bool
640 : PluginModuleParent::AnswerNPN_UserAgent(nsCString* userAgent)
641 : {
642 : return false;
643 : }
644 :
645 : bool
646 : PluginModuleParent::AnswerNPN_GetValue_WithBoolReturn(
647 : const NPNVariable& aVariable,
648 : NPError* aError,
649 : bool* aBoolVal)
650 : {
651 : return false;
652 : }
653 :
654 : bool
655 : PluginModuleParent::AnswerProcessSomeEvents()
656 : {
657 : return false;
658 : }
659 :
660 : bool
661 : PluginModuleParent::RecvPluginShowWindow(
662 : const uint32_t& aWindowId,
663 : const bool& aModal,
664 : const int32_t& aX,
665 : const int32_t& aY,
666 : const size_t& aWidth,
667 : const size_t& aHeight)
668 : {
669 : return false;
670 : }
671 :
672 : bool
673 : PluginModuleParent::RecvPluginHideWindow(const uint32_t& aWindowId)
674 : {
675 : return false;
676 : }
677 :
678 : bool
679 : PluginModuleParent::RecvSetCursor(const NSCursorInfo& cursorInfo)
680 : {
681 : return false;
682 : }
683 :
684 : bool
685 : PluginModuleParent::RecvShowCursor(const bool& show)
686 : {
687 : return false;
688 : }
689 :
690 : bool
691 : PluginModuleParent::RecvPushCursor(const NSCursorInfo& cursorInfo)
692 : {
693 : return false;
694 : }
695 :
696 : bool
697 : PluginModuleParent::RecvPopCursor()
698 : {
699 : return false;
700 : }
701 :
702 : bool
703 : PluginModuleParent::RecvGetNativeCursorsSupported(bool* supported)
704 : {
705 : return false;
706 : }
707 :
708 : bool
709 : PluginModuleParent::RecvNPN_SetException(
710 : PPluginScriptableObjectParent* actor,
711 : const nsCString& message)
712 : {
713 : return false;
714 : }
715 :
716 : bool
717 : PluginModuleParent::RecvNPN_ReloadPlugins(const bool& aReloadPages)
718 : {
719 : return false;
720 : }
721 :
722 : PPluginIdentifierParent*
723 : PluginModuleParent::AllocPPluginIdentifier(
724 : const nsCString& aString,
725 : const int32_t& aInt,
726 : const bool& temporary)
727 : {
728 : return 0;
729 : }
730 :
731 : bool
732 : PluginModuleParent::DeallocPPluginIdentifier(PPluginIdentifierParent* actor)
733 : {
734 : return false;
735 : }
736 :
737 : PPluginInstanceParent*
738 : PluginModuleParent::AllocPPluginInstance(
739 : const nsCString& aMimeType,
740 : const uint16_t& aMode,
741 : const InfallibleTArray<nsCString>& aNames,
742 : const InfallibleTArray<nsCString>& aValues,
743 : NPError* rv)
744 : {
745 : return 0;
746 : }
747 :
748 : bool
749 : PluginModuleParent::DeallocPPluginInstance(PPluginInstanceParent* actor)
750 : {
751 : return false;
752 : }
753 :
754 : PCrashReporterParent*
755 : PluginModuleParent::AllocPCrashReporter(
756 : NativeThreadId* tid,
757 : PRUint32* processType)
758 : {
759 : return 0;
760 : }
761 :
762 : bool
763 : PluginModuleParent::DeallocPCrashReporter(PCrashReporterParent* actor)
764 : {
765 : return false;
766 : }
767 :
768 : PluginModuleParent::PluginModuleParent()
769 : {
770 : MOZ_COUNT_CTOR(PluginModuleParent);
771 : }
772 :
773 : PluginModuleParent::~PluginModuleParent()
774 : {
775 : MOZ_COUNT_DTOR(PluginModuleParent);
776 : }
777 :
778 : } // namespace plugins
779 : } // namespace mozilla
780 : #endif // if 0
781 :
782 : #endif // ifndef PPluginModuleParent_h
|