Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Unified Diff: chrome/browser/ui/webui/print_preview_ui.cc

Issue 9114062: Move chrome/browser/ui/webui/print_preview* to chrome/browser/ui/webui/print_preview/ (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/print_preview_ui.h ('k') | chrome/browser/ui/webui/print_preview_ui_uitest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/print_preview_ui.cc
===================================================================
--- chrome/browser/ui/webui/print_preview_ui.cc (revision 117298)
+++ chrome/browser/ui/webui/print_preview_ui.cc (working copy)
@@ -1,314 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/print_preview_ui.h"
-
-#include <map>
-
-#include "base/lazy_instance.h"
-#include "base/metrics/histogram.h"
-#include "base/string_util.h"
-#include "base/synchronization/lock.h"
-#include "base/values.h"
-#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"
-#include "chrome/browser/ui/webui/print_preview_data_source.h"
-#include "chrome/browser/ui/webui/print_preview_handler.h"
-#include "chrome/common/print_messages.h"
-#include "content/public/browser/web_contents.h"
-#include "printing/page_size_margins.h"
-#include "printing/print_job_constants.h"
-
-using content::WebContents;
-using printing::PageSizeMargins;
-
-namespace {
-
-// Thread-safe wrapper around a std::map to keep track of mappings from
-// PrintPreviewUI addresses to most recent print preview request ids.
-class PrintPreviewRequestIdMapWithLock {
- public:
- PrintPreviewRequestIdMapWithLock() {}
- ~PrintPreviewRequestIdMapWithLock() {}
-
- // Get the value for |addr|. Returns true and sets |out_value| on success.
- bool Get(const std::string& addr, int* out_value) {
- base::AutoLock lock(lock_);
- PrintPreviewRequestIdMap::const_iterator it = map_.find(addr);
- if (it == map_.end())
- return false;
- *out_value = it->second;
- return true;
- }
-
- // Sets the |value| for |addr|.
- void Set(const std::string& addr, int value) {
- base::AutoLock lock(lock_);
- map_[addr] = value;
- }
-
- // Erase the entry for |addr|.
- void Erase(const std::string& addr) {
- base::AutoLock lock(lock_);
- map_.erase(addr);
- }
-
- private:
- typedef std::map<std::string, int> PrintPreviewRequestIdMap;
-
- PrintPreviewRequestIdMap map_;
- base::Lock lock_;
-};
-
-// Written to on the UI thread, read from any thread.
-base::LazyInstance<PrintPreviewRequestIdMapWithLock>
- g_print_preview_request_id_map = LAZY_INSTANCE_INITIALIZER;
-
-} // namespace
-
-PrintPreviewUI::PrintPreviewUI(WebContents* contents)
- : ConstrainedHtmlUI(contents),
- initial_preview_start_time_(base::TimeTicks::Now()),
- handler_(NULL),
- source_is_modifiable_(true),
- tab_closed_(false) {
- 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->GetBrowserContext());
- profile->GetChromeURLDataManager()->AddDataSource(
- new PrintPreviewDataSource(is_dummy_));
- if (is_dummy_)
- return;
-
- // WebUI owns |handler_|.
- handler_ = new PrintPreviewHandler();
- AddMessageHandler(handler_);
-
- 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_);
-}
-
-void PrintPreviewUI::GetPrintPreviewDataForIndex(
- int index,
- scoped_refptr<RefCountedBytes>* data) {
- print_preview_data_service()->GetDataEntry(preview_ui_addr_str_, index, data);
-}
-
-void PrintPreviewUI::SetPrintPreviewDataForIndex(int index,
- const RefCountedBytes* data) {
- print_preview_data_service()->SetDataEntry(preview_ui_addr_str_, index, data);
-}
-
-void PrintPreviewUI::ClearAllPreviewData() {
- print_preview_data_service()->RemoveEntry(preview_ui_addr_str_);
-}
-
-int PrintPreviewUI::GetAvailableDraftPageCount() {
- return print_preview_data_service()->GetAvailableDraftPageCount(
- preview_ui_addr_str_);
-}
-
-void PrintPreviewUI::SetInitiatorTabURLAndTitle(
- const std::string& initiator_url,
- const string16& job_title) {
- initiator_url_ = initiator_url;
- initiator_tab_title_ = job_title;
-}
-
-// static
-void PrintPreviewUI::SetSourceIsModifiable(
- TabContentsWrapper* print_preview_tab,
- bool source_is_modifiable) {
- if (!print_preview_tab || !print_preview_tab->web_contents()->GetWebUI())
- return;
- PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
- print_preview_tab->web_contents()->GetWebUI());
- print_preview_ui->source_is_modifiable_ = source_is_modifiable;
-}
-
-// static
-void PrintPreviewUI::GetCurrentPrintPreviewStatus(
- const std::string& preview_ui_addr,
- int request_id,
- bool* cancel) {
- int current_id = -1;
- if (!g_print_preview_request_id_map.Get().Get(preview_ui_addr, &current_id)) {
- *cancel = true;
- return;
- }
- *cancel = (request_id != current_id);
-}
-
-std::string PrintPreviewUI::GetPrintPreviewUIAddress() const {
- // Store the PrintPreviewUIAddress as a string.
- // "0x" + deadc0de + '\0' = 2 + 2 * sizeof(this) + 1;
- char preview_ui_addr[2 + (2 * sizeof(this)) + 1];
- base::snprintf(preview_ui_addr, sizeof(preview_ui_addr), "%p", this);
- return preview_ui_addr;
-}
-
-void PrintPreviewUI::OnPrintPreviewTabClosed() {
- TabContentsWrapper* preview_tab =
- TabContentsWrapper::GetCurrentWrapperForContents(web_contents());
- printing::BackgroundPrintingManager* background_printing_manager =
- g_browser_process->background_printing_manager();
- if (background_printing_manager->HasPrintPreviewTab(preview_tab))
- return;
- OnClosePrintPreviewTab();
-}
-
-void PrintPreviewUI::OnInitiatorTabClosed() {
- TabContentsWrapper* preview_tab =
- TabContentsWrapper::GetCurrentWrapperForContents(web_contents());
- printing::BackgroundPrintingManager* background_printing_manager =
- g_browser_process->background_printing_manager();
- if (background_printing_manager->HasPrintPreviewTab(preview_tab))
- CallJavascriptFunction("cancelPendingPrintRequest");
- else
- OnClosePrintPreviewTab();
-}
-
-void PrintPreviewUI::OnPrintPreviewRequest(int request_id) {
- g_print_preview_request_id_map.Get().Set(preview_ui_addr_str_, request_id);
-}
-
-void PrintPreviewUI::OnShowSystemDialog() {
- CallJavascriptFunction("onSystemDialogLinkClicked");
-}
-
-void PrintPreviewUI::OnDidGetPreviewPageCount(
- const PrintHostMsg_DidGetPreviewPageCount_Params& params) {
- DCHECK_GT(params.page_count, 0);
- base::FundamentalValue count(params.page_count);
- base::FundamentalValue request_id(params.preview_request_id);
- CallJavascriptFunction("onDidGetPreviewPageCount", count, request_id);
-}
-
-void PrintPreviewUI::OnDidGetDefaultPageLayout(
- const PageSizeMargins& page_layout, bool has_custom_page_size_style) {
- if (page_layout.margin_top < 0 || page_layout.margin_left < 0 ||
- page_layout.margin_bottom < 0 || page_layout.margin_right < 0 ||
- page_layout.content_width < 0 || page_layout.content_height < 0) {
- NOTREACHED();
- return;
- }
-
- base::DictionaryValue layout;
- layout.SetDouble(printing::kSettingMarginTop, page_layout.margin_top);
- layout.SetDouble(printing::kSettingMarginLeft, page_layout.margin_left);
- layout.SetDouble(printing::kSettingMarginBottom, page_layout.margin_bottom);
- layout.SetDouble(printing::kSettingMarginRight, page_layout.margin_right);
- layout.SetDouble(printing::kSettingContentWidth, page_layout.content_width);
- layout.SetDouble(printing::kSettingContentHeight, page_layout.content_height);
-
- base::FundamentalValue has_page_size_style(has_custom_page_size_style);
- CallJavascriptFunction("onDidGetDefaultPageLayout", layout,
- has_page_size_style);
-}
-
-void PrintPreviewUI::OnDidPreviewPage(int page_number,
- int preview_request_id) {
- DCHECK_GE(page_number, 0);
- base::FundamentalValue number(page_number);
- StringValue ui_identifier(preview_ui_addr_str_);
- base::FundamentalValue request_id(preview_request_id);
- CallJavascriptFunction("onDidPreviewPage", number, ui_identifier, request_id);
-}
-
-void PrintPreviewUI::OnReusePreviewData(int preview_request_id) {
- base::StringValue ui_identifier(preview_ui_addr_str_);
- base::FundamentalValue ui_preview_request_id(preview_request_id);
- CallJavascriptFunction("reloadPreviewPages", ui_identifier,
- ui_preview_request_id);
-}
-
-void PrintPreviewUI::OnPreviewDataIsAvailable(int expected_pages_count,
- int preview_request_id) {
- VLOG(1) << "Print preview request finished with "
- << expected_pages_count << " pages";
-
- if (!initial_preview_start_time_.is_null()) {
- UMA_HISTOGRAM_TIMES("PrintPreview.InitalDisplayTime",
- base::TimeTicks::Now() - initial_preview_start_time_);
- UMA_HISTOGRAM_COUNTS("PrintPreview.PageCount.Initial",
- expected_pages_count);
- initial_preview_start_time_ = base::TimeTicks();
- }
- base::StringValue ui_identifier(preview_ui_addr_str_);
- base::FundamentalValue ui_preview_request_id(preview_request_id);
- CallJavascriptFunction("updatePrintPreview", ui_identifier,
- ui_preview_request_id);
-}
-
-void PrintPreviewUI::OnTabDestroyed() {
- handler_->OnTabDestroyed();
-}
-
-void PrintPreviewUI::OnFileSelectionCancelled() {
- CallJavascriptFunction("fileSelectionCancelled");
-}
-
-void PrintPreviewUI::OnCancelPendingPreviewRequest() {
- g_print_preview_request_id_map.Get().Set(preview_ui_addr_str_, -1);
-}
-
-void PrintPreviewUI::OnPrintPreviewFailed() {
- handler_->OnPrintPreviewFailed();
- CallJavascriptFunction("printPreviewFailed");
-}
-
-void PrintPreviewUI::OnInvalidPrinterSettings() {
- CallJavascriptFunction("invalidPrinterSettings");
-}
-
-PrintPreviewDataService* PrintPreviewUI::print_preview_data_service() {
- return PrintPreviewDataService::GetInstance();
-}
-
-void PrintPreviewUI::OnHidePreviewTab() {
- TabContentsWrapper* preview_tab =
- TabContentsWrapper::GetCurrentWrapperForContents(web_contents());
- printing::BackgroundPrintingManager* background_printing_manager =
- g_browser_process->background_printing_manager();
- if (background_printing_manager->HasPrintPreviewTab(preview_tab))
- return;
-
- ConstrainedHtmlUIDelegate* delegate = GetConstrainedDelegate();
- if (!delegate)
- return;
- delegate->ReleaseTabContentsOnDialogClose();
- background_printing_manager->OwnPrintPreviewTab(preview_tab);
- OnClosePrintPreviewTab();
-}
-
-void PrintPreviewUI::OnClosePrintPreviewTab() {
- if (tab_closed_)
- return;
- tab_closed_ = true;
- ConstrainedHtmlUIDelegate* delegate = GetConstrainedDelegate();
- if (!delegate)
- return;
- delegate->GetHtmlDialogUIDelegate()->OnDialogClosed("");
- delegate->OnDialogCloseFromWebUI();
-}
-
-void PrintPreviewUI::OnReloadPrintersList() {
- CallJavascriptFunction("reloadPrintersList");
-}
« no previous file with comments | « chrome/browser/ui/webui/print_preview_ui.h ('k') | chrome/browser/ui/webui/print_preview_ui_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698