| Index: chrome/browser/ui/webui/print_preview_ui.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/print_preview_ui.cc (revision 114056)
|
| +++ chrome/browser/ui/webui/print_preview_ui.cc (working copy)
|
| @@ -14,6 +14,7 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/printing/background_printing_manager.h"
|
| #include "chrome/browser/printing/print_preview_data_service.h"
|
| +#include "chrome/browser/printing/print_preview_tab_controller.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
|
| #include "chrome/browser/ui/webui/html_dialog_ui.h"
|
| @@ -73,25 +74,33 @@
|
| PrintPreviewUI::PrintPreviewUI(TabContents* contents)
|
| : ConstrainedHtmlUI(contents),
|
| initial_preview_start_time_(base::TimeTicks::Now()),
|
| + handler_(NULL),
|
| source_is_modifiable_(true),
|
| tab_closed_(false) {
|
| - // WebUI owns |handler_|.
|
| - handler_ = new PrintPreviewHandler();
|
| - AddMessageHandler(handler_->Attach(this));
|
| + printing::PrintPreviewTabController* controller =
|
| + printing::PrintPreviewTabController::GetInstance();
|
| + is_dummy_ = (!controller || !controller->is_creating_print_preview_tab());
|
|
|
| // Set up the chrome://print/ data source.
|
| Profile* profile = Profile::FromBrowserContext(contents->browser_context());
|
| profile->GetChromeURLDataManager()->AddDataSource(
|
| - new PrintPreviewDataSource());
|
| + new PrintPreviewDataSource(is_dummy_));
|
| + if (is_dummy_)
|
| + return;
|
|
|
| + // WebUI owns |handler_|.
|
| + handler_ = new PrintPreviewHandler();
|
| + AddMessageHandler(handler_->Attach(this));
|
| +
|
| preview_ui_addr_str_ = GetPrintPreviewUIAddress();
|
| -
|
| g_print_preview_request_id_map.Get().Set(preview_ui_addr_str_, -1);
|
| }
|
|
|
| PrintPreviewUI::~PrintPreviewUI() {
|
| + if (is_dummy_)
|
| + return;
|
| +
|
| print_preview_data_service()->RemoveEntry(preview_ui_addr_str_);
|
| -
|
| g_print_preview_request_id_map.Get().Erase(preview_ui_addr_str_);
|
| }
|
|
|
|
|