Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / renderer_context_menu / context_menu_content_type_platform_app.cc
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/renderer_context_menu/context_menu_content_type_platform_app.h"
6
7 #include "base/command_line.h"
8 #include "chrome/common/chrome_switches.h"
9 #include "extensions/common/extension.h"
10 #include "extensions/common/manifest.h"
11
12 ContextMenuContentTypePlatformApp::ContextMenuContentTypePlatformApp(
13     content::WebContents* web_contents,
14     const content::ContextMenuParams& params)
15     : ContextMenuContentType(web_contents, params, false) {
16 }
17
18 ContextMenuContentTypePlatformApp::~ContextMenuContentTypePlatformApp() {
19 }
20
21 bool ContextMenuContentTypePlatformApp::SupportsGroup(int group) {
22   const extensions::Extension* platform_app = GetExtension();
23
24   // The RVH might be for a process sandboxed from the extension.
25   if (!platform_app)
26     return false;
27
28   DCHECK(platform_app->is_platform_app());
29
30   switch (group) {
31     // Add undo/redo, cut/copy/paste etc for text fields.
32     case ITEM_GROUP_EDITABLE:
33     case ITEM_GROUP_COPY:
34       return ContextMenuContentType::SupportsGroup(group);
35     case ITEM_GROUP_CURRENT_EXTENSION:
36       return true;
37     case ITEM_GROUP_DEVTOOLS_UNPACKED_EXT:
38       // Add dev tools for unpacked extensions.
39       return extensions::Manifest::IsUnpackedLocation(
40                  platform_app->location()) ||
41              CommandLine::ForCurrentProcess()->HasSwitch(
42                  switches::kDebugPackedApps);
43     default:
44       return false;
45   }
46 }