diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-17 03:09:42 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-17 03:09:42 +0000 |
commit | b5a1d11cc70ab12c69e579d132204863a780eb75 (patch) | |
tree | a9300148dd2434b645ad7fe1716cce2f9e42e064 /chrome/browser/printing | |
parent | cd124097edce07ef5e0a7f80105e81c7982b81a1 (diff) | |
download | chromium_src-b5a1d11cc70ab12c69e579d132204863a780eb75.zip chromium_src-b5a1d11cc70ab12c69e579d132204863a780eb75.tar.gz chromium_src-b5a1d11cc70ab12c69e579d132204863a780eb75.tar.bz2 |
Make TabContentsObserver handle registration automatically, as well as exposing getters for TC, routing_id, and sending messages.
Review URL: http://codereview.chromium.org/6537004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75226 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
4 files changed, 23 insertions, 30 deletions
diff --git a/chrome/browser/printing/print_preview_message_handler.cc b/chrome/browser/printing/print_preview_message_handler.cc index fdf3b30..f7f0218 100644 --- a/chrome/browser/printing/print_preview_message_handler.cc +++ b/chrome/browser/printing/print_preview_message_handler.cc @@ -20,9 +20,10 @@ namespace printing { -PrintPreviewMessageHandler::PrintPreviewMessageHandler(TabContents* owner) - : owner_(owner) { - DCHECK(owner); +PrintPreviewMessageHandler::PrintPreviewMessageHandler( + TabContents* tab_contents) + : TabContentsObserver(tab_contents) { + DCHECK(tab_contents); } PrintPreviewMessageHandler::~PrintPreviewMessageHandler() { @@ -34,7 +35,7 @@ TabContents* PrintPreviewMessageHandler::GetPrintPreviewTab() { printing::PrintPreviewTabController::GetInstance(); if (!tab_controller) return NULL; - return tab_controller->GetPrintPreviewForTab(owner_); + return tab_controller->GetPrintPreviewForTab(tab_contents()); } void PrintPreviewMessageHandler::OnPagesReadyForPreview( @@ -70,7 +71,7 @@ void PrintPreviewMessageHandler::OnPagesReadyForPreview( &printing::PrinterQuery::StopWorker)); } - RenderViewHost* rvh = owner_->render_view_host(); + RenderViewHost* rvh = tab_contents()->render_view_host(); rvh->Send(new ViewMsg_PrintingDone(rvh->routing_id(), params.document_cookie, true)); diff --git a/chrome/browser/printing/print_preview_message_handler.h b/chrome/browser/printing/print_preview_message_handler.h index 27963b1..e1ef29f 100644 --- a/chrome/browser/printing/print_preview_message_handler.h +++ b/chrome/browser/printing/print_preview_message_handler.h @@ -17,7 +17,7 @@ namespace printing { // TabContents that owns it. class PrintPreviewMessageHandler : public TabContentsObserver { public: - explicit PrintPreviewMessageHandler(TabContents* owner); + explicit PrintPreviewMessageHandler(TabContents* tab_contents); virtual ~PrintPreviewMessageHandler(); void OnPagesReadyForPreview( @@ -30,9 +30,6 @@ class PrintPreviewMessageHandler : public TabContentsObserver { // Gets the print preview tab associated with |owner_|. TabContents* GetPrintPreviewTab(); - // The TabContents that owns this PrintPreviewMessageHandler. - TabContents* owner_; - DISALLOW_COPY_AND_ASSIGN(PrintPreviewMessageHandler); }; diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/printing/print_view_manager.cc index 1871e31..15cef0a 100644 --- a/chrome/browser/printing/print_view_manager.cc +++ b/chrome/browser/printing/print_view_manager.cc @@ -26,12 +26,12 @@ using base::TimeDelta; namespace printing { -PrintViewManager::PrintViewManager(TabContents& owner) - : number_pages_(0), +PrintViewManager::PrintViewManager(TabContents* tab_contents) + : TabContentsObserver(tab_contents), + number_pages_(0), waiting_to_print_(false), printing_succeeded_(false), - inside_inner_message_loop_(false), - owner_(owner) { + inside_inner_message_loop_(false) { } PrintViewManager::~PrintViewManager() { @@ -47,7 +47,7 @@ bool PrintViewManager::OnRenderViewGone(RenderViewHost* render_view_host) { if (!print_job_.get()) return true; - if (render_view_host != owner_.render_view_host()) + if (render_view_host != tab_contents()->render_view_host()) return false; scoped_refptr<PrintedDocument> document(print_job_->document()); @@ -61,14 +61,14 @@ bool PrintViewManager::OnRenderViewGone(RenderViewHost* render_view_host) { } string16 PrintViewManager::RenderSourceName() { - string16 name(owner_.GetTitle()); + string16 name(tab_contents()->GetTitle()); if (name.empty()) name = l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE); return name; } GURL PrintViewManager::RenderSourceUrl() { - NavigationEntry* entry = owner_.controller().GetActiveEntry(); + NavigationEntry* entry = tab_contents()->controller().GetActiveEntry(); if (entry) return entry->virtual_url(); else @@ -109,7 +109,7 @@ void PrintViewManager::OnDidPrintPage( if (params.data_size && params.data_size >= 350*1024*1024) { NOTREACHED() << "size:" << params.data_size; TerminatePrintJob(true); - owner_.Stop(); + tab_contents()->Stop(); return; } #endif @@ -117,7 +117,7 @@ void PrintViewManager::OnDidPrintPage( base::SharedMemory shared_buf(params.metafile_data_handle, true); if (!shared_buf.Map(params.data_size)) { NOTREACHED() << "couldn't map"; - owner_.Stop(); + tab_contents()->Stop(); return; } @@ -127,7 +127,7 @@ void PrintViewManager::OnDidPrintPage( scoped_ptr<NativeMetafile> metafile(new NativeMetafile()); if (!metafile->Init(shared_buf.memory(), params.data_size)) { NOTREACHED() << "Invalid metafile header"; - owner_.Stop(); + tab_contents()->Stop(); return; } @@ -217,8 +217,8 @@ bool PrintViewManager::RenderAllMissingPagesNow() { } // We can't print if there is no renderer. - if (!owner_.render_view_host() || - !owner_.render_view_host()->IsRenderViewLive()) { + if (!tab_contents()->render_view_host() || + !tab_contents()->render_view_host()->IsRenderViewLive()) { waiting_to_print_ = false; return false; } @@ -275,8 +275,8 @@ bool PrintViewManager::CreateNewPrintJob(PrintJobWorkerOwner* job) { DisconnectFromCurrentPrintJob(); // We can't print if there is no renderer. - if (!owner_.render_view_host() || - !owner_.render_view_host()->IsRenderViewLive()) { + if (!tab_contents()->render_view_host() || + !tab_contents()->render_view_host()->IsRenderViewLive()) { return false; } @@ -315,7 +315,7 @@ void PrintViewManager::DisconnectFromCurrentPrintJob() { void PrintViewManager::PrintingDone(bool success) { if (print_job_.get()) { - owner_.PrintingDone(print_job_->cookie(), success); + tab_contents()->PrintingDone(print_job_->cookie(), success); } } diff --git a/chrome/browser/printing/print_view_manager.h b/chrome/browser/printing/print_view_manager.h index 3f40995..18a4f7e 100644 --- a/chrome/browser/printing/print_view_manager.h +++ b/chrome/browser/printing/print_view_manager.h @@ -29,7 +29,7 @@ class PrintViewManager : public NotificationObserver, public PrintedPagesSource, public TabContentsObserver { public: - explicit PrintViewManager(TabContents& owner); + explicit PrintViewManager(TabContents* tab_contents); virtual ~PrintViewManager(); // Cancels the print job. @@ -124,11 +124,6 @@ class PrintViewManager : public NotificationObserver, // print settings are being loaded. bool inside_inner_message_loop_; - // PrintViewManager is created as an extension of WebContent specialized for - // printing-related behavior. Still, access to the renderer is needed so a - // back reference is kept the the "parent object". - TabContents& owner_; - DISALLOW_COPY_AND_ASSIGN(PrintViewManager); }; |