910e62b5创建于 1月15日历史提交
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "extensions/renderer/process_info_native_handler.h"

#include "base/functional/bind.h"
#include "extensions/common/extension_id.h"
#include "extensions/renderer/script_context.h"
#include "gin/converter.h"

namespace extensions {

ProcessInfoNativeHandler::ProcessInfoNativeHandler(ScriptContext* context)
    : ObjectBackedNativeHandler(context),
      extension_id_(context->GetExtensionID()) {}
ProcessInfoNativeHandler::~ProcessInfoNativeHandler() = default;

void ProcessInfoNativeHandler::AddRoutes() {
  auto get_extension_id = [](const ExtensionId& extension_id,
                             const v8::FunctionCallbackInfo<v8::Value>& args) {
    args.GetReturnValue().Set(gin::StringToV8(args.GetIsolate(), extension_id));
  };

  RouteHandlerFunction("GetExtensionId",
                       base::BindRepeating(get_extension_id, extension_id_));
}

}  // namespace extensions