summaryrefslogtreecommitdiffstats
path: root/chrome/browser/printing
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-17 03:09:42 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-17 03:09:42 +0000
commitb5a1d11cc70ab12c69e579d132204863a780eb75 (patch)
treea9300148dd2434b645ad7fe1716cce2f9e42e064 /chrome/browser/printing
parentcd124097edce07ef5e0a7f80105e81c7982b81a1 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/printing/print_preview_message_handler.cc11
-rw-r--r--chrome/browser/printing/print_preview_message_handler.h5
-rw-r--r--chrome/browser/printing/print_view_manager.cc30
-rw-r--r--chrome/browser/printing/print_view_manager.h7
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);
};