Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes
nsPluginDocReframeEvent Struct Reference
Inheritance diagram for nsPluginDocReframeEvent:
Inheritance graph
Collaboration diagram for nsPluginDocReframeEvent:
Collaboration graph

List of all members.

Public Member Functions

 nsPluginDocReframeEvent (nsISupportsArray *aDocs)
nsresult HandlePluginDocReframeEvent ()

Public Attributes

nsCOMPtr< nsISupportsArraymDocs
PRCList link
PLHandleEventProc handler
PLDestroyEventProc destructor
PRBool handled

Detailed Description

Definition at line 305 of file nsPluginHostImpl.cpp.

Constructor & Destructor Documentation

Definition at line 306 of file nsPluginHostImpl.cpp.

{ mDocs = aDocs; }

Member Function Documentation

A reframe will cause a fresh object frame, instance owner, and instance to be created. Reframing of the entire document is necessary as we may have recently found new plugins and we want a shot at trying to use them instead of leaving alternate renderings. We do not want to completely reload all the documents that had running plugins because we could possibly trigger a script to run in the unload event handler which may want to access our defunct plugin and cause us to crash.

Definition at line 311 of file nsPluginHostImpl.cpp.


  PRUint32 c;

  // for each document (which previously had a running instance), tell
  // the frame constructor to rebuild
  for (PRUint32 i = 0; i < c; i++) {
    nsCOMPtr<nsIDocument> doc (do_QueryElementAt(mDocs, i));
    if (doc) {
      nsIPresShell *shell = doc->GetShellAt(0);

      // if this document has a presentation shell, then it has frames and can be reframed
      if (shell) {
        shell->ReconstructFrames(); // causes reframe of document
      } else {  // no pres shell --> full-page plugin

        NS_NOTREACHED("all plugins should have a pres shell!");


  return mDocs->Clear();

Here is the call graph for this function:

Member Data Documentation

PRCondVar * PLEvent::condVar [inherited]

Definition at line 514 of file nsIEventQueueService.idl.

Definition at line 510 of file nsIEventQueueService.idl.

PRBool PLEvent::handled [inherited]

Definition at line 515 of file nsIEventQueueService.idl.

Definition at line 509 of file nsIEventQueueService.idl.

PRCList PLEvent::link [inherited]

Definition at line 508 of file nsIEventQueueService.idl.

PRLock * PLEvent::lock [inherited]

Definition at line 513 of file nsIEventQueueService.idl.

Definition at line 308 of file nsPluginHostImpl.cpp.

void * PLEvent::owner [inherited]

Definition at line 511 of file nsIEventQueueService.idl.

Definition at line 512 of file nsIEventQueueService.idl.

The documentation for this struct was generated from the following file: