Diff for /chimera/NSBrowserView.mm between versions 1.2 and 1.17

version 1.2, 2002/02/03 05:53:12 version 1.17, 2002/02/09 01:24:11
Line 37 Line 37
   
 #import "NSBrowserView.h"  #import "NSBrowserView.h"
 #import "ProgressDlgController.h"  #import "ProgressDlgController.h"
   #import "FindDlgController.h"
 #import "nsCocoaBrowserService.h"  #import "nsCocoaBrowserService.h"
   
 // Embedding includes  // Embedding includes
Line 56 Line 57
 #include "nsXPIDLString.h"  #include "nsXPIDLString.h"
 #include "nsCOMPtr.h"  #include "nsCOMPtr.h"
   
   // Printing
   #include "nsIWebBrowserPrint.h"
   #include "nsIPrintSettings.h"
   
   // Saving of links/images/docs
 #include "nsIWebBrowserFocus.h"  #include "nsIWebBrowserFocus.h"
 #include "nsIDOMHTMLDocument.h"  #include "nsIDOMHTMLDocument.h"
#include "nsIDocument.h"#include "nsIDOMNSDocument.h"
 #include "nsIDOMLocation.h"
 #include "nsIURL.h"  #include "nsIURL.h"
 #include "nsIWebBrowserPersist.h"  #include "nsIWebBrowserPersist.h"
 #include "nsIProperties.h"  #include "nsIProperties.h"
Line 69 Line 76
 #include "nsIMIMEService.h"  #include "nsIMIMEService.h"
 #include "nsIMIMEInfo.h"  #include "nsIMIMEInfo.h"
 #include "nsISHistory.h"  #include "nsISHistory.h"
   #include "nsIHistoryEntry.h"
   #include "nsISHEntry.h"
   #include "nsNetUtil.h"
   
   // Cut/copy/paste
   #include "nsIClipboardCommands.h"
   #include "nsIInterfaceRequestorUtils.h"
   
   const char* persistContractID = "@mozilla.org/embedding/browser/nsWebBrowserPersist;1";
   const char* dirServiceContractID = "@mozilla.org/file/directory_service;1";
   
 class nsCocoaBrowserListener : public nsSupportsWeakReference,  class nsCocoaBrowserListener : public nsSupportsWeakReference,
                                public nsIInterfaceRequestor,                                 public nsIInterfaceRequestor,
Line 586  class nsHeaderSniffer :  public nsIWebPr Line 603  class nsHeaderSniffer :  public nsIWebPr
 {  {
 public:  public:
     nsHeaderSniffer(nsIWebBrowserPersist* aPersist, nsIFile* aFile, nsIURI* aURL,      nsHeaderSniffer(nsIWebBrowserPersist* aPersist, nsIFile* aFile, nsIURI* aURL,
                    nsIDOMDocument* aDocument, PRBool aBypassCache,                    nsIDOMDocument* aDocument, nsIInputStream* aPostData, PRBool aBypassCache,
                     NSView* aFilterView, NSPopUpButton* aFilterList)                      NSView* aFilterView, NSPopUpButton* aFilterList)
     {      {
         NS_INIT_REFCNT();          NS_INIT_REFCNT();
Line 594  public: Line 611  public:
         mTmpFile = aFile;          mTmpFile = aFile;
         mURL = aURL;          mURL = aURL;
         mDocument = aDocument;          mDocument = aDocument;
           mPostData = aPostData;
         mBypassCache = aBypassCache;          mBypassCache = aBypassCache;
         mFilterView = aFilterView;          mFilterView = aFilterView;
         mFilterList = aFilterList;          mFilterList = aFilterList;
     }      }
                                       
    virtual ~nsHeaderSniffer() {};    virtual ~nsHeaderSniffer() 
     {
     };
   
     NS_DECL_ISUPPORTS      NS_DECL_ISUPPORTS
     NS_DECL_NSIWEBPROGRESSLISTENER      NS_DECL_NSIWEBPROGRESSLISTENER
Line 612  private: Line 632  private:
     nsCOMPtr<nsIFile> mTmpFile;      nsCOMPtr<nsIFile> mTmpFile;
     nsCOMPtr<nsIURI> mURL;      nsCOMPtr<nsIURI> mURL;
     nsCOMPtr<nsIDOMDocument> mDocument;      nsCOMPtr<nsIDOMDocument> mDocument;
       nsCOMPtr<nsIInputStream> mPostData;
     PRBool mBypassCache;      PRBool mBypassCache;
     nsCString mContentType;      nsCString mContentType;
     nsCString mContentDisposition;      nsCString mContentDisposition;
Line 796  void nsHeaderSniffer::PerformSave() Line 817  void nsHeaderSniffer::PerformSave()
     else      else
         sourceData = do_QueryInterface(mURL);          sourceData = do_QueryInterface(mURL);
                   
       nsCOMPtr<nsIWebBrowserPersist> webPersist(do_CreateInstance(persistContractID));
     ProgressDlgController* progressDialog = [[ProgressDlgController alloc] initWithWindowNibName: @"ProgressDialog"];      ProgressDlgController* progressDialog = [[ProgressDlgController alloc] initWithWindowNibName: @"ProgressDialog"];
  /*  [progressDialog setWebPersist: mPersist     [progressDialog setWebPersist: webPersist 
                     source: sourceData.get()                      source: sourceData.get()
                     destination: [savePanel filename]                      destination: [savePanel filename]
                     contentType: mContentType.get()                      contentType: mContentType.get()
                    postData: postData                    postData: mPostData
    */                                    bypassCache: mBypassCache];
                        
     [progressDialog showWindow: progressDialog];      [progressDialog showWindow: progressDialog];
 }  }
   
Line 888  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 910  nsHeaderSniffer::OnSecurityChange(nsIWeb
   return self;    return self;
 }  }
   
   - (void)destroyWebBrowser
   {
     nsCOMPtr<nsIBaseWindow> baseWin = do_QueryInterface(_webBrowser);
     baseWin->Destroy();
   }
   
 - (void)dealloc   - (void)dealloc 
 {  {
   NS_RELEASE(_listener);    NS_RELEASE(_listener);
   NS_IF_RELEASE(_webBrowser);    NS_IF_RELEASE(_webBrowser);
  nsCocoaBrowserService::TermEmbedding();  
  nsCocoaBrowserService::BrowserClosed();
   
   [super dealloc];    [super dealloc];
 }  }
   
Line 1085  nsHeaderSniffer::OnSecurityChange(nsIWeb Line 1114  nsHeaderSniffer::OnSecurityChange(nsIWeb
   
 }  }
   
 const char* persistContractID = "@mozilla.org/embedding/browser/nsWebBrowserPersist;1";  
 const char* dirServiceContractID = "@mozilla.org/file/directory_service;1";  
   
 -(void) saveInternal: (nsIURI*)aURI  -(void) saveInternal: (nsIURI*)aURI
         withDocument: (nsIDOMDocument*)aDocument          withDocument: (nsIDOMDocument*)aDocument
         bypassCache: (BOOL)aBypassCache          bypassCache: (BOOL)aBypassCache
Line 1118  const char* dirServiceContractID = "@moz Line 1144  const char* dirServiceContractID = "@moz
     nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(_webBrowser));      nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(_webBrowser));
     nsCOMPtr<nsISHistory> sessionHistory;      nsCOMPtr<nsISHistory> sessionHistory;
     webNav->GetSessionHistory(getter_AddRefs(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;
     if (shEntry)
         shEntry->GetPostData(getter_AddRefs(postData));
     
     nsHeaderSniffer* sniffer = new nsHeaderSniffer(webPersist, tmpFile, aURI,       nsHeaderSniffer* sniffer = new nsHeaderSniffer(webPersist, tmpFile, aURI, 
                                                   aDocument, aBypassCache,                                                   aDocument, postData, aBypassCache,
                                                    aFilterView, aFilterList);                                                     aFilterView, aFilterList);
     if (!sniffer)      if (!sniffer)
         return;          return;
Line 1128  const char* dirServiceContractID = "@moz Line 1162  const char* dirServiceContractID = "@moz
     webPersist->SaveURI(aURI, nsnull, tmpFile);      webPersist->SaveURI(aURI, nsnull, tmpFile);
 }  }
   
   -(void)printDocument
   {
       nsCOMPtr<nsIDOMWindow> domWindow;
       _webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
       nsCOMPtr<nsIInterfaceRequestor> ir(do_QueryInterface(domWindow));
       nsCOMPtr<nsIWebBrowserPrint> print;
       ir->GetInterface(NS_GET_IID(nsIWebBrowserPrint), getter_AddRefs(print));
       print->Print(nsnull, nsnull);
   }
   
   -(void)printPreview
   {
       nsCOMPtr<nsIDOMWindow> domWindow;
       _webBrowser->GetContentDOMWindow(getter_AddRefs(domWindow));
       nsCOMPtr<nsIInterfaceRequestor> ir(do_QueryInterface(domWindow));
       nsCOMPtr<nsIWebBrowserPrint> print;
       ir->GetInterface(NS_GET_IID(nsIWebBrowserPrint), getter_AddRefs(print));
       print->PrintPreview(nsnull);
   }
   
   -(void)findInPage
   {
       FindDlgController* findDialog = [[FindDlgController alloc] initWithWindowNibName: @"FindDialog"];
       nsCOMPtr<nsIWebBrowserFocus> wbf(do_QueryInterface(_webBrowser));
       nsCOMPtr<nsIDOMWindow> rootWindow;
       nsCOMPtr<nsIDOMWindow> focusedWindow;
       _webBrowser->GetContentDOMWindow(getter_AddRefs(rootWindow));
       wbf->GetFocusedWindow(getter_AddRefs(focusedWindow));
       if (!focusedWindow)
           focusedWindow = rootWindow;
       nsCOMPtr<nsIWebBrowserFind> webFind(do_GetInterface(_webBrowser));
       nsCOMPtr<nsIWebBrowserFindInFrames> framesFind(do_QueryInterface(webFind));
       framesFind->SetRootSearchFrame(rootWindow);
       framesFind->SetCurrentSearchFrame(focusedWindow);
       
       [findDialog setFind: webFind];
       [findDialog showWindow: findDialog];
   }
   
   -(void)findAgain
   {
   }
   
 -(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));
Line 1142  const char* dirServiceContractID = "@moz Line 1219  const char* dirServiceContractID = "@moz
     domWindow->GetDocument(getter_AddRefs(domDocument));      domWindow->GetDocument(getter_AddRefs(domDocument));
     if (!domDocument)      if (!domDocument)
         return;          return;
       nsCOMPtr<nsIDOMNSDocument> nsDoc(do_QueryInterface(domDocument));
       if (!nsDoc)
           return;
       nsCOMPtr<nsIDOMLocation> location;
       nsDoc->GetLocation(getter_AddRefs(location));
       if (!location)
           return;
       nsAutoString urlStr;
       location->GetHref(urlStr);
       nsCAutoString urlCStr; urlCStr.AssignWithConversion(urlStr);
       nsCOMPtr<nsIURI> url;
       nsresult rv = NS_NewURI(getter_AddRefs(url), urlCStr.get());
       if (NS_FAILED(rv))
           return;
           
   #if 0
     nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDocument));      nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDocument));
     if (!doc)      if (!doc)
         return;          return;
     nsCOMPtr<nsIURI> url;      nsCOMPtr<nsIURI> url;
     doc->GetDocumentURL(getter_AddRefs(url));      doc->GetDocumentURL(getter_AddRefs(url));
   #endif
             
     [self saveInternal: url.get()      [self saveInternal: url.get()
           withDocument: domDocument            withDocument: domDocument
Line 1155  const char* dirServiceContractID = "@moz Line 1249  const char* dirServiceContractID = "@moz
           filterList: aFilterList];            filterList: aFilterList];
 }  }
   
   
   -(IBAction)cut:(id)aSender
   {
       nsCOMPtr<nsIClipboardCommands> clipboard(do_GetInterface(_webBrowser));
       clipboard->CutSelection();
   }
   
   -(IBAction)copy:(id)aSender
   {
       nsCOMPtr<nsIClipboardCommands> clipboard(do_GetInterface(_webBrowser));
       clipboard->CopySelection();
   }
   
   -(IBAction)paste:(id)aSender
   {
       nsCOMPtr<nsIClipboardCommands> clipboard(do_GetInterface(_webBrowser));
       clipboard->Paste();
   }
   
   -(IBAction)clear:(id)aSender
   {
       nsCOMPtr<nsIClipboardCommands> clipboard(do_GetInterface(_webBrowser));
       clipboard->SelectNone();
   }
   
   -(IBAction)selectAll:(id)aSender
   {
       nsCOMPtr<nsIClipboardCommands> clipboard(do_GetInterface(_webBrowser));
       clipboard->SelectAll();
   }
   
 @end  @end
   

Removed from v.1.2  
changed lines
  Added in v.1.17


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