1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_guest_delegate.h"
6
7#include "chrome/browser/chrome_page_zoom.h"
8#include "chrome/browser/ui/pdf/chrome_pdf_web_contents_helper_client.h"
9#include "components/pdf/browser/pdf_web_contents_helper.h"
10#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
11
12#if defined(ENABLE_PRINTING)
13#if defined(ENABLE_FULL_PRINTING)
14#include "chrome/browser/printing/print_preview_message_handler.h"
15#include "chrome/browser/printing/print_view_manager.h"
16#else
17#include "chrome/browser/printing/print_view_manager_basic.h"
18#endif  // defined(ENABLE_FULL_PRINTING)
19#endif  // defined(ENABLE_PRINTING)
20
21ChromeMimeHandlerViewGuestDelegate::ChromeMimeHandlerViewGuestDelegate(
22    extensions::MimeHandlerViewGuest* guest)
23    : extensions::MimeHandlerViewGuestDelegate(guest), guest_(guest) {
24}
25
26ChromeMimeHandlerViewGuestDelegate::~ChromeMimeHandlerViewGuestDelegate() {
27}
28
29// TODO(lazyboy): Investigate ways to move this out to /extensions.
30void ChromeMimeHandlerViewGuestDelegate::AttachHelpers() {
31  content::WebContents* web_contents = guest_->web_contents();
32#if defined(ENABLE_PRINTING)
33#if defined(ENABLE_FULL_PRINTING)
34  printing::PrintViewManager::CreateForWebContents(web_contents);
35  printing::PrintPreviewMessageHandler::CreateForWebContents(web_contents);
36#else
37  printing::PrintViewManagerBasic::CreateForWebContents(web_contents);
38#endif  // defined(ENABLE_FULL_PRINTING)
39#endif  // defined(ENABLE_PRINTING)
40  pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
41      web_contents,
42      scoped_ptr<pdf::PDFWebContentsHelperClient>(
43          new ChromePDFWebContentsHelperClient()));
44}
45
46void ChromeMimeHandlerViewGuestDelegate::ChangeZoom(bool zoom_in) {
47  // TODO(lazyboy): Move this to //extensions once ZoomController and friends
48  // move to //extensions.
49  chrome_page_zoom::Zoom(
50      guest_->embedder_web_contents(),
51      zoom_in ? content::PAGE_ZOOM_IN : content::PAGE_ZOOM_OUT);
52}
53