Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / extensions / renderer / process_info_native_handler.cc
blob3c7ba78b39cb476908d67d7430cdd15a43e957aa
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.
5 #include "extensions/renderer/process_info_native_handler.h"
7 #include "base/bind.h"
8 #include "base/command_line.h"
9 #include "extensions/renderer/script_context.h"
11 namespace extensions {
13 ProcessInfoNativeHandler::ProcessInfoNativeHandler(
14 ScriptContext* context,
15 const std::string& extension_id,
16 const std::string& context_type,
17 bool is_incognito_context,
18 int manifest_version,
19 bool send_request_disabled)
20 : ObjectBackedNativeHandler(context),
21 extension_id_(extension_id),
22 context_type_(context_type),
23 is_incognito_context_(is_incognito_context),
24 manifest_version_(manifest_version),
25 send_request_disabled_(send_request_disabled) {
26 RouteFunction("GetExtensionId",
27 base::Bind(&ProcessInfoNativeHandler::GetExtensionId,
28 base::Unretained(this)));
29 RouteFunction("GetContextType",
30 base::Bind(&ProcessInfoNativeHandler::GetContextType,
31 base::Unretained(this)));
32 RouteFunction("InIncognitoContext",
33 base::Bind(&ProcessInfoNativeHandler::InIncognitoContext,
34 base::Unretained(this)));
35 RouteFunction("GetManifestVersion",
36 base::Bind(&ProcessInfoNativeHandler::GetManifestVersion,
37 base::Unretained(this)));
38 RouteFunction("IsSendRequestDisabled",
39 base::Bind(&ProcessInfoNativeHandler::IsSendRequestDisabled,
40 base::Unretained(this)));
41 RouteFunction(
42 "HasSwitch",
43 base::Bind(&ProcessInfoNativeHandler::HasSwitch, base::Unretained(this)));
46 void ProcessInfoNativeHandler::GetExtensionId(
47 const v8::FunctionCallbackInfo<v8::Value>& args) {
48 args.GetReturnValue().Set(
49 v8::String::NewFromUtf8(args.GetIsolate(), extension_id_.c_str()));
52 void ProcessInfoNativeHandler::GetContextType(
53 const v8::FunctionCallbackInfo<v8::Value>& args) {
54 args.GetReturnValue().Set(
55 v8::String::NewFromUtf8(args.GetIsolate(), context_type_.c_str()));
58 void ProcessInfoNativeHandler::InIncognitoContext(
59 const v8::FunctionCallbackInfo<v8::Value>& args) {
60 args.GetReturnValue().Set(is_incognito_context_);
63 void ProcessInfoNativeHandler::GetManifestVersion(
64 const v8::FunctionCallbackInfo<v8::Value>& args) {
65 args.GetReturnValue().Set(static_cast<int32_t>(manifest_version_));
68 void ProcessInfoNativeHandler::IsSendRequestDisabled(
69 const v8::FunctionCallbackInfo<v8::Value>& args) {
70 if (send_request_disabled_) {
71 args.GetReturnValue().Set(v8::String::NewFromUtf8(
72 args.GetIsolate(),
73 "sendRequest and onRequest are obsolete."
74 " Please use sendMessage and onMessage instead."));
78 void ProcessInfoNativeHandler::HasSwitch(
79 const v8::FunctionCallbackInfo<v8::Value>& args) {
80 CHECK(args.Length() == 1 && args[0]->IsString());
81 bool has_switch = CommandLine::ForCurrentProcess()->HasSwitch(
82 *v8::String::Utf8Value(args[0]));
83 args.GetReturnValue().Set(v8::Boolean::New(args.GetIsolate(), has_switch));
86 } // namespace extensions