Diff for /chimera/NSBrowserView.mm between versions 1.27 and 1.33

version 1.27, 2002/03/15 16:18:34 version 1.33, 2002/04/14 08:43:03
Line 79 Line 79
 #include "nsIHistoryEntry.h"  #include "nsIHistoryEntry.h"
 #include "nsISHEntry.h"  #include "nsISHEntry.h"
 #include "nsNetUtil.h"  #include "nsNetUtil.h"
   #include "nsIContextMenuListener.h"
   
 // Cut/copy/paste  // Cut/copy/paste
 #include "nsIClipboardCommands.h"  #include "nsIClipboardCommands.h"
Line 89  const char* dirServiceContractID = "@moz Line 90  const char* dirServiceContractID = "@moz
   
 class nsCocoaBrowserListener : public nsSupportsWeakReference,  class nsCocoaBrowserListener : public nsSupportsWeakReference,
                                public nsIInterfaceRequestor,                                 public nsIInterfaceRequestor,
                                           public nsIWebBrowserChrome,                                                 public nsIWebBrowserChrome,
                                public nsIWindowCreator,                                 public nsIWindowCreator,
                                           public nsIEmbeddingSiteWindow,                                                 public nsIEmbeddingSiteWindow,
                               public nsIWebProgressListener                               public nsIWebProgressListener,
                                public nsIContextMenuListener
 {  {
 public:  public:
   nsCocoaBrowserListener(NSBrowserView* aView);    nsCocoaBrowserListener(NSBrowserView* aView);
Line 104  public: Line 106  public:
   NS_DECL_NSIWINDOWCREATOR    NS_DECL_NSIWINDOWCREATOR
   NS_DECL_NSIEMBEDDINGSITEWINDOW    NS_DECL_NSIEMBEDDINGSITEWINDOW
   NS_DECL_NSIWEBPROGRESSLISTENER    NS_DECL_NSIWEBPROGRESSLISTENER
  NS_DECL_NSICONTEXTMENULISTENER
     
   void AddListener(id <NSBrowserListener> aListener);    void AddListener(id <NSBrowserListener> aListener);
   void RemoveListener(id <NSBrowserListener> aListener);    void RemoveListener(id <NSBrowserListener> aListener);
   void SetContainer(id <NSBrowserContainer> aContainer);    void SetContainer(id <NSBrowserContainer> aContainer);
Line 133  nsCocoaBrowserListener::~nsCocoaBrowserL Line 136  nsCocoaBrowserListener::~nsCocoaBrowserL
   }    }
 }  }
   
NS_IMPL_ISUPPORTS6(nsCocoaBrowserListener,NS_IMPL_ISUPPORTS7(nsCocoaBrowserListener,
                   nsIInterfaceRequestor,                               nsIInterfaceRequestor,
                   nsIWebBrowserChrome,                               nsIWebBrowserChrome,
           nsIWindowCreator,                   nsIWindowCreator,
                   nsIEmbeddingSiteWindow,                               nsIEmbeddingSiteWindow,
                   nsIWebProgressListener,                               nsIWebProgressListener,
           nsISupportsWeakReference)                   nsISupportsWeakReference,
                    nsIContextMenuListener)
   
 // Implementation of nsIInterfaceRequestor  // Implementation of nsIInterfaceRequestor
 NS_IMETHODIMP   NS_IMETHODIMP 
Line 186  nsCocoaBrowserListener::CreateChromeWind Line 190  nsCocoaBrowserListener::CreateChromeWind
   return NS_OK;    return NS_OK;
 }  }
   
   // Implementation of nsIContextMenuListener
   NS_IMETHODIMP
   nsCocoaBrowserListener::OnShowContextMenu(PRUint32 aContextFlags, nsIDOMEvent* aEvent, nsIDOMNode* aNode)
   {
     [mContainer onShowContextMenu: aContextFlags domEvent: aEvent domNode: aNode];
     return NS_OK;
   }
   
 // Implementation of nsIWebBrowserChrome  // Implementation of nsIWebBrowserChrome
 /* void setStatus (in unsigned long statusType, in wstring status); */  /* void setStatus (in unsigned long statusType, in wstring status); */
 NS_IMETHODIMP   NS_IMETHODIMP 
Line 647  class nsHeaderSniffer :  public nsIWebPr Line 659  class nsHeaderSniffer :  public nsIWebPr
 {  {
 public:  public:
     nsHeaderSniffer(nsIWebBrowserPersist* aPersist, nsIFile* aFile, nsIURI* aURL,      nsHeaderSniffer(nsIWebBrowserPersist* aPersist, nsIFile* aFile, nsIURI* aURL,
                    nsIDOMDocument* aDocument, nsIInputStream* aPostData, PRBool aBypassCache,                    nsIDOMDocument* aDocument, nsIInputStream* aPostData,
                     const nsCString& aSuggestedFilename, PRBool aBypassCache,
                     NSView* aFilterView, NSPopUpButton* aFilterList)                      NSView* aFilterView, NSPopUpButton* aFilterList)
     {      {
         NS_INIT_REFCNT();          NS_INIT_REFCNT();
Line 656  public: Line 669  public:
         mURL = aURL;          mURL = aURL;
         mDocument = aDocument;          mDocument = aDocument;
         mPostData = aPostData;          mPostData = aPostData;
           mDefaultFilename = aSuggestedFilename;
         mBypassCache = aBypassCache;          mBypassCache = aBypassCache;
         mFilterView = aFilterView;          mFilterView = aFilterView;
         mFilterList = aFilterList;          mFilterList = aFilterList;
Line 677  private: Line 691  private:
     nsCOMPtr<nsIURI> mURL;      nsCOMPtr<nsIURI> mURL;
     nsCOMPtr<nsIDOMDocument> mDocument;      nsCOMPtr<nsIDOMDocument> mDocument;
     nsCOMPtr<nsIInputStream> mPostData;      nsCOMPtr<nsIInputStream> mPostData;
       nsCString mDefaultFilename;
     PRBool mBypassCache;      PRBool mBypassCache;
     nsCString mContentType;      nsCString mContentType;
     nsCString mContentDisposition;      nsCString mContentDisposition;
Line 696  nsHeaderSniffer::OnStateChange(nsIWebPro Line 711  nsHeaderSniffer::OnStateChange(nsIWebPro
 {  {
     if (aStateFlags & nsIWebProgressListener::STATE_START) {      if (aStateFlags & nsIWebProgressListener::STATE_START) {
         nsCOMPtr<nsIChannel> channel(do_QueryInterface(aRequest));          nsCOMPtr<nsIChannel> channel(do_QueryInterface(aRequest));
        nsXPIDLCString contentType;        channel->GetContentType(mContentType);
        channel->GetContentType(getter_Copies(contentType));       
        mContentType = contentType; 
         
         // Get the content-disposition if we're an HTTP channel.          // Get the content-disposition if we're an HTTP channel.
         nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));          nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
        if (httpChannel) {        if (httpChannel)
            nsXPIDLCString disp;            httpChannel->GetResponseHeader(nsCAutoString("content-disposition"), mContentDisposition);
            httpChannel->GetResponseHeader("content-disposition", getter_Copies(disp)); 
            mContentDisposition = disp; 
        } 
                   
         mPersist->CancelSave();          mPersist->CancelSave();
         PRBool exists;          PRBool exists;
Line 744  void nsHeaderSniffer::PerformSave() Line 754  void nsHeaderSniffer::PerformSave()
                   
     // We need to figure out what file name to use.      // We need to figure out what file name to use.
     nsCAutoString defaultFileName;      nsCAutoString defaultFileName;
       
     if (!mContentDisposition.IsEmpty()) {      if (!mContentDisposition.IsEmpty()) {
         // (1) Use the HTTP header suggestion.          // (1) Use the HTTP header suggestion.
         PRInt32 index = mContentDisposition.Find("filename=");          PRInt32 index = mContentDisposition.Find("filename=");
Line 772  void nsHeaderSniffer::PerformSave() Line 781  void nsHeaderSniffer::PerformSave()
     }      }
           
     if (defaultFileName.IsEmpty()) {      if (defaultFileName.IsEmpty()) {
        // (4) Use the caller provided name. XXXdwh        // (4) Use the caller provided name.
         defaultFileName = mDefaultFilename;
     }      }
   
     if (defaultFileName.IsEmpty())      if (defaultFileName.IsEmpty())
Line 1160  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1170  nsHeaderSniffer::OnSecurityChange(nsIWeb
   
 -(void) saveInternal: (nsIURI*)aURI  -(void) saveInternal: (nsIURI*)aURI
         withDocument: (nsIDOMDocument*)aDocument          withDocument: (nsIDOMDocument*)aDocument
           suggestedFilename: (const char*)aFilename
         bypassCache: (BOOL)aBypassCache          bypassCache: (BOOL)aBypassCache
         filterView: (NSView*)aFilterView          filterView: (NSView*)aFilterView
         filterList: (NSPopUpButton*)aFilterList          filterList: (NSPopUpButton*)aFilterList
Line 1185  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1196  nsHeaderSniffer::OnSecurityChange(nsIWeb
     tmpFile->Append(saveFile.get());       tmpFile->Append(saveFile.get()); 
           
     // Get the post data if we're an HTML doc.      // Get the post data if we're an HTML doc.
     nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(_webBrowser));  
     nsCOMPtr<nsISHistory> sessionHistory;  
     webNav->GetSessionHistory(getter_AddRefs(sessionHistory));  
     nsCOMPtr<nsIHistoryEntry> entry;  
     PRInt32 sindex;  
     sessionHistory->GetIndex(&sindex);  
     sessionHistory->GetEntryAtIndex(sindex, PR_FALSE, getter_AddRefs(entry));  
     nsCOMPtr<nsISHEntry> shEntry(do_QueryInterface(entry));  
     nsCOMPtr<nsIInputStream> postData;      nsCOMPtr<nsIInputStream> postData;
    if (shEntry)    if (aDocument) {
        shEntry->GetPostData(getter_AddRefs(postData));      nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(_webBrowser));
          nsCOMPtr<nsISHistory> sessionHistory;
       webNav->GetSessionHistory(getter_AddRefs(sessionHistory));
       nsCOMPtr<nsIHistoryEntry> entry;
       PRInt32 sindex;
       sessionHistory->GetIndex(&sindex);
       sessionHistory->GetEntryAtIndex(sindex, PR_FALSE, getter_AddRefs(entry));
       nsCOMPtr<nsISHEntry> shEntry(do_QueryInterface(entry));
       if (shEntry)
           shEntry->GetPostData(getter_AddRefs(postData));
     }
 
     nsCAutoString fileName(aFilename);
     nsHeaderSniffer* sniffer = new nsHeaderSniffer(webPersist, tmpFile, aURI,       nsHeaderSniffer* sniffer = new nsHeaderSniffer(webPersist, tmpFile, aURI, 
                                                   aDocument, postData, aBypassCache,                                                   aDocument, postData, fileName, aBypassCache,
                                                    aFilterView, aFilterList);                                                     aFilterView, aFilterList);
     if (!sniffer)      if (!sniffer)
         return;          return;
Line 1216  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1230  nsHeaderSniffer::OnSecurityChange(nsIWeb
     print->Print(nsnull, nsnull);      print->Print(nsnull, nsnull);
 }  }
   
-(void)findInPage-(BOOL)findInPage:(NSString*)inText
 {  {
    FindDlgController* findDialog = [[FindDlgController alloc] initWithWindowNibName: @"FindDialog"];    PRBool found =  PR_FALSE;
     
     nsCOMPtr<nsIWebBrowserFocus> wbf(do_QueryInterface(_webBrowser));      nsCOMPtr<nsIWebBrowserFocus> wbf(do_QueryInterface(_webBrowser));
     nsCOMPtr<nsIDOMWindow> rootWindow;      nsCOMPtr<nsIDOMWindow> rootWindow;
     nsCOMPtr<nsIDOMWindow> focusedWindow;      nsCOMPtr<nsIDOMWindow> focusedWindow;
Line 1227  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1242  nsHeaderSniffer::OnSecurityChange(nsIWeb
     if (!focusedWindow)      if (!focusedWindow)
         focusedWindow = rootWindow;          focusedWindow = rootWindow;
     nsCOMPtr<nsIWebBrowserFind> webFind(do_GetInterface(_webBrowser));      nsCOMPtr<nsIWebBrowserFind> webFind(do_GetInterface(_webBrowser));
    nsCOMPtr<nsIWebBrowserFindInFrames> framesFind(do_QueryInterface(webFind));    if ( webFind ) {
    framesFind->SetRootSearchFrame(rootWindow);      nsCOMPtr<nsIWebBrowserFindInFrames> framesFind(do_QueryInterface(webFind));
    framesFind->SetCurrentSearchFrame(focusedWindow);      framesFind->SetRootSearchFrame(rootWindow);
          framesFind->SetCurrentSearchFrame(focusedWindow);
    [findDialog setFind: webFind];      
    [findDialog showWindow: findDialog];      PRUnichar* text = (PRUnichar*)nsMemory::Alloc(([inText length]+1)*sizeof(PRUnichar));
       if ( text ) {
         [inText getCharacters:text];
         text[[inText length]] = 0;
         webFind->SetSearchString(text);
         webFind->FindNext(&found);
         nsMemory::Free(text);
       }
     }
     return found;
 }  }
   
-(void)findAgain- (void)saveURL: (NSView*)aFilterView filterList: (NSPopUpButton*)aFilterList
             url: (NSURL*)aURL suggestedFilename: (NSString*)aFilename
 {  {
     nsCOMPtr<nsIURI> url;
     nsresult rv = NS_NewURI(getter_AddRefs(url), [[aURL absoluteString] cString]);
     if (NS_FAILED(rv))
       return;
     
     [self saveInternal: url.get()
           withDocument: nsnull
      suggestedFilename: [aFilename cString]
            bypassCache: YES
             filterView: aFilterView
             filterList: aFilterList];
 }  }
   
-(void)saveDocument: (NSView*)aFilterView filterList: (NSPopUpButton*)aFilterList- (void)saveDocument: (NSView*)aFilterView filterList: (NSPopUpButton*)aFilterList
 {  {
     nsCOMPtr<nsIWebBrowserFocus> wbf(do_QueryInterface(_webBrowser));      nsCOMPtr<nsIWebBrowserFocus> wbf(do_QueryInterface(_webBrowser));
     nsCOMPtr<nsIDOMWindow> domWindow;      nsCOMPtr<nsIDOMWindow> domWindow;
Line 1267  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1303  nsHeaderSniffer::OnSecurityChange(nsIWeb
     nsresult rv = NS_NewURI(getter_AddRefs(url), urlCStr.get());      nsresult rv = NS_NewURI(getter_AddRefs(url), urlCStr.get());
     if (NS_FAILED(rv))      if (NS_FAILED(rv))
         return;          return;
            
#if 0 
    nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDocument)); 
    if (!doc) 
        return; 
    nsCOMPtr<nsIURI> url; 
    doc->GetDocumentURL(getter_AddRefs(url)); 
#endif 
      
     [self saveInternal: url.get()      [self saveInternal: url.get()
           withDocument: domDocument            withDocument: domDocument
             suggestedFilename: ""
           bypassCache: NO            bypassCache: NO
           filterView: aFilterView            filterView: aFilterView
           filterList: aFilterList];            filterList: aFilterList];
Line 1353  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1382  nsHeaderSniffer::OnSecurityChange(nsIWeb
     else      else
         wbf->Deactivate();          wbf->Deactivate();
 }  }
   
   -(NSMenu*)getContextMenu
   {
     return [[self superview] getContextMenu];
   }
 @end  @end
   

Removed from v.1.27  
changed lines
  Added in v.1.33


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>