nsCOMPtr<nsISupports> container; aPresContext->GetContainer(getter_AddRefs(container)); if (container) { nsCOMPtr<nsIDocShell> cvc(do_QueryInterface(container)); if (cvc) { nsCOMPtr<nsIContentViewer> cv; cvc->GetContentViewer(getter_AddRefs(cv)); if (cv) cv->Show(); } }   mCXMenuListener = new nsPluginDOMContextMenuListener(); if (mCXMenuListener) { NS_ADDREF(mCXMenuListener); mCXMenuListener->Init(aFrame); }
nsresult nsPluginDOMContextMenuListener::Init(nsObjectFrame *aFrame){  nsCOMPtr<nsIContent> content;  aFrame->GetContent(getter_AddRefs(content));  // Register context menu listener  if (content) {    nsCOMPtr<nsIDOMEventReceiver> receiver(do_QueryInterface(content));    if (receiver) {      nsCOMPtr<nsIDOMContextMenuListener> cxMenuListener;      QueryInterface(NS_GET_IID(nsIDOMContextMenuListener), getter_AddRefs(cxMenuListener));      if (cxMenuListener) {        receiver->AddEventListener(NS_LITERAL_STRING("contextmenu"), cxMenuListener, PR_TRUE);        return NS_OK;      }    }  }  return NS_ERROR_NO_INTERFACE;}