summaryrefslogtreecommitdiffstats
path: root/athena/main/athena_content_client.cc
blob: f24574ff5f9bfa1f98ce86e84279a7e8e34ead22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Copyright 2014 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 "athena/main/athena_content_client.h"

#include "base/files/file_path.h"
#include "base/path_service.h"
#include "content/public/common/pepper_plugin_info.h"
#include "ppapi/shared_impl/ppapi_permissions.h"

namespace athena {

AthenaContentClient::AthenaContentClient() {}

AthenaContentClient::~AthenaContentClient() {}

void AthenaContentClient::AddPepperPlugins(
    std::vector<content::PepperPluginInfo>* plugins) {
  const char kPDFPluginMimeType[] = "application/pdf";
  const char kPDFPluginExtension[] = "pdf";
  const char kPDFPluginDescription[] = "Portable Document Format";
  const char kPDFPluginPrintPreviewMimeType[] =
      "application/x-google-chrome-print-preview-pdf";
  const uint32 kPDFPluginPermissions =
      ppapi::PERMISSION_PRIVATE | ppapi::PERMISSION_DEV;
  const char kPDFPluginName[] = "Chrome PDF Viewer";
  const base::FilePath::CharType kPDFPluginFileName[] =
      FILE_PATH_LITERAL("libpdf.so");

  base::FilePath module;
  if (!PathService::Get(base::DIR_MODULE, &module))
    return;

  content::PepperPluginInfo pdf;
  pdf.path = base::FilePath(module.Append(kPDFPluginFileName));
  pdf.name = kPDFPluginName;
  content::WebPluginMimeType pdf_mime_type(
      kPDFPluginMimeType, kPDFPluginExtension, kPDFPluginDescription);
  content::WebPluginMimeType print_preview_pdf_mime_type(
      kPDFPluginPrintPreviewMimeType,
      kPDFPluginExtension,
      kPDFPluginDescription);
  pdf.mime_types.push_back(pdf_mime_type);
  pdf.mime_types.push_back(print_preview_pdf_mime_type);
  pdf.permissions = kPDFPluginPermissions;
  plugins->push_back(pdf);

  ShellContentClient::AddPepperPlugins(plugins);
}

}  // namespace athena