0

Moved SimplifyDocumentTitle from printing/backend

TBR=noamsml

Review URL: https://codereview.chromium.org/59903019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234127 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
vitalybuka@chromium.org
2013-11-09 17:24:27 +00:00
parent 014a62cbb9
commit ec91bfa9ee
10 changed files with 78 additions and 51 deletions

@ -17,10 +17,10 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
#include "grit/generated_resources.h"
#include "printing/backend/print_backend.h"
#include "printing/print_job_constants.h"
#include "printing/printed_document.h"
#include "printing/printed_page.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"
using content::BrowserThread;
@ -215,9 +215,9 @@ void PrintJobWorker::StartPrinting(PrintedDocument* new_document) {
}
string16 document_name =
printing::PrintBackend::SimplifyDocumentTitle(document_->name());
printing::SimplifyDocumentTitle(document_->name());
if (document_name.empty()) {
document_name = printing::PrintBackend::SimplifyDocumentTitle(
document_name = printing::SimplifyDocumentTitle(
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
}
PrintingContext::Result result =

@ -28,6 +28,7 @@
#include "printing/emf_win.h"
#include "printing/page_range.h"
#include "printing/pdf_render_settings.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/rect.h"
@ -431,8 +432,7 @@ class PrintSystemWin : public PrintSystem {
DOCINFO di = {0};
di.cbSize = sizeof(DOCINFO);
string16 doc_name = UTF8ToUTF16(job_title);
DCHECK(printing::PrintBackend::SimplifyDocumentTitle(doc_name) ==
doc_name);
DCHECK(printing::SimplifyDocumentTitle(doc_name) == doc_name);
di.lpszDocName = doc_name.c_str();
job_id_ = StartDoc(dc, &di);
if (job_id_ <= 0)

@ -21,7 +21,7 @@
#include "net/base/mime_util.h"
#include "net/http/http_response_headers.h"
#include "net/http/http_status_code.h"
#include "printing/backend/print_backend.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"
@ -767,10 +767,9 @@ void PrinterJobHandler::DoPrint(const JobDetails& job_details,
if (!job_spooler_.get())
return;
string16 document_name =
printing::PrintBackend::SimplifyDocumentTitle(
UTF8ToUTF16(job_details.job_title_));
printing::SimplifyDocumentTitle(UTF8ToUTF16(job_details.job_title_));
if (document_name.empty()) {
document_name = printing::PrintBackend::SimplifyDocumentTitle(
document_name = printing::SimplifyDocumentTitle(
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
}
UMA_HISTOGRAM_ENUMERATION("CloudPrint.JobHandlerEvent",

@ -4,13 +4,6 @@
#include "printing/backend/print_backend.h"
#include <algorithm>
#include "third_party/icu/source/common/unicode/uchar.h"
#include "ui/gfx/text_elider.h"
const int kMaxDocumentTitleLength = 50;
namespace printing {
PrinterBasicInfo::PrinterBasicInfo()
@ -33,15 +26,4 @@ PrinterCapsAndDefaults::~PrinterCapsAndDefaults() {}
PrintBackend::~PrintBackend() {}
base::string16 PrintBackend::SimplifyDocumentTitle(
const base::string16& title) {
base::string16 no_controls(title);
no_controls.erase(
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
no_controls.end());
base::string16 result;
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
return result;
}
} // namespace printing

@ -10,7 +10,6 @@
#include <vector>
#include "base/memory/ref_counted.h"
#include "base/strings/string16.h"
#include "printing/print_job_constants.h"
#include "printing/printing_export.h"
@ -98,9 +97,6 @@ class PRINTING_EXPORT PrintBackend
// Returns true if printer_name points to a valid printer.
virtual bool IsValidPrinter(const std::string& printer_name) = 0;
// Simplify title to resolve issue with some drivers.
static base::string16 SimplifyDocumentTitle(const base::string16& title);
// Allocate a print backend. If |print_backend_settings| is NULL, default
// settings will be used.
// Return NULL if no print backend available.

@ -38,15 +38,15 @@
'emf_win.cc',
'emf_win.h',
'image.cc',
'image.h',
'image_android.cc',
'image_linux.cc',
'image_mac.cc',
'image_win.cc',
'image.h',
'metafile.h',
'metafile_impl.h',
'metafile_skia_wrapper.h',
'metafile_skia_wrapper.cc',
'metafile_skia_wrapper.h',
'page_number.cc',
'page_number.h',
'page_range.cc',
@ -57,21 +57,11 @@
'page_size_margins.h',
'pdf_metafile_cg_mac.cc',
'pdf_metafile_cg_mac.h',
'pdf_metafile_skia.h',
'pdf_metafile_skia.cc',
'pdf_metafile_skia.h',
'print_destination_interface.h',
'print_destination_none.cc',
'print_destination_win.cc',
'printed_document_gtk.cc',
'printed_document.cc',
'printed_document.h',
'printed_document_mac.cc',
'printed_document_win.cc',
'printed_page.cc',
'printed_page.h',
'printed_pages_source.h',
'printing_context.cc',
'printing_context.h',
'print_dialog_gtk_interface.h',
'print_job_constants.cc',
'print_job_constants.h',
@ -85,6 +75,18 @@
'print_settings_initializer_mac.h',
'print_settings_initializer_win.cc',
'print_settings_initializer_win.h',
'printed_document.cc',
'printed_document.h',
'printed_document_gtk.cc',
'printed_document_mac.cc',
'printed_document_win.cc',
'printed_page.cc',
'printed_page.h',
'printed_pages_source.h',
'printing_context.cc',
'printing_context.h',
'printing_utils.cc',
'printing_utils.h',
'units.cc',
'units.h',
],
@ -244,15 +246,15 @@
'../ui/ui.gyp:ui',
],
'sources': [
'backend/print_backend_unittest.cc',
'emf_win_unittest.cc',
'printing_test.h',
'page_number_unittest.cc',
'page_range_unittest.cc',
'page_setup_unittest.cc',
'pdf_metafile_cg_mac_unittest.cc',
'printed_page_unittest.cc',
'printing_context_win_unittest.cc',
'printing_test.h',
'printing_utils_unittest.cc',
'units_unittest.cc',
],
'conditions': [

@ -22,6 +22,7 @@
#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_win.h"
#include "printing/printed_document.h"
#include "printing/printing_utils.h"
#include "printing/units.h"
#include "skia/ext/platform_device.h"
#include "win8/util/win8_util.h"
@ -431,7 +432,7 @@ PrintingContext::Result PrintingContextWin::NewDocument(
if (SP_ERROR == SetAbortProc(context_, &AbortProc))
return OnError();
DCHECK(PrintBackend::SimplifyDocumentTitle(document_name) == document_name);
DCHECK(SimplifyDocumentTitle(document_name) == document_name);
DOCINFO di = { sizeof(DOCINFO) };
const std::wstring& document_name_wide = UTF16ToWide(document_name);
di.lpszDocName = document_name_wide.c_str();

@ -0,0 +1,28 @@
// Copyright 2013 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 "printing/printing_utils.h"
#include <algorithm>
#include "third_party/icu/source/common/unicode/uchar.h"
#include "ui/gfx/text_elider.h"
namespace {
const int kMaxDocumentTitleLength = 50;
}
namespace printing {
base::string16 SimplifyDocumentTitle(const base::string16& title) {
base::string16 no_controls(title);
no_controls.erase(
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
no_controls.end());
base::string16 result;
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
return result;
}
} // namespace printing

19
printing/printing_utils.h Normal file

@ -0,0 +1,19 @@
// Copyright 2013 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.
#ifndef PRINTING_PRINTING_UTILS_H_
#define PRINTING_PRINTING_UTILS_H_
#include "base/strings/string16.h"
#include "printing/printing_export.h"
namespace printing {
// Simplify title to resolve issue with some drivers.
PRINTING_EXPORT base::string16 SimplifyDocumentTitle(
const base::string16& title);
} // namespace printing
#endif // PRINTING_PRINTING_UTILS_H_

@ -1,18 +1,18 @@
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Copyright 2013 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 "base/strings/utf_string_conversions.h"
#include "printing/backend/print_backend.h"
#include "printing/printing_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace printing {
std::string Simplify(const char* title) {
return UTF16ToUTF8(PrintBackend::SimplifyDocumentTitle(ASCIIToUTF16(title)));
return UTF16ToUTF8(SimplifyDocumentTitle(ASCIIToUTF16(title)));
}
TEST(PrintBackendTest, SimplifyDocumentTitle) {
TEST(PrintingUtilsTest, SimplifyDocumentTitle) {
EXPECT_STREQ("", Simplify("").c_str());
EXPECT_STREQ("Long string. Long string...ng string. Long string.",
Simplify("Long string. Long string. Long string. Long string. "