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/ui/pdf/chrome_pdf_web_contents_helper_client.h"
6
7#include "chrome/browser/download/download_stats.h"
8#include "chrome/browser/ui/browser.h"
9#include "chrome/browser/ui/browser_finder.h"
10#include "chrome/browser/ui/browser_window.h"
11#include "chrome/browser/ui/location_bar/location_bar.h"
12#include "chrome/browser/ui/pdf/pdf_unsupported_feature.h"
13#include "chrome/browser/ui/tab_contents/core_tab_helper.h"
14
15ChromePDFWebContentsHelperClient::ChromePDFWebContentsHelperClient() {
16}
17
18ChromePDFWebContentsHelperClient::~ChromePDFWebContentsHelperClient() {
19}
20
21void ChromePDFWebContentsHelperClient::UpdateLocationBar(
22    content::WebContents* contents) {
23  Browser* browser = chrome::FindBrowserWithWebContents(contents);
24  if (!browser)
25    return;
26
27  BrowserWindow* window = browser->window();
28  if (!window)
29    return;
30
31  LocationBar* location_bar = window->GetLocationBar();
32  if (!location_bar)
33    return;
34
35  location_bar->UpdateOpenPDFInReaderPrompt();
36}
37
38void ChromePDFWebContentsHelperClient::UpdateContentRestrictions(
39    content::WebContents* contents,
40    int content_restrictions) {
41  CoreTabHelper* core_tab_helper = CoreTabHelper::FromWebContents(contents);
42  // |core_tab_helper| is NULL for WebViewGuest.
43  if (core_tab_helper)
44    core_tab_helper->UpdateContentRestrictions(content_restrictions);
45}
46
47void ChromePDFWebContentsHelperClient::OnPDFHasUnsupportedFeature(
48    content::WebContents* contents) {
49  PDFHasUnsupportedFeature(contents);
50}
51
52void ChromePDFWebContentsHelperClient::OnSaveURL(
53    content::WebContents* contents) {
54  RecordDownloadSource(DOWNLOAD_INITIATED_BY_PDF_SAVE);
55}
56
57void ChromePDFWebContentsHelperClient::OnShowPDFPasswordDialog(
58    content::WebContents* contents,
59    const base::string16& prompt,
60    const pdf::PasswordDialogClosedCallback& callback) {
61  ShowPDFPasswordDialog(contents, prompt, callback);
62}
63