Delete ppapi/native_client, ppapi/nacl_irt and references to it.
BUG=40511454
Change-Id: Ib68b518c0706a35d8d2dda585a505c8fb3aa8791
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6669673
Reviewed-by: Andrew Grieve <[email protected]>
Commit-Queue: Derek Schuff <[email protected]>
Reviewed-by: Zijie He <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1478292}
NOKEYCHECK=True
GitOrigin-RevId: 1b0188911ce436dd3dd50476c42b60fbc43c66c4
diff --git a/nacl_irt/DEPS b/nacl_irt/DEPS
deleted file mode 100644
index c47b20f..0000000
--- a/nacl_irt/DEPS
+++ /dev/null
@@ -1,17 +0,0 @@
-include_rules = [
- "+components/tracing",
-
- # We don't want the proxy to depend on the C++ layer, which is appropriate
- # for plugins only.
- "-ppapi/cpp",
-
- "+mojo/core/embedder",
-
- # The untrusted build references the NaCl integrated runtime (IRT).
- "+native_client/src/public",
- "+native_client/src/untrusted/irt/irt.h",
- "+native_client/src/untrusted/irt/irt_dev.h",
- # The IRT also needs to know the errno and sysconf enums.
- "+native_client/src/trusted/service_runtime/include/sys/errno.h",
- "+native_client/src/trusted/service_runtime/include/sys/unistd.h",
-]
diff --git a/nacl_irt/DIR_METADATA b/nacl_irt/DIR_METADATA
deleted file mode 100644
index 920ae63..0000000
--- a/nacl_irt/DIR_METADATA
+++ /dev/null
@@ -1,14 +0,0 @@
-# Metadata information for this directory.
-#
-# For more information on DIR_METADATA files, see:
-# https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/tools/dirmd/README.md
-#
-# For the schema of this file, see Metadata message:
-# https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/tools/dirmd/proto/dir_metadata.proto
-
-buganizer_public {
- component_id: 1258585 # ChromeOS Public Tracker > Enterprise & Edu > NaCl
-}
-buganizer {
- component_id: 1258533
-}
diff --git a/nacl_irt/OWNERS b/nacl_irt/OWNERS
deleted file mode 100644
index 4fa13b5..0000000
--- a/nacl_irt/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
[email protected]
diff --git a/nacl_irt/irt_interfaces.cc b/nacl_irt/irt_interfaces.cc
deleted file mode 100644
index 2fb5a51..0000000
--- a/nacl_irt/irt_interfaces.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/nacl_irt/irt_interfaces.h"
-
-#include <unistd.h>
-
-#include "native_client/src/public/irt_core.h"
-#include "native_client/src/trusted/service_runtime/include/sys/unistd.h"
-#include "native_client/src/untrusted/irt/irt.h"
-#include "native_client/src/untrusted/irt/irt_dev.h"
-#include "ppapi/nacl_irt/irt_manifest.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
-
-static int ppapihook_pnacl_private_filter(void) {
- int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE);
- if (pnacl_mode == -1)
- return 0;
- return pnacl_mode;
-}
-
-static const nacl_irt_resource_open kIrtResourceOpen = {
- ppapi::IrtOpenResource,
-};
-
-static int not_pnacl_filter(void) {
- int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE);
- if (pnacl_mode == -1)
- return 0;
- return !pnacl_mode;
-}
-
-static const struct nacl_irt_interface irt_interfaces[] = {
- {NACL_IRT_PPAPIHOOK_v0_1, &nacl_irt_ppapihook, sizeof(nacl_irt_ppapihook),
- NULL},
- {NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1, &nacl_irt_ppapihook_pnacl_private,
- sizeof(nacl_irt_ppapihook_pnacl_private), ppapihook_pnacl_private_filter},
- {
- NACL_IRT_RESOURCE_OPEN_v0_1,
- &kIrtResourceOpen,
- sizeof(kIrtResourceOpen),
- not_pnacl_filter,
- },
- // TODO(mseaborn): Ideally these two PNaCl translator interfaces should
- // be hidden in processes that aren't PNaCl sandboxed translator
- // processes. However, we haven't yet plumbed though a flag to indicate
- // when a NaCl process is a PNaCl translator process. The risk of an app
- // accidentally depending on the presence of this interface is much lower
- // than for other non-stable IRT interfaces, because this interface is
- // not useful to apps.
- {NACL_IRT_PRIVATE_PNACL_TRANSLATOR_LINK_v0_1,
- &nacl_irt_private_pnacl_translator_link,
- sizeof(nacl_irt_private_pnacl_translator_link), NULL},
- {NACL_IRT_PRIVATE_PNACL_TRANSLATOR_COMPILE_v0_1,
- &nacl_irt_private_pnacl_translator_compile,
- sizeof(nacl_irt_private_pnacl_translator_compile), NULL},
-};
-
-size_t chrome_irt_query(const char* interface_ident,
- void* table, size_t tablesize) {
- size_t result = nacl_irt_query_list(interface_ident,
- table,
- tablesize,
- irt_interfaces,
- sizeof(irt_interfaces));
- if (result != 0)
- return result;
-
- return nacl_irt_query_core(interface_ident, table, tablesize);
-}
diff --git a/nacl_irt/irt_interfaces.h b/nacl_irt/irt_interfaces.h
deleted file mode 100644
index 0bd35bf..0000000
--- a/nacl_irt/irt_interfaces.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_NACL_IRT_IRT_INTERFACES_H_
-#define PPAPI_NACL_IRT_IRT_INTERFACES_H_
-
-#include <stddef.h>
-#include <stdlib.h>
-
-extern const struct nacl_irt_ppapihook nacl_irt_ppapihook;
-extern const struct nacl_irt_private_pnacl_translator_link
- nacl_irt_private_pnacl_translator_link;
-extern const struct nacl_irt_private_pnacl_translator_compile
- nacl_irt_private_pnacl_translator_compile;
-
-size_t chrome_irt_query(const char* interface_ident,
- void* table, size_t tablesize);
-
-#endif // PPAPI_NACL_IRT_IRT_INTERFACES_H_
diff --git a/nacl_irt/irt_manifest.h b/nacl_irt/irt_manifest.h
deleted file mode 100644
index 0420314..0000000
--- a/nacl_irt/irt_manifest.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// 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.
-
-#ifndef PPAPI_NACL_IRT_IRT_MANIFEST_H_
-#define PPAPI_NACL_IRT_IRT_MANIFEST_H_
-
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace ppapi {
-
-// The implementation of irt_open_resource() based on ManifestService.
-// This communicates with the renderer process via Chrome IPC to obtain the
-// read-only file descriptor of the resource specified in the manifest file
-// with the key |file| in files section. Returns 0 on success, or error number
-// on failure. See also irt_open_resource()'s comment.
-PPAPI_PROXY_EXPORT int IrtOpenResource(const char* file, int* fd);
-
-} // namespace ppapi
-
-#endif // PPAPI_NACL_IRT_IRT_MANIFEST_H_
diff --git a/nacl_irt/irt_pnacl_translator_compile.cc b/nacl_irt/irt_pnacl_translator_compile.cc
deleted file mode 100644
index 9b1436a..0000000
--- a/nacl_irt/irt_pnacl_translator_compile.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_executor.h"
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_sync_channel.h"
-#include "native_client/src/untrusted/irt/irt_dev.h"
-#include "ppapi/nacl_irt/irt_interfaces.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace {
-
-class TranslatorCompileListener : public IPC::Listener {
- public:
- TranslatorCompileListener(const IPC::ChannelHandle& handle,
- const struct nacl_irt_pnacl_compile_funcs* funcs)
- : funcs_(funcs) {
- channel_ = IPC::Channel::Create(handle, IPC::Channel::MODE_SERVER, this);
- CHECK(channel_->Connect());
- }
-
- TranslatorCompileListener(const TranslatorCompileListener&) = delete;
- TranslatorCompileListener& operator=(const TranslatorCompileListener&) =
- delete;
-
- // Needed for handling sync messages in OnMessageReceived().
- bool Send(IPC::Message* message) {
- return channel_->Send(message);
- }
-
- virtual bool OnMessageReceived(const IPC::Message& msg) {
- bool handled = false;
- IPC_BEGIN_MESSAGE_MAP(TranslatorCompileListener, msg)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(PpapiMsg_PnaclTranslatorCompileInit,
- OnPnaclTranslatorCompileInit)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(PpapiMsg_PnaclTranslatorCompileChunk,
- OnPnaclTranslatorCompileChunk)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(PpapiMsg_PnaclTranslatorCompileEnd,
- OnPnaclTranslatorCompileEnd)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
- }
-
- private:
- void OnPnaclTranslatorCompileInit(
- int num_threads,
- const std::vector<ppapi::proxy::SerializedHandle>& obj_files,
- const std::vector<std::string>& cmd_flags,
- IPC::Message* reply_msg) {
- std::vector<int> obj_file_fds(obj_files.size());
- for (size_t i = 0; i < obj_files.size(); ++i) {
- CHECK(obj_files[i].is_file());
- obj_file_fds[i] = obj_files[i].descriptor().fd;
- }
-
- std::vector<char*> cmd_flags_cstrings(cmd_flags.size());
- for (size_t i = 0; i < cmd_flags.size(); ++i) {
- // It's OK to use const_cast here because the callee (the translator)
- // is not supposed to modify the strings. (The interface definition
- // should have used "const char* const*".)
- cmd_flags_cstrings[i] = const_cast<char*>(cmd_flags[i].c_str());
- }
-
- char* error_cstr = funcs_->init_callback(num_threads,
- obj_file_fds.data(),
- obj_file_fds.size(),
- cmd_flags_cstrings.data(),
- cmd_flags_cstrings.size());
- bool success = !error_cstr;
- std::string error_str(error_cstr ? error_cstr : "");
- PpapiMsg_PnaclTranslatorCompileInit::WriteReplyParams(
- reply_msg, success, error_str);
- Send(reply_msg);
- }
-
- void OnPnaclTranslatorCompileChunk(const std::string& data_chunk,
- IPC::Message* reply_msg) {
- int result = funcs_->data_callback(data_chunk.data(), data_chunk.size());
- bool success = !result;
- PpapiMsg_PnaclTranslatorCompileChunk::WriteReplyParams(reply_msg, success);
- Send(reply_msg);
- }
-
- void OnPnaclTranslatorCompileEnd(IPC::Message* reply_msg) {
- char* error_cstr = funcs_->end_callback();
- bool success = !error_cstr;
- std::string error_str(error_cstr ? error_cstr : "");
- PpapiMsg_PnaclTranslatorCompileEnd::WriteReplyParams(
- reply_msg, success, error_str);
- Send(reply_msg);
- }
-
- std::unique_ptr<IPC::Channel> channel_;
- const struct nacl_irt_pnacl_compile_funcs* funcs_;
-};
-
-void ServeTranslateRequest(const struct nacl_irt_pnacl_compile_funcs* funcs) {
- base::SingleThreadTaskExecutor main_task_executor;
- new TranslatorCompileListener(ppapi::GetRendererIPCChannelHandle(), funcs);
- base::RunLoop().Run();
-}
-
-}
-
-const struct nacl_irt_private_pnacl_translator_compile
- nacl_irt_private_pnacl_translator_compile = {ServeTranslateRequest};
diff --git a/nacl_irt/irt_pnacl_translator_link.cc b/nacl_irt/irt_pnacl_translator_link.cc
deleted file mode 100644
index f55dece..0000000
--- a/nacl_irt/irt_pnacl_translator_link.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_executor.h"
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_sync_channel.h"
-#include "native_client/src/public/chrome_main.h"
-#include "native_client/src/untrusted/irt/irt_dev.h"
-#include "ppapi/nacl_irt/irt_interfaces.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace {
-
-typedef int (*CallbackFunc)(int nexe_fd,
- const int* obj_file_fds,
- int obj_file_fd_count);
-
-class TranslatorLinkListener : public IPC::Listener {
- public:
- TranslatorLinkListener(const IPC::ChannelHandle& handle, CallbackFunc func)
- : func_(func) {
- channel_ = IPC::Channel::Create(handle, IPC::Channel::MODE_SERVER, this);
- CHECK(channel_->Connect());
- }
-
- TranslatorLinkListener(const TranslatorLinkListener&) = delete;
- TranslatorLinkListener& operator=(const TranslatorLinkListener&) = delete;
-
- // Needed for handling sync messages in OnMessageReceived().
- bool Send(IPC::Message* message) {
- return channel_->Send(message);
- }
-
- virtual bool OnMessageReceived(const IPC::Message& msg) {
- bool handled = false;
- IPC_BEGIN_MESSAGE_MAP(TranslatorLinkListener, msg)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(PpapiMsg_PnaclTranslatorLink,
- OnPnaclTranslatorLink)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
- }
-
- private:
- void OnPnaclTranslatorLink(
- const std::vector<ppapi::proxy::SerializedHandle>& obj_files,
- ppapi::proxy::SerializedHandle nexe_file,
- IPC::Message* reply_msg) {
- CHECK(nexe_file.is_file());
-
- std::vector<int> obj_file_fds(obj_files.size());
- for (size_t i = 0; i < obj_files.size(); ++i) {
- CHECK(obj_files[i].is_file());
- obj_file_fds[i] = obj_files[i].descriptor().fd;
- }
- int result = func_(nexe_file.descriptor().fd,
- obj_file_fds.data(),
- obj_file_fds.size());
- bool success = (result == 0);
- PpapiMsg_PnaclTranslatorLink::WriteReplyParams(reply_msg, success);
- Send(reply_msg);
- }
-
- std::unique_ptr<IPC::Channel> channel_;
- CallbackFunc func_;
-};
-
-void ServeLinkRequest(CallbackFunc func) {
- base::SingleThreadTaskExecutor main_task_executor;
- new TranslatorLinkListener(ppapi::GetRendererIPCChannelHandle(), func);
- base::RunLoop().Run();
-}
-
-}
-
-const struct nacl_irt_private_pnacl_translator_link
- nacl_irt_private_pnacl_translator_link = {ServeLinkRequest};
diff --git a/nacl_irt/irt_ppapi.cc b/nacl_irt/irt_ppapi.cc
deleted file mode 100644
index 7bfb7a7..0000000
--- a/nacl_irt/irt_ppapi.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-// 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 "build/build_config.h"
-
-#include <stdint.h>
-
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_executor.h"
-#include "base/threading/thread.h"
-#include "ipc/ipc_logging.h"
-#include "ppapi/nacl_irt/irt_interfaces.h"
-#include "ppapi/nacl_irt/irt_ppapi.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-#include "ppapi/nacl_irt/ppapi_dispatcher.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/shared_impl/ppb_audio_shared.h"
-
-static struct PP_StartFunctions g_pp_functions;
-
-void PpapiPluginRegisterThreadCreator(
- const struct PP_ThreadFunctions* thread_functions) {
- // Initialize all classes that need to create threads that call back into
- // user code.
- ppapi::PPB_Audio_Shared::SetThreadFunctions(thread_functions);
-}
-
-int irt_ppapi_start(const struct PP_StartFunctions* funcs) {
- g_pp_functions = *funcs;
-
- base::SingleThreadTaskExecutor executor;
- ppapi::proxy::PluginGlobals plugin_globals(
- ppapi::GetIOThread()->task_runner());
-
- ppapi::PpapiDispatcher ppapi_dispatcher(
- ppapi::GetIOThread()->task_runner(), ppapi::GetShutdownEvent(),
- ppapi::GetBrowserIPCChannelHandle(),
- ppapi::GetRendererIPCChannelHandle());
- plugin_globals.SetPluginProxyDelegate(&ppapi_dispatcher);
-
- base::RunLoop().Run();
-
- return 0;
-}
-
-int32_t PPP_InitializeModule(PP_Module module_id,
- PPB_GetInterface get_browser_interface) {
- return g_pp_functions.PPP_InitializeModule(module_id, get_browser_interface);
-}
-
-void PPP_ShutdownModule(void) {
- g_pp_functions.PPP_ShutdownModule();
-}
-
-const void* PPP_GetInterface(const char* interface_name) {
- return g_pp_functions.PPP_GetInterface(interface_name);
-}
-
-const struct nacl_irt_ppapihook nacl_irt_ppapihook = {
- irt_ppapi_start,
- PpapiPluginRegisterThreadCreator,
-};
diff --git a/nacl_irt/irt_ppapi.h b/nacl_irt/irt_ppapi.h
deleted file mode 100644
index 7e09870..0000000
--- a/nacl_irt/irt_ppapi.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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.
-
-#ifndef PPAPI_NACL_IRT_IRT_PPAPI_H_
-#define PPAPI_NACL_IRT_IRT_PPAPI_H_
-
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int irt_ppapi_start(const struct PP_StartFunctions* funcs);
-
-void PpapiPluginRegisterThreadCreator(
- const struct PP_ThreadFunctions* new_funcs);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // PPAPI_NACL_IRT_IRT_PPAPI_H_
diff --git a/nacl_irt/irt_start.cc b/nacl_irt/irt_start.cc
deleted file mode 100644
index 99b93cb..0000000
--- a/nacl_irt/irt_start.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// 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 <stdint.h>
-
-#include "base/at_exit.h"
-#include "mojo/core/embedder/embedder.h"
-#include "native_client/src/public/chrome_main.h"
-#include "native_client/src/public/irt_core.h"
-#include "ppapi/nacl_irt/irt_interfaces.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-
-namespace {
-IPC::ChannelHandle MakeIPCHandle(int fd) {
- return IPC::ChannelHandle(base::FileDescriptor(fd, false /* auto_close */));
-}
-} // namespace
-
-void nacl_irt_start(uint32_t* info) {
- nacl_irt_init(info);
-
- // Though it isn't referenced here, we must instantiate an AtExitManager.
- base::AtExitManager exit_manager;
-
- // In SFI mode, the FDs of IPC channels are NACL_CHROME_DESC_BASE and its
- // successor, which is set in nacl_listener.cc.
- ppapi::SetIPCChannelHandles(MakeIPCHandle(NACL_CHROME_DESC_BASE),
- MakeIPCHandle(NACL_CHROME_DESC_BASE + 1),
- MakeIPCHandle(NACL_CHROME_DESC_BASE + 2));
- // The Mojo EDK must be initialized before using IPC.
- mojo::core::Init();
- ppapi::StartUpPlugin();
-
- nacl_irt_enter_user_code(info, chrome_irt_query);
-}
diff --git a/nacl_irt/manifest_service.cc b/nacl_irt/manifest_service.cc
deleted file mode 100644
index ee0e0a0..0000000
--- a/nacl_irt/manifest_service.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-// 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 "ppapi/nacl_irt/manifest_service.h"
-
-#include <stdint.h>
-
-#include "base/task/single_thread_task_runner.h"
-#include "build/build_config.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ipc/ipc_channel_proxy.h"
-#include "ipc/ipc_sync_message_filter.h"
-#include "native_client/src/trusted/service_runtime/include/sys/errno.h"
-#include "ppapi/nacl_irt/irt_manifest.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace ppapi {
-
-// IPC channel is asynchronously set up. So, the NaCl process may try to
-// send a OpenResource message to the host before the connection is
-// established. In such a case, it is necessary to wait for the set up
-// completion.
-class ManifestMessageFilter : public IPC::SyncMessageFilter {
- public:
- ManifestMessageFilter(base::WaitableEvent* shutdown_event)
- : SyncMessageFilter(shutdown_event),
- connected_event_(base::WaitableEvent::ResetPolicy::MANUAL,
- base::WaitableEvent::InitialState::NOT_SIGNALED) {}
-
- ManifestMessageFilter(const ManifestMessageFilter&) = delete;
- ManifestMessageFilter& operator=(const ManifestMessageFilter&) = delete;
-
- bool Send(IPC::Message* message) override {
- // Wait until set up is actually done.
- connected_event_.Wait();
- return SyncMessageFilter::Send(message);
- }
-
- // When set up is done, OnFilterAdded is called on IO thread. Unblocks the
- // Send().
- void OnFilterAdded(IPC::Channel* channel) override {
- SyncMessageFilter::OnFilterAdded(channel);
- connected_event_.Signal();
- }
-
- // If an error is found, unblocks the Send(), too, to return an error.
- void OnChannelError() override {
- SyncMessageFilter::OnChannelError();
- connected_event_.Signal();
- }
-
- // Similar to OnChannelError, unblocks the Send() on the channel closing.
- void OnChannelClosing() override {
- SyncMessageFilter::OnChannelClosing();
- connected_event_.Signal();
- }
-
- private:
- base::WaitableEvent connected_event_;
-};
-
-ManifestService::ManifestService(
- const IPC::ChannelHandle& handle,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- base::WaitableEvent* shutdown_event) {
- filter_ = new ManifestMessageFilter(shutdown_event);
- channel_ = IPC::ChannelProxy::Create(
- handle, IPC::Channel::MODE_SERVER,
- NULL, // Listener
- io_task_runner.get(), base::SingleThreadTaskRunner::GetCurrentDefault());
- channel_->AddFilter(filter_.get());
-}
-
-ManifestService::~ManifestService() {
-}
-
-void ManifestService::StartupInitializationComplete() {
- filter_->Send(new PpapiHostMsg_StartupInitializationComplete);
-}
-
-bool ManifestService::OpenResource(const char* file, int* fd) {
- // We currently restrict to only allow one concurrent open_resource() call
- // per plugin. This could be fixed by doing a token lookup with
- // NaClProcessMsg_ResolveFileTokenAsyncReply instead of using a
- // global inside components/nacl/loader/nacl_listener.cc
- base::AutoLock lock(open_resource_lock_);
-
- // OpenResource will return INVALID SerializedHandle, if it is not supported.
- // Specifically, PNaCl doesn't support open resource.
- ppapi::proxy::SerializedHandle ipc_fd;
-
- // File tokens are ignored here, but needed when the message is processed
- // inside NaClIPCAdapter.
- uint64_t file_token_lo = 0;
- uint64_t file_token_hi = 0;
- if (!filter_->Send(new PpapiHostMsg_OpenResource(file, &file_token_lo,
- &file_token_hi, &ipc_fd))) {
- LOG(ERROR) << "ManifestService::OpenResource failed:" << file;
- *fd = -1;
- return false;
- }
-
- // File tokens are used internally by NaClIPCAdapter and should have
- // been cleared from the message when it is received here.
- CHECK(file_token_lo == 0);
- CHECK(file_token_hi == 0);
-
- // Copy the file if we received a valid file descriptor. Otherwise, if we got
- // a reply, the file doesn't exist, so provide an fd of -1.
- // See IrtOpenResource() for how this function's result is interpreted.
- if (ipc_fd.is_file())
- *fd = ipc_fd.descriptor().fd;
- else
- *fd = -1;
- return true;
-}
-
-int IrtOpenResource(const char* file, int* fd) {
- // Remove leading '/' character.
- if (file[0] == '/')
- ++file;
-
- ManifestService* manifest_service = GetManifestService();
- if (manifest_service == NULL ||
- !manifest_service->OpenResource(file, fd)) {
- return NACL_ABI_EIO;
- }
- return (*fd == -1) ? NACL_ABI_ENOENT : 0;
-}
-
-} // namespace ppapi
diff --git a/nacl_irt/manifest_service.h b/nacl_irt/manifest_service.h
deleted file mode 100644
index b855a9f..0000000
--- a/nacl_irt/manifest_service.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// 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.
-
-#ifndef PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
-#define PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
-
-#include <memory>
-
-#include "base/memory/scoped_refptr.h"
-#include "base/synchronization/lock.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-class WaitableEvent;
-} // namespace base
-
-namespace IPC {
-struct ChannelHandle;
-class ChannelProxy;
-class SyncMessageFilter;
-} // namespace IPC
-
-namespace ppapi {
-
-class ManifestService {
- public:
- ManifestService(const IPC::ChannelHandle& handle,
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- base::WaitableEvent* shutdown_event);
-
- ManifestService(const ManifestService&) = delete;
- ManifestService& operator=(const ManifestService&) = delete;
-
- ~ManifestService();
-
- void StartupInitializationComplete();
- bool OpenResource(const char* file, int* fd);
-
- private:
- std::unique_ptr<IPC::ChannelProxy> channel_;
- scoped_refptr<IPC::SyncMessageFilter> filter_;
-
- base::Lock open_resource_lock_;
-};
-
-} // namespace ppapi
-
-#endif // PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
diff --git a/nacl_irt/plugin_startup.cc b/nacl_irt/plugin_startup.cc
deleted file mode 100644
index 1fd94df..0000000
--- a/nacl_irt/plugin_startup.cc
+++ /dev/null
@@ -1,126 +0,0 @@
-// 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 "ppapi/nacl_irt/plugin_startup.h"
-
-#include "base/check.h"
-#include "base/file_descriptor_posix.h"
-#include "base/functional/bind.h"
-#include "base/location.h"
-#include "base/message_loop/message_pump_type.h"
-#include "base/synchronization/waitable_event.h"
-#include "base/task/single_thread_task_runner.h"
-#include "base/threading/thread.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ppapi/nacl_irt/manifest_service.h"
-#include "ppapi/shared_impl/ppb_audio_shared.h"
-
-namespace ppapi {
-namespace {
-
-IPC::ChannelHandle* g_nacl_browser_ipc_handle = nullptr;
-IPC::ChannelHandle* g_nacl_renderer_ipc_handle = nullptr;
-IPC::ChannelHandle* g_manifest_service_handle = nullptr;
-
-base::WaitableEvent* g_shutdown_event = NULL;
-base::Thread* g_io_thread = NULL;
-ManifestService* g_manifest_service = NULL;
-
-bool IsValidChannelHandle(IPC::ChannelHandle* handle) {
- // The underlying handle is wrapped by a NaClIPCAdapter, which is exposed as
- // an FD.
- return handle && handle->socket.fd != -1;
-}
-
-// Creates the manifest service on IO thread so that its Listener's thread and
-// IO thread are shared. Upon completion of the manifest service creation,
-// event is signaled.
-void StartUpManifestServiceOnIOThread(base::WaitableEvent* event) {
- // The start up must be called only once.
- DCHECK(!g_manifest_service);
- // manifest_service_handle must be set.
- DCHECK(IsValidChannelHandle(g_manifest_service_handle));
- // IOThread and shutdown event must be initialized in advance.
- DCHECK(g_io_thread);
- DCHECK(g_shutdown_event);
-
- g_manifest_service = new ManifestService(
- *g_manifest_service_handle, g_io_thread->task_runner(),
- g_shutdown_event);
- event->Signal();
-}
-
-} // namespace
-
-void SetIPCChannelHandles(
- IPC::ChannelHandle browser_ipc_handle,
- IPC::ChannelHandle renderer_ipc_handle,
- IPC::ChannelHandle manifest_service_handle) {
- // The initialization must be only once.
- DCHECK(!g_nacl_browser_ipc_handle);
- DCHECK(!g_nacl_renderer_ipc_handle);
- DCHECK(!g_nacl_renderer_ipc_handle);
- g_nacl_browser_ipc_handle = new IPC::ChannelHandle(browser_ipc_handle);
- g_nacl_renderer_ipc_handle = new IPC::ChannelHandle(renderer_ipc_handle);
- g_manifest_service_handle = new IPC::ChannelHandle(manifest_service_handle);
-}
-
-void StartUpPlugin() {
- // The start up must be called only once.
- DCHECK(!g_shutdown_event);
- DCHECK(!g_io_thread);
-
- g_shutdown_event =
- new base::WaitableEvent(base::WaitableEvent::ResetPolicy::MANUAL,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
- g_io_thread = new base::Thread("Chrome_NaClIOThread");
- g_io_thread->StartWithOptions(
- base::Thread::Options(base::MessagePumpType::IO, 0));
-
- if (IsValidChannelHandle(g_manifest_service_handle)) {
- // Manifest service must be created on IOThread so that the main message
- // handling will be done on the thread, which has a message loop
- // even before irt_ppapi_start invocation.
- // TODO(hidehiko,dmichael): This works, but is probably not well designed
- // usage. Once a better approach is made, replace this by that way.
- // (crbug.com/364241).
- base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
- g_io_thread->task_runner()->PostTask(
- FROM_HERE, base::BindOnce(StartUpManifestServiceOnIOThread, &event));
- event.Wait();
- }
-
- PPB_Audio_Shared::SetNaClMode();
-}
-
-IPC::ChannelHandle GetBrowserIPCChannelHandle() {
- // The handle must be initialized in advance.
- DCHECK(IsValidChannelHandle(g_nacl_browser_ipc_handle));
- return *g_nacl_browser_ipc_handle;
-}
-
-IPC::ChannelHandle GetRendererIPCChannelHandle() {
- // The handle must be initialized in advance.
- DCHECK(IsValidChannelHandle(g_nacl_renderer_ipc_handle));
- return *g_nacl_renderer_ipc_handle;
-}
-
-base::WaitableEvent* GetShutdownEvent() {
- // The shutdown event must be initialized in advance.
- DCHECK(g_shutdown_event);
- return g_shutdown_event;
-}
-
-base::Thread* GetIOThread() {
- // The IOThread must be initialized in advance.
- DCHECK(g_io_thread);
- return g_io_thread;
-}
-
-ManifestService* GetManifestService() {
- return g_manifest_service;
-}
-
-} // namespace ppapi
diff --git a/nacl_irt/plugin_startup.h b/nacl_irt/plugin_startup.h
deleted file mode 100644
index a7ee705..0000000
--- a/nacl_irt/plugin_startup.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// 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.
-
-#ifndef PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
-#define PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
-
-#include "ipc/ipc_channel_handle.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace base {
-class Thread;
-class WaitableEvent;
-} // namespace base
-
-namespace ppapi {
-
-class ManifestService;
-
-// Sets the IPC channels for the browser and the renderer.
-// Must be called before the ppapi_start() IRT interface is called.
-PPAPI_PROXY_EXPORT void SetIPCChannelHandles(
- IPC::ChannelHandle browser_ipc_handle,
- IPC::ChannelHandle renderer_ipc_handle,
- IPC::ChannelHandle manifest_service_handle);
-
-// Runs start up procedure for the plugin.
-// Specifically, start background IO thread for IPC, and prepare
-// shutdown event instance.
-PPAPI_PROXY_EXPORT void StartUpPlugin();
-
-// Returns IPC channel handle for PPAPI to the browser.
-IPC::ChannelHandle GetBrowserIPCChannelHandle();
-
-// Returns IPC channel handle for PPAPI to the renderer.
-IPC::ChannelHandle GetRendererIPCChannelHandle();
-
-// Returns the shutdown event instance for the plugin.
-// Must be called after StartUpPlugin().
-base::WaitableEvent* GetShutdownEvent();
-
-// Returns the IOThread for the plugin. Must be called after StartUpPlugin().
-base::Thread* GetIOThread();
-
-// Returns the ManifestService interface. To use this, manifest_service_handle
-// needs to be set via SetIPCChannelHandles. Must be called after
-// StartUpPlugin().
-// If not available, returns NULL.
-ManifestService* GetManifestService();
-
-} // namespace ppapi
-
-#endif // PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
diff --git a/nacl_irt/ppapi_dispatcher.cc b/nacl_irt/ppapi_dispatcher.cc
deleted file mode 100644
index 0f399b9..0000000
--- a/nacl_irt/ppapi_dispatcher.cc
+++ /dev/null
@@ -1,223 +0,0 @@
-// 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 "ppapi/nacl_irt/ppapi_dispatcher.h"
-
-#include <stddef.h>
-
-#include <map>
-#include <set>
-
-#include "base/base_switches.h"
-#include "base/check.h"
-#include "base/command_line.h"
-#include "base/feature_list.h"
-#include "base/logging.h"
-#include "base/memory/ref_counted.h"
-#include "base/notimplemented.h"
-#include "base/synchronization/waitable_event.h"
-#include "base/task/single_thread_task_runner.h"
-#include "build/build_config.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ipc/ipc_logging.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/ppp.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/nacl_irt/manifest_service.h"
-#include "ppapi/nacl_irt/plugin_startup.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_message_filter.h"
-#include "ppapi/proxy/plugin_proxy_delegate.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-
-namespace ppapi {
-
-PpapiDispatcher::PpapiDispatcher(
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- base::WaitableEvent* shutdown_event,
- IPC::ChannelHandle browser_ipc_handle,
- IPC::ChannelHandle renderer_ipc_handle)
- : next_plugin_dispatcher_id_(0),
- task_runner_(io_task_runner),
- shutdown_event_(shutdown_event),
- renderer_ipc_handle_(renderer_ipc_handle) {
- proxy::PluginGlobals* globals = proxy::PluginGlobals::Get();
- // Delay initializing the SyncChannel until after we add filters. This
- // ensures that the filters won't miss any messages received by
- // the channel.
- channel_ = IPC::SyncChannel::Create(
- this, GetIPCTaskRunner(),
- base::SingleThreadTaskRunner::GetCurrentDefault(), GetShutdownEvent());
- scoped_refptr<ppapi::proxy::PluginMessageFilter> plugin_filter(
- new ppapi::proxy::PluginMessageFilter(
- NULL, globals->resource_reply_thread_registrar()));
- channel_->AddFilter(plugin_filter.get());
- globals->RegisterResourceMessageFilters(plugin_filter.get());
-
- channel_->Init(browser_ipc_handle, IPC::Channel::MODE_SERVER, true);
-}
-
-base::SingleThreadTaskRunner* PpapiDispatcher::GetIPCTaskRunner() {
- return task_runner_.get();
-}
-
-base::WaitableEvent* PpapiDispatcher::GetShutdownEvent() {
- return shutdown_event_;
-}
-
-IPC::PlatformFileForTransit PpapiDispatcher::ShareHandleWithRemote(
- base::PlatformFile handle,
- base::ProcessId peer_pid,
- bool should_close_source) {
- return IPC::InvalidPlatformFileForTransit();
-}
-
-base::UnsafeSharedMemoryRegion
-PpapiDispatcher::ShareUnsafeSharedMemoryRegionWithRemote(
- const base::UnsafeSharedMemoryRegion& region,
- base::ProcessId remote_pid) {
- return base::UnsafeSharedMemoryRegion();
-}
-
-base::ReadOnlySharedMemoryRegion
-PpapiDispatcher::ShareReadOnlySharedMemoryRegionWithRemote(
- const base::ReadOnlySharedMemoryRegion& region,
- base::ProcessId remote_pid) {
- return base::ReadOnlySharedMemoryRegion();
-}
-
-std::set<PP_Instance>* PpapiDispatcher::GetGloballySeenInstanceIDSet() {
- return &instances_;
-}
-
-uint32_t PpapiDispatcher::Register(proxy::PluginDispatcher* plugin_dispatcher) {
- if (!plugin_dispatcher ||
- plugin_dispatchers_.size() >= std::numeric_limits<uint32_t>::max()) {
- return 0;
- }
-
- uint32_t id = 0;
- do {
- // Although it is unlikely, make sure that we won't cause any trouble
- // when the counter overflows.
- id = next_plugin_dispatcher_id_++;
- } while (id == 0 ||
- plugin_dispatchers_.find(id) != plugin_dispatchers_.end());
- plugin_dispatchers_[id] = plugin_dispatcher;
- return id;
-}
-
-void PpapiDispatcher::Unregister(uint32_t plugin_dispatcher_id) {
- plugin_dispatchers_.erase(plugin_dispatcher_id);
-}
-
-IPC::Sender* PpapiDispatcher::GetBrowserSender() {
- return this;
-}
-
-std::string PpapiDispatcher::GetUILanguage() {
- NOTIMPLEMENTED();
- return std::string();
-}
-
-void PpapiDispatcher::SetActiveURL(const std::string& url) {
- NOTIMPLEMENTED();
-}
-
-PP_Resource PpapiDispatcher::CreateBrowserFont(
- proxy::Connection connection,
- PP_Instance instance,
- const PP_BrowserFont_Trusted_Description& desc,
- const Preferences& prefs) {
- NOTIMPLEMENTED();
- return 0;
-}
-
-bool PpapiDispatcher::OnMessageReceived(const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(PpapiDispatcher, msg)
- IPC_MESSAGE_HANDLER(PpapiMsg_InitializeNaClDispatcher,
- OnMsgInitializeNaClDispatcher)
- // All other messages are simply forwarded to a PluginDispatcher.
- IPC_MESSAGE_UNHANDLED(OnPluginDispatcherMessageReceived(msg))
- IPC_END_MESSAGE_MAP()
- return true;
-}
-
-void PpapiDispatcher::OnChannelError() {
- exit(1);
-}
-
-bool PpapiDispatcher::Send(IPC::Message* msg) {
- return channel_->Send(msg);
-}
-
-void PpapiDispatcher::OnMsgInitializeNaClDispatcher(
- const PpapiNaClPluginArgs& args) {
- static bool command_line_and_logging_initialized = false;
- CHECK(!command_line_and_logging_initialized)
- << "InitializeNaClDispatcher must be called once per plugin.";
-
- command_line_and_logging_initialized = true;
- base::CommandLine::Init(0, NULL);
- for (size_t i = 0; i < args.switch_names.size(); ++i) {
- DCHECK(i < args.switch_values.size());
- base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- args.switch_names[i], args.switch_values[i]);
- }
- logging::LoggingSettings settings;
- settings.logging_dest =
- logging::LOG_TO_SYSTEM_DEBUG_LOG | logging::LOG_TO_STDERR;
- logging::InitLogging(settings);
-
- base::FeatureList::ClearInstanceForTesting();
- base::FeatureList::InitInstance(
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kEnableFeatures),
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kDisableFeatures));
-
- // Tell the process-global GetInterface which interfaces it can return to the
- // plugin.
- proxy::InterfaceList::SetProcessGlobalPermissions(args.permissions);
-
- int32_t error = ::PPP_InitializeModule(
- 0 /* module */,
- &proxy::PluginDispatcher::GetBrowserInterface);
- if (error)
- ::exit(error);
-
- proxy::PluginDispatcher* dispatcher =
- new proxy::PluginDispatcher(::PPP_GetInterface, args.permissions,
- args.off_the_record);
- if (!dispatcher->InitPluginWithChannel(this, base::kNullProcessId,
- renderer_ipc_handle_, false)) {
- delete dispatcher;
- return;
- }
- // From here, the dispatcher will manage its own lifetime according to the
- // lifetime of the attached channel.
-
- // Notify the renderer process, if necessary.
- ManifestService* manifest_service = GetManifestService();
- if (manifest_service)
- manifest_service->StartupInitializationComplete();
-}
-
-void PpapiDispatcher::OnPluginDispatcherMessageReceived(
- const IPC::Message& msg) {
- // The first parameter should be a plugin dispatcher ID.
- base::PickleIterator iter(msg);
- uint32_t id = 0;
- if (!iter.ReadUInt32(&id)) {
- NOTREACHED();
- }
- std::map<uint32_t, proxy::PluginDispatcher*>::iterator dispatcher =
- plugin_dispatchers_.find(id);
- if (dispatcher != plugin_dispatchers_.end())
- dispatcher->second->OnMessageReceived(msg);
-}
-
-} // namespace ppapi
diff --git a/nacl_irt/ppapi_dispatcher.h b/nacl_irt/ppapi_dispatcher.h
deleted file mode 100644
index d578db2..0000000
--- a/nacl_irt/ppapi_dispatcher.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// 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.
-
-#ifndef PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
-#define PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "base/files/file.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/process/process_handle.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_platform_file.h"
-#include "ipc/ipc_sender.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_proxy_delegate.h"
-
-struct PP_BrowserFont_Trusted_Description;
-
-namespace base {
-class SingleThreadTaskRunner;
-class WaitableEvent;
-} // namespace base
-
-namespace IPC {
-class Message;
-class SyncChannel;
-} // namespace IPC
-
-namespace ppapi {
-
-struct PpapiNaClPluginArgs;
-struct Preferences;
-
-// This class manages communication between the plugin and the browser, and
-// manages the PluginDispatcher instances for communication between the plugin
-// and the renderer.
-class PpapiDispatcher : public proxy::PluginDispatcher::PluginDelegate,
- public proxy::PluginProxyDelegate,
- public IPC::Listener,
- public IPC::Sender {
- public:
- PpapiDispatcher(scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
- base::WaitableEvent* shutdown_event,
- IPC::ChannelHandle browser_ipc_handle,
- IPC::ChannelHandle renderer_ipc_handle);
-
- // PluginDispatcher::PluginDelegate implementation.
- base::SingleThreadTaskRunner* GetIPCTaskRunner() override;
- base::WaitableEvent* GetShutdownEvent() override;
- IPC::PlatformFileForTransit ShareHandleWithRemote(
- base::PlatformFile handle,
- base::ProcessId peer_pid,
- bool should_close_source) override;
- base::UnsafeSharedMemoryRegion ShareUnsafeSharedMemoryRegionWithRemote(
- const base::UnsafeSharedMemoryRegion& region,
- base::ProcessId remote_pid) override;
- base::ReadOnlySharedMemoryRegion ShareReadOnlySharedMemoryRegionWithRemote(
- const base::ReadOnlySharedMemoryRegion& region,
- base::ProcessId remote_pid) override;
- std::set<PP_Instance>* GetGloballySeenInstanceIDSet() override;
- uint32_t Register(proxy::PluginDispatcher* plugin_dispatcher) override;
- void Unregister(uint32_t plugin_dispatcher_id) override;
-
- // PluginProxyDelegate implementation.
- IPC::Sender* GetBrowserSender() override;
- std::string GetUILanguage() override;
- void SetActiveURL(const std::string& url) override;
- PP_Resource CreateBrowserFont(proxy::Connection connection,
- PP_Instance instance,
- const PP_BrowserFont_Trusted_Description& desc,
- const Preferences& prefs) override;
-
- // IPC::Listener implementation.
- bool OnMessageReceived(const IPC::Message& message) override;
- void OnChannelError() override;
-
- // IPC::Sender implementation
- bool Send(IPC::Message* message) override;
-
- private:
- void OnMsgInitializeNaClDispatcher(const PpapiNaClPluginArgs& args);
- void OnPluginDispatcherMessageReceived(const IPC::Message& msg);
-
- std::set<PP_Instance> instances_;
- std::map<uint32_t, proxy::PluginDispatcher*> plugin_dispatchers_;
- uint32_t next_plugin_dispatcher_id_;
-
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
- base::WaitableEvent* shutdown_event_;
- IPC::ChannelHandle renderer_ipc_handle_;
- std::unique_ptr<IPC::SyncChannel> channel_;
-};
-
-} // namespace ppapi
-
-#endif // PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
diff --git a/nacl_irt/public/README b/nacl_irt/public/README
deleted file mode 100644
index 5e222a8..0000000
--- a/nacl_irt/public/README
+++ /dev/null
@@ -1,10 +0,0 @@
-
-This directory is for header files that are part of Native Client's
-stable ABI, as exposed under Chromium by NaCl's IRT interfaces. It
-defines how PPAPI is exposed to user code as a NaCl IRT interface. It
-does not define PPAPI itself, whose stable ABI is defined by the
-ppapi/c/ directory.
-
-This directory only defines NaCl IRT interfaces that are specific to
-Chromium's embedding of NaCl. Non-PPAPI-specific NaCl IRT
-interfaces are defined in native_client/src/untrusted/irt/irt.h.
diff --git a/nacl_irt/public/irt_ppapi.h b/nacl_irt/public/irt_ppapi.h
deleted file mode 100644
index 86ceb1a..0000000
--- a/nacl_irt/public/irt_ppapi.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
-#define PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "ppapi/c/ppp.h"
-
-struct PP_StartFunctions {
- int32_t (*PPP_InitializeModule)(PP_Module module_id,
- PPB_GetInterface get_browser_interface);
- void (*PPP_ShutdownModule)(void);
- const void* (*PPP_GetInterface)(const char* interface_name);
-};
-
-struct PP_ThreadFunctions {
- /*
- * This is a cut-down version of pthread_create()/pthread_join().
- * We omit thread creation attributes and the thread's return value.
- *
- * We use uintptr_t as the thread ID type because pthread_t is not
- * part of the stable ABI; a user thread library might choose an
- * arbitrary size for its own pthread_t.
- */
- int (*thread_create)(uintptr_t* tid,
- void (*func)(void* thread_argument),
- void* thread_argument);
- int (*thread_join)(uintptr_t tid);
-};
-
-#define NACL_IRT_PPAPIHOOK_v0_1 "nacl-irt-ppapihook-0.1"
-struct nacl_irt_ppapihook {
- int (*ppapi_start)(const struct PP_StartFunctions*);
- void (*ppapi_register_thread_creator)(const struct PP_ThreadFunctions*);
-};
-
-#endif // PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
diff --git a/native_client/BUILD.gn b/native_client/BUILD.gn
deleted file mode 100644
index e4210e3..0000000
--- a/native_client/BUILD.gn
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//build/config/features.gni")
-import("//build/config/nacl/config.gni")
-import("//components/nacl/features.gni")
-import("//components/nacl/target_cpu.gni")
-
-assert(enable_nacl)
-
-if (is_nacl) {
- group("ppapi_lib") {
- deps = [ "//ppapi/native_client/src/untrusted/irt_stub:ppapi_stub_lib" ]
- }
-
- executable("nacl_irt") {
- deps = [
- "//base",
- "//gpu/command_buffer/client",
- "//gpu/command_buffer/client:gles2_implementation",
- "//gpu/command_buffer/common",
- "//gpu/ipc/common:command_buffer_traits",
- "//ipc",
- "//media:shared_memory_support",
- "//native_client/src/shared/gio",
- "//native_client/src/shared/platform",
- "//native_client/src/tools/tls_edit($host_toolchain)",
- "//native_client/src/untrusted/irt:irt_core_lib",
- "//native_client/src/untrusted/nacl:imc_syscalls",
- "//ppapi/native_client/src/untrusted/pnacl_irt_shim:irt",
- "//ppapi/proxy",
- "//ppapi/proxy:ipc",
- "//ppapi/shared_impl",
- ]
-
- assert_no_deps = [
- # Skia is one of the easiest dependencies to accidentally add since a
- # bunch of graphics and GPU code uses it.
- "//skia/*",
- "//third_party/blink/*",
- ]
- }
-
- # TODO(phosek): We can remove this ugliness if we change the
- # IRT file name in components/nacl/browser/nacl_browser.cc
- if (current_cpu == "x86") {
- irt_cpu = "x86_32"
- } else if (current_cpu == "x64") {
- irt_cpu = "x86_64"
- } else if (current_cpu == "mipsel") {
- irt_cpu = "mips32"
- } else {
- irt_cpu = current_cpu
- }
- irt_name = "nacl_irt_" + irt_cpu + ".nexe"
-
- copy("nacl_irt_debug") {
- sources = [ "${root_out_dir}/exe.unstripped/nacl_irt.nexe" ]
- outputs = [ "${root_build_dir}/${irt_name}.debug" ]
- deps = [ ":nacl_irt" ]
- }
-
- action("nacl_irt_debuglink") {
- deps = [
- ":nacl_irt",
- ":nacl_irt_debug",
- ]
-
- objcopy = "${nacl_toolprefix}objcopy"
- if (host_os == "win") {
- objcopy += ".exe"
- }
-
- irt_stripped = "${root_out_dir}/nacl_irt.nexe"
- irt_debug = get_target_outputs(":nacl_irt_debug")
- irt_debug = irt_debug[0]
- irt_final = "${root_build_dir}/${irt_name}"
-
- inputs = [ objcopy ]
- sources = [
- irt_debug,
- irt_stripped,
- ]
- outputs = [ irt_final ]
-
- script = "irt_debuglink.py"
- args = [
- rebase_path(objcopy, root_build_dir),
- rebase_path(irt_debug, root_build_dir),
- rebase_path(irt_stripped, root_build_dir),
- rebase_path(irt_final, root_build_dir),
- ]
- }
-}
-
-group("irt") {
- # The nacl_irt needs to be marked as data dependency so that it's
- # properly resolved as runtime dependency. However, some target
- # use nacl_irt as input for actions which require it to be marked
- # as public dependency as well.
- irt_deps = [
- ":nacl_irt_debug(//build/toolchain/nacl:irt_${nacl_target_cpu})",
- ":nacl_irt_debuglink(//build/toolchain/nacl:irt_${nacl_target_cpu})",
- ]
- public_deps = irt_deps
- data_deps = irt_deps
-
- # On 32-bit Windows, we also ship the 64-bit IRT.
- if (is_win && target_cpu == "x86") {
- irt_x64_deps = [
- ":nacl_irt_debug(//build/toolchain/nacl:irt_x64)",
- ":nacl_irt_debuglink(//build/toolchain/nacl:irt_x64)",
- ]
- public_deps += irt_x64_deps
- data_deps += irt_x64_deps
- }
-}
diff --git a/native_client/DEPS b/native_client/DEPS
deleted file mode 100644
index 9b7539d..0000000
--- a/native_client/DEPS
+++ /dev/null
@@ -1,4 +0,0 @@
-include_rules = [
- "+native_client/src/include",
- "+native_client/src/untrusted",
-]
diff --git a/native_client/OWNERS b/native_client/OWNERS
deleted file mode 100644
index 991c121..0000000
--- a/native_client/OWNERS
+++ /dev/null
@@ -1,3 +0,0 @@
[email protected]
[email protected]
[email protected]
diff --git a/native_client/chrome_main.scons b/native_client/chrome_main.scons
deleted file mode 100644
index 39b47f9..0000000
--- a/native_client/chrome_main.scons
+++ /dev/null
@@ -1,524 +0,0 @@
-#! -*- python -*-
-# Copyright 2012 The Native Client Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import json
-import os
-import shutil
-import sys
-
-sys.path.append(Dir('#/tools').abspath)
-import command_tester
-import test_lib
-
-Import(['pre_base_env'])
-
-# Underlay things migrating to ppapi repo.
-Dir('#/..').addRepository(Dir('#/../ppapi'))
-
-# Append a list of files to another, filtering out the files that already exist.
-# Filtering helps migrate declarations between repos by preventing redundant
-# declarations from causing an error.
-def ExtendFileList(existing, additional):
- # Avoid quadratic behavior by using a set.
- combined = set()
- for file_name in existing + additional:
- if file_name in combined:
- print 'WARNING: two references to file %s in the build.' % file_name
- combined.add(file_name)
- return sorted(combined)
-
-
-ppapi_scons_files = {}
-ppapi_scons_files['trusted_scons_files'] = []
-ppapi_scons_files['untrusted_irt_scons_files'] = []
-
-ppapi_scons_files['nonvariant_test_scons_files'] = [
- 'tests/breakpad_crash_test/nacl.scons',
-]
-
-ppapi_scons_files['irt_variant_test_scons_files'] = [
- # 'inbrowser_test_runner' must be in the irt_variant list
- # otherwise it will run no tests.
- 'tests/nacl_browser/inbrowser_test_runner/nacl.scons',
-]
-
-ppapi_scons_files['untrusted_scons_files'] = [
- 'src/untrusted/irt_stub/nacl.scons',
-]
-
-
-EXTRA_ENV = [
- 'XAUTHORITY', 'HOME', 'DISPLAY', 'SSH_TTY', 'KRB5CCNAME',
- 'CHROME_DEVEL_SANDBOX' ]
-
-def SetupBrowserEnv(env):
- for var_name in EXTRA_ENV:
- if var_name in os.environ:
- env['ENV'][var_name] = os.environ[var_name]
-
-pre_base_env.AddMethod(SetupBrowserEnv)
-
-
-def GetHeadlessPrefix(env):
- if env.Bit('browser_headless') and env.Bit('host_linux'):
- return ['xvfb-run', '--auto-servernum']
- else:
- # Mac and Windows do not seem to have an equivalent.
- return []
-
-pre_base_env.AddMethod(GetHeadlessPrefix)
-
-
-# A fake file to depend on if a path to Chrome is not specified.
-no_browser = pre_base_env.File('chrome_browser_path_not_specified')
-
-
-# SCons attempts to run a test that depends on "no_browser", detect this at
-# runtime and cause a build error.
-def NoBrowserError(target, source, env):
- print target, source, env
- print ("***\nYou need to specificy chrome_browser_path=... on the " +
- "command line to run these tests.\n***\n")
- return 1
-
-pre_base_env.Append(BUILDERS = {
- 'NoBrowserError': Builder(action=NoBrowserError)
-})
-
-pre_base_env.NoBrowserError([no_browser], [])
-
-
-def ChromeBinary(env):
- if 'chrome_browser_path' in ARGUMENTS:
- return env.File(env.SConstructAbsPath(ARGUMENTS['chrome_browser_path']))
- else:
- return no_browser
-
-pre_base_env.AddMethod(ChromeBinary)
-
-
-# runnable-ld.so log has following format:
-# lib_name => path_to_lib (0x....address)
-def ParseLibInfoInRunnableLdLog(line):
- pos = line.find(' => ')
- if pos < 0:
- return None
- lib_name = line[:pos].strip()
- lib_path = line[pos+4:]
- pos1 = lib_path.rfind(' (')
- if pos1 < 0:
- return None
- lib_path = lib_path[:pos1]
- return lib_name, lib_path
-
-
-# Expected name of the temporary .libs file which stores glibc library
-# dependencies in "lib_name => lib_info" format
-# (see ParseLibInfoInRunnableLdLog)
-def GlibcManifestLibsListFilename(manifest_base_name):
- return '${STAGING_DIR}/%s.libs' % manifest_base_name
-
-
-# Copy libs and manifest to the target directory.
-# source[0] is a manifest file
-# source[1] is a .libs file with a list of libs generated by runnable-ld.so
-def CopyLibsForExtensionCommand(target, source, env):
- source_manifest = str(source[0])
- target_manifest = str(target[0])
- shutil.copyfile(source_manifest, target_manifest)
- target_dir = os.path.dirname(target_manifest)
- libs_file = open(str(source[1]), 'r')
- for line in libs_file.readlines():
- lib_info = ParseLibInfoInRunnableLdLog(line)
- if lib_info:
- lib_name, lib_path = lib_info
- if lib_path == 'NaClMain':
- # This is a fake file name, which we cannot copy.
- continue
- shutil.copyfile(lib_path, os.path.join(target_dir, lib_name))
- shutil.copyfile(env.subst('${NACL_SDK_LIB}/runnable-ld.so'),
- os.path.join(target_dir, 'runnable-ld.so'))
- libs_file.close()
-
-
-# Extensions are loaded from directory on disk and so all dynamic libraries
-# they use must be copied to extension directory. The option --extra_serving_dir
-# does not help us in this case.
-def CopyLibsForExtension(env, target_dir, manifest):
- if not env.Bit('nacl_glibc'):
- return env.Install(target_dir, manifest)
- manifest_base_name = os.path.basename(str(env.subst(manifest)))
- lib_list_node = env.File(GlibcManifestLibsListFilename(manifest_base_name))
- nmf_node = env.Command(
- target_dir + '/' + manifest_base_name,
- [manifest, lib_list_node],
- CopyLibsForExtensionCommand)
- return nmf_node
-
-pre_base_env.AddMethod(CopyLibsForExtension)
-
-
-
-def WhitelistLibsForExtensionCommand(target, source, env):
- # Load existing extension manifest.
- src_file = open(source[0].abspath, 'r')
- src_json = json.load(src_file)
- src_file.close()
-
- # Load existing 'web_accessible_resources' key.
- if 'web_accessible_resources' not in src_json:
- src_json['web_accessible_resources'] = []
- web_accessible = src_json['web_accessible_resources']
-
- # Load list of libraries, and add libraries to web_accessible list.
- libs_file = open(source[1].abspath, 'r')
- for line in libs_file.readlines():
- lib_info = ParseLibInfoInRunnableLdLog(line)
- if lib_info:
- web_accessible.append(lib_info[0])
- # Also add the dynamic loader, which won't be in the libs_file.
- web_accessible.append('runnable-ld.so')
- libs_file.close()
-
- # Write out the appended-to extension manifest.
- target_file = open(target[0].abspath, 'w')
- json.dump(src_json, target_file, sort_keys=True, indent=2)
- target_file.close()
-
-
-# Whitelist glibc shared libraries (if necessary), so that they are
-# 'web_accessible_resources'. This allows the libraries hosted at the origin
-# chrome-extension://[PACKAGE ID]/
-# to be made available to webpages that use this NaCl extension,
-# which are in a different origin.
-# See: http://code.google.com/chrome/extensions/manifest.html
-def WhitelistLibsForExtension(env, target_dir, nmf, extension_manifest):
- if env.Bit('nacl_static_link'):
- # For static linking, assume the nexe and nmf files are already
- # whitelisted, so there is no need to add entries to the extension_manifest.
- return env.Install(target_dir, extension_manifest)
- nmf_base_name = os.path.basename(env.File(nmf).abspath)
- lib_list_node = env.File(GlibcManifestLibsListFilename(nmf_base_name))
- manifest_base_name = os.path.basename(env.File(extension_manifest).abspath)
- extension_manifest_node = env.Command(
- target_dir + '/' + manifest_base_name,
- [extension_manifest, lib_list_node],
- WhitelistLibsForExtensionCommand)
- return extension_manifest_node
-
-pre_base_env.AddMethod(WhitelistLibsForExtension)
-
-
-# Generate manifest from newlib manifest and the list of libs generated by
-# runnable-ld.so.
-def GenerateManifestFunc(target, source, env):
- # Open the original manifest and parse it.
- source_file = open(str(source[0]), 'r')
- obj = json.load(source_file)
- source_file.close()
- # Open the file with ldd-format list of NEEDED libs and parse it.
- libs_file = open(str(source[1]), 'r')
- lib_names = []
- arch = env.subst('${TARGET_FULLARCH}')
- for line in libs_file.readlines():
- lib_info = ParseLibInfoInRunnableLdLog(line)
- if lib_info:
- lib_name, _ = lib_info
- lib_names.append(lib_name)
- libs_file.close()
- # Inject the NEEDED libs into the manifest.
- if 'files' not in obj:
- obj['files'] = {}
- for lib_name in lib_names:
- obj['files'][lib_name] = {}
- obj['files'][lib_name][arch] = {}
- obj['files'][lib_name][arch]['url'] = lib_name
- # Put what used to be specified under 'program' into 'main.nexe'.
- obj['files']['main.nexe'] = {}
- for k, v in obj['program'].items():
- obj['files']['main.nexe'][k] = v.copy()
- v['url'] = 'runnable-ld.so'
- # Write the new manifest!
- target_file = open(str(target[0]), 'w')
- json.dump(obj, target_file, sort_keys=True, indent=2)
- target_file.close()
- return 0
-
-
-def GenerateManifestDynamicLink(env, dest_file, lib_list_file,
- manifest, exe_file):
- # Run sel_ldr on the nexe to trace the NEEDED libraries.
- lib_list_node = env.Command(
- lib_list_file,
- [env.GetSelLdr(),
- '${NACL_SDK_LIB}/runnable-ld.so',
- exe_file,
- '${SCONSTRUCT_DIR}/DEPS'],
- # We ignore the return code using '-' in order to build tests
- # where binaries do not validate. This is a Scons feature.
- '-${SOURCES[0]} -a -E LD_TRACE_LOADED_OBJECTS=1 ${SOURCES[1]} '
- '--library-path ${NACL_SDK_LIB}:${LIB_DIR} ${SOURCES[2].posix} '
- '> ${TARGET}')
- return env.Command(dest_file,
- [manifest, lib_list_node],
- GenerateManifestFunc)[0]
-
-
-def GenerateSimpleManifestStaticLink(env, dest_file, exe_name):
- def Func(target, source, env):
- archs = ('x86-32', 'x86-64', 'arm')
- nmf_data = {'program': dict((arch, {'url': '%s_%s.nexe' % (exe_name, arch)})
- for arch in archs)}
- fh = open(target[0].abspath, 'w')
- json.dump(nmf_data, fh, sort_keys=True, indent=2)
- fh.close()
- node = env.Command(dest_file, [], Func)[0]
- # Scons does not track the dependency of dest_file on exe_name or on
- # the Python code above, so we should always recreate dest_file when
- # it is used.
- env.AlwaysBuild(node)
- return node
-
-
-def GenerateSimpleManifest(env, dest_file, exe_name):
- if env.Bit('nacl_static_link'):
- return GenerateSimpleManifestStaticLink(env, dest_file, exe_name)
- else:
- static_manifest = GenerateSimpleManifestStaticLink(
- env, '%s.static' % dest_file, exe_name)
- return GenerateManifestDynamicLink(
- env, dest_file, '%s.tmp_lib_list' % dest_file, static_manifest,
- '${STAGING_DIR}/%s.nexe' % env.ProgramNameForNmf(exe_name))
-
-pre_base_env.AddMethod(GenerateSimpleManifest)
-
-
-# Returns a pair (main program, is_portable), based on the program
-# specified in manifest file.
-def GetMainProgramFromManifest(env, manifest):
- obj = json.loads(env.File(manifest).get_contents())
- program_dict = obj['program']
- return program_dict[env.subst('${TARGET_FULLARCH}')]['url']
-
-
-# Returns scons node for generated manifest.
-def GeneratedManifestNode(env, manifest):
- manifest = env.subst(manifest)
- manifest_base_name = os.path.basename(manifest)
- main_program = GetMainProgramFromManifest(env, manifest)
- result = env.File('${STAGING_DIR}/' + manifest_base_name)
- # Always generate the manifest for nacl_glibc.
- # For nacl_glibc, generating the mapping of shared libraries is non-trivial.
- if not env.Bit('nacl_glibc'):
- env.Install('${STAGING_DIR}', manifest)
- return result
- return GenerateManifestDynamicLink(
- env, '${STAGING_DIR}/' + manifest_base_name,
- # Note that CopyLibsForExtension() and WhitelistLibsForExtension()
- # assume that it can find the library list file under this filename.
- GlibcManifestLibsListFilename(manifest_base_name),
- manifest,
- env.File('${STAGING_DIR}/' + os.path.basename(main_program)))
- return result
-
-
-# Compares output_file and golden_file.
-# If they are different, prints the difference and returns 1.
-# Otherwise, returns 0.
-def CheckGoldenFile(golden_file, output_file,
- filter_regex, filter_inverse, filter_group_only):
- golden = open(golden_file).read()
- actual = open(output_file).read()
- if filter_regex is not None:
- actual = test_lib.RegexpFilterLines(
- filter_regex,
- filter_inverse,
- filter_group_only,
- actual)
- if command_tester.DifferentFromGolden(actual, golden, output_file):
- return 1
- return 0
-
-
-# Returns action that compares output_file and golden_file.
-# This action can be attached to the node with
-# env.AddPostAction(target, action)
-def GoldenFileCheckAction(env, output_file, golden_file,
- filter_regex=None, filter_inverse=False,
- filter_group_only=False):
- def ActionFunc(target, source, env):
- return CheckGoldenFile(env.subst(golden_file), env.subst(output_file),
- filter_regex, filter_inverse, filter_group_only)
-
- return env.Action(ActionFunc)
-
-
-def PPAPIBrowserTester(env,
- target,
- url,
- files,
- nmfs=None,
- # List of executable basenames to generate
- # manifest files for.
- nmf_names=(),
- map_files=(),
- extensions=(),
- mime_types=(),
- timeout=30,
- log_verbosity=2,
- args=[],
- # list of key/value pairs that are passed to the test
- test_args=(),
- # list of "--flag=value" pairs (no spaces!)
- browser_flags=None,
- # redirect streams of NaCl program to files
- nacl_exe_stdin=None,
- nacl_exe_stdout=None,
- nacl_exe_stderr=None,
- python_tester_script=None,
- **extra):
- if 'TRUSTED_ENV' not in env:
- return []
-
- # Handle issues with mutating any python default arg lists.
- if browser_flags is None:
- browser_flags = []
-
- # Lint the extra arguments that are being passed to the tester.
- special_args = ['--ppapi_plugin', '--sel_ldr', '--irt_library', '--file',
- '--map_file', '--extension', '--mime_type', '--tool',
- '--browser_flag', '--test_arg']
- for arg_name in special_args:
- if arg_name in args:
- raise Exception('%s: %r is a test argument provided by the SCons test'
- ' wrapper, do not specify it as an additional argument' %
- (target, arg_name))
-
- env = env.Clone()
- env.SetupBrowserEnv()
-
- if 'scale_timeout' in ARGUMENTS:
- timeout = timeout * int(ARGUMENTS['scale_timeout'])
-
- if python_tester_script is None:
- python_tester_script = env.File('${SCONSTRUCT_DIR}/tools/browser_tester'
- '/browser_tester.py')
- command = env.GetHeadlessPrefix() + [
- '${PYTHON}', python_tester_script,
- '--browser_path', env.ChromeBinary(),
- '--url', url,
- # Fail if there is no response for X seconds.
- '--timeout', str(timeout)]
- for dep_file in files:
- command.extend(['--file', dep_file])
- for extension in extensions:
- command.extend(['--extension', extension])
- for dest_path, dep_file in map_files:
- command.extend(['--map_file', dest_path, dep_file])
- for file_ext, mime_type in mime_types:
- command.extend(['--mime_type', file_ext, mime_type])
- command.extend(['--serving_dir', '${NACL_SDK_LIB}'])
- command.extend(['--serving_dir', '${LIB_DIR}'])
- if 'browser_tester_bw' in ARGUMENTS:
- command.extend(['-b', ARGUMENTS['browser_tester_bw']])
- if not nmfs is None:
- for nmf_file in nmfs:
- generated_manifest = GeneratedManifestNode(env, nmf_file)
- # We need to add generated manifests to the list of default targets.
- # The manifests should be generated even if the tests are not run -
- # the manifests may be needed for manual testing.
- for group in env['COMPONENT_TEST_PROGRAM_GROUPS']:
- env.Alias(group, generated_manifest)
- # Generated manifests are served in the root of the HTTP server
- command.extend(['--file', generated_manifest])
- for nmf_name in nmf_names:
- tmp_manifest = '%s.tmp/%s.nmf' % (target, nmf_name)
- command.extend(['--map_file', '%s.nmf' % nmf_name,
- env.GenerateSimpleManifest(tmp_manifest, nmf_name)])
- if 'browser_test_tool' in ARGUMENTS:
- command.extend(['--tool', ARGUMENTS['browser_test_tool']])
-
- # Suppress debugging information on the Chrome waterfall.
- if env.Bit('disable_flaky_tests') and '--debug' in args:
- args.remove('--debug')
-
- command.extend(args)
- for flag in browser_flags:
- if flag.find(' ') != -1:
- raise Exception('Spaces not allowed in browser_flags: '
- 'use --flag=value instead')
- command.extend(['--browser_flag', flag])
- for key, value in test_args:
- command.extend(['--test_arg', str(key), str(value)])
-
- # Set a given file to be the nexe's stdin.
- if nacl_exe_stdin is not None:
- command.extend(['--nacl_exe_stdin', env.subst(nacl_exe_stdin['file'])])
-
- post_actions = []
- side_effects = []
- # Set a given file to be the nexe's stdout or stderr. The tester also
- # compares this output against a golden file.
- for stream, params in (
- ('stdout', nacl_exe_stdout),
- ('stderr', nacl_exe_stderr)):
- if params is None:
- continue
- stream_file = env.subst(params['file'])
- side_effects.append(stream_file)
- command.extend(['--nacl_exe_' + stream, stream_file])
- if 'golden' in params:
- golden_file = env.subst(params['golden'])
- filter_regex = params.get('filter_regex', None)
- filter_inverse = params.get('filter_inverse', False)
- filter_group_only = params.get('filter_group_only', False)
- post_actions.append(
- GoldenFileCheckAction(
- env, stream_file, golden_file,
- filter_regex, filter_inverse, filter_group_only))
-
- if env.ShouldUseVerboseOptions(extra):
- env.MakeVerboseExtraOptions(target, log_verbosity, extra)
- # Heuristic for when to capture output...
- capture_output = (extra.pop('capture_output', False)
- or 'process_output_single' in extra)
- node = env.CommandTest(target,
- command,
- # Set to 'huge' so that the browser tester's timeout
- # takes precedence over the default of the test_suite.
- size='huge',
- capture_output=capture_output,
- **extra)
- for side_effect in side_effects:
- env.SideEffect(side_effect, node)
- # We can't check output if the test is not run.
- if not env.Bit('do_not_run_tests'):
- for action in post_actions:
- env.AddPostAction(node, action)
- return node
-
-pre_base_env.AddMethod(PPAPIBrowserTester)
-
-
-# Disabled for ARM and MIPS because Chrome binaries for ARM and MIPS are not
-# available.
-def PPAPIBrowserTesterIsBroken(env):
- return env.Bit('build_arm') or env.Bit('build_mips32')
-
-pre_base_env.AddMethod(PPAPIBrowserTesterIsBroken)
-
-# 3D is disabled everywhere
-def PPAPIGraphics3DIsBroken(env):
- return True
-
-pre_base_env.AddMethod(PPAPIGraphics3DIsBroken)
-
-
-def AddChromeFilesFromGroup(env, file_group):
- env['BUILD_SCONSCRIPTS'] = ExtendFileList(
- env.get('BUILD_SCONSCRIPTS', []),
- ppapi_scons_files[file_group])
-
-pre_base_env.AddMethod(AddChromeFilesFromGroup)
diff --git a/native_client/irt_debuglink.py b/native_client/irt_debuglink.py
deleted file mode 100755
index 469cee7..0000000
--- a/native_client/irt_debuglink.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Run objcopy --add-gnu-debuglink for the NaCl IRT.
-"""
-
-import subprocess
-import sys
-
-
-def Main(args):
- objcopy, debug_file, stripped_file, output_file = args
- return subprocess.call([
- objcopy, '--add-gnu-debuglink', debug_file, stripped_file, output_file
- ])
-
-
-if __name__ == '__main__':
- sys.exit(Main(sys.argv[1:]))
diff --git a/native_client/nacl_test_data.gni b/native_client/nacl_test_data.gni
deleted file mode 100644
index bbcdc1a..0000000
--- a/native_client/nacl_test_data.gni
+++ /dev/null
@@ -1,336 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//build/config/nacl/config.gni")
-import("//build/config/nacl/rules.gni")
-import("//components/nacl/features.gni")
-import("//components/nacl/target_cpu.gni")
-
-assert(enable_nacl)
-
-if (current_cpu == "pnacl") {
- nacl_toolchain_variant = "pnacl"
-} else if (is_nacl_glibc) {
- nacl_toolchain_variant = "glibc"
-} else if (is_nacl_saigo) {
- nacl_toolchain_variant = "test_irt"
-} else {
- nacl_toolchain_variant = "newlib"
-}
-
-# Assemble data for Native Client based test
-#
-# Build a Native Client based test, including any additional support files
-# and copy them over to a toolchain-specific target directory.
-#
-# Variables:
-# output_name: name of the ouput file other than the default
-# sources: source files for a target
-# generate_nmf: whether to generate a manifest (default true)
-# pretranslate_pexe: whether to pre-translate pexe to nexe during build
-# nonstable_pexe: use non-finalized pexe (default false)
-# debug_pexe: copy both non-finalized and finalized pexe (default false)
-# destination_dir: the output directory relative to the $root_build_dir,
-# if ommitted the output directory is $root_build_dir and the manifest
-# will be suffixed with the name of the toolchain (optional)
-# test_files: additional test files to copy to $destination_dir (optional)
-# nmfflags: additional flags for the nmf generator (optional)
-template("nacl_test_data") {
- assert(defined(invoker.sources))
- forward_variables_from(invoker, [ "destination_dir" ])
-
- if (defined(invoker.output_name)) {
- output_name = invoker.output_name
- } else {
- output_name = target_name
- }
-
- if (current_cpu == "x64") {
- nmf_cpu = "x86_64"
- } else if (current_cpu == "x86") {
- nmf_cpu = "x86_32"
- } else {
- nmf_cpu = current_cpu
- }
-
- if (current_cpu == "pnacl" && defined(invoker.pretranslate_pexe)) {
- pretranslate_pexe = invoker.pretranslate_pexe
- } else {
- pretranslate_pexe = false
- }
-
- # Note this can't test "is_win" because it's evaluated in the NaCl
- # toolchain context where is_win==false because current_os=="nacl".
- # It tests target_cpu rather than current_cpu because it's also
- # needed in the current_cpu=="pnacl" && pretranslate_pexe case.
- if (target_os == "win" && target_cpu == "x86" &&
- (current_cpu == "x86" || pretranslate_pexe)) {
- # x86 Windows builds of Chrome run on both x86 Windows and x64
- # Windows. On x64 Windows, only x64 NaCl is supported, so those
- # tests are needed too.
- extra_tc_cpu = "x64"
- if (current_cpu == "x86") {
- extra_nmf_cpu = "x86_64"
- }
- }
-
- if (is_nacl_glibc) {
- suffix = "glibc_${nmf_cpu}"
- if (defined(extra_nmf_cpu)) {
- extra_suffix = "glibc_${extra_nmf_cpu}"
- glibc_tc = "//build/toolchain/nacl:glibc"
- assert(current_toolchain == "${glibc_tc}_${current_cpu}")
- extra_toolchain = "${glibc_tc}_${extra_tc_cpu}"
- }
- } else {
- suffix = "newlib_${nmf_cpu}"
- if (defined(extra_nmf_cpu)) {
- extra_suffix = "newlib_${extra_nmf_cpu}"
- newlib_tc = "//build/toolchain/nacl:clang_newlib"
- if (is_nacl_saigo) {
- newlib_tc = "//build/toolchain/nacl:test_irt"
- }
- assert(current_toolchain == "${newlib_tc}_${current_cpu}")
- extra_toolchain = "${newlib_tc}_${extra_tc_cpu}"
- }
- }
- suffixed_output_name = "${output_name}_${suffix}"
- if (defined(extra_nmf_cpu)) {
- extra_suffixed_output_name = "${output_name}_${extra_suffix}"
- }
- if (pretranslate_pexe) {
- pexe_translate_target_name = target_name + "_translate_pexe_"
- if (defined(extra_tc_cpu)) {
- # There will be an extra pretranslation done below for the
- # extra CPU (i.e. for x64 on x86 Windows).
- extra_pexe_translate_target_name =
- pexe_translate_target_name + extra_tc_cpu
- }
- pexe_translate_target_name += nacl_target_cpu
- }
- if (defined(invoker.generate_nmf)) {
- generate_nmf = invoker.generate_nmf
- } else {
- generate_nmf = true
- }
- nexe_target_name = target_name + "_nexe"
- nexe_copy_target_name = target_name + "_copy_nexe"
- if (current_cpu == "pnacl") {
- if (defined(invoker.debug_pexe) && invoker.debug_pexe) {
- pexe_copy_debug_target_name = target_name + "_copy_pexe_debug"
- }
- }
- if (generate_nmf) {
- nmf_target_name = target_name + "_nmf"
- }
- if (defined(invoker.test_files)) {
- test_files_target_name = target_name + "_test_files"
- }
- final_target_name = target_name
-
- # When the destination_dir is specified, the build artifacts end up
- # in the that directory and the manifest is the same as the target name.
- # When the destination_dir is not specified, the artifacts end up
- # in the root build directory and the manifests are suffixed to ensure
- # they do not overlap in case when we build the same test using multiple
- # different toolchains.
- if (defined(invoker.destination_dir)) {
- target_dir =
- "${root_build_dir}/${destination_dir}/${nacl_toolchain_variant}"
- if (generate_nmf) {
- nmf_name = output_name
- }
- } else {
- target_dir = root_build_dir
- if (generate_nmf) {
- nacl_toolchain_name = nacl_toolchain_variant
- nmf_name = "${output_name}_${nacl_toolchain_name}"
- }
- }
-
- executable(nexe_target_name) {
- visibility = [ ":*" ]
- output_name = suffixed_output_name
- sources = invoker.sources
- forward_variables_from(invoker,
- [
- "assert_no_deps",
- "cflags",
- "defines",
- "include_dirs",
- "ldflags",
- "libs",
- ])
- deps = [
- "//build/config/nacl:nacl_base",
- "//ppapi/c",
- "//ppapi/native_client:ppapi_lib",
- ]
- ldflags = [ "-pthread" ]
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
- }
-
- if (current_cpu == "pnacl" && pretranslate_pexe) {
- # This is a template so it can be invoked twice in the
- # defined(extra_tc_cpu) case below.
- template("nacl_test_data_pretranslate_pexe") {
- action(target_name) {
- translate_cpu = invoker.translate_cpu
-
- visibility = [ ":$nexe_copy_target_name" ]
-
- # We specify the toolchain explicitly because in the Non-SFI case, we
- # still want to use the pexe built using the newlib_pnacl toolchain.
- tests = ":ppapi_nacl_tests_nexe(//build/toolchain/nacl:newlib_pnacl)"
-
- pexe = get_label_info(tests, "root_out_dir") +
- "/${suffixed_output_name}.pexe"
- if (translate_cpu == "x86") {
- nmf_cpu = "x32"
- } else {
- nmf_cpu = translate_cpu
- }
- suffix = "pnacl_newlib_${nmf_cpu}"
- nexe = "${root_out_dir}/${output_name}_${suffix}.nexe"
-
- script = "${nacl_toolchain_bindir}/pydir/loader.py"
- sources = [ pexe ]
- outputs = [ nexe ]
-
- # TODO(phosek): remove the following once change 1360243003 is rolled
- # into Chrome and use translate_cpu directly.
- if (translate_cpu == "x86") {
- arch = "i686"
- } else if (translate_cpu == "x64") {
- arch = "x86-64"
- } else if (translate_cpu == "arm") {
- arch = "armv7"
- } else if (translate_cpu == "mipsel") {
- arch = "mipsel"
- }
-
- # The pre-translated object file has to be linked with an IRT shim to
- # get a runnable nexe. This is handled by pnacl-translate, which passes
- # -l:libpnacl_irt_shim.a to native linker, and we need to ensure the
- # linker can find the correct library.
- pnacl_irt_shim = "//ppapi/native_client/src/untrusted/pnacl_irt_shim:aot(//build/toolchain/nacl:clang_newlib_${translate_cpu})"
-
- args = [
- "pnacl-translate",
- rebase_path(pexe, root_build_dir),
- "-o",
- rebase_path(nexe, root_build_dir),
- "-arch",
- arch,
- "-Wl,-L" +
- rebase_path(get_label_info(pnacl_irt_shim, "target_out_dir"),
- root_build_dir),
- ]
- deps = [ ":$nexe_target_name(//build/toolchain/nacl:newlib_pnacl)" ]
- data_deps = [ pnacl_irt_shim ]
- }
- }
-
- nacl_test_data_pretranslate_pexe(pexe_translate_target_name) {
- translate_cpu = nacl_target_cpu
- }
- if (defined(extra_tc_cpu)) {
- nacl_test_data_pretranslate_pexe(extra_pexe_translate_target_name) {
- translate_cpu = extra_tc_cpu
- }
- }
- }
-
- copy(nexe_copy_target_name) {
- visibility = [ ":$final_target_name" ]
- if (generate_nmf) {
- visibility += [ ":$nmf_target_name" ]
- }
- if (current_cpu == "pnacl") {
- if (pretranslate_pexe) {
- sources = get_target_outputs(":${pexe_translate_target_name}")
- if (defined(extra_tc_cpu)) {
- sources += get_target_outputs(":${extra_pexe_translate_target_name}")
- }
- } else if (defined(invoker.nonstable_pexe) && invoker.nonstable_pexe) {
- sources =
- [ "${root_out_dir}/exe.unstripped/${suffixed_output_name}.pexe" ]
- } else {
- sources = [ "${root_out_dir}/${suffixed_output_name}.pexe" ]
- }
- } else {
- sources = [ "${root_out_dir}/${suffixed_output_name}.nexe" ]
- if (defined(extra_nmf_cpu)) {
- extra_root_out_dir =
- get_label_info(":${nexe_target_name}(${extra_toolchain})",
- "root_out_dir")
- sources +=
- [ "${extra_root_out_dir}/${extra_suffixed_output_name}.nexe" ]
- }
- }
- outputs = [ "${target_dir}/{{source_file_part}}" ]
- if (current_cpu == "pnacl" && pretranslate_pexe) {
- deps = [ ":$pexe_translate_target_name" ]
- if (defined(extra_tc_cpu)) {
- deps += [ ":$extra_pexe_translate_target_name" ]
- }
- } else {
- deps = [ ":$nexe_target_name" ]
- if (defined(extra_nmf_cpu)) {
- deps += [ ":${nexe_target_name}(${extra_toolchain})" ]
- }
- }
- }
-
- if (current_cpu == "pnacl") {
- if (defined(invoker.debug_pexe) && invoker.debug_pexe) {
- copy(pexe_copy_debug_target_name) {
- visibility = [ ":$final_target_name" ]
- sources =
- [ "${root_out_dir}/exe.unstripped/${suffixed_output_name}.pexe" ]
- outputs = [ "${target_dir}/{{source_name_part}}.pexe.debug" ]
- deps = [ ":$nexe_target_name" ]
- }
- }
- }
-
- if (generate_nmf) {
- generate_nmf(nmf_target_name) {
- visibility = [ ":$final_target_name" ]
- forward_variables_from(invoker, [ "nmfflags" ])
- nmf = "${target_dir}/${nmf_name}.nmf"
- executables = get_target_outputs(":$nexe_copy_target_name")
- if (is_nacl_glibc) {
- lib_prefix = "${output_name}_libs"
- stage_dependencies = target_dir
- }
- deps = [ ":$nexe_copy_target_name" ]
- }
- }
-
- if (defined(invoker.test_files)) {
- copy(test_files_target_name) {
- visibility = [ ":$final_target_name" ]
- sources = invoker.test_files
- outputs = [ "${target_dir}/{{source_file_part}}" ]
- }
- }
-
- group(final_target_name) {
- data_deps = [ ":$nexe_copy_target_name" ]
- if (current_cpu == "pnacl") {
- if (defined(invoker.debug_pexe) && invoker.debug_pexe) {
- data_deps += [ ":$pexe_copy_debug_target_name" ]
- }
- }
- if (generate_nmf) {
- data_deps += [ ":$nmf_target_name" ]
- }
- if (defined(invoker.test_files)) {
- data_deps += [ ":$test_files_target_name" ]
- }
- }
-}
diff --git a/native_client/src/shared/ppapi_proxy/ppruntime.h b/native_client/src/shared/ppapi_proxy/ppruntime.h
deleted file mode 100644
index c32a162..0000000
--- a/native_client/src/shared/ppapi_proxy/ppruntime.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2012 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_SHARED_PPAPI_PROXY_PPRUNTIME_H_
-#define PPAPI_NATIVE_CLIENT_SRC_SHARED_PPAPI_PROXY_PPRUNTIME_H_
-
-#include "native_client/src/include/portability.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-
-EXTERN_C_BEGIN
-
-// The entry point for the main thread of the PPAPI plugin process.
-int PpapiPluginMain(void);
-
-EXTERN_C_END
-
-#endif // PPAPI_NATIVE_CLIENT_SRC_SHARED_PPAPI_PROXY_PPRUNTIME_H_
diff --git a/native_client/src/untrusted/irt_stub/BUILD.gn b/native_client/src/untrusted/irt_stub/BUILD.gn
deleted file mode 100644
index 1c764d7..0000000
--- a/native_client/src/untrusted/irt_stub/BUILD.gn
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-assert(is_nacl,
- "These targets must only be built using the untrusted NaCl toolchains.")
-
-static_library("ppapi_stub_lib") {
- output_name = "ppapi_stub"
-
- # This library is distributed as a part of the SDK and as such has to
- # be a static library rather than a source set.
- sources = [
- "plugin_main_irt.c",
- "ppapi_plugin_main.c",
- "ppapi_plugin_start.c",
- "ppapi_start.h",
- "thread_creator.c",
- "thread_creator.h",
- ]
- configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
- configs += [ "//build/config/gcc:symbol_visibility_default" ]
- cflags = [ "-fPIC" ]
- deps = [ "//build/config/nacl:nacl_base" ]
-}
diff --git a/native_client/src/untrusted/irt_stub/libppapi.a b/native_client/src/untrusted/irt_stub/libppapi.a
deleted file mode 100644
index a25e446..0000000
--- a/native_client/src/untrusted/irt_stub/libppapi.a
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/*
- * This is a linker script installed as "libppapi.a" so that "-lppapi"
- * in a linking command will find it. We link in the ppapi_stub library
- * that defines a main function for PPAPI-based programs.
- * That library requires libpthread, so we link to it here as well.
- */
-
-INPUT ( libppapi_stub.a libpthread.a )
diff --git a/native_client/src/untrusted/irt_stub/libppapi.so b/native_client/src/untrusted/irt_stub/libppapi.so
deleted file mode 100644
index cb8e4f2..0000000
--- a/native_client/src/untrusted/irt_stub/libppapi.so
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/*
- * This is a linker script installed as "libppapi.so" so that "-lppapi"
- * in a linking command will find it. We supply the ppapi_stub library
- * that defines a main function for PPAPI-based programs. It's silly to
- * use a shared library for a tiny library that defines main and has
- * undefined symbols the application must define, so we link ppapi_stub
- * statically. That library requires libpthread, so we (dynamically)
- * link to it here as well.
- */
-
-INPUT ( libppapi_stub.a libpthread.so )
diff --git a/native_client/src/untrusted/irt_stub/nacl.scons b/native_client/src/untrusted/irt_stub/nacl.scons
deleted file mode 100644
index 7947f90..0000000
--- a/native_client/src/untrusted/irt_stub/nacl.scons
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- python -*-
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-Import('env')
-
-# We intentionally do not use NaClSdkLibrary() as we do not want
-# shared versions of this library
-libppapi_stub = env.ComponentLibrary('libppapi_stub', [
- 'ppapi_plugin_main.c',
- 'ppapi_plugin_start.c',
- 'plugin_main_irt.c',
- 'thread_creator.c'
- ])
-env.AddLibraryToSdk(libppapi_stub)
-
-env.AddObjectToSdk(['libppapi.a'])
-if not env.Bit('nacl_disable_shared'):
- env.AddObjectToSdk(['libppapi.so'])
- if env.Bit('bitcode'):
- pso = env.InstallAs('libppapi.pso', 'libppapi.so')
- env.AddObjectToSdk(pso)
diff --git a/native_client/src/untrusted/irt_stub/plugin_main_irt.c b/native_client/src/untrusted/irt_stub/plugin_main_irt.c
deleted file mode 100644
index f5b3cd8..0000000
--- a/native_client/src/untrusted/irt_stub/plugin_main_irt.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-
-/*
- * An application that doesn't define its own main but links in -lppapi
- * gets this one. A plugin may instead have its own main that calls
- * PpapiPluginMain (or PpapiPluginStart) after doing some other setup.
- */
-int main(void) {
- return PpapiPluginMain();
-}
diff --git a/native_client/src/untrusted/irt_stub/ppapi_plugin_main.c b/native_client/src/untrusted/irt_stub/ppapi_plugin_main.c
deleted file mode 100644
index 0c8367c..0000000
--- a/native_client/src/untrusted/irt_stub/ppapi_plugin_main.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-
-#include "ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h"
-
-/*
- * These are dangling references to functions that the application must define.
- */
-static const struct PP_StartFunctions ppapi_app_start_callbacks = {
- PPP_InitializeModule,
- PPP_ShutdownModule,
- PPP_GetInterface
-};
-
-/*
- * The application's main (or the one supplied in this library) calls this
- * to start the PPAPI world.
- */
-int PpapiPluginMain(void) {
- return PpapiPluginStart(&ppapi_app_start_callbacks);
-}
diff --git a/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c b/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c
deleted file mode 100644
index 504bdb9..0000000
--- a/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "native_client/src/include/elf32.h"
-#include "native_client/src/include/elf_auxv.h"
-#include "native_client/src/untrusted/irt/irt.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-#include "ppapi/native_client/src/untrusted/irt_stub/thread_creator.h"
-
-static void fatal_error(const char *message) {
- ssize_t wrote __attribute__((unused));
- wrote = write(2, message, strlen(message));
- _exit(127);
-}
-
-/*
- * TODO(mcgrathr): This function should not exist. If the startup calling
- * sequence were sane, this would be done someplace that has the initial
- * pointer locally rather than stealing it from environ. See
- * http://code.google.com/p/nativeclient/issues/detail?id=651
- */
-static Elf32_auxv_t *find_auxv(void) {
- /*
- * This presumes environ has its startup-time value on the stack.
- */
- char **ep = environ;
- while (*ep != NULL)
- ++ep;
- return (void *) (ep + 1);
-}
-
-/*
- * Scan the auxv for AT_SYSINFO, which is the pointer to the IRT query function.
- * TODO(mcgrathr): Could get this from __nacl_irt_query, where the libnacl
- * startup code stored it, but that would have to be also added as part of
- * the glibc ABI.
- */
-static TYPE_nacl_irt_query grok_auxv(const Elf32_auxv_t *auxv) {
- const Elf32_auxv_t *av;
- for (av = auxv; av->a_type != AT_NULL; ++av) {
- if (av->a_type == AT_SYSINFO)
- return (TYPE_nacl_irt_query) av->a_un.a_val;
- }
- return NULL;
-}
-
-int PpapiPluginStart(const struct PP_StartFunctions *funcs) {
- TYPE_nacl_irt_query query_func = grok_auxv(find_auxv());
-
- if (NULL == query_func)
- fatal_error("PpapiPluginStart: No AT_SYSINFO item found in auxv, "
- "so cannot start PPAPI. Is the IRT library not present?\n");
-
- struct nacl_irt_ppapihook hooks;
- if (sizeof(hooks) != query_func(NACL_IRT_PPAPIHOOK_v0_1,
- &hooks, sizeof(hooks)))
- fatal_error("PpapiPluginStart: PPAPI hooks not found\n");
-
- __nacl_register_thread_creator(&hooks);
-
- return hooks.ppapi_start(funcs);
-}
diff --git a/native_client/src/untrusted/irt_stub/ppapi_start.h b/native_client/src/untrusted/irt_stub/ppapi_start.h
deleted file mode 100644
index 509e39e..0000000
--- a/native_client/src/untrusted/irt_stub/ppapi_start.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_PPAPI_START_H_
-#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_PPAPI_START_H_
-
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-
-/*
- * Start PPAPI using the given set of callbacks to invoke the application code.
- * This returns nonzero on setup failure. On success, it returns only when
- * the PPAPI event loop has terminated, then returning zero.
- */
-int PpapiPluginStart(const struct PP_StartFunctions *funcs);
-
-#endif // PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_PPAPI_START_H_
diff --git a/native_client/src/untrusted/irt_stub/thread_creator.c b/native_client/src/untrusted/irt_stub/thread_creator.c
deleted file mode 100644
index a7ae296..0000000
--- a/native_client/src/untrusted/irt_stub/thread_creator.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2012 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "ppapi/native_client/src/untrusted/irt_stub/thread_creator.h"
-
-#include <pthread.h>
-
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/untrusted/irt/irt.h"
-
-
-static int thread_create(uintptr_t *tid,
- void (*func)(void *thread_argument),
- void *thread_argument) {
- /*
- * We know that newlib and glibc use a small pthread_t type, so we
- * do not need to wrap pthread_t values.
- */
- NACL_ASSERT_SAME_SIZE(pthread_t, uintptr_t);
-
- return pthread_create((pthread_t *) tid, NULL,
- (void *(*)(void *thread_argument)) func,
- thread_argument);
-}
-
-static int thread_join(uintptr_t tid) {
- return pthread_join((pthread_t) tid, NULL);
-}
-
-static const struct PP_ThreadFunctions thread_funcs = {
- thread_create,
- thread_join
-};
-
-/*
- * We cannot tell at link time whether the application uses PPB_Audio,
- * because of the way that PPAPI is defined via runtime interface
- * query rather than a set of static functions. This means that we
- * register the audio thread functions unconditionally. This adds the
- * small overhead of pulling in pthread_create() even if the
- * application does not use PPB_Audio or libpthread.
- *
- * If an application developer wants to avoid that cost, they can
- * override this function with an empty definition.
- */
-void __nacl_register_thread_creator(const struct nacl_irt_ppapihook *hooks) {
- hooks->ppapi_register_thread_creator(&thread_funcs);
-}
diff --git a/native_client/src/untrusted/irt_stub/thread_creator.h b/native_client/src/untrusted/irt_stub/thread_creator.h
deleted file mode 100644
index 40103f7..0000000
--- a/native_client/src/untrusted/irt_stub/thread_creator.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_THREAD_CREATOR_H_
-#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_THREAD_CREATOR_H_
-
-#include "native_client/src/untrusted/irt/irt.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void __nacl_register_thread_creator(const struct nacl_irt_ppapihook *hooks);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_THREAD_CREATOR_H_
diff --git a/native_client/src/untrusted/pnacl_irt_shim/BUILD.gn b/native_client/src/untrusted/pnacl_irt_shim/BUILD.gn
deleted file mode 100644
index 444d44b..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/BUILD.gn
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-assert(is_nacl,
- "These targets must only be built using the untrusted NaCl toolchains.")
-
-source_set("irt_ppapi") {
- sources = [ "//ppapi/nacl_irt/irt_ppapi.h" ]
-}
-
-# We need to actually ship this library in the SDK.
-static_library("aot") {
- output_name = "pnacl_irt_shim"
- sources = [
- "irt_shim_ppapi.c",
- "pnacl_shim.c",
- "shim_entry.c",
- "shim_ppapi.c",
- ]
- deps = [
- ":irt_ppapi",
- "//ppapi/c",
- ]
-
- # Indicate that this variant of the shim library should not depend on
- # the unstable/private IRT hook interface.
- defines = [ "PNACL_SHIM_AOT" ]
-}
-
-# We need to actually ship this library with component updater.
-# TODO(jvoung): Also strip-debug to keep the size of this down,
-# though it is only 14KB with debug info, so not a high priority.
-static_library("browser") {
- # Use a different name from the AOT variant. Have the
- # pnacl_support_extension rename this to the canonical name when
- # copying to the final target directory.
- output_name = "pnacl_irt_shim_browser"
- sources = [
- "shim_entry.c",
- "shim_ppapi.c",
- ]
-}
-
-# This is an intermediate "library" that gets linked into the IRT
-# executable, so this can just be a source_set.
-source_set("irt") {
- sources = [
- "irt_shim_ppapi.c",
- "pnacl_shim.c",
- ]
- deps = [
- ":irt_ppapi",
- "//ppapi/c",
- ]
-}
diff --git a/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c b/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c
deleted file mode 100644
index cfcea22..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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 "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
-
-#include <stdint.h>
-
-#include "native_client/src/untrusted/irt/irt.h"
-#include "ppapi/nacl_irt/irt_ppapi.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
-
-/*
- * Defines a version of the version irt_ppapi_start and of the irt_ppapihook
- * that returns a shimmed GetInterface for PNaCl.
- *
- * The hook will be linked into the IRT but it is considered unstable.
- * Stable nexes should not use that IRT hook (and a filter prevents
- * it from being used). Instead PNaCl nexes should embed the
- * irt_shim_ppapi_start and the shim functions directly into the nexe
- * for ABI stability.
- */
-
-static struct PP_StartFunctions g_user_start_functions;
-
-static int32_t shim_PPPInitializeModule(PP_Module module_id,
- PPB_GetInterface get_browser_intf) {
- /* Record the original PPB_GetInterface and provide a shimmed one. */
- __set_real_Pnacl_PPBGetInterface(get_browser_intf);
- return (*g_user_start_functions.PPP_InitializeModule)(
- module_id,
- &__Pnacl_PPBGetInterface);
-}
-
-static void shim_PPPShutdownModule(void) {
- (*g_user_start_functions.PPP_ShutdownModule)();
-}
-
-#ifdef PNACL_SHIM_AOT
- /*
- * This will be discovered and set by the shim, since we cannot link
- * against the IRT directly in the AOT library.
- */
-int (*real_irt_ppapi_start)(const struct PP_StartFunctions *) = NULL;
-#else
- /*
- * Otherwise, when linking directly into the IRT, we can refer to the
- * real irt_ppapi_start from irt_ppapi.
- */
-static int (* const real_irt_ppapi_start)(const struct PP_StartFunctions *) =
- &irt_ppapi_start;
-#endif
-
-int irt_shim_ppapi_start(const struct PP_StartFunctions *funcs) {
- g_user_start_functions = *funcs;
- /*
- * Record the original PPP_GetInterface and provide a shimmed one
- * via wrapped_ppapi_methods.
- */
- const struct PP_StartFunctions wrapped_ppapi_methods = {
- shim_PPPInitializeModule,
- shim_PPPShutdownModule,
- __Pnacl_PPPGetInterface
- };
- __set_real_Pnacl_PPPGetInterface(g_user_start_functions.PPP_GetInterface);
- /*
- * Invoke the IRT's ppapi_start interface with the wrapped interface.
- */
- return (*real_irt_ppapi_start)(&wrapped_ppapi_methods);
-}
-
-#ifndef PNACL_SHIM_AOT
-const struct nacl_irt_ppapihook nacl_irt_ppapihook_pnacl_private = {
- irt_shim_ppapi_start,
- PpapiPluginRegisterThreadCreator,
-};
-#endif
diff --git a/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h b/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h
deleted file mode 100644
index b62b7d7..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_IRT_SHIM_PPAPI_H_
-#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_IRT_SHIM_PPAPI_H_
-
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-
-#ifdef PNACL_SHIM_AOT
-
-/* Given a hook for the real irt ppapi start, get a shimmed ppapi_start. */
-extern int (*real_irt_ppapi_start)(const struct PP_StartFunctions *);
-extern int irt_shim_ppapi_start(const struct PP_StartFunctions *funcs);
-
-#else
-
-/*
- * A private version of the NACL_IRT_PPAPIHOOK_v0_1, which provides
- * PNaCl with shimmed IRT interfaces.
- */
-#define NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 \
- "nacl-irt-ppapihook-pnacl-private-0.1"
-extern const struct nacl_irt_ppapihook nacl_irt_ppapihook_pnacl_private;
-
-#endif
-
-#endif // PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_IRT_SHIM_PPAPI_H_
diff --git a/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c b/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c
deleted file mode 100644
index 5eab078..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c
+++ /dev/null
@@ -1,5495 +0,0 @@
-/* Copyright 2020 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* NOTE: this is auto-generated from IDL */
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
-
-#include "ppapi/c/ppb.h"
-#include "ppapi/c/dev/ppb_audio_input_dev.h"
-#include "ppapi/c/dev/ppb_audio_output_dev.h"
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/dev/ppb_video_capture_dev.h"
-#include "ppapi/c/dev/ppb_video_decoder_dev.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/c/ppb_file_ref.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/c/ppb_graphics_2d.h"
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/c/ppb_media_stream_audio_track.h"
-#include "ppapi/c/ppb_media_stream_video_track.h"
-#include "ppapi/c/ppb_message_loop.h"
-#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/c/ppb_mouse_lock.h"
-#include "ppapi/c/ppb_net_address.h"
-#include "ppapi/c/ppb_network_list.h"
-#include "ppapi/c/ppb_network_monitor.h"
-#include "ppapi/c/ppb_network_proxy.h"
-#include "ppapi/c/ppb_tcp_socket.h"
-#include "ppapi/c/ppb_text_input_controller.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/c/ppb_url_request_info.h"
-#include "ppapi/c/ppb_url_response_info.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/ppb_var_array.h"
-#include "ppapi/c/ppb_var_array_buffer.h"
-#include "ppapi/c/ppb_var_dictionary.h"
-#include "ppapi/c/ppb_video_decoder.h"
-#include "ppapi/c/ppb_video_encoder.h"
-#include "ppapi/c/ppb_vpn_provider.h"
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/c/private/ppb_camera_device_private.h"
-#include "ppapi/c/private/ppb_display_color_profile_private.h"
-#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
-#include "ppapi/c/private/ppb_file_io_private.h"
-#include "ppapi/c/private/ppb_file_ref_private.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/c/private/ppb_instance_private.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
-#include "ppapi/c/private/ppb_tcp_socket_private.h"
-#include "ppapi/c/private/ppb_testing_private.h"
-#include "ppapi/c/private/ppb_udp_socket_private.h"
-#include "ppapi/c/private/ppb_uma_private.h"
-#include "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/c/private/ppp_instance_private.h"
-
-/* Use local strcmp to avoid dependency on libc. */
-static int mystrcmp(const char* s1, const char *s2) {
- while (1) {
- if (*s1 == 0) break;
- if (*s2 == 0) break;
- if (*s1 != *s2) break;
- ++s1;
- ++s2;
- }
- return (int)(*s1) - (int)(*s2);
-}
-
-/* BEGIN Declarations for all Wrapper Infos */
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Console_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Core_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileSystem_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics3D_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MessageLoop_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseLock_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkList_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkProxy_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TextInputController_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLLoader_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarDictionary_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoEncoder_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoEncoder_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VpnProvider_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WebSocket_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Messaging_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Printing_Dev_0_7;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Instance_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IsolatedFileSystem_Private_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Testing_Private_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Instance_Private_0_1;
-/* END Declarations for all Wrapper Infos. */
-
-/* Not generating wrapper methods for PPB_Audio_1_0 */
-
-/* Not generating wrapper methods for PPB_Audio_1_1 */
-
-/* Not generating wrapper methods for PPB_AudioBuffer_0_1 */
-
-/* Not generating wrapper methods for PPB_AudioConfig_1_0 */
-
-/* Not generating wrapper methods for PPB_AudioConfig_1_1 */
-
-/* Begin wrapper methods for PPB_Console_1_0 */
-
-static void Pnacl_M25_PPB_Console_Log(PP_Instance instance, PP_LogLevel level, struct PP_Var* value) {
- const struct PPB_Console_1_0 *iface = Pnacl_WrapperInfo_PPB_Console_1_0.real_iface;
- iface->Log(instance, level, *value);
-}
-
-static void Pnacl_M25_PPB_Console_LogWithSource(PP_Instance instance, PP_LogLevel level, struct PP_Var* source, struct PP_Var* value) {
- const struct PPB_Console_1_0 *iface = Pnacl_WrapperInfo_PPB_Console_1_0.real_iface;
- iface->LogWithSource(instance, level, *source, *value);
-}
-
-/* End wrapper methods for PPB_Console_1_0 */
-
-/* Begin wrapper methods for PPB_Core_1_0 */
-
-static void Pnacl_M14_PPB_Core_AddRefResource(PP_Resource resource) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- iface->AddRefResource(resource);
-}
-
-static void Pnacl_M14_PPB_Core_ReleaseResource(PP_Resource resource) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- iface->ReleaseResource(resource);
-}
-
-static PP_Time Pnacl_M14_PPB_Core_GetTime(void) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- return iface->GetTime();
-}
-
-static PP_TimeTicks Pnacl_M14_PPB_Core_GetTimeTicks(void) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- return iface->GetTimeTicks();
-}
-
-static void Pnacl_M14_PPB_Core_CallOnMainThread(int32_t delay_in_milliseconds, struct PP_CompletionCallback* callback, int32_t result) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- iface->CallOnMainThread(delay_in_milliseconds, *callback, result);
-}
-
-static PP_Bool Pnacl_M14_PPB_Core_IsMainThread(void) {
- const struct PPB_Core_1_0 *iface = Pnacl_WrapperInfo_PPB_Core_1_0.real_iface;
- return iface->IsMainThread();
-}
-
-/* End wrapper methods for PPB_Core_1_0 */
-
-/* Begin wrapper methods for PPB_FileIO_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_FileIO_Create(PP_Instance instance) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M14_PPB_FileIO_IsFileIO(PP_Resource resource) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->IsFileIO(resource);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Open(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Open(file_io, file_ref, open_flags, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Query(PP_Resource file_io, struct PP_FileInfo* info, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Query(file_io, info, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Touch(PP_Resource file_io, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Touch(file_io, last_access_time, last_modified_time, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Read(PP_Resource file_io, int64_t offset, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Read(file_io, offset, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Write(PP_Resource file_io, int64_t offset, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Write(file_io, offset, buffer, bytes_to_write, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_SetLength(PP_Resource file_io, int64_t length, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->SetLength(file_io, length, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileIO_Flush(PP_Resource file_io, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- return iface->Flush(file_io, *callback);
-}
-
-static void Pnacl_M14_PPB_FileIO_Close(PP_Resource file_io) {
- const struct PPB_FileIO_1_0 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_0.real_iface;
- iface->Close(file_io);
-}
-
-/* End wrapper methods for PPB_FileIO_1_0 */
-
-/* Begin wrapper methods for PPB_FileIO_1_1 */
-
-static PP_Resource Pnacl_M25_PPB_FileIO_Create(PP_Instance instance) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M25_PPB_FileIO_IsFileIO(PP_Resource resource) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->IsFileIO(resource);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Open(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Open(file_io, file_ref, open_flags, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Query(PP_Resource file_io, struct PP_FileInfo* info, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Query(file_io, info, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Touch(PP_Resource file_io, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Touch(file_io, last_access_time, last_modified_time, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Read(PP_Resource file_io, int64_t offset, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Read(file_io, offset, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Write(PP_Resource file_io, int64_t offset, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Write(file_io, offset, buffer, bytes_to_write, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_SetLength(PP_Resource file_io, int64_t length, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->SetLength(file_io, length, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_Flush(PP_Resource file_io, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->Flush(file_io, *callback);
-}
-
-static void Pnacl_M25_PPB_FileIO_Close(PP_Resource file_io) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- iface->Close(file_io);
-}
-
-static int32_t Pnacl_M25_PPB_FileIO_ReadToArray(PP_Resource file_io, int64_t offset, int32_t max_read_length, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_1_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_1_1.real_iface;
- return iface->ReadToArray(file_io, offset, max_read_length, output, *callback);
-}
-
-/* End wrapper methods for PPB_FileIO_1_1 */
-
-/* Begin wrapper methods for PPB_FileRef_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_FileRef_Create(PP_Resource file_system, const char* path) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->Create(file_system, path);
-}
-
-static PP_Bool Pnacl_M14_PPB_FileRef_IsFileRef(PP_Resource resource) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->IsFileRef(resource);
-}
-
-static PP_FileSystemType Pnacl_M14_PPB_FileRef_GetFileSystemType(PP_Resource file_ref) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->GetFileSystemType(file_ref);
-}
-
-static void Pnacl_M14_PPB_FileRef_GetName(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- *_struct_result = iface->GetName(file_ref);
-}
-
-static void Pnacl_M14_PPB_FileRef_GetPath(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- *_struct_result = iface->GetPath(file_ref);
-}
-
-static PP_Resource Pnacl_M14_PPB_FileRef_GetParent(PP_Resource file_ref) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->GetParent(file_ref);
-}
-
-static int32_t Pnacl_M14_PPB_FileRef_MakeDirectory(PP_Resource directory_ref, PP_Bool make_ancestors, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->MakeDirectory(directory_ref, make_ancestors, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileRef_Touch(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->Touch(file_ref, last_access_time, last_modified_time, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileRef_Delete(PP_Resource file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->Delete(file_ref, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_FileRef_Rename(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_0 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_0.real_iface;
- return iface->Rename(file_ref, new_file_ref, *callback);
-}
-
-/* End wrapper methods for PPB_FileRef_1_0 */
-
-/* Begin wrapper methods for PPB_FileRef_1_1 */
-
-static PP_Resource Pnacl_M28_PPB_FileRef_Create(PP_Resource file_system, const char* path) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->Create(file_system, path);
-}
-
-static PP_Bool Pnacl_M28_PPB_FileRef_IsFileRef(PP_Resource resource) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->IsFileRef(resource);
-}
-
-static PP_FileSystemType Pnacl_M28_PPB_FileRef_GetFileSystemType(PP_Resource file_ref) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->GetFileSystemType(file_ref);
-}
-
-static void Pnacl_M28_PPB_FileRef_GetName(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- *_struct_result = iface->GetName(file_ref);
-}
-
-static void Pnacl_M28_PPB_FileRef_GetPath(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- *_struct_result = iface->GetPath(file_ref);
-}
-
-static PP_Resource Pnacl_M28_PPB_FileRef_GetParent(PP_Resource file_ref) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->GetParent(file_ref);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_MakeDirectory(PP_Resource directory_ref, PP_Bool make_ancestors, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->MakeDirectory(directory_ref, make_ancestors, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_Touch(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->Touch(file_ref, last_access_time, last_modified_time, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_Delete(PP_Resource file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->Delete(file_ref, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_Rename(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->Rename(file_ref, new_file_ref, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_Query(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->Query(file_ref, info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_FileRef_ReadDirectoryEntries(PP_Resource file_ref, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_1 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_1.real_iface;
- return iface->ReadDirectoryEntries(file_ref, *output, *callback);
-}
-
-/* End wrapper methods for PPB_FileRef_1_1 */
-
-/* Begin wrapper methods for PPB_FileRef_1_2 */
-
-static PP_Resource Pnacl_M34_PPB_FileRef_Create(PP_Resource file_system, const char* path) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->Create(file_system, path);
-}
-
-static PP_Bool Pnacl_M34_PPB_FileRef_IsFileRef(PP_Resource resource) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->IsFileRef(resource);
-}
-
-static PP_FileSystemType Pnacl_M34_PPB_FileRef_GetFileSystemType(PP_Resource file_ref) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->GetFileSystemType(file_ref);
-}
-
-static void Pnacl_M34_PPB_FileRef_GetName(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- *_struct_result = iface->GetName(file_ref);
-}
-
-static void Pnacl_M34_PPB_FileRef_GetPath(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- *_struct_result = iface->GetPath(file_ref);
-}
-
-static PP_Resource Pnacl_M34_PPB_FileRef_GetParent(PP_Resource file_ref) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->GetParent(file_ref);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_MakeDirectory(PP_Resource directory_ref, int32_t make_directory_flags, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->MakeDirectory(directory_ref, make_directory_flags, *callback);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_Touch(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->Touch(file_ref, last_access_time, last_modified_time, *callback);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_Delete(PP_Resource file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->Delete(file_ref, *callback);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_Rename(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->Rename(file_ref, new_file_ref, *callback);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_Query(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->Query(file_ref, info, *callback);
-}
-
-static int32_t Pnacl_M34_PPB_FileRef_ReadDirectoryEntries(PP_Resource file_ref, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
- return iface->ReadDirectoryEntries(file_ref, *output, *callback);
-}
-
-/* End wrapper methods for PPB_FileRef_1_2 */
-
-/* Begin wrapper methods for PPB_FileSystem_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_FileSystem_Create(PP_Instance instance, PP_FileSystemType type) {
- const struct PPB_FileSystem_1_0 *iface = Pnacl_WrapperInfo_PPB_FileSystem_1_0.real_iface;
- return iface->Create(instance, type);
-}
-
-static PP_Bool Pnacl_M14_PPB_FileSystem_IsFileSystem(PP_Resource resource) {
- const struct PPB_FileSystem_1_0 *iface = Pnacl_WrapperInfo_PPB_FileSystem_1_0.real_iface;
- return iface->IsFileSystem(resource);
-}
-
-static int32_t Pnacl_M14_PPB_FileSystem_Open(PP_Resource file_system, int64_t expected_size, struct PP_CompletionCallback* callback) {
- const struct PPB_FileSystem_1_0 *iface = Pnacl_WrapperInfo_PPB_FileSystem_1_0.real_iface;
- return iface->Open(file_system, expected_size, *callback);
-}
-
-static PP_FileSystemType Pnacl_M14_PPB_FileSystem_GetType(PP_Resource file_system) {
- const struct PPB_FileSystem_1_0 *iface = Pnacl_WrapperInfo_PPB_FileSystem_1_0.real_iface;
- return iface->GetType(file_system);
-}
-
-/* End wrapper methods for PPB_FileSystem_1_0 */
-
-/* Not generating wrapper methods for PPB_Fullscreen_1_0 */
-
-/* Not generating wrapper methods for PPB_Gamepad_1_0 */
-
-/* Begin wrapper methods for PPB_Graphics2D_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_Graphics2D_Create(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- return iface->Create(instance, size, is_always_opaque);
-}
-
-static PP_Bool Pnacl_M14_PPB_Graphics2D_IsGraphics2D(PP_Resource resource) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- return iface->IsGraphics2D(resource);
-}
-
-static PP_Bool Pnacl_M14_PPB_Graphics2D_Describe(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- return iface->Describe(graphics_2d, size, is_always_opaque);
-}
-
-static void Pnacl_M14_PPB_Graphics2D_PaintImageData(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- iface->PaintImageData(graphics_2d, image_data, top_left, src_rect);
-}
-
-static void Pnacl_M14_PPB_Graphics2D_Scroll(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- iface->Scroll(graphics_2d, clip_rect, amount);
-}
-
-static void Pnacl_M14_PPB_Graphics2D_ReplaceContents(PP_Resource graphics_2d, PP_Resource image_data) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- iface->ReplaceContents(graphics_2d, image_data);
-}
-
-static int32_t Pnacl_M14_PPB_Graphics2D_Flush(PP_Resource graphics_2d, struct PP_CompletionCallback* callback) {
- const struct PPB_Graphics2D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_0.real_iface;
- return iface->Flush(graphics_2d, *callback);
-}
-
-/* End wrapper methods for PPB_Graphics2D_1_0 */
-
-/* Begin wrapper methods for PPB_Graphics2D_1_1 */
-
-static PP_Resource Pnacl_M27_PPB_Graphics2D_Create(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->Create(instance, size, is_always_opaque);
-}
-
-static PP_Bool Pnacl_M27_PPB_Graphics2D_IsGraphics2D(PP_Resource resource) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->IsGraphics2D(resource);
-}
-
-static PP_Bool Pnacl_M27_PPB_Graphics2D_Describe(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->Describe(graphics_2d, size, is_always_opaque);
-}
-
-static void Pnacl_M27_PPB_Graphics2D_PaintImageData(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- iface->PaintImageData(graphics_2d, image_data, top_left, src_rect);
-}
-
-static void Pnacl_M27_PPB_Graphics2D_Scroll(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- iface->Scroll(graphics_2d, clip_rect, amount);
-}
-
-static void Pnacl_M27_PPB_Graphics2D_ReplaceContents(PP_Resource graphics_2d, PP_Resource image_data) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- iface->ReplaceContents(graphics_2d, image_data);
-}
-
-static int32_t Pnacl_M27_PPB_Graphics2D_Flush(PP_Resource graphics_2d, struct PP_CompletionCallback* callback) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->Flush(graphics_2d, *callback);
-}
-
-static PP_Bool Pnacl_M27_PPB_Graphics2D_SetScale(PP_Resource resource, float scale) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->SetScale(resource, scale);
-}
-
-static float Pnacl_M27_PPB_Graphics2D_GetScale(PP_Resource resource) {
- const struct PPB_Graphics2D_1_1 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_1.real_iface;
- return iface->GetScale(resource);
-}
-
-/* End wrapper methods for PPB_Graphics2D_1_1 */
-
-/* Begin wrapper methods for PPB_Graphics2D_1_2 */
-
-static PP_Resource Pnacl_M52_PPB_Graphics2D_Create(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->Create(instance, size, is_always_opaque);
-}
-
-static PP_Bool Pnacl_M52_PPB_Graphics2D_IsGraphics2D(PP_Resource resource) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->IsGraphics2D(resource);
-}
-
-static PP_Bool Pnacl_M52_PPB_Graphics2D_Describe(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->Describe(graphics_2d, size, is_always_opaque);
-}
-
-static void Pnacl_M52_PPB_Graphics2D_PaintImageData(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- iface->PaintImageData(graphics_2d, image_data, top_left, src_rect);
-}
-
-static void Pnacl_M52_PPB_Graphics2D_Scroll(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- iface->Scroll(graphics_2d, clip_rect, amount);
-}
-
-static void Pnacl_M52_PPB_Graphics2D_ReplaceContents(PP_Resource graphics_2d, PP_Resource image_data) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- iface->ReplaceContents(graphics_2d, image_data);
-}
-
-static int32_t Pnacl_M52_PPB_Graphics2D_Flush(PP_Resource graphics_2d, struct PP_CompletionCallback* callback) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->Flush(graphics_2d, *callback);
-}
-
-static PP_Bool Pnacl_M52_PPB_Graphics2D_SetScale(PP_Resource resource, float scale) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->SetScale(resource, scale);
-}
-
-static float Pnacl_M52_PPB_Graphics2D_GetScale(PP_Resource resource) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->GetScale(resource);
-}
-
-static PP_Bool Pnacl_M52_PPB_Graphics2D_SetLayerTransform(PP_Resource resource, float scale, const struct PP_Point* origin, const struct PP_Point* translate) {
- const struct PPB_Graphics2D_1_2 *iface = Pnacl_WrapperInfo_PPB_Graphics2D_1_2.real_iface;
- return iface->SetLayerTransform(resource, scale, origin, translate);
-}
-
-/* End wrapper methods for PPB_Graphics2D_1_2 */
-
-/* Begin wrapper methods for PPB_Graphics3D_1_0 */
-
-static int32_t Pnacl_M15_PPB_Graphics3D_GetAttribMaxValue(PP_Resource instance, int32_t attribute, int32_t* value) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->GetAttribMaxValue(instance, attribute, value);
-}
-
-static PP_Resource Pnacl_M15_PPB_Graphics3D_Create(PP_Instance instance, PP_Resource share_context, const int32_t attrib_list[]) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->Create(instance, share_context, attrib_list);
-}
-
-static PP_Bool Pnacl_M15_PPB_Graphics3D_IsGraphics3D(PP_Resource resource) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->IsGraphics3D(resource);
-}
-
-static int32_t Pnacl_M15_PPB_Graphics3D_GetAttribs(PP_Resource context, int32_t attrib_list[]) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->GetAttribs(context, attrib_list);
-}
-
-static int32_t Pnacl_M15_PPB_Graphics3D_SetAttribs(PP_Resource context, const int32_t attrib_list[]) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->SetAttribs(context, attrib_list);
-}
-
-static int32_t Pnacl_M15_PPB_Graphics3D_GetError(PP_Resource context) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->GetError(context);
-}
-
-static int32_t Pnacl_M15_PPB_Graphics3D_ResizeBuffers(PP_Resource context, int32_t width, int32_t height) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->ResizeBuffers(context, width, height);
-}
-
-static int32_t Pnacl_M15_PPB_Graphics3D_SwapBuffers(PP_Resource context, struct PP_CompletionCallback* callback) {
- const struct PPB_Graphics3D_1_0 *iface = Pnacl_WrapperInfo_PPB_Graphics3D_1_0.real_iface;
- return iface->SwapBuffers(context, *callback);
-}
-
-/* End wrapper methods for PPB_Graphics3D_1_0 */
-
-/* Begin wrapper methods for PPB_HostResolver_1_0 */
-
-static PP_Resource Pnacl_M29_PPB_HostResolver_Create(PP_Instance instance) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M29_PPB_HostResolver_IsHostResolver(PP_Resource resource) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- return iface->IsHostResolver(resource);
-}
-
-static int32_t Pnacl_M29_PPB_HostResolver_Resolve(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Hint* hint, struct PP_CompletionCallback* callback) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- return iface->Resolve(host_resolver, host, port, hint, *callback);
-}
-
-static void Pnacl_M29_PPB_HostResolver_GetCanonicalName(struct PP_Var* _struct_result, PP_Resource host_resolver) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- *_struct_result = iface->GetCanonicalName(host_resolver);
-}
-
-static uint32_t Pnacl_M29_PPB_HostResolver_GetNetAddressCount(PP_Resource host_resolver) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- return iface->GetNetAddressCount(host_resolver);
-}
-
-static PP_Resource Pnacl_M29_PPB_HostResolver_GetNetAddress(PP_Resource host_resolver, uint32_t index) {
- const struct PPB_HostResolver_1_0 *iface = Pnacl_WrapperInfo_PPB_HostResolver_1_0.real_iface;
- return iface->GetNetAddress(host_resolver, index);
-}
-
-/* End wrapper methods for PPB_HostResolver_1_0 */
-
-/* Not generating wrapper methods for PPB_ImageData_1_0 */
-
-/* Not generating wrapper methods for PPB_InputEvent_1_0 */
-
-/* Begin wrapper methods for PPB_MouseInputEvent_1_0 */
-
-static PP_Resource Pnacl_M13_PPB_MouseInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count) {
- const struct PPB_MouseInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers, mouse_button, mouse_position, click_count);
-}
-
-static PP_Bool Pnacl_M13_PPB_MouseInputEvent_IsMouseInputEvent(PP_Resource resource) {
- const struct PPB_MouseInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0.real_iface;
- return iface->IsMouseInputEvent(resource);
-}
-
-static PP_InputEvent_MouseButton Pnacl_M13_PPB_MouseInputEvent_GetButton(PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0.real_iface;
- return iface->GetButton(mouse_event);
-}
-
-static void Pnacl_M13_PPB_MouseInputEvent_GetPosition(struct PP_Point* _struct_result, PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0.real_iface;
- *_struct_result = iface->GetPosition(mouse_event);
-}
-
-static int32_t Pnacl_M13_PPB_MouseInputEvent_GetClickCount(PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0.real_iface;
- return iface->GetClickCount(mouse_event);
-}
-
-/* End wrapper methods for PPB_MouseInputEvent_1_0 */
-
-/* Begin wrapper methods for PPB_MouseInputEvent_1_1 */
-
-static PP_Resource Pnacl_M14_PPB_MouseInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count, const struct PP_Point* mouse_movement) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers, mouse_button, mouse_position, click_count, mouse_movement);
-}
-
-static PP_Bool Pnacl_M14_PPB_MouseInputEvent_IsMouseInputEvent(PP_Resource resource) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- return iface->IsMouseInputEvent(resource);
-}
-
-static PP_InputEvent_MouseButton Pnacl_M14_PPB_MouseInputEvent_GetButton(PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- return iface->GetButton(mouse_event);
-}
-
-static void Pnacl_M14_PPB_MouseInputEvent_GetPosition(struct PP_Point* _struct_result, PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- *_struct_result = iface->GetPosition(mouse_event);
-}
-
-static int32_t Pnacl_M14_PPB_MouseInputEvent_GetClickCount(PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- return iface->GetClickCount(mouse_event);
-}
-
-static void Pnacl_M14_PPB_MouseInputEvent_GetMovement(struct PP_Point* _struct_result, PP_Resource mouse_event) {
- const struct PPB_MouseInputEvent_1_1 *iface = Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1.real_iface;
- *_struct_result = iface->GetMovement(mouse_event);
-}
-
-/* End wrapper methods for PPB_MouseInputEvent_1_1 */
-
-/* Begin wrapper methods for PPB_WheelInputEvent_1_0 */
-
-static PP_Resource Pnacl_M13_PPB_WheelInputEvent_Create(PP_Instance instance, PP_TimeTicks time_stamp, uint32_t modifiers, const struct PP_FloatPoint* wheel_delta, const struct PP_FloatPoint* wheel_ticks, PP_Bool scroll_by_page) {
- const struct PPB_WheelInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0.real_iface;
- return iface->Create(instance, time_stamp, modifiers, wheel_delta, wheel_ticks, scroll_by_page);
-}
-
-static PP_Bool Pnacl_M13_PPB_WheelInputEvent_IsWheelInputEvent(PP_Resource resource) {
- const struct PPB_WheelInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0.real_iface;
- return iface->IsWheelInputEvent(resource);
-}
-
-static void Pnacl_M13_PPB_WheelInputEvent_GetDelta(struct PP_FloatPoint* _struct_result, PP_Resource wheel_event) {
- const struct PPB_WheelInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0.real_iface;
- *_struct_result = iface->GetDelta(wheel_event);
-}
-
-static void Pnacl_M13_PPB_WheelInputEvent_GetTicks(struct PP_FloatPoint* _struct_result, PP_Resource wheel_event) {
- const struct PPB_WheelInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0.real_iface;
- *_struct_result = iface->GetTicks(wheel_event);
-}
-
-static PP_Bool Pnacl_M13_PPB_WheelInputEvent_GetScrollByPage(PP_Resource wheel_event) {
- const struct PPB_WheelInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0.real_iface;
- return iface->GetScrollByPage(wheel_event);
-}
-
-/* End wrapper methods for PPB_WheelInputEvent_1_0 */
-
-/* Begin wrapper methods for PPB_KeyboardInputEvent_1_0 */
-
-static PP_Resource Pnacl_M13_PPB_KeyboardInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var* character_text) {
- const struct PPB_KeyboardInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers, key_code, *character_text);
-}
-
-static PP_Bool Pnacl_M13_PPB_KeyboardInputEvent_IsKeyboardInputEvent(PP_Resource resource) {
- const struct PPB_KeyboardInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0.real_iface;
- return iface->IsKeyboardInputEvent(resource);
-}
-
-static uint32_t Pnacl_M13_PPB_KeyboardInputEvent_GetKeyCode(PP_Resource key_event) {
- const struct PPB_KeyboardInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0.real_iface;
- return iface->GetKeyCode(key_event);
-}
-
-static void Pnacl_M13_PPB_KeyboardInputEvent_GetCharacterText(struct PP_Var* _struct_result, PP_Resource character_event) {
- const struct PPB_KeyboardInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0.real_iface;
- *_struct_result = iface->GetCharacterText(character_event);
-}
-
-/* End wrapper methods for PPB_KeyboardInputEvent_1_0 */
-
-/* Begin wrapper methods for PPB_KeyboardInputEvent_1_2 */
-
-static PP_Resource Pnacl_M34_PPB_KeyboardInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var* character_text, struct PP_Var* code) {
- const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers, key_code, *character_text, *code);
-}
-
-static PP_Bool Pnacl_M34_PPB_KeyboardInputEvent_IsKeyboardInputEvent(PP_Resource resource) {
- const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
- return iface->IsKeyboardInputEvent(resource);
-}
-
-static uint32_t Pnacl_M34_PPB_KeyboardInputEvent_GetKeyCode(PP_Resource key_event) {
- const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
- return iface->GetKeyCode(key_event);
-}
-
-static void Pnacl_M34_PPB_KeyboardInputEvent_GetCharacterText(struct PP_Var* _struct_result, PP_Resource character_event) {
- const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
- *_struct_result = iface->GetCharacterText(character_event);
-}
-
-static void Pnacl_M34_PPB_KeyboardInputEvent_GetCode(struct PP_Var* _struct_result, PP_Resource key_event) {
- const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
- *_struct_result = iface->GetCode(key_event);
-}
-
-/* End wrapper methods for PPB_KeyboardInputEvent_1_2 */
-
-/* Begin wrapper methods for PPB_TouchInputEvent_1_0 */
-
-static PP_Resource Pnacl_M13_PPB_TouchInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers);
-}
-
-static void Pnacl_M13_PPB_TouchInputEvent_AddTouchPoint(PP_Resource touch_event, PP_TouchListType list, const struct PP_TouchPoint* point) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- iface->AddTouchPoint(touch_event, list, point);
-}
-
-static PP_Bool Pnacl_M13_PPB_TouchInputEvent_IsTouchInputEvent(PP_Resource resource) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- return iface->IsTouchInputEvent(resource);
-}
-
-static uint32_t Pnacl_M13_PPB_TouchInputEvent_GetTouchCount(PP_Resource resource, PP_TouchListType list) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- return iface->GetTouchCount(resource, list);
-}
-
-static void Pnacl_M13_PPB_TouchInputEvent_GetTouchByIndex(struct PP_TouchPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t index) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- *_struct_result = iface->GetTouchByIndex(resource, list, index);
-}
-
-static void Pnacl_M13_PPB_TouchInputEvent_GetTouchById(struct PP_TouchPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t touch_id) {
- const struct PPB_TouchInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0.real_iface;
- *_struct_result = iface->GetTouchById(resource, list, touch_id);
-}
-
-/* End wrapper methods for PPB_TouchInputEvent_1_0 */
-
-/* Begin wrapper methods for PPB_TouchInputEvent_1_4 */
-
-static PP_Resource Pnacl_M60_PPB_TouchInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- return iface->Create(instance, type, time_stamp, modifiers);
-}
-
-static void Pnacl_M60_PPB_TouchInputEvent_AddTouchPoint(PP_Resource touch_event, PP_TouchListType list, const struct PP_TouchPoint* point) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- iface->AddTouchPoint(touch_event, list, point);
-}
-
-static PP_Bool Pnacl_M60_PPB_TouchInputEvent_IsTouchInputEvent(PP_Resource resource) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- return iface->IsTouchInputEvent(resource);
-}
-
-static uint32_t Pnacl_M60_PPB_TouchInputEvent_GetTouchCount(PP_Resource resource, PP_TouchListType list) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- return iface->GetTouchCount(resource, list);
-}
-
-static void Pnacl_M60_PPB_TouchInputEvent_GetTouchByIndex(struct PP_TouchPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t index) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- *_struct_result = iface->GetTouchByIndex(resource, list, index);
-}
-
-static void Pnacl_M60_PPB_TouchInputEvent_GetTouchById(struct PP_TouchPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t touch_id) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- *_struct_result = iface->GetTouchById(resource, list, touch_id);
-}
-
-static void Pnacl_M60_PPB_TouchInputEvent_GetTouchTiltByIndex(struct PP_FloatPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t index) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- *_struct_result = iface->GetTouchTiltByIndex(resource, list, index);
-}
-
-static void Pnacl_M60_PPB_TouchInputEvent_GetTouchTiltById(struct PP_FloatPoint* _struct_result, PP_Resource resource, PP_TouchListType list, uint32_t touch_id) {
- const struct PPB_TouchInputEvent_1_4 *iface = Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4.real_iface;
- *_struct_result = iface->GetTouchTiltById(resource, list, touch_id);
-}
-
-/* End wrapper methods for PPB_TouchInputEvent_1_4 */
-
-/* Begin wrapper methods for PPB_IMEInputEvent_1_0 */
-
-static PP_Resource Pnacl_M13_PPB_IMEInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var* text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- return iface->Create(instance, type, time_stamp, *text, segment_number, segment_offsets, target_segment, selection_start, selection_end);
-}
-
-static PP_Bool Pnacl_M13_PPB_IMEInputEvent_IsIMEInputEvent(PP_Resource resource) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- return iface->IsIMEInputEvent(resource);
-}
-
-static void Pnacl_M13_PPB_IMEInputEvent_GetText(struct PP_Var* _struct_result, PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- *_struct_result = iface->GetText(ime_event);
-}
-
-static uint32_t Pnacl_M13_PPB_IMEInputEvent_GetSegmentNumber(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- return iface->GetSegmentNumber(ime_event);
-}
-
-static uint32_t Pnacl_M13_PPB_IMEInputEvent_GetSegmentOffset(PP_Resource ime_event, uint32_t index) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- return iface->GetSegmentOffset(ime_event, index);
-}
-
-static int32_t Pnacl_M13_PPB_IMEInputEvent_GetTargetSegment(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- return iface->GetTargetSegment(ime_event);
-}
-
-static void Pnacl_M13_PPB_IMEInputEvent_GetSelection(PP_Resource ime_event, uint32_t* start, uint32_t* end) {
- const struct PPB_IMEInputEvent_1_0 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0.real_iface;
- iface->GetSelection(ime_event, start, end);
-}
-
-/* End wrapper methods for PPB_IMEInputEvent_1_0 */
-
-/* Not generating wrapper methods for PPB_Instance_1_0 */
-
-/* Begin wrapper methods for PPB_MediaStreamAudioTrack_0_1 */
-
-static PP_Bool Pnacl_M35_PPB_MediaStreamAudioTrack_IsMediaStreamAudioTrack(PP_Resource resource) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->IsMediaStreamAudioTrack(resource);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_Configure(PP_Resource audio_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->Configure(audio_track, attrib_list, *callback);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_GetAttrib(PP_Resource audio_track, PP_MediaStreamAudioTrack_Attrib attrib, int32_t* value) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->GetAttrib(audio_track, attrib, value);
-}
-
-static void Pnacl_M35_PPB_MediaStreamAudioTrack_GetId(struct PP_Var* _struct_result, PP_Resource audio_track) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- *_struct_result = iface->GetId(audio_track);
-}
-
-static PP_Bool Pnacl_M35_PPB_MediaStreamAudioTrack_HasEnded(PP_Resource audio_track) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->HasEnded(audio_track);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_GetBuffer(PP_Resource audio_track, PP_Resource* buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->GetBuffer(audio_track, buffer, *callback);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_RecycleBuffer(PP_Resource audio_track, PP_Resource buffer) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- return iface->RecycleBuffer(audio_track, buffer);
-}
-
-static void Pnacl_M35_PPB_MediaStreamAudioTrack_Close(PP_Resource audio_track) {
- const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
- iface->Close(audio_track);
-}
-
-/* End wrapper methods for PPB_MediaStreamAudioTrack_0_1 */
-
-/* Begin wrapper methods for PPB_MediaStreamVideoTrack_0_1 */
-
-static PP_Bool Pnacl_M35_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack(PP_Resource resource) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->IsMediaStreamVideoTrack(resource);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_Configure(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->Configure(video_track, attrib_list, *callback);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_GetAttrib(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->GetAttrib(video_track, attrib, value);
-}
-
-static void Pnacl_M35_PPB_MediaStreamVideoTrack_GetId(struct PP_Var* _struct_result, PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- *_struct_result = iface->GetId(video_track);
-}
-
-static PP_Bool Pnacl_M35_PPB_MediaStreamVideoTrack_HasEnded(PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->HasEnded(video_track);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_GetFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->GetFrame(video_track, frame, *callback);
-}
-
-static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_RecycleFrame(PP_Resource video_track, PP_Resource frame) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- return iface->RecycleFrame(video_track, frame);
-}
-
-static void Pnacl_M35_PPB_MediaStreamVideoTrack_Close(PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
- iface->Close(video_track);
-}
-
-/* End wrapper methods for PPB_MediaStreamVideoTrack_0_1 */
-
-/* Begin wrapper methods for PPB_MediaStreamVideoTrack_1_0 */
-
-static PP_Resource Pnacl_M36_PPB_MediaStreamVideoTrack_Create(PP_Instance instance) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M36_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack(PP_Resource resource) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->IsMediaStreamVideoTrack(resource);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_Configure(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->Configure(video_track, attrib_list, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetAttrib(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->GetAttrib(video_track, attrib, value);
-}
-
-static void Pnacl_M36_PPB_MediaStreamVideoTrack_GetId(struct PP_Var* _struct_result, PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- *_struct_result = iface->GetId(video_track);
-}
-
-static PP_Bool Pnacl_M36_PPB_MediaStreamVideoTrack_HasEnded(PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->HasEnded(video_track);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->GetFrame(video_track, frame, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_RecycleFrame(PP_Resource video_track, PP_Resource frame) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->RecycleFrame(video_track, frame);
-}
-
-static void Pnacl_M36_PPB_MediaStreamVideoTrack_Close(PP_Resource video_track) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- iface->Close(video_track);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetEmptyFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->GetEmptyFrame(video_track, frame, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_PutFrame(PP_Resource video_track, PP_Resource frame) {
- const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
- return iface->PutFrame(video_track, frame);
-}
-
-/* End wrapper methods for PPB_MediaStreamVideoTrack_1_0 */
-
-/* Begin wrapper methods for PPB_MessageLoop_1_0 */
-
-static PP_Resource Pnacl_M25_PPB_MessageLoop_Create(PP_Instance instance) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Resource Pnacl_M25_PPB_MessageLoop_GetForMainThread(void) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->GetForMainThread();
-}
-
-static PP_Resource Pnacl_M25_PPB_MessageLoop_GetCurrent(void) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->GetCurrent();
-}
-
-static int32_t Pnacl_M25_PPB_MessageLoop_AttachToCurrentThread(PP_Resource message_loop) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->AttachToCurrentThread(message_loop);
-}
-
-static int32_t Pnacl_M25_PPB_MessageLoop_Run(PP_Resource message_loop) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->Run(message_loop);
-}
-
-static int32_t Pnacl_M25_PPB_MessageLoop_PostWork(PP_Resource message_loop, struct PP_CompletionCallback* callback, int64_t delay_ms) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->PostWork(message_loop, *callback, delay_ms);
-}
-
-static int32_t Pnacl_M25_PPB_MessageLoop_PostQuit(PP_Resource message_loop, PP_Bool should_destroy) {
- const struct PPB_MessageLoop_1_0 *iface = Pnacl_WrapperInfo_PPB_MessageLoop_1_0.real_iface;
- return iface->PostQuit(message_loop, should_destroy);
-}
-
-/* End wrapper methods for PPB_MessageLoop_1_0 */
-
-/* Begin wrapper methods for PPB_Messaging_1_0 */
-
-static void Pnacl_M14_PPB_Messaging_PostMessage(PP_Instance instance, struct PP_Var* message) {
- const struct PPB_Messaging_1_0 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_0.real_iface;
- iface->PostMessage(instance, *message);
-}
-
-/* End wrapper methods for PPB_Messaging_1_0 */
-
-/* Begin wrapper methods for PPB_Messaging_1_2 */
-
-static void Pnacl_M39_PPB_Messaging_PostMessage(PP_Instance instance, struct PP_Var* message) {
- const struct PPB_Messaging_1_2 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_2.real_iface;
- iface->PostMessage(instance, *message);
-}
-
-static int32_t Pnacl_M39_PPB_Messaging_RegisterMessageHandler(PP_Instance instance, void* user_data, const struct PPP_MessageHandler_0_2* handler, PP_Resource message_loop) {
- const struct PPB_Messaging_1_2 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_2.real_iface;
- return iface->RegisterMessageHandler(instance, user_data, handler, message_loop);
-}
-
-static void Pnacl_M39_PPB_Messaging_UnregisterMessageHandler(PP_Instance instance) {
- const struct PPB_Messaging_1_2 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_2.real_iface;
- iface->UnregisterMessageHandler(instance);
-}
-
-/* End wrapper methods for PPB_Messaging_1_2 */
-
-/* Not generating wrapper methods for PPB_MouseCursor_1_0 */
-
-/* Begin wrapper methods for PPB_MouseLock_1_0 */
-
-static int32_t Pnacl_M16_PPB_MouseLock_LockMouse(PP_Instance instance, struct PP_CompletionCallback* callback) {
- const struct PPB_MouseLock_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseLock_1_0.real_iface;
- return iface->LockMouse(instance, *callback);
-}
-
-static void Pnacl_M16_PPB_MouseLock_UnlockMouse(PP_Instance instance) {
- const struct PPB_MouseLock_1_0 *iface = Pnacl_WrapperInfo_PPB_MouseLock_1_0.real_iface;
- iface->UnlockMouse(instance);
-}
-
-/* End wrapper methods for PPB_MouseLock_1_0 */
-
-/* Begin wrapper methods for PPB_NetAddress_1_0 */
-
-static PP_Resource Pnacl_M29_PPB_NetAddress_CreateFromIPv4Address(PP_Instance instance, const struct PP_NetAddress_IPv4* ipv4_addr) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->CreateFromIPv4Address(instance, ipv4_addr);
-}
-
-static PP_Resource Pnacl_M29_PPB_NetAddress_CreateFromIPv6Address(PP_Instance instance, const struct PP_NetAddress_IPv6* ipv6_addr) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->CreateFromIPv6Address(instance, ipv6_addr);
-}
-
-static PP_Bool Pnacl_M29_PPB_NetAddress_IsNetAddress(PP_Resource resource) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->IsNetAddress(resource);
-}
-
-static PP_NetAddress_Family Pnacl_M29_PPB_NetAddress_GetFamily(PP_Resource addr) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->GetFamily(addr);
-}
-
-static void Pnacl_M29_PPB_NetAddress_DescribeAsString(struct PP_Var* _struct_result, PP_Resource addr, PP_Bool include_port) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- *_struct_result = iface->DescribeAsString(addr, include_port);
-}
-
-static PP_Bool Pnacl_M29_PPB_NetAddress_DescribeAsIPv4Address(PP_Resource addr, struct PP_NetAddress_IPv4* ipv4_addr) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->DescribeAsIPv4Address(addr, ipv4_addr);
-}
-
-static PP_Bool Pnacl_M29_PPB_NetAddress_DescribeAsIPv6Address(PP_Resource addr, struct PP_NetAddress_IPv6* ipv6_addr) {
- const struct PPB_NetAddress_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_1_0.real_iface;
- return iface->DescribeAsIPv6Address(addr, ipv6_addr);
-}
-
-/* End wrapper methods for PPB_NetAddress_1_0 */
-
-/* Begin wrapper methods for PPB_NetworkList_1_0 */
-
-static PP_Bool Pnacl_M31_PPB_NetworkList_IsNetworkList(PP_Resource resource) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->IsNetworkList(resource);
-}
-
-static uint32_t Pnacl_M31_PPB_NetworkList_GetCount(PP_Resource resource) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->GetCount(resource);
-}
-
-static void Pnacl_M31_PPB_NetworkList_GetName(struct PP_Var* _struct_result, PP_Resource resource, uint32_t index) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- *_struct_result = iface->GetName(resource, index);
-}
-
-static PP_NetworkList_Type Pnacl_M31_PPB_NetworkList_GetType(PP_Resource resource, uint32_t index) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->GetType(resource, index);
-}
-
-static PP_NetworkList_State Pnacl_M31_PPB_NetworkList_GetState(PP_Resource resource, uint32_t index) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->GetState(resource, index);
-}
-
-static int32_t Pnacl_M31_PPB_NetworkList_GetIpAddresses(PP_Resource resource, uint32_t index, struct PP_ArrayOutput* output) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->GetIpAddresses(resource, index, *output);
-}
-
-static void Pnacl_M31_PPB_NetworkList_GetDisplayName(struct PP_Var* _struct_result, PP_Resource resource, uint32_t index) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- *_struct_result = iface->GetDisplayName(resource, index);
-}
-
-static uint32_t Pnacl_M31_PPB_NetworkList_GetMTU(PP_Resource resource, uint32_t index) {
- const struct PPB_NetworkList_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkList_1_0.real_iface;
- return iface->GetMTU(resource, index);
-}
-
-/* End wrapper methods for PPB_NetworkList_1_0 */
-
-/* Begin wrapper methods for PPB_NetworkMonitor_1_0 */
-
-static PP_Resource Pnacl_M31_PPB_NetworkMonitor_Create(PP_Instance instance) {
- const struct PPB_NetworkMonitor_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static int32_t Pnacl_M31_PPB_NetworkMonitor_UpdateNetworkList(PP_Resource network_monitor, PP_Resource* network_list, struct PP_CompletionCallback* callback) {
- const struct PPB_NetworkMonitor_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0.real_iface;
- return iface->UpdateNetworkList(network_monitor, network_list, *callback);
-}
-
-static PP_Bool Pnacl_M31_PPB_NetworkMonitor_IsNetworkMonitor(PP_Resource resource) {
- const struct PPB_NetworkMonitor_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0.real_iface;
- return iface->IsNetworkMonitor(resource);
-}
-
-/* End wrapper methods for PPB_NetworkMonitor_1_0 */
-
-/* Begin wrapper methods for PPB_NetworkProxy_1_0 */
-
-static int32_t Pnacl_M29_PPB_NetworkProxy_GetProxyForURL(PP_Instance instance, struct PP_Var* url, struct PP_Var* proxy_string, struct PP_CompletionCallback* callback) {
- const struct PPB_NetworkProxy_1_0 *iface = Pnacl_WrapperInfo_PPB_NetworkProxy_1_0.real_iface;
- return iface->GetProxyForURL(instance, *url, proxy_string, *callback);
-}
-
-/* End wrapper methods for PPB_NetworkProxy_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2InstancedArrays_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2FramebufferBlit_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2FramebufferMultisample_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2ChromiumEnableFeature_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2ChromiumMapSub_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2Query_1_0 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2VertexArrayObject_1_0 */
-
-/* Begin wrapper methods for PPB_TCPSocket_1_0 */
-
-static PP_Resource Pnacl_M29_PPB_TCPSocket_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M29_PPB_TCPSocket_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M29_PPB_TCPSocket_Connect(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->Connect(tcp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M29_PPB_TCPSocket_GetLocalAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->GetLocalAddress(tcp_socket);
-}
-
-static PP_Resource Pnacl_M29_PPB_TCPSocket_GetRemoteAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->GetRemoteAddress(tcp_socket);
-}
-
-static int32_t Pnacl_M29_PPB_TCPSocket_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_TCPSocket_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static void Pnacl_M29_PPB_TCPSocket_Close(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- iface->Close(tcp_socket);
-}
-
-static int32_t Pnacl_M29_PPB_TCPSocket_SetOption(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_0.real_iface;
- return iface->SetOption(tcp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_TCPSocket_1_0 */
-
-/* Begin wrapper methods for PPB_TCPSocket_1_1 */
-
-static PP_Resource Pnacl_M31_PPB_TCPSocket_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M31_PPB_TCPSocket_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Bind(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Bind(tcp_socket, addr, *callback);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Connect(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Connect(tcp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M31_PPB_TCPSocket_GetLocalAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->GetLocalAddress(tcp_socket);
-}
-
-static PP_Resource Pnacl_M31_PPB_TCPSocket_GetRemoteAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->GetRemoteAddress(tcp_socket);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Listen(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Listen(tcp_socket, backlog, *callback);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_Accept(PP_Resource tcp_socket, PP_Resource* accepted_tcp_socket, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->Accept(tcp_socket, accepted_tcp_socket, *callback);
-}
-
-static void Pnacl_M31_PPB_TCPSocket_Close(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- iface->Close(tcp_socket);
-}
-
-static int32_t Pnacl_M31_PPB_TCPSocket_SetOption(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_1.real_iface;
- return iface->SetOption(tcp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_TCPSocket_1_1 */
-
-/* Begin wrapper methods for PPB_TCPSocket_1_2 */
-
-static PP_Resource Pnacl_M41_PPB_TCPSocket_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M41_PPB_TCPSocket_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Bind(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Bind(tcp_socket, addr, *callback);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Connect(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Connect(tcp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M41_PPB_TCPSocket_GetLocalAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->GetLocalAddress(tcp_socket);
-}
-
-static PP_Resource Pnacl_M41_PPB_TCPSocket_GetRemoteAddress(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->GetRemoteAddress(tcp_socket);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Listen(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Listen(tcp_socket, backlog, *callback);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_Accept(PP_Resource tcp_socket, PP_Resource* accepted_tcp_socket, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->Accept(tcp_socket, accepted_tcp_socket, *callback);
-}
-
-static void Pnacl_M41_PPB_TCPSocket_Close(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- iface->Close(tcp_socket);
-}
-
-static int32_t Pnacl_M41_PPB_TCPSocket_SetOption(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_1_2.real_iface;
- return iface->SetOption(tcp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_TCPSocket_1_2 */
-
-/* Begin wrapper methods for PPB_TextInputController_1_0 */
-
-static void Pnacl_M30_PPB_TextInputController_SetTextInputType(PP_Instance instance, PP_TextInput_Type type) {
- const struct PPB_TextInputController_1_0 *iface = Pnacl_WrapperInfo_PPB_TextInputController_1_0.real_iface;
- iface->SetTextInputType(instance, type);
-}
-
-static void Pnacl_M30_PPB_TextInputController_UpdateCaretPosition(PP_Instance instance, const struct PP_Rect* caret) {
- const struct PPB_TextInputController_1_0 *iface = Pnacl_WrapperInfo_PPB_TextInputController_1_0.real_iface;
- iface->UpdateCaretPosition(instance, caret);
-}
-
-static void Pnacl_M30_PPB_TextInputController_CancelCompositionText(PP_Instance instance) {
- const struct PPB_TextInputController_1_0 *iface = Pnacl_WrapperInfo_PPB_TextInputController_1_0.real_iface;
- iface->CancelCompositionText(instance);
-}
-
-static void Pnacl_M30_PPB_TextInputController_UpdateSurroundingText(PP_Instance instance, struct PP_Var* text, uint32_t caret, uint32_t anchor) {
- const struct PPB_TextInputController_1_0 *iface = Pnacl_WrapperInfo_PPB_TextInputController_1_0.real_iface;
- iface->UpdateSurroundingText(instance, *text, caret, anchor);
-}
-
-/* End wrapper methods for PPB_TextInputController_1_0 */
-
-/* Begin wrapper methods for PPB_UDPSocket_1_0 */
-
-static PP_Resource Pnacl_M29_PPB_UDPSocket_Create(PP_Instance instance) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M29_PPB_UDPSocket_IsUDPSocket(PP_Resource resource) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->IsUDPSocket(resource);
-}
-
-static int32_t Pnacl_M29_PPB_UDPSocket_Bind(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M29_PPB_UDPSocket_GetBoundAddress(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->GetBoundAddress(udp_socket);
-}
-
-static int32_t Pnacl_M29_PPB_UDPSocket_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_UDPSocket_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M29_PPB_UDPSocket_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- iface->Close(udp_socket);
-}
-
-static int32_t Pnacl_M29_PPB_UDPSocket_SetOption(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_0.real_iface;
- return iface->SetOption(udp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_UDPSocket_1_0 */
-
-/* Begin wrapper methods for PPB_UDPSocket_1_1 */
-
-static PP_Resource Pnacl_M41_PPB_UDPSocket_Create(PP_Instance instance) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M41_PPB_UDPSocket_IsUDPSocket(PP_Resource resource) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->IsUDPSocket(resource);
-}
-
-static int32_t Pnacl_M41_PPB_UDPSocket_Bind(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M41_PPB_UDPSocket_GetBoundAddress(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->GetBoundAddress(udp_socket);
-}
-
-static int32_t Pnacl_M41_PPB_UDPSocket_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static int32_t Pnacl_M41_PPB_UDPSocket_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M41_PPB_UDPSocket_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- iface->Close(udp_socket);
-}
-
-static int32_t Pnacl_M41_PPB_UDPSocket_SetOption(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_1 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_1.real_iface;
- return iface->SetOption(udp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_UDPSocket_1_1 */
-
-/* Begin wrapper methods for PPB_UDPSocket_1_2 */
-
-static PP_Resource Pnacl_M43_PPB_UDPSocket_Create(PP_Instance instance) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M43_PPB_UDPSocket_IsUDPSocket(PP_Resource resource) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->IsUDPSocket(resource);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_Bind(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static PP_Resource Pnacl_M43_PPB_UDPSocket_GetBoundAddress(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->GetBoundAddress(udp_socket);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M43_PPB_UDPSocket_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- iface->Close(udp_socket);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_SetOption(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->SetOption(udp_socket, name, *value, *callback);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_JoinGroup(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->JoinGroup(udp_socket, group, *callback);
-}
-
-static int32_t Pnacl_M43_PPB_UDPSocket_LeaveGroup(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_1_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_1_2.real_iface;
- return iface->LeaveGroup(udp_socket, group, *callback);
-}
-
-/* End wrapper methods for PPB_UDPSocket_1_2 */
-
-/* Begin wrapper methods for PPB_URLLoader_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_URLLoader_Create(PP_Instance instance) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLLoader_IsURLLoader(PP_Resource resource) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->IsURLLoader(resource);
-}
-
-static int32_t Pnacl_M14_PPB_URLLoader_Open(PP_Resource loader, PP_Resource request_info, struct PP_CompletionCallback* callback) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->Open(loader, request_info, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_URLLoader_FollowRedirect(PP_Resource loader, struct PP_CompletionCallback* callback) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->FollowRedirect(loader, *callback);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLLoader_GetUploadProgress(PP_Resource loader, int64_t* bytes_sent, int64_t* total_bytes_to_be_sent) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->GetUploadProgress(loader, bytes_sent, total_bytes_to_be_sent);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLLoader_GetDownloadProgress(PP_Resource loader, int64_t* bytes_received, int64_t* total_bytes_to_be_received) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->GetDownloadProgress(loader, bytes_received, total_bytes_to_be_received);
-}
-
-static PP_Resource Pnacl_M14_PPB_URLLoader_GetResponseInfo(PP_Resource loader) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->GetResponseInfo(loader);
-}
-
-static int32_t Pnacl_M14_PPB_URLLoader_ReadResponseBody(PP_Resource loader, void* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->ReadResponseBody(loader, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_URLLoader_FinishStreamingToFile(PP_Resource loader, struct PP_CompletionCallback* callback) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- return iface->FinishStreamingToFile(loader, *callback);
-}
-
-static void Pnacl_M14_PPB_URLLoader_Close(PP_Resource loader) {
- const struct PPB_URLLoader_1_0 *iface = Pnacl_WrapperInfo_PPB_URLLoader_1_0.real_iface;
- iface->Close(loader);
-}
-
-/* End wrapper methods for PPB_URLLoader_1_0 */
-
-/* Begin wrapper methods for PPB_URLRequestInfo_1_0 */
-
-static PP_Resource Pnacl_M14_PPB_URLRequestInfo_Create(PP_Instance instance) {
- const struct PPB_URLRequestInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLRequestInfo_IsURLRequestInfo(PP_Resource resource) {
- const struct PPB_URLRequestInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0.real_iface;
- return iface->IsURLRequestInfo(resource);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLRequestInfo_SetProperty(PP_Resource request, PP_URLRequestProperty property, struct PP_Var* value) {
- const struct PPB_URLRequestInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0.real_iface;
- return iface->SetProperty(request, property, *value);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLRequestInfo_AppendDataToBody(PP_Resource request, const void* data, uint32_t len) {
- const struct PPB_URLRequestInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0.real_iface;
- return iface->AppendDataToBody(request, data, len);
-}
-
-static PP_Bool Pnacl_M14_PPB_URLRequestInfo_AppendFileToBody(PP_Resource request, PP_Resource file_ref, int64_t start_offset, int64_t number_of_bytes, PP_Time expected_last_modified_time) {
- const struct PPB_URLRequestInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0.real_iface;
- return iface->AppendFileToBody(request, file_ref, start_offset, number_of_bytes, expected_last_modified_time);
-}
-
-/* End wrapper methods for PPB_URLRequestInfo_1_0 */
-
-/* Begin wrapper methods for PPB_URLResponseInfo_1_0 */
-
-static PP_Bool Pnacl_M14_PPB_URLResponseInfo_IsURLResponseInfo(PP_Resource resource) {
- const struct PPB_URLResponseInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0.real_iface;
- return iface->IsURLResponseInfo(resource);
-}
-
-static void Pnacl_M14_PPB_URLResponseInfo_GetProperty(struct PP_Var* _struct_result, PP_Resource response, PP_URLResponseProperty property) {
- const struct PPB_URLResponseInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0.real_iface;
- *_struct_result = iface->GetProperty(response, property);
-}
-
-static PP_Resource Pnacl_M14_PPB_URLResponseInfo_GetBodyAsFileRef(PP_Resource response) {
- const struct PPB_URLResponseInfo_1_0 *iface = Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0.real_iface;
- return iface->GetBodyAsFileRef(response);
-}
-
-/* End wrapper methods for PPB_URLResponseInfo_1_0 */
-
-/* Begin wrapper methods for PPB_Var_1_0 */
-
-static void Pnacl_M14_PPB_Var_AddRef(struct PP_Var* var) {
- const struct PPB_Var_1_0 *iface = Pnacl_WrapperInfo_PPB_Var_1_0.real_iface;
- iface->AddRef(*var);
-}
-
-static void Pnacl_M14_PPB_Var_Release(struct PP_Var* var) {
- const struct PPB_Var_1_0 *iface = Pnacl_WrapperInfo_PPB_Var_1_0.real_iface;
- iface->Release(*var);
-}
-
-static void Pnacl_M14_PPB_Var_VarFromUtf8(struct PP_Var* _struct_result, PP_Module module, const char* data, uint32_t len) {
- const struct PPB_Var_1_0 *iface = Pnacl_WrapperInfo_PPB_Var_1_0.real_iface;
- *_struct_result = iface->VarFromUtf8(module, data, len);
-}
-
-static const char* Pnacl_M14_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len) {
- const struct PPB_Var_1_0 *iface = Pnacl_WrapperInfo_PPB_Var_1_0.real_iface;
- return iface->VarToUtf8(*var, len);
-}
-
-/* End wrapper methods for PPB_Var_1_0 */
-
-/* Begin wrapper methods for PPB_Var_1_1 */
-
-static void Pnacl_M18_PPB_Var_AddRef(struct PP_Var* var) {
- const struct PPB_Var_1_1 *iface = Pnacl_WrapperInfo_PPB_Var_1_1.real_iface;
- iface->AddRef(*var);
-}
-
-static void Pnacl_M18_PPB_Var_Release(struct PP_Var* var) {
- const struct PPB_Var_1_1 *iface = Pnacl_WrapperInfo_PPB_Var_1_1.real_iface;
- iface->Release(*var);
-}
-
-static void Pnacl_M18_PPB_Var_VarFromUtf8(struct PP_Var* _struct_result, const char* data, uint32_t len) {
- const struct PPB_Var_1_1 *iface = Pnacl_WrapperInfo_PPB_Var_1_1.real_iface;
- *_struct_result = iface->VarFromUtf8(data, len);
-}
-
-static const char* Pnacl_M18_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len) {
- const struct PPB_Var_1_1 *iface = Pnacl_WrapperInfo_PPB_Var_1_1.real_iface;
- return iface->VarToUtf8(*var, len);
-}
-
-/* End wrapper methods for PPB_Var_1_1 */
-
-/* Begin wrapper methods for PPB_Var_1_2 */
-
-static void Pnacl_M34_PPB_Var_AddRef(struct PP_Var* var) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- iface->AddRef(*var);
-}
-
-static void Pnacl_M34_PPB_Var_Release(struct PP_Var* var) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- iface->Release(*var);
-}
-
-static void Pnacl_M34_PPB_Var_VarFromUtf8(struct PP_Var* _struct_result, const char* data, uint32_t len) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- *_struct_result = iface->VarFromUtf8(data, len);
-}
-
-static const char* Pnacl_M34_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- return iface->VarToUtf8(*var, len);
-}
-
-static PP_Resource Pnacl_M34_PPB_Var_VarToResource(struct PP_Var* var) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- return iface->VarToResource(*var);
-}
-
-static void Pnacl_M34_PPB_Var_VarFromResource(struct PP_Var* _struct_result, PP_Resource resource) {
- const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
- *_struct_result = iface->VarFromResource(resource);
-}
-
-/* End wrapper methods for PPB_Var_1_2 */
-
-/* Begin wrapper methods for PPB_VarArray_1_0 */
-
-static void Pnacl_M29_PPB_VarArray_Create(struct PP_Var* _struct_result) {
- const struct PPB_VarArray_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArray_1_0.real_iface;
- *_struct_result = iface->Create();
-}
-
-static void Pnacl_M29_PPB_VarArray_Get(struct PP_Var* _struct_result, struct PP_Var* array, uint32_t index) {
- const struct PPB_VarArray_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArray_1_0.real_iface;
- *_struct_result = iface->Get(*array, index);
-}
-
-static PP_Bool Pnacl_M29_PPB_VarArray_Set(struct PP_Var* array, uint32_t index, struct PP_Var* value) {
- const struct PPB_VarArray_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArray_1_0.real_iface;
- return iface->Set(*array, index, *value);
-}
-
-static uint32_t Pnacl_M29_PPB_VarArray_GetLength(struct PP_Var* array) {
- const struct PPB_VarArray_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArray_1_0.real_iface;
- return iface->GetLength(*array);
-}
-
-static PP_Bool Pnacl_M29_PPB_VarArray_SetLength(struct PP_Var* array, uint32_t length) {
- const struct PPB_VarArray_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArray_1_0.real_iface;
- return iface->SetLength(*array, length);
-}
-
-/* End wrapper methods for PPB_VarArray_1_0 */
-
-/* Begin wrapper methods for PPB_VarArrayBuffer_1_0 */
-
-static void Pnacl_M18_PPB_VarArrayBuffer_Create(struct PP_Var* _struct_result, uint32_t size_in_bytes) {
- const struct PPB_VarArrayBuffer_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0.real_iface;
- *_struct_result = iface->Create(size_in_bytes);
-}
-
-static PP_Bool Pnacl_M18_PPB_VarArrayBuffer_ByteLength(struct PP_Var* array, uint32_t* byte_length) {
- const struct PPB_VarArrayBuffer_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0.real_iface;
- return iface->ByteLength(*array, byte_length);
-}
-
-static void* Pnacl_M18_PPB_VarArrayBuffer_Map(struct PP_Var* array) {
- const struct PPB_VarArrayBuffer_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0.real_iface;
- return iface->Map(*array);
-}
-
-static void Pnacl_M18_PPB_VarArrayBuffer_Unmap(struct PP_Var* array) {
- const struct PPB_VarArrayBuffer_1_0 *iface = Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0.real_iface;
- iface->Unmap(*array);
-}
-
-/* End wrapper methods for PPB_VarArrayBuffer_1_0 */
-
-/* Begin wrapper methods for PPB_VarDictionary_1_0 */
-
-static void Pnacl_M29_PPB_VarDictionary_Create(struct PP_Var* _struct_result) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- *_struct_result = iface->Create();
-}
-
-static void Pnacl_M29_PPB_VarDictionary_Get(struct PP_Var* _struct_result, struct PP_Var* dict, struct PP_Var* key) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- *_struct_result = iface->Get(*dict, *key);
-}
-
-static PP_Bool Pnacl_M29_PPB_VarDictionary_Set(struct PP_Var* dict, struct PP_Var* key, struct PP_Var* value) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- return iface->Set(*dict, *key, *value);
-}
-
-static void Pnacl_M29_PPB_VarDictionary_Delete(struct PP_Var* dict, struct PP_Var* key) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- iface->Delete(*dict, *key);
-}
-
-static PP_Bool Pnacl_M29_PPB_VarDictionary_HasKey(struct PP_Var* dict, struct PP_Var* key) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- return iface->HasKey(*dict, *key);
-}
-
-static void Pnacl_M29_PPB_VarDictionary_GetKeys(struct PP_Var* _struct_result, struct PP_Var* dict) {
- const struct PPB_VarDictionary_1_0 *iface = Pnacl_WrapperInfo_PPB_VarDictionary_1_0.real_iface;
- *_struct_result = iface->GetKeys(*dict);
-}
-
-/* End wrapper methods for PPB_VarDictionary_1_0 */
-
-/* Begin wrapper methods for PPB_VideoDecoder_0_1 */
-
-static PP_Resource Pnacl_M36_PPB_VideoDecoder_Create(PP_Instance instance) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M36_PPB_VideoDecoder_IsVideoDecoder(PP_Resource resource) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->IsVideoDecoder(resource);
-}
-
-static int32_t Pnacl_M36_PPB_VideoDecoder_Initialize(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_Bool allow_software_fallback, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->Initialize(video_decoder, graphics3d_context, profile, allow_software_fallback, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_VideoDecoder_Decode(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->Decode(video_decoder, decode_id, size, buffer, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_VideoDecoder_GetPicture(PP_Resource video_decoder, struct PP_VideoPicture_0_1* picture, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->GetPicture(video_decoder, picture, *callback);
-}
-
-static void Pnacl_M36_PPB_VideoDecoder_RecyclePicture(PP_Resource video_decoder, const struct PP_VideoPicture* picture) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- iface->RecyclePicture(video_decoder, picture);
-}
-
-static int32_t Pnacl_M36_PPB_VideoDecoder_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->Flush(video_decoder, *callback);
-}
-
-static int32_t Pnacl_M36_PPB_VideoDecoder_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
- return iface->Reset(video_decoder, *callback);
-}
-
-/* End wrapper methods for PPB_VideoDecoder_0_1 */
-
-/* Begin wrapper methods for PPB_VideoDecoder_0_2 */
-
-static PP_Resource Pnacl_M39_PPB_VideoDecoder_Create(PP_Instance instance) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M39_PPB_VideoDecoder_IsVideoDecoder(PP_Resource resource) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->IsVideoDecoder(resource);
-}
-
-static int32_t Pnacl_M39_PPB_VideoDecoder_Initialize(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->Initialize(video_decoder, graphics3d_context, profile, acceleration, *callback);
-}
-
-static int32_t Pnacl_M39_PPB_VideoDecoder_Decode(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->Decode(video_decoder, decode_id, size, buffer, *callback);
-}
-
-static int32_t Pnacl_M39_PPB_VideoDecoder_GetPicture(PP_Resource video_decoder, struct PP_VideoPicture_0_1* picture, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->GetPicture(video_decoder, picture, *callback);
-}
-
-static void Pnacl_M39_PPB_VideoDecoder_RecyclePicture(PP_Resource video_decoder, const struct PP_VideoPicture* picture) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- iface->RecyclePicture(video_decoder, picture);
-}
-
-static int32_t Pnacl_M39_PPB_VideoDecoder_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->Flush(video_decoder, *callback);
-}
-
-static int32_t Pnacl_M39_PPB_VideoDecoder_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_2.real_iface;
- return iface->Reset(video_decoder, *callback);
-}
-
-/* End wrapper methods for PPB_VideoDecoder_0_2 */
-
-/* Begin wrapper methods for PPB_VideoDecoder_1_0 */
-
-static PP_Resource Pnacl_M40_PPB_VideoDecoder_Create(PP_Instance instance) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M40_PPB_VideoDecoder_IsVideoDecoder(PP_Resource resource) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->IsVideoDecoder(resource);
-}
-
-static int32_t Pnacl_M40_PPB_VideoDecoder_Initialize(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->Initialize(video_decoder, graphics3d_context, profile, acceleration, *callback);
-}
-
-static int32_t Pnacl_M40_PPB_VideoDecoder_Decode(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->Decode(video_decoder, decode_id, size, buffer, *callback);
-}
-
-static int32_t Pnacl_M40_PPB_VideoDecoder_GetPicture(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->GetPicture(video_decoder, picture, *callback);
-}
-
-static void Pnacl_M40_PPB_VideoDecoder_RecyclePicture(PP_Resource video_decoder, const struct PP_VideoPicture* picture) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- iface->RecyclePicture(video_decoder, picture);
-}
-
-static int32_t Pnacl_M40_PPB_VideoDecoder_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->Flush(video_decoder, *callback);
-}
-
-static int32_t Pnacl_M40_PPB_VideoDecoder_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_0 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_0.real_iface;
- return iface->Reset(video_decoder, *callback);
-}
-
-/* End wrapper methods for PPB_VideoDecoder_1_0 */
-
-/* Begin wrapper methods for PPB_VideoDecoder_1_1 */
-
-static PP_Resource Pnacl_M46_PPB_VideoDecoder_Create(PP_Instance instance) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M46_PPB_VideoDecoder_IsVideoDecoder(PP_Resource resource) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->IsVideoDecoder(resource);
-}
-
-static int32_t Pnacl_M46_PPB_VideoDecoder_Initialize(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->Initialize(video_decoder, graphics3d_context, profile, acceleration, min_picture_count, *callback);
-}
-
-static int32_t Pnacl_M46_PPB_VideoDecoder_Decode(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->Decode(video_decoder, decode_id, size, buffer, *callback);
-}
-
-static int32_t Pnacl_M46_PPB_VideoDecoder_GetPicture(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->GetPicture(video_decoder, picture, *callback);
-}
-
-static void Pnacl_M46_PPB_VideoDecoder_RecyclePicture(PP_Resource video_decoder, const struct PP_VideoPicture* picture) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- iface->RecyclePicture(video_decoder, picture);
-}
-
-static int32_t Pnacl_M46_PPB_VideoDecoder_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->Flush(video_decoder, *callback);
-}
-
-static int32_t Pnacl_M46_PPB_VideoDecoder_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_1_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_1_1.real_iface;
- return iface->Reset(video_decoder, *callback);
-}
-
-/* End wrapper methods for PPB_VideoDecoder_1_1 */
-
-/* Begin wrapper methods for PPB_VideoEncoder_0_1 */
-
-static PP_Resource Pnacl_M42_PPB_VideoEncoder_Create(PP_Instance instance) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M42_PPB_VideoEncoder_IsVideoEncoder(PP_Resource resource) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->IsVideoEncoder(resource);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_GetSupportedProfiles(PP_Resource video_encoder, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->GetSupportedProfiles(video_encoder, *output, *callback);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_Initialize(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size* input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->Initialize(video_encoder, input_format, input_visible_size, output_profile, initial_bitrate, acceleration, *callback);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_GetFramesRequired(PP_Resource video_encoder) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->GetFramesRequired(video_encoder);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_GetFrameCodedSize(PP_Resource video_encoder, struct PP_Size* coded_size) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->GetFrameCodedSize(video_encoder, coded_size);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_GetVideoFrame(PP_Resource video_encoder, PP_Resource* video_frame, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->GetVideoFrame(video_encoder, video_frame, *callback);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_Encode(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->Encode(video_encoder, video_frame, force_keyframe, *callback);
-}
-
-static int32_t Pnacl_M42_PPB_VideoEncoder_GetBitstreamBuffer(PP_Resource video_encoder, struct PP_BitstreamBuffer* bitstream_buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- return iface->GetBitstreamBuffer(video_encoder, bitstream_buffer, *callback);
-}
-
-static void Pnacl_M42_PPB_VideoEncoder_RecycleBitstreamBuffer(PP_Resource video_encoder, const struct PP_BitstreamBuffer* bitstream_buffer) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- iface->RecycleBitstreamBuffer(video_encoder, bitstream_buffer);
-}
-
-static void Pnacl_M42_PPB_VideoEncoder_RequestEncodingParametersChange(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- iface->RequestEncodingParametersChange(video_encoder, bitrate, framerate);
-}
-
-static void Pnacl_M42_PPB_VideoEncoder_Close(PP_Resource video_encoder) {
- const struct PPB_VideoEncoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_1.real_iface;
- iface->Close(video_encoder);
-}
-
-/* End wrapper methods for PPB_VideoEncoder_0_1 */
-
-/* Begin wrapper methods for PPB_VideoEncoder_0_2 */
-
-static PP_Resource Pnacl_M44_PPB_VideoEncoder_Create(PP_Instance instance) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M44_PPB_VideoEncoder_IsVideoEncoder(PP_Resource resource) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->IsVideoEncoder(resource);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_GetSupportedProfiles(PP_Resource video_encoder, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->GetSupportedProfiles(video_encoder, *output, *callback);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_Initialize(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size* input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->Initialize(video_encoder, input_format, input_visible_size, output_profile, initial_bitrate, acceleration, *callback);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_GetFramesRequired(PP_Resource video_encoder) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->GetFramesRequired(video_encoder);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_GetFrameCodedSize(PP_Resource video_encoder, struct PP_Size* coded_size) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->GetFrameCodedSize(video_encoder, coded_size);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_GetVideoFrame(PP_Resource video_encoder, PP_Resource* video_frame, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->GetVideoFrame(video_encoder, video_frame, *callback);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_Encode(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->Encode(video_encoder, video_frame, force_keyframe, *callback);
-}
-
-static int32_t Pnacl_M44_PPB_VideoEncoder_GetBitstreamBuffer(PP_Resource video_encoder, struct PP_BitstreamBuffer* bitstream_buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- return iface->GetBitstreamBuffer(video_encoder, bitstream_buffer, *callback);
-}
-
-static void Pnacl_M44_PPB_VideoEncoder_RecycleBitstreamBuffer(PP_Resource video_encoder, const struct PP_BitstreamBuffer* bitstream_buffer) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- iface->RecycleBitstreamBuffer(video_encoder, bitstream_buffer);
-}
-
-static void Pnacl_M44_PPB_VideoEncoder_RequestEncodingParametersChange(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- iface->RequestEncodingParametersChange(video_encoder, bitrate, framerate);
-}
-
-static void Pnacl_M44_PPB_VideoEncoder_Close(PP_Resource video_encoder) {
- const struct PPB_VideoEncoder_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoEncoder_0_2.real_iface;
- iface->Close(video_encoder);
-}
-
-/* End wrapper methods for PPB_VideoEncoder_0_2 */
-
-/* Not generating wrapper methods for PPB_VideoFrame_0_1 */
-
-/* Not generating wrapper methods for PPB_View_1_0 */
-
-/* Not generating wrapper methods for PPB_View_1_1 */
-
-/* Not generating wrapper methods for PPB_View_1_2 */
-
-/* Begin wrapper methods for PPB_VpnProvider_0_1 */
-
-static PP_Resource Pnacl_M52_PPB_VpnProvider_Create(PP_Instance instance) {
- const struct PPB_VpnProvider_0_1 *iface = Pnacl_WrapperInfo_PPB_VpnProvider_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M52_PPB_VpnProvider_IsVpnProvider(PP_Resource resource) {
- const struct PPB_VpnProvider_0_1 *iface = Pnacl_WrapperInfo_PPB_VpnProvider_0_1.real_iface;
- return iface->IsVpnProvider(resource);
-}
-
-static int32_t Pnacl_M52_PPB_VpnProvider_Bind(PP_Resource vpn_provider, struct PP_Var* configuration_id, struct PP_Var* configuration_name, struct PP_CompletionCallback* callback) {
- const struct PPB_VpnProvider_0_1 *iface = Pnacl_WrapperInfo_PPB_VpnProvider_0_1.real_iface;
- return iface->Bind(vpn_provider, *configuration_id, *configuration_name, *callback);
-}
-
-static int32_t Pnacl_M52_PPB_VpnProvider_SendPacket(PP_Resource vpn_provider, struct PP_Var* packet, struct PP_CompletionCallback* callback) {
- const struct PPB_VpnProvider_0_1 *iface = Pnacl_WrapperInfo_PPB_VpnProvider_0_1.real_iface;
- return iface->SendPacket(vpn_provider, *packet, *callback);
-}
-
-static int32_t Pnacl_M52_PPB_VpnProvider_ReceivePacket(PP_Resource vpn_provider, struct PP_Var* packet, struct PP_CompletionCallback* callback) {
- const struct PPB_VpnProvider_0_1 *iface = Pnacl_WrapperInfo_PPB_VpnProvider_0_1.real_iface;
- return iface->ReceivePacket(vpn_provider, packet, *callback);
-}
-
-/* End wrapper methods for PPB_VpnProvider_0_1 */
-
-/* Begin wrapper methods for PPB_WebSocket_1_0 */
-
-static PP_Resource Pnacl_M18_PPB_WebSocket_Create(PP_Instance instance) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M18_PPB_WebSocket_IsWebSocket(PP_Resource resource) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->IsWebSocket(resource);
-}
-
-static int32_t Pnacl_M18_PPB_WebSocket_Connect(PP_Resource web_socket, struct PP_Var* url, const struct PP_Var protocols[], uint32_t protocol_count, struct PP_CompletionCallback* callback) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->Connect(web_socket, *url, protocols, protocol_count, *callback);
-}
-
-static int32_t Pnacl_M18_PPB_WebSocket_Close(PP_Resource web_socket, uint16_t code, struct PP_Var* reason, struct PP_CompletionCallback* callback) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->Close(web_socket, code, *reason, *callback);
-}
-
-static int32_t Pnacl_M18_PPB_WebSocket_ReceiveMessage(PP_Resource web_socket, struct PP_Var* message, struct PP_CompletionCallback* callback) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->ReceiveMessage(web_socket, message, *callback);
-}
-
-static int32_t Pnacl_M18_PPB_WebSocket_SendMessage(PP_Resource web_socket, struct PP_Var* message) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->SendMessage(web_socket, *message);
-}
-
-static uint64_t Pnacl_M18_PPB_WebSocket_GetBufferedAmount(PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->GetBufferedAmount(web_socket);
-}
-
-static uint16_t Pnacl_M18_PPB_WebSocket_GetCloseCode(PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->GetCloseCode(web_socket);
-}
-
-static void Pnacl_M18_PPB_WebSocket_GetCloseReason(struct PP_Var* _struct_result, PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- *_struct_result = iface->GetCloseReason(web_socket);
-}
-
-static PP_Bool Pnacl_M18_PPB_WebSocket_GetCloseWasClean(PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->GetCloseWasClean(web_socket);
-}
-
-static void Pnacl_M18_PPB_WebSocket_GetExtensions(struct PP_Var* _struct_result, PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- *_struct_result = iface->GetExtensions(web_socket);
-}
-
-static void Pnacl_M18_PPB_WebSocket_GetProtocol(struct PP_Var* _struct_result, PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- *_struct_result = iface->GetProtocol(web_socket);
-}
-
-static PP_WebSocketReadyState Pnacl_M18_PPB_WebSocket_GetReadyState(PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- return iface->GetReadyState(web_socket);
-}
-
-static void Pnacl_M18_PPB_WebSocket_GetURL(struct PP_Var* _struct_result, PP_Resource web_socket) {
- const struct PPB_WebSocket_1_0 *iface = Pnacl_WrapperInfo_PPB_WebSocket_1_0.real_iface;
- *_struct_result = iface->GetURL(web_socket);
-}
-
-/* End wrapper methods for PPB_WebSocket_1_0 */
-
-/* Not generating wrapper methods for PPP_Graphics3D_1_0 */
-
-/* Not generating wrapper methods for PPP_InputEvent_0_1 */
-
-/* Not generating wrapper methods for PPP_Instance_1_0 */
-
-/* Not generating wrapper methods for PPP_Instance_1_1 */
-
-/* Not generating wrapper methods for PPP_MessageHandler_0_2 */
-
-/* Begin wrapper methods for PPP_Messaging_1_0 */
-
-static void Pnacl_M14_PPP_Messaging_HandleMessage(PP_Instance instance, struct PP_Var message) {
- const struct PPP_Messaging_1_0 *iface = Pnacl_WrapperInfo_PPP_Messaging_1_0.real_iface;
- void (*temp_fp)(PP_Instance instance, struct PP_Var* message) =
- ((void (*)(PP_Instance instance, struct PP_Var* message))iface->HandleMessage);
- temp_fp(instance, &message);
-}
-
-/* End wrapper methods for PPP_Messaging_1_0 */
-
-/* Not generating wrapper methods for PPP_MouseLock_1_0 */
-
-/* Not generating wrapper methods for PPB_BrowserFont_Trusted_1_0 */
-
-/* Not generating wrapper methods for PPB_CharSet_Trusted_1_0 */
-
-/* Not generating wrapper methods for PPB_FileChooserTrusted_0_5 */
-
-/* Not generating wrapper methods for PPB_FileChooserTrusted_0_6 */
-
-/* Not generating wrapper methods for PPB_URLLoaderTrusted_0_3 */
-
-/* Begin wrapper methods for PPB_AudioInput_Dev_0_3 */
-
-static PP_Resource Pnacl_M25_PPB_AudioInput_Dev_Create(PP_Instance instance) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M25_PPB_AudioInput_Dev_IsAudioInput(PP_Resource resource) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->IsAudioInput(resource);
-}
-
-static int32_t Pnacl_M25_PPB_AudioInput_Dev_EnumerateDevices(PP_Resource audio_input, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->EnumerateDevices(audio_input, *output, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_AudioInput_Dev_MonitorDeviceChange(PP_Resource audio_input, PP_MonitorDeviceChangeCallback callback, void* user_data) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->MonitorDeviceChange(audio_input, callback, user_data);
-}
-
-static int32_t Pnacl_M25_PPB_AudioInput_Dev_Open(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_3 audio_input_callback, void* user_data, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->Open(audio_input, device_ref, config, audio_input_callback, user_data, *callback);
-}
-
-static PP_Resource Pnacl_M25_PPB_AudioInput_Dev_GetCurrentConfig(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->GetCurrentConfig(audio_input);
-}
-
-static PP_Bool Pnacl_M25_PPB_AudioInput_Dev_StartCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->StartCapture(audio_input);
-}
-
-static PP_Bool Pnacl_M25_PPB_AudioInput_Dev_StopCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- return iface->StopCapture(audio_input);
-}
-
-static void Pnacl_M25_PPB_AudioInput_Dev_Close(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
- iface->Close(audio_input);
-}
-
-/* End wrapper methods for PPB_AudioInput_Dev_0_3 */
-
-/* Begin wrapper methods for PPB_AudioInput_Dev_0_4 */
-
-static PP_Resource Pnacl_M30_PPB_AudioInput_Dev_Create(PP_Instance instance) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M30_PPB_AudioInput_Dev_IsAudioInput(PP_Resource resource) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->IsAudioInput(resource);
-}
-
-static int32_t Pnacl_M30_PPB_AudioInput_Dev_EnumerateDevices(PP_Resource audio_input, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->EnumerateDevices(audio_input, *output, *callback);
-}
-
-static int32_t Pnacl_M30_PPB_AudioInput_Dev_MonitorDeviceChange(PP_Resource audio_input, PP_MonitorDeviceChangeCallback callback, void* user_data) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->MonitorDeviceChange(audio_input, callback, user_data);
-}
-
-static int32_t Pnacl_M30_PPB_AudioInput_Dev_Open(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback audio_input_callback, void* user_data, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->Open(audio_input, device_ref, config, audio_input_callback, user_data, *callback);
-}
-
-static PP_Resource Pnacl_M30_PPB_AudioInput_Dev_GetCurrentConfig(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->GetCurrentConfig(audio_input);
-}
-
-static PP_Bool Pnacl_M30_PPB_AudioInput_Dev_StartCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->StartCapture(audio_input);
-}
-
-static PP_Bool Pnacl_M30_PPB_AudioInput_Dev_StopCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- return iface->StopCapture(audio_input);
-}
-
-static void Pnacl_M30_PPB_AudioInput_Dev_Close(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_4 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4.real_iface;
- iface->Close(audio_input);
-}
-
-/* End wrapper methods for PPB_AudioInput_Dev_0_4 */
-
-/* Begin wrapper methods for PPB_AudioOutput_Dev_0_1 */
-
-static PP_Resource Pnacl_M59_PPB_AudioOutput_Dev_Create(PP_Instance instance) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M59_PPB_AudioOutput_Dev_IsAudioOutput(PP_Resource resource) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->IsAudioOutput(resource);
-}
-
-static int32_t Pnacl_M59_PPB_AudioOutput_Dev_EnumerateDevices(PP_Resource audio_output, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->EnumerateDevices(audio_output, *output, *callback);
-}
-
-static int32_t Pnacl_M59_PPB_AudioOutput_Dev_MonitorDeviceChange(PP_Resource audio_output, PP_MonitorDeviceChangeCallback callback, void* user_data) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->MonitorDeviceChange(audio_output, callback, user_data);
-}
-
-static int32_t Pnacl_M59_PPB_AudioOutput_Dev_Open(PP_Resource audio_output, PP_Resource device_ref, PP_Resource config, PPB_AudioOutput_Callback audio_output_callback, void* user_data, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->Open(audio_output, device_ref, config, audio_output_callback, user_data, *callback);
-}
-
-static PP_Resource Pnacl_M59_PPB_AudioOutput_Dev_GetCurrentConfig(PP_Resource audio_output) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->GetCurrentConfig(audio_output);
-}
-
-static PP_Bool Pnacl_M59_PPB_AudioOutput_Dev_StartPlayback(PP_Resource audio_output) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->StartPlayback(audio_output);
-}
-
-static PP_Bool Pnacl_M59_PPB_AudioOutput_Dev_StopPlayback(PP_Resource audio_output) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- return iface->StopPlayback(audio_output);
-}
-
-static void Pnacl_M59_PPB_AudioOutput_Dev_Close(PP_Resource audio_output) {
- const struct PPB_AudioOutput_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1.real_iface;
- iface->Close(audio_output);
-}
-
-/* End wrapper methods for PPB_AudioOutput_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_Buffer_Dev_0_4 */
-
-/* Not generating wrapper methods for PPB_Crypto_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_CursorControl_Dev_0_4 */
-
-/* Begin wrapper methods for PPB_DeviceRef_Dev_0_1 */
-
-static PP_Bool Pnacl_M18_PPB_DeviceRef_Dev_IsDeviceRef(PP_Resource resource) {
- const struct PPB_DeviceRef_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1.real_iface;
- return iface->IsDeviceRef(resource);
-}
-
-static PP_DeviceType_Dev Pnacl_M18_PPB_DeviceRef_Dev_GetType(PP_Resource device_ref) {
- const struct PPB_DeviceRef_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1.real_iface;
- return iface->GetType(device_ref);
-}
-
-static void Pnacl_M18_PPB_DeviceRef_Dev_GetName(struct PP_Var* _struct_result, PP_Resource device_ref) {
- const struct PPB_DeviceRef_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1.real_iface;
- *_struct_result = iface->GetName(device_ref);
-}
-
-/* End wrapper methods for PPB_DeviceRef_Dev_0_1 */
-
-/* Begin wrapper methods for PPB_FileChooser_Dev_0_5 */
-
-static PP_Resource Pnacl_M16_PPB_FileChooser_Dev_Create(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var* accept_types) {
- const struct PPB_FileChooser_Dev_0_5 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5.real_iface;
- return iface->Create(instance, mode, *accept_types);
-}
-
-static PP_Bool Pnacl_M16_PPB_FileChooser_Dev_IsFileChooser(PP_Resource resource) {
- const struct PPB_FileChooser_Dev_0_5 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5.real_iface;
- return iface->IsFileChooser(resource);
-}
-
-static int32_t Pnacl_M16_PPB_FileChooser_Dev_Show(PP_Resource chooser, struct PP_CompletionCallback* callback) {
- const struct PPB_FileChooser_Dev_0_5 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5.real_iface;
- return iface->Show(chooser, *callback);
-}
-
-static PP_Resource Pnacl_M16_PPB_FileChooser_Dev_GetNextChosenFile(PP_Resource chooser) {
- const struct PPB_FileChooser_Dev_0_5 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5.real_iface;
- return iface->GetNextChosenFile(chooser);
-}
-
-/* End wrapper methods for PPB_FileChooser_Dev_0_5 */
-
-/* Begin wrapper methods for PPB_FileChooser_Dev_0_6 */
-
-static PP_Resource Pnacl_M19_PPB_FileChooser_Dev_Create(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var* accept_types) {
- const struct PPB_FileChooser_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6.real_iface;
- return iface->Create(instance, mode, *accept_types);
-}
-
-static PP_Bool Pnacl_M19_PPB_FileChooser_Dev_IsFileChooser(PP_Resource resource) {
- const struct PPB_FileChooser_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6.real_iface;
- return iface->IsFileChooser(resource);
-}
-
-static int32_t Pnacl_M19_PPB_FileChooser_Dev_Show(PP_Resource chooser, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_FileChooser_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6.real_iface;
- return iface->Show(chooser, *output, *callback);
-}
-
-/* End wrapper methods for PPB_FileChooser_Dev_0_6 */
-
-/* Begin wrapper methods for PPB_IMEInputEvent_Dev_0_1 */
-
-static PP_Bool Pnacl_M16_PPB_IMEInputEvent_Dev_IsIMEInputEvent(PP_Resource resource) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- return iface->IsIMEInputEvent(resource);
-}
-
-static void Pnacl_M16_PPB_IMEInputEvent_Dev_GetText(struct PP_Var* _struct_result, PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- *_struct_result = iface->GetText(ime_event);
-}
-
-static uint32_t Pnacl_M16_PPB_IMEInputEvent_Dev_GetSegmentNumber(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- return iface->GetSegmentNumber(ime_event);
-}
-
-static uint32_t Pnacl_M16_PPB_IMEInputEvent_Dev_GetSegmentOffset(PP_Resource ime_event, uint32_t index) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- return iface->GetSegmentOffset(ime_event, index);
-}
-
-static int32_t Pnacl_M16_PPB_IMEInputEvent_Dev_GetTargetSegment(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- return iface->GetTargetSegment(ime_event);
-}
-
-static void Pnacl_M16_PPB_IMEInputEvent_Dev_GetSelection(PP_Resource ime_event, uint32_t* start, uint32_t* end) {
- const struct PPB_IMEInputEvent_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1.real_iface;
- iface->GetSelection(ime_event, start, end);
-}
-
-/* End wrapper methods for PPB_IMEInputEvent_Dev_0_1 */
-
-/* Begin wrapper methods for PPB_IMEInputEvent_Dev_0_2 */
-
-static PP_Resource Pnacl_M21_PPB_IMEInputEvent_Dev_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var* text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- return iface->Create(instance, type, time_stamp, *text, segment_number, segment_offsets, target_segment, selection_start, selection_end);
-}
-
-static PP_Bool Pnacl_M21_PPB_IMEInputEvent_Dev_IsIMEInputEvent(PP_Resource resource) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- return iface->IsIMEInputEvent(resource);
-}
-
-static void Pnacl_M21_PPB_IMEInputEvent_Dev_GetText(struct PP_Var* _struct_result, PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- *_struct_result = iface->GetText(ime_event);
-}
-
-static uint32_t Pnacl_M21_PPB_IMEInputEvent_Dev_GetSegmentNumber(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- return iface->GetSegmentNumber(ime_event);
-}
-
-static uint32_t Pnacl_M21_PPB_IMEInputEvent_Dev_GetSegmentOffset(PP_Resource ime_event, uint32_t index) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- return iface->GetSegmentOffset(ime_event, index);
-}
-
-static int32_t Pnacl_M21_PPB_IMEInputEvent_Dev_GetTargetSegment(PP_Resource ime_event) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- return iface->GetTargetSegment(ime_event);
-}
-
-static void Pnacl_M21_PPB_IMEInputEvent_Dev_GetSelection(PP_Resource ime_event, uint32_t* start, uint32_t* end) {
- const struct PPB_IMEInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2.real_iface;
- iface->GetSelection(ime_event, start, end);
-}
-
-/* End wrapper methods for PPB_IMEInputEvent_Dev_0_2 */
-
-/* Not generating wrapper methods for PPB_Memory_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_OpenGLES2DrawBuffers_Dev_1_0 */
-
-/* Begin wrapper methods for PPB_Printing_Dev_0_7 */
-
-static PP_Resource Pnacl_M23_PPB_Printing_Dev_Create(PP_Instance instance) {
- const struct PPB_Printing_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_Printing_Dev_0_7.real_iface;
- return iface->Create(instance);
-}
-
-static int32_t Pnacl_M23_PPB_Printing_Dev_GetDefaultPrintSettings(PP_Resource resource, struct PP_PrintSettings_Dev* print_settings, struct PP_CompletionCallback* callback) {
- const struct PPB_Printing_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_Printing_Dev_0_7.real_iface;
- return iface->GetDefaultPrintSettings(resource, print_settings, *callback);
-}
-
-/* End wrapper methods for PPB_Printing_Dev_0_7 */
-
-/* Not generating wrapper methods for PPB_TextInput_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_TextInput_Dev_0_2 */
-
-/* Not generating wrapper methods for PPB_Trace_Event_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_Trace_Event_Dev_0_2 */
-
-/* Begin wrapper methods for PPB_URLUtil_Dev_0_6 */
-
-static void Pnacl_M17_PPB_URLUtil_Dev_Canonicalize(struct PP_Var* _struct_result, struct PP_Var* url, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- *_struct_result = iface->Canonicalize(*url, components);
-}
-
-static void Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToURL(struct PP_Var* _struct_result, struct PP_Var* base_url, struct PP_Var* relative_string, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- *_struct_result = iface->ResolveRelativeToURL(*base_url, *relative_string, components);
-}
-
-static void Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToDocument(struct PP_Var* _struct_result, PP_Instance instance, struct PP_Var* relative_string, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- *_struct_result = iface->ResolveRelativeToDocument(instance, *relative_string, components);
-}
-
-static PP_Bool Pnacl_M17_PPB_URLUtil_Dev_IsSameSecurityOrigin(struct PP_Var* url_a, struct PP_Var* url_b) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- return iface->IsSameSecurityOrigin(*url_a, *url_b);
-}
-
-static PP_Bool Pnacl_M17_PPB_URLUtil_Dev_DocumentCanRequest(PP_Instance instance, struct PP_Var* url) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- return iface->DocumentCanRequest(instance, *url);
-}
-
-static PP_Bool Pnacl_M17_PPB_URLUtil_Dev_DocumentCanAccessDocument(PP_Instance active, PP_Instance target) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- return iface->DocumentCanAccessDocument(active, target);
-}
-
-static void Pnacl_M17_PPB_URLUtil_Dev_GetDocumentURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- *_struct_result = iface->GetDocumentURL(instance, components);
-}
-
-static void Pnacl_M17_PPB_URLUtil_Dev_GetPluginInstanceURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_6 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6.real_iface;
- *_struct_result = iface->GetPluginInstanceURL(instance, components);
-}
-
-/* End wrapper methods for PPB_URLUtil_Dev_0_6 */
-
-/* Begin wrapper methods for PPB_URLUtil_Dev_0_7 */
-
-static void Pnacl_M31_PPB_URLUtil_Dev_Canonicalize(struct PP_Var* _struct_result, struct PP_Var* url, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->Canonicalize(*url, components);
-}
-
-static void Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToURL(struct PP_Var* _struct_result, struct PP_Var* base_url, struct PP_Var* relative_string, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->ResolveRelativeToURL(*base_url, *relative_string, components);
-}
-
-static void Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToDocument(struct PP_Var* _struct_result, PP_Instance instance, struct PP_Var* relative_string, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->ResolveRelativeToDocument(instance, *relative_string, components);
-}
-
-static PP_Bool Pnacl_M31_PPB_URLUtil_Dev_IsSameSecurityOrigin(struct PP_Var* url_a, struct PP_Var* url_b) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- return iface->IsSameSecurityOrigin(*url_a, *url_b);
-}
-
-static PP_Bool Pnacl_M31_PPB_URLUtil_Dev_DocumentCanRequest(PP_Instance instance, struct PP_Var* url) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- return iface->DocumentCanRequest(instance, *url);
-}
-
-static PP_Bool Pnacl_M31_PPB_URLUtil_Dev_DocumentCanAccessDocument(PP_Instance active, PP_Instance target) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- return iface->DocumentCanAccessDocument(active, target);
-}
-
-static void Pnacl_M31_PPB_URLUtil_Dev_GetDocumentURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->GetDocumentURL(instance, components);
-}
-
-static void Pnacl_M31_PPB_URLUtil_Dev_GetPluginInstanceURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->GetPluginInstanceURL(instance, components);
-}
-
-static void Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_URLUtil_Dev_0_7 *iface = Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7.real_iface;
- *_struct_result = iface->GetPluginReferrerURL(instance, components);
-}
-
-/* End wrapper methods for PPB_URLUtil_Dev_0_7 */
-
-/* Begin wrapper methods for PPB_VideoCapture_Dev_0_3 */
-
-static PP_Resource Pnacl_M25_PPB_VideoCapture_Dev_Create(PP_Instance instance) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M25_PPB_VideoCapture_Dev_IsVideoCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->IsVideoCapture(video_capture);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_EnumerateDevices(PP_Resource video_capture, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->EnumerateDevices(video_capture, *output, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_MonitorDeviceChange(PP_Resource video_capture, PP_MonitorDeviceChangeCallback callback, void* user_data) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->MonitorDeviceChange(video_capture, callback, user_data);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_Open(PP_Resource video_capture, PP_Resource device_ref, const struct PP_VideoCaptureDeviceInfo_Dev* requested_info, uint32_t buffer_count, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->Open(video_capture, device_ref, requested_info, buffer_count, *callback);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_StartCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->StartCapture(video_capture);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_ReuseBuffer(PP_Resource video_capture, uint32_t buffer) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->ReuseBuffer(video_capture, buffer);
-}
-
-static int32_t Pnacl_M25_PPB_VideoCapture_Dev_StopCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- return iface->StopCapture(video_capture);
-}
-
-static void Pnacl_M25_PPB_VideoCapture_Dev_Close(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3.real_iface;
- iface->Close(video_capture);
-}
-
-/* End wrapper methods for PPB_VideoCapture_Dev_0_3 */
-
-/* Begin wrapper methods for PPB_VideoDecoder_Dev_0_16 */
-
-static PP_Resource Pnacl_M14_PPB_VideoDecoder_Dev_Create(PP_Instance instance, PP_Resource context, PP_VideoDecoder_Profile profile) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- return iface->Create(instance, context, profile);
-}
-
-static PP_Bool Pnacl_M14_PPB_VideoDecoder_Dev_IsVideoDecoder(PP_Resource resource) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- return iface->IsVideoDecoder(resource);
-}
-
-static int32_t Pnacl_M14_PPB_VideoDecoder_Dev_Decode(PP_Resource video_decoder, const struct PP_VideoBitstreamBuffer_Dev* bitstream_buffer, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- return iface->Decode(video_decoder, bitstream_buffer, *callback);
-}
-
-static void Pnacl_M14_PPB_VideoDecoder_Dev_AssignPictureBuffers(PP_Resource video_decoder, uint32_t no_of_buffers, const struct PP_PictureBuffer_Dev buffers[]) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- iface->AssignPictureBuffers(video_decoder, no_of_buffers, buffers);
-}
-
-static void Pnacl_M14_PPB_VideoDecoder_Dev_ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- iface->ReusePictureBuffer(video_decoder, picture_buffer_id);
-}
-
-static int32_t Pnacl_M14_PPB_VideoDecoder_Dev_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- return iface->Flush(video_decoder, *callback);
-}
-
-static int32_t Pnacl_M14_PPB_VideoDecoder_Dev_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- return iface->Reset(video_decoder, *callback);
-}
-
-static void Pnacl_M14_PPB_VideoDecoder_Dev_Destroy(PP_Resource video_decoder) {
- const struct PPB_VideoDecoder_Dev_0_16 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16.real_iface;
- iface->Destroy(video_decoder);
-}
-
-/* End wrapper methods for PPB_VideoDecoder_Dev_0_16 */
-
-/* Not generating wrapper methods for PPB_View_Dev_0_1 */
-
-/* Not generating wrapper methods for PPP_NetworkState_Dev_0_1 */
-
-/* Not generating wrapper methods for PPP_Printing_Dev_0_6 */
-
-/* Not generating wrapper methods for PPP_TextInput_Dev_0_1 */
-
-/* Not generating wrapper methods for PPP_VideoCapture_Dev_0_1 */
-
-/* Not generating wrapper methods for PPP_VideoDecoder_Dev_0_11 */
-
-/* Not generating wrapper methods for PPB_CameraCapabilities_Private_0_1 */
-
-/* Begin wrapper methods for PPB_CameraDevice_Private_0_1 */
-
-static PP_Resource Pnacl_M42_PPB_CameraDevice_Private_Create(PP_Instance instance) {
- const struct PPB_CameraDevice_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M42_PPB_CameraDevice_Private_IsCameraDevice(PP_Resource resource) {
- const struct PPB_CameraDevice_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1.real_iface;
- return iface->IsCameraDevice(resource);
-}
-
-static int32_t Pnacl_M42_PPB_CameraDevice_Private_Open(PP_Resource camera_device, struct PP_Var* device_id, struct PP_CompletionCallback* callback) {
- const struct PPB_CameraDevice_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1.real_iface;
- return iface->Open(camera_device, *device_id, *callback);
-}
-
-static void Pnacl_M42_PPB_CameraDevice_Private_Close(PP_Resource camera_device) {
- const struct PPB_CameraDevice_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1.real_iface;
- iface->Close(camera_device);
-}
-
-static int32_t Pnacl_M42_PPB_CameraDevice_Private_GetCameraCapabilities(PP_Resource camera_device, PP_Resource* capabilities, struct PP_CompletionCallback* callback) {
- const struct PPB_CameraDevice_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1.real_iface;
- return iface->GetCameraCapabilities(camera_device, capabilities, *callback);
-}
-
-/* End wrapper methods for PPB_CameraDevice_Private_0_1 */
-
-/* Begin wrapper methods for PPB_DisplayColorProfile_Private_0_1 */
-
-static PP_Resource Pnacl_M33_PPB_DisplayColorProfile_Private_Create(PP_Instance instance) {
- const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M33_PPB_DisplayColorProfile_Private_IsDisplayColorProfile(PP_Resource resource) {
- const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
- return iface->IsDisplayColorProfile(resource);
-}
-
-static int32_t Pnacl_M33_PPB_DisplayColorProfile_Private_GetColorProfile(PP_Resource display_color_profile_res, struct PP_ArrayOutput* color_profile, struct PP_CompletionCallback* callback) {
- const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
- return iface->GetColorProfile(display_color_profile_res, *color_profile, *callback);
-}
-
-static int32_t Pnacl_M33_PPB_DisplayColorProfile_Private_RegisterColorProfileChangeCallback(PP_Resource display_color_profile_res, struct PP_CompletionCallback* callback) {
- const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
- return iface->RegisterColorProfileChangeCallback(display_color_profile_res, *callback);
-}
-
-/* End wrapper methods for PPB_DisplayColorProfile_Private_0_1 */
-
-/* Begin wrapper methods for PPB_Ext_CrxFileSystem_Private_0_1 */
-
-static int32_t Pnacl_M28_PPB_Ext_CrxFileSystem_Private_Open(PP_Instance instance, PP_Resource* file_system, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_CrxFileSystem_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1.real_iface;
- return iface->Open(instance, file_system, *callback);
-}
-
-/* End wrapper methods for PPB_Ext_CrxFileSystem_Private_0_1 */
-
-/* Begin wrapper methods for PPB_FileIO_Private_0_1 */
-
-static int32_t Pnacl_M28_PPB_FileIO_Private_RequestOSFileHandle(PP_Resource file_io, PP_FileHandle* handle, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_Private_0_1.real_iface;
- return iface->RequestOSFileHandle(file_io, handle, *callback);
-}
-
-/* End wrapper methods for PPB_FileIO_Private_0_1 */
-
-/* Begin wrapper methods for PPB_FileRefPrivate_0_1 */
-
-static void Pnacl_M15_PPB_FileRefPrivate_GetAbsolutePath(struct PP_Var* _struct_result, PP_Resource file_ref) {
- const struct PPB_FileRefPrivate_0_1 *iface = Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1.real_iface;
- *_struct_result = iface->GetAbsolutePath(file_ref);
-}
-
-/* End wrapper methods for PPB_FileRefPrivate_0_1 */
-
-/* Not generating wrapper methods for PPB_Find_Private_0_3 */
-
-/* Not generating wrapper methods for PPB_Flash_FontFile_0_1 */
-
-/* Not generating wrapper methods for PPB_Flash_FontFile_0_2 */
-
-/* Begin wrapper methods for PPB_HostResolver_Private_0_1 */
-
-static PP_Resource Pnacl_M19_PPB_HostResolver_Private_Create(PP_Instance instance) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M19_PPB_HostResolver_Private_IsHostResolver(PP_Resource resource) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- return iface->IsHostResolver(resource);
-}
-
-static int32_t Pnacl_M19_PPB_HostResolver_Private_Resolve(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Private_Hint* hint, struct PP_CompletionCallback* callback) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- return iface->Resolve(host_resolver, host, port, hint, *callback);
-}
-
-static void Pnacl_M19_PPB_HostResolver_Private_GetCanonicalName(struct PP_Var* _struct_result, PP_Resource host_resolver) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- *_struct_result = iface->GetCanonicalName(host_resolver);
-}
-
-static uint32_t Pnacl_M19_PPB_HostResolver_Private_GetSize(PP_Resource host_resolver) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- return iface->GetSize(host_resolver);
-}
-
-static PP_Bool Pnacl_M19_PPB_HostResolver_Private_GetNetAddress(PP_Resource host_resolver, uint32_t index, struct PP_NetAddress_Private* addr) {
- const struct PPB_HostResolver_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1.real_iface;
- return iface->GetNetAddress(host_resolver, index, addr);
-}
-
-/* End wrapper methods for PPB_HostResolver_Private_0_1 */
-
-/* Begin wrapper methods for PPB_Instance_Private_0_1 */
-
-static void Pnacl_M13_PPB_Instance_Private_GetWindowObject(struct PP_Var* _struct_result, PP_Instance instance) {
- const struct PPB_Instance_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_Instance_Private_0_1.real_iface;
- *_struct_result = iface->GetWindowObject(instance);
-}
-
-static void Pnacl_M13_PPB_Instance_Private_GetOwnerElementObject(struct PP_Var* _struct_result, PP_Instance instance) {
- const struct PPB_Instance_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_Instance_Private_0_1.real_iface;
- *_struct_result = iface->GetOwnerElementObject(instance);
-}
-
-static void Pnacl_M13_PPB_Instance_Private_ExecuteScript(struct PP_Var* _struct_result, PP_Instance instance, struct PP_Var* script, struct PP_Var* exception) {
- const struct PPB_Instance_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_Instance_Private_0_1.real_iface;
- *_struct_result = iface->ExecuteScript(instance, *script, exception);
-}
-
-/* End wrapper methods for PPB_Instance_Private_0_1 */
-
-/* Begin wrapper methods for PPB_IsolatedFileSystem_Private_0_2 */
-
-static int32_t Pnacl_M33_PPB_IsolatedFileSystem_Private_Open(PP_Instance instance, PP_IsolatedFileSystemType_Private type, PP_Resource* file_system, struct PP_CompletionCallback* callback) {
- const struct PPB_IsolatedFileSystem_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_IsolatedFileSystem_Private_0_2.real_iface;
- return iface->Open(instance, type, file_system, *callback);
-}
-
-/* End wrapper methods for PPB_IsolatedFileSystem_Private_0_2 */
-
-/* Begin wrapper methods for PPB_NetAddress_Private_0_1 */
-
-static PP_Bool Pnacl_M17_PPB_NetAddress_Private_AreEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1.real_iface;
- return iface->AreEqual(addr1, addr2);
-}
-
-static PP_Bool Pnacl_M17_PPB_NetAddress_Private_AreHostsEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1.real_iface;
- return iface->AreHostsEqual(addr1, addr2);
-}
-
-static void Pnacl_M17_PPB_NetAddress_Private_Describe(struct PP_Var* _struct_result, PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port) {
- const struct PPB_NetAddress_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1.real_iface;
- *_struct_result = iface->Describe(module, addr, include_port);
-}
-
-static PP_Bool Pnacl_M17_PPB_NetAddress_Private_ReplacePort(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out) {
- const struct PPB_NetAddress_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1.real_iface;
- return iface->ReplacePort(src_addr, port, addr_out);
-}
-
-static void Pnacl_M17_PPB_NetAddress_Private_GetAnyAddress(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1.real_iface;
- iface->GetAnyAddress(is_ipv6, addr);
-}
-
-/* End wrapper methods for PPB_NetAddress_Private_0_1 */
-
-/* Begin wrapper methods for PPB_NetAddress_Private_1_0 */
-
-static PP_Bool Pnacl_M19_0_PPB_NetAddress_Private_AreEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->AreEqual(addr1, addr2);
-}
-
-static PP_Bool Pnacl_M19_0_PPB_NetAddress_Private_AreHostsEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->AreHostsEqual(addr1, addr2);
-}
-
-static void Pnacl_M19_0_PPB_NetAddress_Private_Describe(struct PP_Var* _struct_result, PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- *_struct_result = iface->Describe(module, addr, include_port);
-}
-
-static PP_Bool Pnacl_M19_0_PPB_NetAddress_Private_ReplacePort(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->ReplacePort(src_addr, port, addr_out);
-}
-
-static void Pnacl_M19_0_PPB_NetAddress_Private_GetAnyAddress(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- iface->GetAnyAddress(is_ipv6, addr);
-}
-
-static PP_NetAddressFamily_Private Pnacl_M19_0_PPB_NetAddress_Private_GetFamily(const struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->GetFamily(addr);
-}
-
-static uint16_t Pnacl_M19_0_PPB_NetAddress_Private_GetPort(const struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->GetPort(addr);
-}
-
-static PP_Bool Pnacl_M19_0_PPB_NetAddress_Private_GetAddress(const struct PP_NetAddress_Private* addr, void* address, uint16_t address_size) {
- const struct PPB_NetAddress_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0.real_iface;
- return iface->GetAddress(addr, address, address_size);
-}
-
-/* End wrapper methods for PPB_NetAddress_Private_1_0 */
-
-/* Begin wrapper methods for PPB_NetAddress_Private_1_1 */
-
-static PP_Bool Pnacl_M19_1_PPB_NetAddress_Private_AreEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->AreEqual(addr1, addr2);
-}
-
-static PP_Bool Pnacl_M19_1_PPB_NetAddress_Private_AreHostsEqual(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->AreHostsEqual(addr1, addr2);
-}
-
-static void Pnacl_M19_1_PPB_NetAddress_Private_Describe(struct PP_Var* _struct_result, PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- *_struct_result = iface->Describe(module, addr, include_port);
-}
-
-static PP_Bool Pnacl_M19_1_PPB_NetAddress_Private_ReplacePort(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->ReplacePort(src_addr, port, addr_out);
-}
-
-static void Pnacl_M19_1_PPB_NetAddress_Private_GetAnyAddress(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- iface->GetAnyAddress(is_ipv6, addr);
-}
-
-static PP_NetAddressFamily_Private Pnacl_M19_1_PPB_NetAddress_Private_GetFamily(const struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->GetFamily(addr);
-}
-
-static uint16_t Pnacl_M19_1_PPB_NetAddress_Private_GetPort(const struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->GetPort(addr);
-}
-
-static PP_Bool Pnacl_M19_1_PPB_NetAddress_Private_GetAddress(const struct PP_NetAddress_Private* addr, void* address, uint16_t address_size) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->GetAddress(addr, address, address_size);
-}
-
-static uint32_t Pnacl_M19_1_PPB_NetAddress_Private_GetScopeID(const struct PP_NetAddress_Private* addr) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- return iface->GetScopeID(addr);
-}
-
-static void Pnacl_M19_1_PPB_NetAddress_Private_CreateFromIPv4Address(const uint8_t ip[4], uint16_t port, struct PP_NetAddress_Private* addr_out) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- iface->CreateFromIPv4Address(ip, port, addr_out);
-}
-
-static void Pnacl_M19_1_PPB_NetAddress_Private_CreateFromIPv6Address(const uint8_t ip[16], uint32_t scope_id, uint16_t port, struct PP_NetAddress_Private* addr_out) {
- const struct PPB_NetAddress_Private_1_1 *iface = Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1.real_iface;
- iface->CreateFromIPv6Address(ip, scope_id, port, addr_out);
-}
-
-/* End wrapper methods for PPB_NetAddress_Private_1_1 */
-
-/* Begin wrapper methods for PPB_TCPServerSocket_Private_0_1 */
-
-static PP_Resource Pnacl_M18_PPB_TCPServerSocket_Private_Create(PP_Instance instance) {
- const struct PPB_TCPServerSocket_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M18_PPB_TCPServerSocket_Private_IsTCPServerSocket(PP_Resource resource) {
- const struct PPB_TCPServerSocket_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1.real_iface;
- return iface->IsTCPServerSocket(resource);
-}
-
-static int32_t Pnacl_M18_PPB_TCPServerSocket_Private_Listen(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPServerSocket_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1.real_iface;
- return iface->Listen(tcp_server_socket, addr, backlog, *callback);
-}
-
-static int32_t Pnacl_M18_PPB_TCPServerSocket_Private_Accept(PP_Resource tcp_server_socket, PP_Resource* tcp_socket, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPServerSocket_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1.real_iface;
- return iface->Accept(tcp_server_socket, tcp_socket, *callback);
-}
-
-static void Pnacl_M18_PPB_TCPServerSocket_Private_StopListening(PP_Resource tcp_server_socket) {
- const struct PPB_TCPServerSocket_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1.real_iface;
- iface->StopListening(tcp_server_socket);
-}
-
-/* End wrapper methods for PPB_TCPServerSocket_Private_0_1 */
-
-/* Begin wrapper methods for PPB_TCPServerSocket_Private_0_2 */
-
-static PP_Resource Pnacl_M28_PPB_TCPServerSocket_Private_Create(PP_Instance instance) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M28_PPB_TCPServerSocket_Private_IsTCPServerSocket(PP_Resource resource) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- return iface->IsTCPServerSocket(resource);
-}
-
-static int32_t Pnacl_M28_PPB_TCPServerSocket_Private_Listen(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- return iface->Listen(tcp_server_socket, addr, backlog, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_TCPServerSocket_Private_Accept(PP_Resource tcp_server_socket, PP_Resource* tcp_socket, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- return iface->Accept(tcp_server_socket, tcp_socket, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_TCPServerSocket_Private_GetLocalAddress(PP_Resource tcp_server_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- return iface->GetLocalAddress(tcp_server_socket, addr);
-}
-
-static void Pnacl_M28_PPB_TCPServerSocket_Private_StopListening(PP_Resource tcp_server_socket) {
- const struct PPB_TCPServerSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2.real_iface;
- iface->StopListening(tcp_server_socket);
-}
-
-/* End wrapper methods for PPB_TCPServerSocket_Private_0_2 */
-
-/* Begin wrapper methods for PPB_TCPSocket_Private_0_3 */
-
-static PP_Resource Pnacl_M17_PPB_TCPSocket_Private_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M17_PPB_TCPSocket_Private_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M17_PPB_TCPSocket_Private_Connect(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->Connect(tcp_socket, host, port, *callback);
-}
-
-static int32_t Pnacl_M17_PPB_TCPSocket_Private_ConnectWithNetAddress(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->ConnectWithNetAddress(tcp_socket, addr, *callback);
-}
-
-static PP_Bool Pnacl_M17_PPB_TCPSocket_Private_GetLocalAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->GetLocalAddress(tcp_socket, local_addr);
-}
-
-static PP_Bool Pnacl_M17_PPB_TCPSocket_Private_GetRemoteAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->GetRemoteAddress(tcp_socket, remote_addr);
-}
-
-static int32_t Pnacl_M17_PPB_TCPSocket_Private_SSLHandshake(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->SSLHandshake(tcp_socket, server_name, server_port, *callback);
-}
-
-static int32_t Pnacl_M17_PPB_TCPSocket_Private_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M17_PPB_TCPSocket_Private_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static void Pnacl_M17_PPB_TCPSocket_Private_Disconnect(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3.real_iface;
- iface->Disconnect(tcp_socket);
-}
-
-/* End wrapper methods for PPB_TCPSocket_Private_0_3 */
-
-/* Begin wrapper methods for PPB_TCPSocket_Private_0_4 */
-
-static PP_Resource Pnacl_M20_PPB_TCPSocket_Private_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M20_PPB_TCPSocket_Private_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M20_PPB_TCPSocket_Private_Connect(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->Connect(tcp_socket, host, port, *callback);
-}
-
-static int32_t Pnacl_M20_PPB_TCPSocket_Private_ConnectWithNetAddress(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->ConnectWithNetAddress(tcp_socket, addr, *callback);
-}
-
-static PP_Bool Pnacl_M20_PPB_TCPSocket_Private_GetLocalAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->GetLocalAddress(tcp_socket, local_addr);
-}
-
-static PP_Bool Pnacl_M20_PPB_TCPSocket_Private_GetRemoteAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->GetRemoteAddress(tcp_socket, remote_addr);
-}
-
-static int32_t Pnacl_M20_PPB_TCPSocket_Private_SSLHandshake(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->SSLHandshake(tcp_socket, server_name, server_port, *callback);
-}
-
-static PP_Resource Pnacl_M20_PPB_TCPSocket_Private_GetServerCertificate(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->GetServerCertificate(tcp_socket);
-}
-
-static PP_Bool Pnacl_M20_PPB_TCPSocket_Private_AddChainBuildingCertificate(PP_Resource tcp_socket, PP_Resource certificate, PP_Bool is_trusted) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->AddChainBuildingCertificate(tcp_socket, certificate, is_trusted);
-}
-
-static int32_t Pnacl_M20_PPB_TCPSocket_Private_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M20_PPB_TCPSocket_Private_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static void Pnacl_M20_PPB_TCPSocket_Private_Disconnect(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4.real_iface;
- iface->Disconnect(tcp_socket);
-}
-
-/* End wrapper methods for PPB_TCPSocket_Private_0_4 */
-
-/* Begin wrapper methods for PPB_TCPSocket_Private_0_5 */
-
-static PP_Resource Pnacl_M27_PPB_TCPSocket_Private_Create(PP_Instance instance) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M27_PPB_TCPSocket_Private_IsTCPSocket(PP_Resource resource) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->IsTCPSocket(resource);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_Connect(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->Connect(tcp_socket, host, port, *callback);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_ConnectWithNetAddress(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->ConnectWithNetAddress(tcp_socket, addr, *callback);
-}
-
-static PP_Bool Pnacl_M27_PPB_TCPSocket_Private_GetLocalAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->GetLocalAddress(tcp_socket, local_addr);
-}
-
-static PP_Bool Pnacl_M27_PPB_TCPSocket_Private_GetRemoteAddress(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->GetRemoteAddress(tcp_socket, remote_addr);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_SSLHandshake(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->SSLHandshake(tcp_socket, server_name, server_port, *callback);
-}
-
-static PP_Resource Pnacl_M27_PPB_TCPSocket_Private_GetServerCertificate(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->GetServerCertificate(tcp_socket);
-}
-
-static PP_Bool Pnacl_M27_PPB_TCPSocket_Private_AddChainBuildingCertificate(PP_Resource tcp_socket, PP_Resource certificate, PP_Bool is_trusted) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->AddChainBuildingCertificate(tcp_socket, certificate, is_trusted);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_Read(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->Read(tcp_socket, buffer, bytes_to_read, *callback);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_Write(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->Write(tcp_socket, buffer, bytes_to_write, *callback);
-}
-
-static void Pnacl_M27_PPB_TCPSocket_Private_Disconnect(PP_Resource tcp_socket) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- iface->Disconnect(tcp_socket);
-}
-
-static int32_t Pnacl_M27_PPB_TCPSocket_Private_SetOption(PP_Resource tcp_socket, PP_TCPSocketOption_Private name, struct PP_Var* value, struct PP_CompletionCallback* callback) {
- const struct PPB_TCPSocket_Private_0_5 *iface = Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5.real_iface;
- return iface->SetOption(tcp_socket, name, *value, *callback);
-}
-
-/* End wrapper methods for PPB_TCPSocket_Private_0_5 */
-
-/* Begin wrapper methods for PPB_Testing_Private_1_0 */
-
-static PP_Bool Pnacl_M33_PPB_Testing_Private_ReadImageData(PP_Resource device_context_2d, PP_Resource image, const struct PP_Point* top_left) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- return iface->ReadImageData(device_context_2d, image, top_left);
-}
-
-static void Pnacl_M33_PPB_Testing_Private_RunMessageLoop(PP_Instance instance) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- iface->RunMessageLoop(instance);
-}
-
-static void Pnacl_M33_PPB_Testing_Private_QuitMessageLoop(PP_Instance instance) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- iface->QuitMessageLoop(instance);
-}
-
-static uint32_t Pnacl_M33_PPB_Testing_Private_GetLiveObjectsForInstance(PP_Instance instance) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- return iface->GetLiveObjectsForInstance(instance);
-}
-
-static PP_Bool Pnacl_M33_PPB_Testing_Private_IsOutOfProcess(void) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- return iface->IsOutOfProcess();
-}
-
-static void Pnacl_M33_PPB_Testing_Private_SimulateInputEvent(PP_Instance instance, PP_Resource input_event) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- iface->SimulateInputEvent(instance, input_event);
-}
-
-static void Pnacl_M33_PPB_Testing_Private_GetDocumentURL(struct PP_Var* _struct_result, PP_Instance instance, struct PP_URLComponents_Dev* components) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- *_struct_result = iface->GetDocumentURL(instance, components);
-}
-
-static uint32_t Pnacl_M33_PPB_Testing_Private_GetLiveVars(struct PP_Var live_vars[], uint32_t array_size) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- return iface->GetLiveVars(live_vars, array_size);
-}
-
-static void Pnacl_M33_PPB_Testing_Private_SetMinimumArrayBufferSizeForShmem(PP_Instance instance, uint32_t threshold) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- iface->SetMinimumArrayBufferSizeForShmem(instance, threshold);
-}
-
-static void Pnacl_M33_PPB_Testing_Private_RunV8GC(PP_Instance instance) {
- const struct PPB_Testing_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_Testing_Private_1_0.real_iface;
- iface->RunV8GC(instance);
-}
-
-/* End wrapper methods for PPB_Testing_Private_1_0 */
-
-/* Begin wrapper methods for PPB_UDPSocket_Private_0_2 */
-
-static PP_Resource Pnacl_M17_PPB_UDPSocket_Private_Create(PP_Instance instance_id) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->Create(instance_id);
-}
-
-static PP_Bool Pnacl_M17_PPB_UDPSocket_Private_IsUDPSocket(PP_Resource resource_id) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->IsUDPSocket(resource_id);
-}
-
-static int32_t Pnacl_M17_PPB_UDPSocket_Private_Bind(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static int32_t Pnacl_M17_PPB_UDPSocket_Private_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, *callback);
-}
-
-static PP_Bool Pnacl_M17_PPB_UDPSocket_Private_GetRecvFromAddress(PP_Resource udp_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->GetRecvFromAddress(udp_socket, addr);
-}
-
-static int32_t Pnacl_M17_PPB_UDPSocket_Private_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M17_PPB_UDPSocket_Private_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_Private_0_2 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2.real_iface;
- iface->Close(udp_socket);
-}
-
-/* End wrapper methods for PPB_UDPSocket_Private_0_2 */
-
-/* Begin wrapper methods for PPB_UDPSocket_Private_0_3 */
-
-static PP_Resource Pnacl_M19_PPB_UDPSocket_Private_Create(PP_Instance instance_id) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->Create(instance_id);
-}
-
-static PP_Bool Pnacl_M19_PPB_UDPSocket_Private_IsUDPSocket(PP_Resource resource_id) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->IsUDPSocket(resource_id);
-}
-
-static int32_t Pnacl_M19_PPB_UDPSocket_Private_Bind(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static PP_Bool Pnacl_M19_PPB_UDPSocket_Private_GetBoundAddress(PP_Resource udp_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->GetBoundAddress(udp_socket, addr);
-}
-
-static int32_t Pnacl_M19_PPB_UDPSocket_Private_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, *callback);
-}
-
-static PP_Bool Pnacl_M19_PPB_UDPSocket_Private_GetRecvFromAddress(PP_Resource udp_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->GetRecvFromAddress(udp_socket, addr);
-}
-
-static int32_t Pnacl_M19_PPB_UDPSocket_Private_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M19_PPB_UDPSocket_Private_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3.real_iface;
- iface->Close(udp_socket);
-}
-
-/* End wrapper methods for PPB_UDPSocket_Private_0_3 */
-
-/* Begin wrapper methods for PPB_UDPSocket_Private_0_4 */
-
-static PP_Resource Pnacl_M23_PPB_UDPSocket_Private_Create(PP_Instance instance_id) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->Create(instance_id);
-}
-
-static PP_Bool Pnacl_M23_PPB_UDPSocket_Private_IsUDPSocket(PP_Resource resource_id) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->IsUDPSocket(resource_id);
-}
-
-static int32_t Pnacl_M23_PPB_UDPSocket_Private_SetSocketFeature(PP_Resource udp_socket, PP_UDPSocketFeature_Private name, struct PP_Var* value) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->SetSocketFeature(udp_socket, name, *value);
-}
-
-static int32_t Pnacl_M23_PPB_UDPSocket_Private_Bind(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->Bind(udp_socket, addr, *callback);
-}
-
-static PP_Bool Pnacl_M23_PPB_UDPSocket_Private_GetBoundAddress(PP_Resource udp_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->GetBoundAddress(udp_socket, addr);
-}
-
-static int32_t Pnacl_M23_PPB_UDPSocket_Private_RecvFrom(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->RecvFrom(udp_socket, buffer, num_bytes, *callback);
-}
-
-static PP_Bool Pnacl_M23_PPB_UDPSocket_Private_GetRecvFromAddress(PP_Resource udp_socket, struct PP_NetAddress_Private* addr) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->GetRecvFromAddress(udp_socket, addr);
-}
-
-static int32_t Pnacl_M23_PPB_UDPSocket_Private_SendTo(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback* callback) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- return iface->SendTo(udp_socket, buffer, num_bytes, addr, *callback);
-}
-
-static void Pnacl_M23_PPB_UDPSocket_Private_Close(PP_Resource udp_socket) {
- const struct PPB_UDPSocket_Private_0_4 *iface = Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4.real_iface;
- iface->Close(udp_socket);
-}
-
-/* End wrapper methods for PPB_UDPSocket_Private_0_4 */
-
-/* Begin wrapper methods for PPB_UMA_Private_0_3 */
-
-static void Pnacl_M35_PPB_UMA_Private_HistogramCustomTimes(PP_Instance instance, struct PP_Var* name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count) {
- const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
- iface->HistogramCustomTimes(instance, *name, sample, min, max, bucket_count);
-}
-
-static void Pnacl_M35_PPB_UMA_Private_HistogramCustomCounts(PP_Instance instance, struct PP_Var* name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count) {
- const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
- iface->HistogramCustomCounts(instance, *name, sample, min, max, bucket_count);
-}
-
-static void Pnacl_M35_PPB_UMA_Private_HistogramEnumeration(PP_Instance instance, struct PP_Var* name, int32_t sample, int32_t boundary_value) {
- const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
- iface->HistogramEnumeration(instance, *name, sample, boundary_value);
-}
-
-static int32_t Pnacl_M35_PPB_UMA_Private_IsCrashReportingEnabled(PP_Instance instance, struct PP_CompletionCallback* callback) {
- const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
- return iface->IsCrashReportingEnabled(instance, *callback);
-}
-
-/* End wrapper methods for PPB_UMA_Private_0_3 */
-
-/* Begin wrapper methods for PPB_X509Certificate_Private_0_1 */
-
-static PP_Resource Pnacl_M19_PPB_X509Certificate_Private_Create(PP_Instance instance) {
- const struct PPB_X509Certificate_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M19_PPB_X509Certificate_Private_IsX509CertificatePrivate(PP_Resource resource) {
- const struct PPB_X509Certificate_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1.real_iface;
- return iface->IsX509CertificatePrivate(resource);
-}
-
-static PP_Bool Pnacl_M19_PPB_X509Certificate_Private_Initialize(PP_Resource resource, const char* bytes, uint32_t length) {
- const struct PPB_X509Certificate_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1.real_iface;
- return iface->Initialize(resource, bytes, length);
-}
-
-static void Pnacl_M19_PPB_X509Certificate_Private_GetField(struct PP_Var* _struct_result, PP_Resource resource, PP_X509Certificate_Private_Field field) {
- const struct PPB_X509Certificate_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1.real_iface;
- *_struct_result = iface->GetField(resource, field);
-}
-
-/* End wrapper methods for PPB_X509Certificate_Private_0_1 */
-
-/* Not generating wrapper methods for PPP_Find_Private_0_3 */
-
-/* Begin wrapper methods for PPP_Instance_Private_0_1 */
-
-static struct PP_Var Pnacl_M18_PPP_Instance_Private_GetInstanceObject(PP_Instance instance) {
- const struct PPP_Instance_Private_0_1 *iface = Pnacl_WrapperInfo_PPP_Instance_Private_0_1.real_iface;
- void (*temp_fp)(struct PP_Var* _struct_result, PP_Instance instance) =
- ((void (*)(struct PP_Var* _struct_result, PP_Instance instance))iface->GetInstanceObject);
- struct PP_Var _struct_result;
- temp_fp(&_struct_result, instance);
- return _struct_result;
-}
-
-/* End wrapper methods for PPP_Instance_Private_0_1 */
-
-/* Not generating wrapper methods for PPP_PexeStreamHandler_1_0 */
-
-/* Not generating wrapper interface for PPB_Audio_1_0 */
-
-/* Not generating wrapper interface for PPB_Audio_1_1 */
-
-/* Not generating wrapper interface for PPB_AudioBuffer_0_1 */
-
-/* Not generating wrapper interface for PPB_AudioConfig_1_0 */
-
-/* Not generating wrapper interface for PPB_AudioConfig_1_1 */
-
-static const struct PPB_Console_1_0 Pnacl_Wrappers_PPB_Console_1_0 = {
- .Log = (void (*)(PP_Instance instance, PP_LogLevel level, struct PP_Var value))&Pnacl_M25_PPB_Console_Log,
- .LogWithSource = (void (*)(PP_Instance instance, PP_LogLevel level, struct PP_Var source, struct PP_Var value))&Pnacl_M25_PPB_Console_LogWithSource
-};
-
-static const struct PPB_Core_1_0 Pnacl_Wrappers_PPB_Core_1_0 = {
- .AddRefResource = (void (*)(PP_Resource resource))&Pnacl_M14_PPB_Core_AddRefResource,
- .ReleaseResource = (void (*)(PP_Resource resource))&Pnacl_M14_PPB_Core_ReleaseResource,
- .GetTime = (PP_Time (*)(void))&Pnacl_M14_PPB_Core_GetTime,
- .GetTimeTicks = (PP_TimeTicks (*)(void))&Pnacl_M14_PPB_Core_GetTimeTicks,
- .CallOnMainThread = (void (*)(int32_t delay_in_milliseconds, struct PP_CompletionCallback callback, int32_t result))&Pnacl_M14_PPB_Core_CallOnMainThread,
- .IsMainThread = (PP_Bool (*)(void))&Pnacl_M14_PPB_Core_IsMainThread
-};
-
-static const struct PPB_FileIO_1_0 Pnacl_Wrappers_PPB_FileIO_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_FileIO_Create,
- .IsFileIO = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileIO_IsFileIO,
- .Open = (int32_t (*)(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Open,
- .Query = (int32_t (*)(PP_Resource file_io, struct PP_FileInfo* info, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Query,
- .Touch = (int32_t (*)(PP_Resource file_io, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Touch,
- .Read = (int32_t (*)(PP_Resource file_io, int64_t offset, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Read,
- .Write = (int32_t (*)(PP_Resource file_io, int64_t offset, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Write,
- .SetLength = (int32_t (*)(PP_Resource file_io, int64_t length, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_SetLength,
- .Flush = (int32_t (*)(PP_Resource file_io, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Flush,
- .Close = (void (*)(PP_Resource file_io))&Pnacl_M14_PPB_FileIO_Close
-};
-
-static const struct PPB_FileIO_1_1 Pnacl_Wrappers_PPB_FileIO_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_FileIO_Create,
- .IsFileIO = (PP_Bool (*)(PP_Resource resource))&Pnacl_M25_PPB_FileIO_IsFileIO,
- .Open = (int32_t (*)(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Open,
- .Query = (int32_t (*)(PP_Resource file_io, struct PP_FileInfo* info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Query,
- .Touch = (int32_t (*)(PP_Resource file_io, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Touch,
- .Read = (int32_t (*)(PP_Resource file_io, int64_t offset, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Read,
- .Write = (int32_t (*)(PP_Resource file_io, int64_t offset, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Write,
- .SetLength = (int32_t (*)(PP_Resource file_io, int64_t length, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_SetLength,
- .Flush = (int32_t (*)(PP_Resource file_io, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Flush,
- .Close = (void (*)(PP_Resource file_io))&Pnacl_M25_PPB_FileIO_Close,
- .ReadToArray = (int32_t (*)(PP_Resource file_io, int64_t offset, int32_t max_read_length, struct PP_ArrayOutput* output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_ReadToArray
-};
-
-static const struct PPB_FileRef_1_0 Pnacl_Wrappers_PPB_FileRef_1_0 = {
- .Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M14_PPB_FileRef_Create,
- .IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileRef_IsFileRef,
- .GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M14_PPB_FileRef_GetFileSystemType,
- .GetName = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M14_PPB_FileRef_GetName,
- .GetPath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M14_PPB_FileRef_GetPath,
- .GetParent = (PP_Resource (*)(PP_Resource file_ref))&Pnacl_M14_PPB_FileRef_GetParent,
- .MakeDirectory = (int32_t (*)(PP_Resource directory_ref, PP_Bool make_ancestors, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileRef_MakeDirectory,
- .Touch = (int32_t (*)(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileRef_Touch,
- .Delete = (int32_t (*)(PP_Resource file_ref, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileRef_Delete,
- .Rename = (int32_t (*)(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileRef_Rename
-};
-
-static const struct PPB_FileRef_1_1 Pnacl_Wrappers_PPB_FileRef_1_1 = {
- .Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M28_PPB_FileRef_Create,
- .IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_FileRef_IsFileRef,
- .GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M28_PPB_FileRef_GetFileSystemType,
- .GetName = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M28_PPB_FileRef_GetName,
- .GetPath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M28_PPB_FileRef_GetPath,
- .GetParent = (PP_Resource (*)(PP_Resource file_ref))&Pnacl_M28_PPB_FileRef_GetParent,
- .MakeDirectory = (int32_t (*)(PP_Resource directory_ref, PP_Bool make_ancestors, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_MakeDirectory,
- .Touch = (int32_t (*)(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_Touch,
- .Delete = (int32_t (*)(PP_Resource file_ref, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_Delete,
- .Rename = (int32_t (*)(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_Rename,
- .Query = (int32_t (*)(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_Query,
- .ReadDirectoryEntries = (int32_t (*)(PP_Resource file_ref, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_ReadDirectoryEntries
-};
-
-static const struct PPB_FileRef_1_2 Pnacl_Wrappers_PPB_FileRef_1_2 = {
- .Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M34_PPB_FileRef_Create,
- .IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M34_PPB_FileRef_IsFileRef,
- .GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetFileSystemType,
- .GetName = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetName,
- .GetPath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetPath,
- .GetParent = (PP_Resource (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetParent,
- .MakeDirectory = (int32_t (*)(PP_Resource directory_ref, int32_t make_directory_flags, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_MakeDirectory,
- .Touch = (int32_t (*)(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Touch,
- .Delete = (int32_t (*)(PP_Resource file_ref, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Delete,
- .Rename = (int32_t (*)(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Rename,
- .Query = (int32_t (*)(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Query,
- .ReadDirectoryEntries = (int32_t (*)(PP_Resource file_ref, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_ReadDirectoryEntries
-};
-
-static const struct PPB_FileSystem_1_0 Pnacl_Wrappers_PPB_FileSystem_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_FileSystemType type))&Pnacl_M14_PPB_FileSystem_Create,
- .IsFileSystem = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileSystem_IsFileSystem,
- .Open = (int32_t (*)(PP_Resource file_system, int64_t expected_size, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileSystem_Open,
- .GetType = (PP_FileSystemType (*)(PP_Resource file_system))&Pnacl_M14_PPB_FileSystem_GetType
-};
-
-/* Not generating wrapper interface for PPB_Fullscreen_1_0 */
-
-/* Not generating wrapper interface for PPB_Gamepad_1_0 */
-
-static const struct PPB_Graphics2D_1_0 Pnacl_Wrappers_PPB_Graphics2D_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque))&Pnacl_M14_PPB_Graphics2D_Create,
- .IsGraphics2D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_Graphics2D_IsGraphics2D,
- .Describe = (PP_Bool (*)(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque))&Pnacl_M14_PPB_Graphics2D_Describe,
- .PaintImageData = (void (*)(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect))&Pnacl_M14_PPB_Graphics2D_PaintImageData,
- .Scroll = (void (*)(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount))&Pnacl_M14_PPB_Graphics2D_Scroll,
- .ReplaceContents = (void (*)(PP_Resource graphics_2d, PP_Resource image_data))&Pnacl_M14_PPB_Graphics2D_ReplaceContents,
- .Flush = (int32_t (*)(PP_Resource graphics_2d, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_Graphics2D_Flush
-};
-
-static const struct PPB_Graphics2D_1_1 Pnacl_Wrappers_PPB_Graphics2D_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque))&Pnacl_M27_PPB_Graphics2D_Create,
- .IsGraphics2D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M27_PPB_Graphics2D_IsGraphics2D,
- .Describe = (PP_Bool (*)(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque))&Pnacl_M27_PPB_Graphics2D_Describe,
- .PaintImageData = (void (*)(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect))&Pnacl_M27_PPB_Graphics2D_PaintImageData,
- .Scroll = (void (*)(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount))&Pnacl_M27_PPB_Graphics2D_Scroll,
- .ReplaceContents = (void (*)(PP_Resource graphics_2d, PP_Resource image_data))&Pnacl_M27_PPB_Graphics2D_ReplaceContents,
- .Flush = (int32_t (*)(PP_Resource graphics_2d, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_Graphics2D_Flush,
- .SetScale = (PP_Bool (*)(PP_Resource resource, float scale))&Pnacl_M27_PPB_Graphics2D_SetScale,
- .GetScale = (float (*)(PP_Resource resource))&Pnacl_M27_PPB_Graphics2D_GetScale
-};
-
-static const struct PPB_Graphics2D_1_2 Pnacl_Wrappers_PPB_Graphics2D_1_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque))&Pnacl_M52_PPB_Graphics2D_Create,
- .IsGraphics2D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M52_PPB_Graphics2D_IsGraphics2D,
- .Describe = (PP_Bool (*)(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque))&Pnacl_M52_PPB_Graphics2D_Describe,
- .PaintImageData = (void (*)(PP_Resource graphics_2d, PP_Resource image_data, const struct PP_Point* top_left, const struct PP_Rect* src_rect))&Pnacl_M52_PPB_Graphics2D_PaintImageData,
- .Scroll = (void (*)(PP_Resource graphics_2d, const struct PP_Rect* clip_rect, const struct PP_Point* amount))&Pnacl_M52_PPB_Graphics2D_Scroll,
- .ReplaceContents = (void (*)(PP_Resource graphics_2d, PP_Resource image_data))&Pnacl_M52_PPB_Graphics2D_ReplaceContents,
- .Flush = (int32_t (*)(PP_Resource graphics_2d, struct PP_CompletionCallback callback))&Pnacl_M52_PPB_Graphics2D_Flush,
- .SetScale = (PP_Bool (*)(PP_Resource resource, float scale))&Pnacl_M52_PPB_Graphics2D_SetScale,
- .GetScale = (float (*)(PP_Resource resource))&Pnacl_M52_PPB_Graphics2D_GetScale,
- .SetLayerTransform = (PP_Bool (*)(PP_Resource resource, float scale, const struct PP_Point* origin, const struct PP_Point* translate))&Pnacl_M52_PPB_Graphics2D_SetLayerTransform
-};
-
-static const struct PPB_Graphics3D_1_0 Pnacl_Wrappers_PPB_Graphics3D_1_0 = {
- .GetAttribMaxValue = (int32_t (*)(PP_Resource instance, int32_t attribute, int32_t* value))&Pnacl_M15_PPB_Graphics3D_GetAttribMaxValue,
- .Create = (PP_Resource (*)(PP_Instance instance, PP_Resource share_context, const int32_t attrib_list[]))&Pnacl_M15_PPB_Graphics3D_Create,
- .IsGraphics3D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M15_PPB_Graphics3D_IsGraphics3D,
- .GetAttribs = (int32_t (*)(PP_Resource context, int32_t attrib_list[]))&Pnacl_M15_PPB_Graphics3D_GetAttribs,
- .SetAttribs = (int32_t (*)(PP_Resource context, const int32_t attrib_list[]))&Pnacl_M15_PPB_Graphics3D_SetAttribs,
- .GetError = (int32_t (*)(PP_Resource context))&Pnacl_M15_PPB_Graphics3D_GetError,
- .ResizeBuffers = (int32_t (*)(PP_Resource context, int32_t width, int32_t height))&Pnacl_M15_PPB_Graphics3D_ResizeBuffers,
- .SwapBuffers = (int32_t (*)(PP_Resource context, struct PP_CompletionCallback callback))&Pnacl_M15_PPB_Graphics3D_SwapBuffers
-};
-
-static const struct PPB_HostResolver_1_0 Pnacl_Wrappers_PPB_HostResolver_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_HostResolver_Create,
- .IsHostResolver = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_HostResolver_IsHostResolver,
- .Resolve = (int32_t (*)(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Hint* hint, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_HostResolver_Resolve,
- .GetCanonicalName = (struct PP_Var (*)(PP_Resource host_resolver))&Pnacl_M29_PPB_HostResolver_GetCanonicalName,
- .GetNetAddressCount = (uint32_t (*)(PP_Resource host_resolver))&Pnacl_M29_PPB_HostResolver_GetNetAddressCount,
- .GetNetAddress = (PP_Resource (*)(PP_Resource host_resolver, uint32_t index))&Pnacl_M29_PPB_HostResolver_GetNetAddress
-};
-
-/* Not generating wrapper interface for PPB_ImageData_1_0 */
-
-/* Not generating wrapper interface for PPB_InputEvent_1_0 */
-
-static const struct PPB_MouseInputEvent_1_0 Pnacl_Wrappers_PPB_MouseInputEvent_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count))&Pnacl_M13_PPB_MouseInputEvent_Create,
- .IsMouseInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_MouseInputEvent_IsMouseInputEvent,
- .GetButton = (PP_InputEvent_MouseButton (*)(PP_Resource mouse_event))&Pnacl_M13_PPB_MouseInputEvent_GetButton,
- .GetPosition = (struct PP_Point (*)(PP_Resource mouse_event))&Pnacl_M13_PPB_MouseInputEvent_GetPosition,
- .GetClickCount = (int32_t (*)(PP_Resource mouse_event))&Pnacl_M13_PPB_MouseInputEvent_GetClickCount
-};
-
-static const struct PPB_MouseInputEvent_1_1 Pnacl_Wrappers_PPB_MouseInputEvent_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count, const struct PP_Point* mouse_movement))&Pnacl_M14_PPB_MouseInputEvent_Create,
- .IsMouseInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_MouseInputEvent_IsMouseInputEvent,
- .GetButton = (PP_InputEvent_MouseButton (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetButton,
- .GetPosition = (struct PP_Point (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetPosition,
- .GetClickCount = (int32_t (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetClickCount,
- .GetMovement = (struct PP_Point (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetMovement
-};
-
-static const struct PPB_WheelInputEvent_1_0 Pnacl_Wrappers_PPB_WheelInputEvent_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_TimeTicks time_stamp, uint32_t modifiers, const struct PP_FloatPoint* wheel_delta, const struct PP_FloatPoint* wheel_ticks, PP_Bool scroll_by_page))&Pnacl_M13_PPB_WheelInputEvent_Create,
- .IsWheelInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_WheelInputEvent_IsWheelInputEvent,
- .GetDelta = (struct PP_FloatPoint (*)(PP_Resource wheel_event))&Pnacl_M13_PPB_WheelInputEvent_GetDelta,
- .GetTicks = (struct PP_FloatPoint (*)(PP_Resource wheel_event))&Pnacl_M13_PPB_WheelInputEvent_GetTicks,
- .GetScrollByPage = (PP_Bool (*)(PP_Resource wheel_event))&Pnacl_M13_PPB_WheelInputEvent_GetScrollByPage
-};
-
-static const struct PPB_KeyboardInputEvent_1_0 Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var character_text))&Pnacl_M13_PPB_KeyboardInputEvent_Create,
- .IsKeyboardInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_KeyboardInputEvent_IsKeyboardInputEvent,
- .GetKeyCode = (uint32_t (*)(PP_Resource key_event))&Pnacl_M13_PPB_KeyboardInputEvent_GetKeyCode,
- .GetCharacterText = (struct PP_Var (*)(PP_Resource character_event))&Pnacl_M13_PPB_KeyboardInputEvent_GetCharacterText
-};
-
-static const struct PPB_KeyboardInputEvent_1_2 Pnacl_Wrappers_PPB_KeyboardInputEvent_1_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var character_text, struct PP_Var code))&Pnacl_M34_PPB_KeyboardInputEvent_Create,
- .IsKeyboardInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M34_PPB_KeyboardInputEvent_IsKeyboardInputEvent,
- .GetKeyCode = (uint32_t (*)(PP_Resource key_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetKeyCode,
- .GetCharacterText = (struct PP_Var (*)(PP_Resource character_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetCharacterText,
- .GetCode = (struct PP_Var (*)(PP_Resource key_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetCode
-};
-
-static const struct PPB_TouchInputEvent_1_0 Pnacl_Wrappers_PPB_TouchInputEvent_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers))&Pnacl_M13_PPB_TouchInputEvent_Create,
- .AddTouchPoint = (void (*)(PP_Resource touch_event, PP_TouchListType list, const struct PP_TouchPoint* point))&Pnacl_M13_PPB_TouchInputEvent_AddTouchPoint,
- .IsTouchInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_TouchInputEvent_IsTouchInputEvent,
- .GetTouchCount = (uint32_t (*)(PP_Resource resource, PP_TouchListType list))&Pnacl_M13_PPB_TouchInputEvent_GetTouchCount,
- .GetTouchByIndex = (struct PP_TouchPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t index))&Pnacl_M13_PPB_TouchInputEvent_GetTouchByIndex,
- .GetTouchById = (struct PP_TouchPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t touch_id))&Pnacl_M13_PPB_TouchInputEvent_GetTouchById
-};
-
-static const struct PPB_TouchInputEvent_1_4 Pnacl_Wrappers_PPB_TouchInputEvent_1_4 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers))&Pnacl_M60_PPB_TouchInputEvent_Create,
- .AddTouchPoint = (void (*)(PP_Resource touch_event, PP_TouchListType list, const struct PP_TouchPoint* point))&Pnacl_M60_PPB_TouchInputEvent_AddTouchPoint,
- .IsTouchInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M60_PPB_TouchInputEvent_IsTouchInputEvent,
- .GetTouchCount = (uint32_t (*)(PP_Resource resource, PP_TouchListType list))&Pnacl_M60_PPB_TouchInputEvent_GetTouchCount,
- .GetTouchByIndex = (struct PP_TouchPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t index))&Pnacl_M60_PPB_TouchInputEvent_GetTouchByIndex,
- .GetTouchById = (struct PP_TouchPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t touch_id))&Pnacl_M60_PPB_TouchInputEvent_GetTouchById,
- .GetTouchTiltByIndex = (struct PP_FloatPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t index))&Pnacl_M60_PPB_TouchInputEvent_GetTouchTiltByIndex,
- .GetTouchTiltById = (struct PP_FloatPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t touch_id))&Pnacl_M60_PPB_TouchInputEvent_GetTouchTiltById
-};
-
-static const struct PPB_IMEInputEvent_1_0 Pnacl_Wrappers_PPB_IMEInputEvent_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end))&Pnacl_M13_PPB_IMEInputEvent_Create,
- .IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_IMEInputEvent_IsIMEInputEvent,
- .GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M13_PPB_IMEInputEvent_GetText,
- .GetSegmentNumber = (uint32_t (*)(PP_Resource ime_event))&Pnacl_M13_PPB_IMEInputEvent_GetSegmentNumber,
- .GetSegmentOffset = (uint32_t (*)(PP_Resource ime_event, uint32_t index))&Pnacl_M13_PPB_IMEInputEvent_GetSegmentOffset,
- .GetTargetSegment = (int32_t (*)(PP_Resource ime_event))&Pnacl_M13_PPB_IMEInputEvent_GetTargetSegment,
- .GetSelection = (void (*)(PP_Resource ime_event, uint32_t* start, uint32_t* end))&Pnacl_M13_PPB_IMEInputEvent_GetSelection
-};
-
-/* Not generating wrapper interface for PPB_Instance_1_0 */
-
-static const struct PPB_MediaStreamAudioTrack_0_1 Pnacl_Wrappers_PPB_MediaStreamAudioTrack_0_1 = {
- .IsMediaStreamAudioTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M35_PPB_MediaStreamAudioTrack_IsMediaStreamAudioTrack,
- .Configure = (int32_t (*)(PP_Resource audio_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamAudioTrack_Configure,
- .GetAttrib = (int32_t (*)(PP_Resource audio_track, PP_MediaStreamAudioTrack_Attrib attrib, int32_t* value))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetAttrib,
- .GetId = (struct PP_Var (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetId,
- .HasEnded = (PP_Bool (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_HasEnded,
- .GetBuffer = (int32_t (*)(PP_Resource audio_track, PP_Resource* buffer, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetBuffer,
- .RecycleBuffer = (int32_t (*)(PP_Resource audio_track, PP_Resource buffer))&Pnacl_M35_PPB_MediaStreamAudioTrack_RecycleBuffer,
- .Close = (void (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_Close
-};
-
-static const struct PPB_MediaStreamVideoTrack_0_1 Pnacl_Wrappers_PPB_MediaStreamVideoTrack_0_1 = {
- .IsMediaStreamVideoTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M35_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack,
- .Configure = (int32_t (*)(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamVideoTrack_Configure,
- .GetAttrib = (int32_t (*)(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetAttrib,
- .GetId = (struct PP_Var (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetId,
- .HasEnded = (PP_Bool (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_HasEnded,
- .GetFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetFrame,
- .RecycleFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M35_PPB_MediaStreamVideoTrack_RecycleFrame,
- .Close = (void (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_Close
-};
-
-static const struct PPB_MediaStreamVideoTrack_1_0 Pnacl_Wrappers_PPB_MediaStreamVideoTrack_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M36_PPB_MediaStreamVideoTrack_Create,
- .IsMediaStreamVideoTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M36_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack,
- .Configure = (int32_t (*)(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_Configure,
- .GetAttrib = (int32_t (*)(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetAttrib,
- .GetId = (struct PP_Var (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetId,
- .HasEnded = (PP_Bool (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_HasEnded,
- .GetFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetFrame,
- .RecycleFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M36_PPB_MediaStreamVideoTrack_RecycleFrame,
- .Close = (void (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_Close,
- .GetEmptyFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetEmptyFrame,
- .PutFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M36_PPB_MediaStreamVideoTrack_PutFrame
-};
-
-static const struct PPB_MessageLoop_1_0 Pnacl_Wrappers_PPB_MessageLoop_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_MessageLoop_Create,
- .GetForMainThread = (PP_Resource (*)(void))&Pnacl_M25_PPB_MessageLoop_GetForMainThread,
- .GetCurrent = (PP_Resource (*)(void))&Pnacl_M25_PPB_MessageLoop_GetCurrent,
- .AttachToCurrentThread = (int32_t (*)(PP_Resource message_loop))&Pnacl_M25_PPB_MessageLoop_AttachToCurrentThread,
- .Run = (int32_t (*)(PP_Resource message_loop))&Pnacl_M25_PPB_MessageLoop_Run,
- .PostWork = (int32_t (*)(PP_Resource message_loop, struct PP_CompletionCallback callback, int64_t delay_ms))&Pnacl_M25_PPB_MessageLoop_PostWork,
- .PostQuit = (int32_t (*)(PP_Resource message_loop, PP_Bool should_destroy))&Pnacl_M25_PPB_MessageLoop_PostQuit
-};
-
-static const struct PPB_Messaging_1_0 Pnacl_Wrappers_PPB_Messaging_1_0 = {
- .PostMessage = (void (*)(PP_Instance instance, struct PP_Var message))&Pnacl_M14_PPB_Messaging_PostMessage
-};
-
-static const struct PPB_Messaging_1_2 Pnacl_Wrappers_PPB_Messaging_1_2 = {
- .PostMessage = (void (*)(PP_Instance instance, struct PP_Var message))&Pnacl_M39_PPB_Messaging_PostMessage,
- .RegisterMessageHandler = (int32_t (*)(PP_Instance instance, void* user_data, const struct PPP_MessageHandler_0_2* handler, PP_Resource message_loop))&Pnacl_M39_PPB_Messaging_RegisterMessageHandler,
- .UnregisterMessageHandler = (void (*)(PP_Instance instance))&Pnacl_M39_PPB_Messaging_UnregisterMessageHandler
-};
-
-/* Not generating wrapper interface for PPB_MouseCursor_1_0 */
-
-static const struct PPB_MouseLock_1_0 Pnacl_Wrappers_PPB_MouseLock_1_0 = {
- .LockMouse = (int32_t (*)(PP_Instance instance, struct PP_CompletionCallback callback))&Pnacl_M16_PPB_MouseLock_LockMouse,
- .UnlockMouse = (void (*)(PP_Instance instance))&Pnacl_M16_PPB_MouseLock_UnlockMouse
-};
-
-static const struct PPB_NetAddress_1_0 Pnacl_Wrappers_PPB_NetAddress_1_0 = {
- .CreateFromIPv4Address = (PP_Resource (*)(PP_Instance instance, const struct PP_NetAddress_IPv4* ipv4_addr))&Pnacl_M29_PPB_NetAddress_CreateFromIPv4Address,
- .CreateFromIPv6Address = (PP_Resource (*)(PP_Instance instance, const struct PP_NetAddress_IPv6* ipv6_addr))&Pnacl_M29_PPB_NetAddress_CreateFromIPv6Address,
- .IsNetAddress = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_NetAddress_IsNetAddress,
- .GetFamily = (PP_NetAddress_Family (*)(PP_Resource addr))&Pnacl_M29_PPB_NetAddress_GetFamily,
- .DescribeAsString = (struct PP_Var (*)(PP_Resource addr, PP_Bool include_port))&Pnacl_M29_PPB_NetAddress_DescribeAsString,
- .DescribeAsIPv4Address = (PP_Bool (*)(PP_Resource addr, struct PP_NetAddress_IPv4* ipv4_addr))&Pnacl_M29_PPB_NetAddress_DescribeAsIPv4Address,
- .DescribeAsIPv6Address = (PP_Bool (*)(PP_Resource addr, struct PP_NetAddress_IPv6* ipv6_addr))&Pnacl_M29_PPB_NetAddress_DescribeAsIPv6Address
-};
-
-static const struct PPB_NetworkList_1_0 Pnacl_Wrappers_PPB_NetworkList_1_0 = {
- .IsNetworkList = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkList_IsNetworkList,
- .GetCount = (uint32_t (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkList_GetCount,
- .GetName = (struct PP_Var (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetName,
- .GetType = (PP_NetworkList_Type (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetType,
- .GetState = (PP_NetworkList_State (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetState,
- .GetIpAddresses = (int32_t (*)(PP_Resource resource, uint32_t index, struct PP_ArrayOutput output))&Pnacl_M31_PPB_NetworkList_GetIpAddresses,
- .GetDisplayName = (struct PP_Var (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetDisplayName,
- .GetMTU = (uint32_t (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetMTU
-};
-
-static const struct PPB_NetworkMonitor_1_0 Pnacl_Wrappers_PPB_NetworkMonitor_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M31_PPB_NetworkMonitor_Create,
- .UpdateNetworkList = (int32_t (*)(PP_Resource network_monitor, PP_Resource* network_list, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_NetworkMonitor_UpdateNetworkList,
- .IsNetworkMonitor = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkMonitor_IsNetworkMonitor
-};
-
-static const struct PPB_NetworkProxy_1_0 Pnacl_Wrappers_PPB_NetworkProxy_1_0 = {
- .GetProxyForURL = (int32_t (*)(PP_Instance instance, struct PP_Var url, struct PP_Var* proxy_string, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_NetworkProxy_GetProxyForURL
-};
-
-/* Not generating wrapper interface for PPB_OpenGLES2_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2InstancedArrays_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2FramebufferBlit_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2FramebufferMultisample_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2ChromiumEnableFeature_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2ChromiumMapSub_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2Query_1_0 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2VertexArrayObject_1_0 */
-
-static const struct PPB_TCPSocket_1_0 Pnacl_Wrappers_PPB_TCPSocket_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_TCPSocket_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_TCPSocket_IsTCPSocket,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_Connect,
- .GetLocalAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M29_PPB_TCPSocket_GetLocalAddress,
- .GetRemoteAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M29_PPB_TCPSocket_GetRemoteAddress,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_Write,
- .Close = (void (*)(PP_Resource tcp_socket))&Pnacl_M29_PPB_TCPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_SetOption
-};
-
-static const struct PPB_TCPSocket_1_1 Pnacl_Wrappers_PPB_TCPSocket_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M31_PPB_TCPSocket_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_TCPSocket_IsTCPSocket,
- .Bind = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Bind,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Connect,
- .GetLocalAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M31_PPB_TCPSocket_GetLocalAddress,
- .GetRemoteAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M31_PPB_TCPSocket_GetRemoteAddress,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Write,
- .Listen = (int32_t (*)(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Listen,
- .Accept = (int32_t (*)(PP_Resource tcp_socket, PP_Resource* accepted_tcp_socket, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Accept,
- .Close = (void (*)(PP_Resource tcp_socket))&Pnacl_M31_PPB_TCPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_SetOption
-};
-
-static const struct PPB_TCPSocket_1_2 Pnacl_Wrappers_PPB_TCPSocket_1_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M41_PPB_TCPSocket_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M41_PPB_TCPSocket_IsTCPSocket,
- .Bind = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Bind,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Connect,
- .GetLocalAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M41_PPB_TCPSocket_GetLocalAddress,
- .GetRemoteAddress = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M41_PPB_TCPSocket_GetRemoteAddress,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Write,
- .Listen = (int32_t (*)(PP_Resource tcp_socket, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Listen,
- .Accept = (int32_t (*)(PP_Resource tcp_socket, PP_Resource* accepted_tcp_socket, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_Accept,
- .Close = (void (*)(PP_Resource tcp_socket))&Pnacl_M41_PPB_TCPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_TCPSocket_SetOption
-};
-
-static const struct PPB_TextInputController_1_0 Pnacl_Wrappers_PPB_TextInputController_1_0 = {
- .SetTextInputType = (void (*)(PP_Instance instance, PP_TextInput_Type type))&Pnacl_M30_PPB_TextInputController_SetTextInputType,
- .UpdateCaretPosition = (void (*)(PP_Instance instance, const struct PP_Rect* caret))&Pnacl_M30_PPB_TextInputController_UpdateCaretPosition,
- .CancelCompositionText = (void (*)(PP_Instance instance))&Pnacl_M30_PPB_TextInputController_CancelCompositionText,
- .UpdateSurroundingText = (void (*)(PP_Instance instance, struct PP_Var text, uint32_t caret, uint32_t anchor))&Pnacl_M30_PPB_TextInputController_UpdateSurroundingText
-};
-
-static const struct PPB_UDPSocket_1_0 Pnacl_Wrappers_PPB_UDPSocket_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_UDPSocket_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_UDPSocket_IsUDPSocket,
- .Bind = (int32_t (*)(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_Bind,
- .GetBoundAddress = (PP_Resource (*)(PP_Resource udp_socket))&Pnacl_M29_PPB_UDPSocket_GetBoundAddress,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_RecvFrom,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M29_PPB_UDPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_SetOption
-};
-
-static const struct PPB_UDPSocket_1_1 Pnacl_Wrappers_PPB_UDPSocket_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M41_PPB_UDPSocket_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M41_PPB_UDPSocket_IsUDPSocket,
- .Bind = (int32_t (*)(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_UDPSocket_Bind,
- .GetBoundAddress = (PP_Resource (*)(PP_Resource udp_socket))&Pnacl_M41_PPB_UDPSocket_GetBoundAddress,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_UDPSocket_RecvFrom,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_UDPSocket_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M41_PPB_UDPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M41_PPB_UDPSocket_SetOption
-};
-
-static const struct PPB_UDPSocket_1_2 Pnacl_Wrappers_PPB_UDPSocket_1_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M43_PPB_UDPSocket_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M43_PPB_UDPSocket_IsUDPSocket,
- .Bind = (int32_t (*)(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_Bind,
- .GetBoundAddress = (PP_Resource (*)(PP_Resource udp_socket))&Pnacl_M43_PPB_UDPSocket_GetBoundAddress,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, PP_Resource* addr, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_RecvFrom,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M43_PPB_UDPSocket_Close,
- .SetOption = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_SetOption,
- .JoinGroup = (int32_t (*)(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_JoinGroup,
- .LeaveGroup = (int32_t (*)(PP_Resource udp_socket, PP_Resource group, struct PP_CompletionCallback callback))&Pnacl_M43_PPB_UDPSocket_LeaveGroup
-};
-
-static const struct PPB_URLLoader_1_0 Pnacl_Wrappers_PPB_URLLoader_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_URLLoader_Create,
- .IsURLLoader = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLLoader_IsURLLoader,
- .Open = (int32_t (*)(PP_Resource loader, PP_Resource request_info, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_URLLoader_Open,
- .FollowRedirect = (int32_t (*)(PP_Resource loader, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_URLLoader_FollowRedirect,
- .GetUploadProgress = (PP_Bool (*)(PP_Resource loader, int64_t* bytes_sent, int64_t* total_bytes_to_be_sent))&Pnacl_M14_PPB_URLLoader_GetUploadProgress,
- .GetDownloadProgress = (PP_Bool (*)(PP_Resource loader, int64_t* bytes_received, int64_t* total_bytes_to_be_received))&Pnacl_M14_PPB_URLLoader_GetDownloadProgress,
- .GetResponseInfo = (PP_Resource (*)(PP_Resource loader))&Pnacl_M14_PPB_URLLoader_GetResponseInfo,
- .ReadResponseBody = (int32_t (*)(PP_Resource loader, void* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_URLLoader_ReadResponseBody,
- .FinishStreamingToFile = (int32_t (*)(PP_Resource loader, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_URLLoader_FinishStreamingToFile,
- .Close = (void (*)(PP_Resource loader))&Pnacl_M14_PPB_URLLoader_Close
-};
-
-static const struct PPB_URLRequestInfo_1_0 Pnacl_Wrappers_PPB_URLRequestInfo_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_URLRequestInfo_Create,
- .IsURLRequestInfo = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLRequestInfo_IsURLRequestInfo,
- .SetProperty = (PP_Bool (*)(PP_Resource request, PP_URLRequestProperty property, struct PP_Var value))&Pnacl_M14_PPB_URLRequestInfo_SetProperty,
- .AppendDataToBody = (PP_Bool (*)(PP_Resource request, const void* data, uint32_t len))&Pnacl_M14_PPB_URLRequestInfo_AppendDataToBody,
- .AppendFileToBody = (PP_Bool (*)(PP_Resource request, PP_Resource file_ref, int64_t start_offset, int64_t number_of_bytes, PP_Time expected_last_modified_time))&Pnacl_M14_PPB_URLRequestInfo_AppendFileToBody
-};
-
-static const struct PPB_URLResponseInfo_1_0 Pnacl_Wrappers_PPB_URLResponseInfo_1_0 = {
- .IsURLResponseInfo = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLResponseInfo_IsURLResponseInfo,
- .GetProperty = (struct PP_Var (*)(PP_Resource response, PP_URLResponseProperty property))&Pnacl_M14_PPB_URLResponseInfo_GetProperty,
- .GetBodyAsFileRef = (PP_Resource (*)(PP_Resource response))&Pnacl_M14_PPB_URLResponseInfo_GetBodyAsFileRef
-};
-
-static const struct PPB_Var_1_0 Pnacl_Wrappers_PPB_Var_1_0 = {
- .AddRef = (void (*)(struct PP_Var var))&Pnacl_M14_PPB_Var_AddRef,
- .Release = (void (*)(struct PP_Var var))&Pnacl_M14_PPB_Var_Release,
- .VarFromUtf8 = (struct PP_Var (*)(PP_Module module, const char* data, uint32_t len))&Pnacl_M14_PPB_Var_VarFromUtf8,
- .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M14_PPB_Var_VarToUtf8
-};
-
-static const struct PPB_Var_1_1 Pnacl_Wrappers_PPB_Var_1_1 = {
- .AddRef = (void (*)(struct PP_Var var))&Pnacl_M18_PPB_Var_AddRef,
- .Release = (void (*)(struct PP_Var var))&Pnacl_M18_PPB_Var_Release,
- .VarFromUtf8 = (struct PP_Var (*)(const char* data, uint32_t len))&Pnacl_M18_PPB_Var_VarFromUtf8,
- .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M18_PPB_Var_VarToUtf8
-};
-
-static const struct PPB_Var_1_2 Pnacl_Wrappers_PPB_Var_1_2 = {
- .AddRef = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_AddRef,
- .Release = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_Release,
- .VarFromUtf8 = (struct PP_Var (*)(const char* data, uint32_t len))&Pnacl_M34_PPB_Var_VarFromUtf8,
- .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M34_PPB_Var_VarToUtf8,
- .VarToResource = (PP_Resource (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_VarToResource,
- .VarFromResource = (struct PP_Var (*)(PP_Resource resource))&Pnacl_M34_PPB_Var_VarFromResource
-};
-
-static const struct PPB_VarArray_1_0 Pnacl_Wrappers_PPB_VarArray_1_0 = {
- .Create = (struct PP_Var (*)(void))&Pnacl_M29_PPB_VarArray_Create,
- .Get = (struct PP_Var (*)(struct PP_Var array, uint32_t index))&Pnacl_M29_PPB_VarArray_Get,
- .Set = (PP_Bool (*)(struct PP_Var array, uint32_t index, struct PP_Var value))&Pnacl_M29_PPB_VarArray_Set,
- .GetLength = (uint32_t (*)(struct PP_Var array))&Pnacl_M29_PPB_VarArray_GetLength,
- .SetLength = (PP_Bool (*)(struct PP_Var array, uint32_t length))&Pnacl_M29_PPB_VarArray_SetLength
-};
-
-static const struct PPB_VarArrayBuffer_1_0 Pnacl_Wrappers_PPB_VarArrayBuffer_1_0 = {
- .Create = (struct PP_Var (*)(uint32_t size_in_bytes))&Pnacl_M18_PPB_VarArrayBuffer_Create,
- .ByteLength = (PP_Bool (*)(struct PP_Var array, uint32_t* byte_length))&Pnacl_M18_PPB_VarArrayBuffer_ByteLength,
- .Map = (void* (*)(struct PP_Var array))&Pnacl_M18_PPB_VarArrayBuffer_Map,
- .Unmap = (void (*)(struct PP_Var array))&Pnacl_M18_PPB_VarArrayBuffer_Unmap
-};
-
-static const struct PPB_VarDictionary_1_0 Pnacl_Wrappers_PPB_VarDictionary_1_0 = {
- .Create = (struct PP_Var (*)(void))&Pnacl_M29_PPB_VarDictionary_Create,
- .Get = (struct PP_Var (*)(struct PP_Var dict, struct PP_Var key))&Pnacl_M29_PPB_VarDictionary_Get,
- .Set = (PP_Bool (*)(struct PP_Var dict, struct PP_Var key, struct PP_Var value))&Pnacl_M29_PPB_VarDictionary_Set,
- .Delete = (void (*)(struct PP_Var dict, struct PP_Var key))&Pnacl_M29_PPB_VarDictionary_Delete,
- .HasKey = (PP_Bool (*)(struct PP_Var dict, struct PP_Var key))&Pnacl_M29_PPB_VarDictionary_HasKey,
- .GetKeys = (struct PP_Var (*)(struct PP_Var dict))&Pnacl_M29_PPB_VarDictionary_GetKeys
-};
-
-static const struct PPB_VideoDecoder_0_1 Pnacl_Wrappers_PPB_VideoDecoder_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M36_PPB_VideoDecoder_Create,
- .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M36_PPB_VideoDecoder_IsVideoDecoder,
- .Initialize = (int32_t (*)(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_Bool allow_software_fallback, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Initialize,
- .Decode = (int32_t (*)(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Decode,
- .GetPicture = (int32_t (*)(PP_Resource video_decoder, struct PP_VideoPicture_0_1* picture, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_GetPicture,
- .RecyclePicture = (void (*)(PP_Resource video_decoder, const struct PP_VideoPicture* picture))&Pnacl_M36_PPB_VideoDecoder_RecyclePicture,
- .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Flush,
- .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Reset
-};
-
-static const struct PPB_VideoDecoder_0_2 Pnacl_Wrappers_PPB_VideoDecoder_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M39_PPB_VideoDecoder_Create,
- .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M39_PPB_VideoDecoder_IsVideoDecoder,
- .Initialize = (int32_t (*)(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback))&Pnacl_M39_PPB_VideoDecoder_Initialize,
- .Decode = (int32_t (*)(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback callback))&Pnacl_M39_PPB_VideoDecoder_Decode,
- .GetPicture = (int32_t (*)(PP_Resource video_decoder, struct PP_VideoPicture_0_1* picture, struct PP_CompletionCallback callback))&Pnacl_M39_PPB_VideoDecoder_GetPicture,
- .RecyclePicture = (void (*)(PP_Resource video_decoder, const struct PP_VideoPicture* picture))&Pnacl_M39_PPB_VideoDecoder_RecyclePicture,
- .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M39_PPB_VideoDecoder_Flush,
- .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M39_PPB_VideoDecoder_Reset
-};
-
-static const struct PPB_VideoDecoder_1_0 Pnacl_Wrappers_PPB_VideoDecoder_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M40_PPB_VideoDecoder_Create,
- .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M40_PPB_VideoDecoder_IsVideoDecoder,
- .Initialize = (int32_t (*)(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback))&Pnacl_M40_PPB_VideoDecoder_Initialize,
- .Decode = (int32_t (*)(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback callback))&Pnacl_M40_PPB_VideoDecoder_Decode,
- .GetPicture = (int32_t (*)(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback callback))&Pnacl_M40_PPB_VideoDecoder_GetPicture,
- .RecyclePicture = (void (*)(PP_Resource video_decoder, const struct PP_VideoPicture* picture))&Pnacl_M40_PPB_VideoDecoder_RecyclePicture,
- .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M40_PPB_VideoDecoder_Flush,
- .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M40_PPB_VideoDecoder_Reset
-};
-
-static const struct PPB_VideoDecoder_1_1 Pnacl_Wrappers_PPB_VideoDecoder_1_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M46_PPB_VideoDecoder_Create,
- .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M46_PPB_VideoDecoder_IsVideoDecoder,
- .Initialize = (int32_t (*)(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_HardwareAcceleration acceleration, uint32_t min_picture_count, struct PP_CompletionCallback callback))&Pnacl_M46_PPB_VideoDecoder_Initialize,
- .Decode = (int32_t (*)(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback callback))&Pnacl_M46_PPB_VideoDecoder_Decode,
- .GetPicture = (int32_t (*)(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback callback))&Pnacl_M46_PPB_VideoDecoder_GetPicture,
- .RecyclePicture = (void (*)(PP_Resource video_decoder, const struct PP_VideoPicture* picture))&Pnacl_M46_PPB_VideoDecoder_RecyclePicture,
- .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M46_PPB_VideoDecoder_Flush,
- .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M46_PPB_VideoDecoder_Reset
-};
-
-static const struct PPB_VideoEncoder_0_1 Pnacl_Wrappers_PPB_VideoEncoder_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M42_PPB_VideoEncoder_Create,
- .IsVideoEncoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M42_PPB_VideoEncoder_IsVideoEncoder,
- .GetSupportedProfiles = (int32_t (*)(PP_Resource video_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_VideoEncoder_GetSupportedProfiles,
- .Initialize = (int32_t (*)(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size* input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_VideoEncoder_Initialize,
- .GetFramesRequired = (int32_t (*)(PP_Resource video_encoder))&Pnacl_M42_PPB_VideoEncoder_GetFramesRequired,
- .GetFrameCodedSize = (int32_t (*)(PP_Resource video_encoder, struct PP_Size* coded_size))&Pnacl_M42_PPB_VideoEncoder_GetFrameCodedSize,
- .GetVideoFrame = (int32_t (*)(PP_Resource video_encoder, PP_Resource* video_frame, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_VideoEncoder_GetVideoFrame,
- .Encode = (int32_t (*)(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_VideoEncoder_Encode,
- .GetBitstreamBuffer = (int32_t (*)(PP_Resource video_encoder, struct PP_BitstreamBuffer* bitstream_buffer, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_VideoEncoder_GetBitstreamBuffer,
- .RecycleBitstreamBuffer = (void (*)(PP_Resource video_encoder, const struct PP_BitstreamBuffer* bitstream_buffer))&Pnacl_M42_PPB_VideoEncoder_RecycleBitstreamBuffer,
- .RequestEncodingParametersChange = (void (*)(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate))&Pnacl_M42_PPB_VideoEncoder_RequestEncodingParametersChange,
- .Close = (void (*)(PP_Resource video_encoder))&Pnacl_M42_PPB_VideoEncoder_Close
-};
-
-static const struct PPB_VideoEncoder_0_2 Pnacl_Wrappers_PPB_VideoEncoder_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M44_PPB_VideoEncoder_Create,
- .IsVideoEncoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M44_PPB_VideoEncoder_IsVideoEncoder,
- .GetSupportedProfiles = (int32_t (*)(PP_Resource video_encoder, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M44_PPB_VideoEncoder_GetSupportedProfiles,
- .Initialize = (int32_t (*)(PP_Resource video_encoder, PP_VideoFrame_Format input_format, const struct PP_Size* input_visible_size, PP_VideoProfile output_profile, uint32_t initial_bitrate, PP_HardwareAcceleration acceleration, struct PP_CompletionCallback callback))&Pnacl_M44_PPB_VideoEncoder_Initialize,
- .GetFramesRequired = (int32_t (*)(PP_Resource video_encoder))&Pnacl_M44_PPB_VideoEncoder_GetFramesRequired,
- .GetFrameCodedSize = (int32_t (*)(PP_Resource video_encoder, struct PP_Size* coded_size))&Pnacl_M44_PPB_VideoEncoder_GetFrameCodedSize,
- .GetVideoFrame = (int32_t (*)(PP_Resource video_encoder, PP_Resource* video_frame, struct PP_CompletionCallback callback))&Pnacl_M44_PPB_VideoEncoder_GetVideoFrame,
- .Encode = (int32_t (*)(PP_Resource video_encoder, PP_Resource video_frame, PP_Bool force_keyframe, struct PP_CompletionCallback callback))&Pnacl_M44_PPB_VideoEncoder_Encode,
- .GetBitstreamBuffer = (int32_t (*)(PP_Resource video_encoder, struct PP_BitstreamBuffer* bitstream_buffer, struct PP_CompletionCallback callback))&Pnacl_M44_PPB_VideoEncoder_GetBitstreamBuffer,
- .RecycleBitstreamBuffer = (void (*)(PP_Resource video_encoder, const struct PP_BitstreamBuffer* bitstream_buffer))&Pnacl_M44_PPB_VideoEncoder_RecycleBitstreamBuffer,
- .RequestEncodingParametersChange = (void (*)(PP_Resource video_encoder, uint32_t bitrate, uint32_t framerate))&Pnacl_M44_PPB_VideoEncoder_RequestEncodingParametersChange,
- .Close = (void (*)(PP_Resource video_encoder))&Pnacl_M44_PPB_VideoEncoder_Close
-};
-
-/* Not generating wrapper interface for PPB_VideoFrame_0_1 */
-
-/* Not generating wrapper interface for PPB_View_1_0 */
-
-/* Not generating wrapper interface for PPB_View_1_1 */
-
-/* Not generating wrapper interface for PPB_View_1_2 */
-
-static const struct PPB_VpnProvider_0_1 Pnacl_Wrappers_PPB_VpnProvider_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M52_PPB_VpnProvider_Create,
- .IsVpnProvider = (PP_Bool (*)(PP_Resource resource))&Pnacl_M52_PPB_VpnProvider_IsVpnProvider,
- .Bind = (int32_t (*)(PP_Resource vpn_provider, struct PP_Var configuration_id, struct PP_Var configuration_name, struct PP_CompletionCallback callback))&Pnacl_M52_PPB_VpnProvider_Bind,
- .SendPacket = (int32_t (*)(PP_Resource vpn_provider, struct PP_Var packet, struct PP_CompletionCallback callback))&Pnacl_M52_PPB_VpnProvider_SendPacket,
- .ReceivePacket = (int32_t (*)(PP_Resource vpn_provider, struct PP_Var* packet, struct PP_CompletionCallback callback))&Pnacl_M52_PPB_VpnProvider_ReceivePacket
-};
-
-static const struct PPB_WebSocket_1_0 Pnacl_Wrappers_PPB_WebSocket_1_0 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M18_PPB_WebSocket_Create,
- .IsWebSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_WebSocket_IsWebSocket,
- .Connect = (int32_t (*)(PP_Resource web_socket, struct PP_Var url, const struct PP_Var protocols[], uint32_t protocol_count, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_WebSocket_Connect,
- .Close = (int32_t (*)(PP_Resource web_socket, uint16_t code, struct PP_Var reason, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_WebSocket_Close,
- .ReceiveMessage = (int32_t (*)(PP_Resource web_socket, struct PP_Var* message, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_WebSocket_ReceiveMessage,
- .SendMessage = (int32_t (*)(PP_Resource web_socket, struct PP_Var message))&Pnacl_M18_PPB_WebSocket_SendMessage,
- .GetBufferedAmount = (uint64_t (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetBufferedAmount,
- .GetCloseCode = (uint16_t (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetCloseCode,
- .GetCloseReason = (struct PP_Var (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetCloseReason,
- .GetCloseWasClean = (PP_Bool (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetCloseWasClean,
- .GetExtensions = (struct PP_Var (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetExtensions,
- .GetProtocol = (struct PP_Var (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetProtocol,
- .GetReadyState = (PP_WebSocketReadyState (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetReadyState,
- .GetURL = (struct PP_Var (*)(PP_Resource web_socket))&Pnacl_M18_PPB_WebSocket_GetURL
-};
-
-/* Not generating wrapper interface for PPP_Graphics3D_1_0 */
-
-/* Not generating wrapper interface for PPP_InputEvent_0_1 */
-
-/* Not generating wrapper interface for PPP_Instance_1_0 */
-
-/* Not generating wrapper interface for PPP_Instance_1_1 */
-
-/* Not generating wrapper interface for PPP_MessageHandler_0_2 */
-
-static const struct PPP_Messaging_1_0 Pnacl_Wrappers_PPP_Messaging_1_0 = {
- .HandleMessage = &Pnacl_M14_PPP_Messaging_HandleMessage
-};
-
-/* Not generating wrapper interface for PPP_MouseLock_1_0 */
-
-/* Not generating wrapper interface for PPB_BrowserFont_Trusted_1_0 */
-
-/* Not generating wrapper interface for PPB_CharSet_Trusted_1_0 */
-
-/* Not generating wrapper interface for PPB_FileChooserTrusted_0_5 */
-
-/* Not generating wrapper interface for PPB_FileChooserTrusted_0_6 */
-
-/* Not generating wrapper interface for PPB_URLLoaderTrusted_0_3 */
-
-static const struct PPB_AudioInput_Dev_0_3 Pnacl_Wrappers_PPB_AudioInput_Dev_0_3 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_AudioInput_Dev_Create,
- .IsAudioInput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M25_PPB_AudioInput_Dev_IsAudioInput,
- .EnumerateDevices = (int32_t (*)(PP_Resource audio_input, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_AudioInput_Dev_EnumerateDevices,
- .MonitorDeviceChange = (int32_t (*)(PP_Resource audio_input, PP_MonitorDeviceChangeCallback callback, void* user_data))&Pnacl_M25_PPB_AudioInput_Dev_MonitorDeviceChange,
- .Open = (int32_t (*)(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_3 audio_input_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_AudioInput_Dev_Open,
- .GetCurrentConfig = (PP_Resource (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_GetCurrentConfig,
- .StartCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_StartCapture,
- .StopCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_StopCapture,
- .Close = (void (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_Close
-};
-
-static const struct PPB_AudioInput_Dev_0_4 Pnacl_Wrappers_PPB_AudioInput_Dev_0_4 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M30_PPB_AudioInput_Dev_Create,
- .IsAudioInput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M30_PPB_AudioInput_Dev_IsAudioInput,
- .EnumerateDevices = (int32_t (*)(PP_Resource audio_input, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M30_PPB_AudioInput_Dev_EnumerateDevices,
- .MonitorDeviceChange = (int32_t (*)(PP_Resource audio_input, PP_MonitorDeviceChangeCallback callback, void* user_data))&Pnacl_M30_PPB_AudioInput_Dev_MonitorDeviceChange,
- .Open = (int32_t (*)(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback audio_input_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M30_PPB_AudioInput_Dev_Open,
- .GetCurrentConfig = (PP_Resource (*)(PP_Resource audio_input))&Pnacl_M30_PPB_AudioInput_Dev_GetCurrentConfig,
- .StartCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M30_PPB_AudioInput_Dev_StartCapture,
- .StopCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M30_PPB_AudioInput_Dev_StopCapture,
- .Close = (void (*)(PP_Resource audio_input))&Pnacl_M30_PPB_AudioInput_Dev_Close
-};
-
-static const struct PPB_AudioOutput_Dev_0_1 Pnacl_Wrappers_PPB_AudioOutput_Dev_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M59_PPB_AudioOutput_Dev_Create,
- .IsAudioOutput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M59_PPB_AudioOutput_Dev_IsAudioOutput,
- .EnumerateDevices = (int32_t (*)(PP_Resource audio_output, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M59_PPB_AudioOutput_Dev_EnumerateDevices,
- .MonitorDeviceChange = (int32_t (*)(PP_Resource audio_output, PP_MonitorDeviceChangeCallback callback, void* user_data))&Pnacl_M59_PPB_AudioOutput_Dev_MonitorDeviceChange,
- .Open = (int32_t (*)(PP_Resource audio_output, PP_Resource device_ref, PP_Resource config, PPB_AudioOutput_Callback audio_output_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M59_PPB_AudioOutput_Dev_Open,
- .GetCurrentConfig = (PP_Resource (*)(PP_Resource audio_output))&Pnacl_M59_PPB_AudioOutput_Dev_GetCurrentConfig,
- .StartPlayback = (PP_Bool (*)(PP_Resource audio_output))&Pnacl_M59_PPB_AudioOutput_Dev_StartPlayback,
- .StopPlayback = (PP_Bool (*)(PP_Resource audio_output))&Pnacl_M59_PPB_AudioOutput_Dev_StopPlayback,
- .Close = (void (*)(PP_Resource audio_output))&Pnacl_M59_PPB_AudioOutput_Dev_Close
-};
-
-/* Not generating wrapper interface for PPB_Buffer_Dev_0_4 */
-
-/* Not generating wrapper interface for PPB_Crypto_Dev_0_1 */
-
-/* Not generating wrapper interface for PPB_CursorControl_Dev_0_4 */
-
-static const struct PPB_DeviceRef_Dev_0_1 Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1 = {
- .IsDeviceRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_DeviceRef_Dev_IsDeviceRef,
- .GetType = (PP_DeviceType_Dev (*)(PP_Resource device_ref))&Pnacl_M18_PPB_DeviceRef_Dev_GetType,
- .GetName = (struct PP_Var (*)(PP_Resource device_ref))&Pnacl_M18_PPB_DeviceRef_Dev_GetName
-};
-
-static const struct PPB_FileChooser_Dev_0_5 Pnacl_Wrappers_PPB_FileChooser_Dev_0_5 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var accept_types))&Pnacl_M16_PPB_FileChooser_Dev_Create,
- .IsFileChooser = (PP_Bool (*)(PP_Resource resource))&Pnacl_M16_PPB_FileChooser_Dev_IsFileChooser,
- .Show = (int32_t (*)(PP_Resource chooser, struct PP_CompletionCallback callback))&Pnacl_M16_PPB_FileChooser_Dev_Show,
- .GetNextChosenFile = (PP_Resource (*)(PP_Resource chooser))&Pnacl_M16_PPB_FileChooser_Dev_GetNextChosenFile
-};
-
-static const struct PPB_FileChooser_Dev_0_6 Pnacl_Wrappers_PPB_FileChooser_Dev_0_6 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var accept_types))&Pnacl_M19_PPB_FileChooser_Dev_Create,
- .IsFileChooser = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_FileChooser_Dev_IsFileChooser,
- .Show = (int32_t (*)(PP_Resource chooser, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_FileChooser_Dev_Show
-};
-
-static const struct PPB_IMEInputEvent_Dev_0_1 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1 = {
- .IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M16_PPB_IMEInputEvent_Dev_IsIMEInputEvent,
- .GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetText,
- .GetSegmentNumber = (uint32_t (*)(PP_Resource ime_event))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetSegmentNumber,
- .GetSegmentOffset = (uint32_t (*)(PP_Resource ime_event, uint32_t index))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetSegmentOffset,
- .GetTargetSegment = (int32_t (*)(PP_Resource ime_event))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetTargetSegment,
- .GetSelection = (void (*)(PP_Resource ime_event, uint32_t* start, uint32_t* end))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetSelection
-};
-
-static const struct PPB_IMEInputEvent_Dev_0_2 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end))&Pnacl_M21_PPB_IMEInputEvent_Dev_Create,
- .IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M21_PPB_IMEInputEvent_Dev_IsIMEInputEvent,
- .GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetText,
- .GetSegmentNumber = (uint32_t (*)(PP_Resource ime_event))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetSegmentNumber,
- .GetSegmentOffset = (uint32_t (*)(PP_Resource ime_event, uint32_t index))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetSegmentOffset,
- .GetTargetSegment = (int32_t (*)(PP_Resource ime_event))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetTargetSegment,
- .GetSelection = (void (*)(PP_Resource ime_event, uint32_t* start, uint32_t* end))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetSelection
-};
-
-/* Not generating wrapper interface for PPB_Memory_Dev_0_1 */
-
-/* Not generating wrapper interface for PPB_OpenGLES2DrawBuffers_Dev_1_0 */
-
-static const struct PPB_Printing_Dev_0_7 Pnacl_Wrappers_PPB_Printing_Dev_0_7 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M23_PPB_Printing_Dev_Create,
- .GetDefaultPrintSettings = (int32_t (*)(PP_Resource resource, struct PP_PrintSettings_Dev* print_settings, struct PP_CompletionCallback callback))&Pnacl_M23_PPB_Printing_Dev_GetDefaultPrintSettings
-};
-
-/* Not generating wrapper interface for PPB_TextInput_Dev_0_1 */
-
-/* Not generating wrapper interface for PPB_TextInput_Dev_0_2 */
-
-/* Not generating wrapper interface for PPB_Trace_Event_Dev_0_1 */
-
-/* Not generating wrapper interface for PPB_Trace_Event_Dev_0_2 */
-
-static const struct PPB_URLUtil_Dev_0_6 Pnacl_Wrappers_PPB_URLUtil_Dev_0_6 = {
- .Canonicalize = (struct PP_Var (*)(struct PP_Var url, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_Canonicalize,
- .ResolveRelativeToURL = (struct PP_Var (*)(struct PP_Var base_url, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToURL,
- .ResolveRelativeToDocument = (struct PP_Var (*)(PP_Instance instance, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToDocument,
- .IsSameSecurityOrigin = (PP_Bool (*)(struct PP_Var url_a, struct PP_Var url_b))&Pnacl_M17_PPB_URLUtil_Dev_IsSameSecurityOrigin,
- .DocumentCanRequest = (PP_Bool (*)(PP_Instance instance, struct PP_Var url))&Pnacl_M17_PPB_URLUtil_Dev_DocumentCanRequest,
- .DocumentCanAccessDocument = (PP_Bool (*)(PP_Instance active, PP_Instance target))&Pnacl_M17_PPB_URLUtil_Dev_DocumentCanAccessDocument,
- .GetDocumentURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_GetDocumentURL,
- .GetPluginInstanceURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_GetPluginInstanceURL
-};
-
-static const struct PPB_URLUtil_Dev_0_7 Pnacl_Wrappers_PPB_URLUtil_Dev_0_7 = {
- .Canonicalize = (struct PP_Var (*)(struct PP_Var url, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_Canonicalize,
- .ResolveRelativeToURL = (struct PP_Var (*)(struct PP_Var base_url, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToURL,
- .ResolveRelativeToDocument = (struct PP_Var (*)(PP_Instance instance, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToDocument,
- .IsSameSecurityOrigin = (PP_Bool (*)(struct PP_Var url_a, struct PP_Var url_b))&Pnacl_M31_PPB_URLUtil_Dev_IsSameSecurityOrigin,
- .DocumentCanRequest = (PP_Bool (*)(PP_Instance instance, struct PP_Var url))&Pnacl_M31_PPB_URLUtil_Dev_DocumentCanRequest,
- .DocumentCanAccessDocument = (PP_Bool (*)(PP_Instance active, PP_Instance target))&Pnacl_M31_PPB_URLUtil_Dev_DocumentCanAccessDocument,
- .GetDocumentURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_GetDocumentURL,
- .GetPluginInstanceURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_GetPluginInstanceURL,
- .GetPluginReferrerURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL
-};
-
-static const struct PPB_VideoCapture_Dev_0_3 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_VideoCapture_Dev_Create,
- .IsVideoCapture = (PP_Bool (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_IsVideoCapture,
- .EnumerateDevices = (int32_t (*)(PP_Resource video_capture, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_VideoCapture_Dev_EnumerateDevices,
- .MonitorDeviceChange = (int32_t (*)(PP_Resource video_capture, PP_MonitorDeviceChangeCallback callback, void* user_data))&Pnacl_M25_PPB_VideoCapture_Dev_MonitorDeviceChange,
- .Open = (int32_t (*)(PP_Resource video_capture, PP_Resource device_ref, const struct PP_VideoCaptureDeviceInfo_Dev* requested_info, uint32_t buffer_count, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_VideoCapture_Dev_Open,
- .StartCapture = (int32_t (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_StartCapture,
- .ReuseBuffer = (int32_t (*)(PP_Resource video_capture, uint32_t buffer))&Pnacl_M25_PPB_VideoCapture_Dev_ReuseBuffer,
- .StopCapture = (int32_t (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_StopCapture,
- .Close = (void (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_Close
-};
-
-static const struct PPB_VideoDecoder_Dev_0_16 Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16 = {
- .Create = (PP_Resource (*)(PP_Instance instance, PP_Resource context, PP_VideoDecoder_Profile profile))&Pnacl_M14_PPB_VideoDecoder_Dev_Create,
- .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_VideoDecoder_Dev_IsVideoDecoder,
- .Decode = (int32_t (*)(PP_Resource video_decoder, const struct PP_VideoBitstreamBuffer_Dev* bitstream_buffer, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_VideoDecoder_Dev_Decode,
- .AssignPictureBuffers = (void (*)(PP_Resource video_decoder, uint32_t no_of_buffers, const struct PP_PictureBuffer_Dev buffers[]))&Pnacl_M14_PPB_VideoDecoder_Dev_AssignPictureBuffers,
- .ReusePictureBuffer = (void (*)(PP_Resource video_decoder, int32_t picture_buffer_id))&Pnacl_M14_PPB_VideoDecoder_Dev_ReusePictureBuffer,
- .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_VideoDecoder_Dev_Flush,
- .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_VideoDecoder_Dev_Reset,
- .Destroy = (void (*)(PP_Resource video_decoder))&Pnacl_M14_PPB_VideoDecoder_Dev_Destroy
-};
-
-/* Not generating wrapper interface for PPB_View_Dev_0_1 */
-
-/* Not generating wrapper interface for PPP_NetworkState_Dev_0_1 */
-
-/* Not generating wrapper interface for PPP_Printing_Dev_0_6 */
-
-/* Not generating wrapper interface for PPP_TextInput_Dev_0_1 */
-
-/* Not generating wrapper interface for PPP_VideoCapture_Dev_0_1 */
-
-/* Not generating wrapper interface for PPP_VideoDecoder_Dev_0_11 */
-
-/* Not generating wrapper interface for PPB_CameraCapabilities_Private_0_1 */
-
-static const struct PPB_CameraDevice_Private_0_1 Pnacl_Wrappers_PPB_CameraDevice_Private_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M42_PPB_CameraDevice_Private_Create,
- .IsCameraDevice = (PP_Bool (*)(PP_Resource resource))&Pnacl_M42_PPB_CameraDevice_Private_IsCameraDevice,
- .Open = (int32_t (*)(PP_Resource camera_device, struct PP_Var device_id, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_CameraDevice_Private_Open,
- .Close = (void (*)(PP_Resource camera_device))&Pnacl_M42_PPB_CameraDevice_Private_Close,
- .GetCameraCapabilities = (int32_t (*)(PP_Resource camera_device, PP_Resource* capabilities, struct PP_CompletionCallback callback))&Pnacl_M42_PPB_CameraDevice_Private_GetCameraCapabilities
-};
-
-static const struct PPB_DisplayColorProfile_Private_0_1 Pnacl_Wrappers_PPB_DisplayColorProfile_Private_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M33_PPB_DisplayColorProfile_Private_Create,
- .IsDisplayColorProfile = (PP_Bool (*)(PP_Resource resource))&Pnacl_M33_PPB_DisplayColorProfile_Private_IsDisplayColorProfile,
- .GetColorProfile = (int32_t (*)(PP_Resource display_color_profile_res, struct PP_ArrayOutput color_profile, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_DisplayColorProfile_Private_GetColorProfile,
- .RegisterColorProfileChangeCallback = (int32_t (*)(PP_Resource display_color_profile_res, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_DisplayColorProfile_Private_RegisterColorProfileChangeCallback
-};
-
-static const struct PPB_Ext_CrxFileSystem_Private_0_1 Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1 = {
- .Open = (int32_t (*)(PP_Instance instance, PP_Resource* file_system, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_CrxFileSystem_Private_Open
-};
-
-static const struct PPB_FileIO_Private_0_1 Pnacl_Wrappers_PPB_FileIO_Private_0_1 = {
- .RequestOSFileHandle = (int32_t (*)(PP_Resource file_io, PP_FileHandle* handle, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileIO_Private_RequestOSFileHandle
-};
-
-static const struct PPB_FileRefPrivate_0_1 Pnacl_Wrappers_PPB_FileRefPrivate_0_1 = {
- .GetAbsolutePath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M15_PPB_FileRefPrivate_GetAbsolutePath
-};
-
-/* Not generating wrapper interface for PPB_Find_Private_0_3 */
-
-/* Not generating wrapper interface for PPB_Flash_FontFile_0_1 */
-
-/* Not generating wrapper interface for PPB_Flash_FontFile_0_2 */
-
-static const struct PPB_HostResolver_Private_0_1 Pnacl_Wrappers_PPB_HostResolver_Private_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_HostResolver_Private_Create,
- .IsHostResolver = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_HostResolver_Private_IsHostResolver,
- .Resolve = (int32_t (*)(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Private_Hint* hint, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_HostResolver_Private_Resolve,
- .GetCanonicalName = (struct PP_Var (*)(PP_Resource host_resolver))&Pnacl_M19_PPB_HostResolver_Private_GetCanonicalName,
- .GetSize = (uint32_t (*)(PP_Resource host_resolver))&Pnacl_M19_PPB_HostResolver_Private_GetSize,
- .GetNetAddress = (PP_Bool (*)(PP_Resource host_resolver, uint32_t index, struct PP_NetAddress_Private* addr))&Pnacl_M19_PPB_HostResolver_Private_GetNetAddress
-};
-
-static const struct PPB_Instance_Private_0_1 Pnacl_Wrappers_PPB_Instance_Private_0_1 = {
- .GetWindowObject = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M13_PPB_Instance_Private_GetWindowObject,
- .GetOwnerElementObject = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M13_PPB_Instance_Private_GetOwnerElementObject,
- .ExecuteScript = (struct PP_Var (*)(PP_Instance instance, struct PP_Var script, struct PP_Var* exception))&Pnacl_M13_PPB_Instance_Private_ExecuteScript
-};
-
-static const struct PPB_IsolatedFileSystem_Private_0_2 Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2 = {
- .Open = (int32_t (*)(PP_Instance instance, PP_IsolatedFileSystemType_Private type, PP_Resource* file_system, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_IsolatedFileSystem_Private_Open
-};
-
-static const struct PPB_NetAddress_Private_0_1 Pnacl_Wrappers_PPB_NetAddress_Private_0_1 = {
- .AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M17_PPB_NetAddress_Private_AreEqual,
- .AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M17_PPB_NetAddress_Private_AreHostsEqual,
- .Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M17_PPB_NetAddress_Private_Describe,
- .ReplacePort = (PP_Bool (*)(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M17_PPB_NetAddress_Private_ReplacePort,
- .GetAnyAddress = (void (*)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr))&Pnacl_M17_PPB_NetAddress_Private_GetAnyAddress
-};
-
-static const struct PPB_NetAddress_Private_1_0 Pnacl_Wrappers_PPB_NetAddress_Private_1_0 = {
- .AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_0_PPB_NetAddress_Private_AreEqual,
- .AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_0_PPB_NetAddress_Private_AreHostsEqual,
- .Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M19_0_PPB_NetAddress_Private_Describe,
- .ReplacePort = (PP_Bool (*)(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M19_0_PPB_NetAddress_Private_ReplacePort,
- .GetAnyAddress = (void (*)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr))&Pnacl_M19_0_PPB_NetAddress_Private_GetAnyAddress,
- .GetFamily = (PP_NetAddressFamily_Private (*)(const struct PP_NetAddress_Private* addr))&Pnacl_M19_0_PPB_NetAddress_Private_GetFamily,
- .GetPort = (uint16_t (*)(const struct PP_NetAddress_Private* addr))&Pnacl_M19_0_PPB_NetAddress_Private_GetPort,
- .GetAddress = (PP_Bool (*)(const struct PP_NetAddress_Private* addr, void* address, uint16_t address_size))&Pnacl_M19_0_PPB_NetAddress_Private_GetAddress
-};
-
-static const struct PPB_NetAddress_Private_1_1 Pnacl_Wrappers_PPB_NetAddress_Private_1_1 = {
- .AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_1_PPB_NetAddress_Private_AreEqual,
- .AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_1_PPB_NetAddress_Private_AreHostsEqual,
- .Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M19_1_PPB_NetAddress_Private_Describe,
- .ReplacePort = (PP_Bool (*)(const struct PP_NetAddress_Private* src_addr, uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M19_1_PPB_NetAddress_Private_ReplacePort,
- .GetAnyAddress = (void (*)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr))&Pnacl_M19_1_PPB_NetAddress_Private_GetAnyAddress,
- .GetFamily = (PP_NetAddressFamily_Private (*)(const struct PP_NetAddress_Private* addr))&Pnacl_M19_1_PPB_NetAddress_Private_GetFamily,
- .GetPort = (uint16_t (*)(const struct PP_NetAddress_Private* addr))&Pnacl_M19_1_PPB_NetAddress_Private_GetPort,
- .GetAddress = (PP_Bool (*)(const struct PP_NetAddress_Private* addr, void* address, uint16_t address_size))&Pnacl_M19_1_PPB_NetAddress_Private_GetAddress,
- .GetScopeID = (uint32_t (*)(const struct PP_NetAddress_Private* addr))&Pnacl_M19_1_PPB_NetAddress_Private_GetScopeID,
- .CreateFromIPv4Address = (void (*)(const uint8_t ip[4], uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M19_1_PPB_NetAddress_Private_CreateFromIPv4Address,
- .CreateFromIPv6Address = (void (*)(const uint8_t ip[16], uint32_t scope_id, uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M19_1_PPB_NetAddress_Private_CreateFromIPv6Address
-};
-
-static const struct PPB_TCPServerSocket_Private_0_1 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M18_PPB_TCPServerSocket_Private_Create,
- .IsTCPServerSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_TCPServerSocket_Private_IsTCPServerSocket,
- .Listen = (int32_t (*)(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_TCPServerSocket_Private_Listen,
- .Accept = (int32_t (*)(PP_Resource tcp_server_socket, PP_Resource* tcp_socket, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_TCPServerSocket_Private_Accept,
- .StopListening = (void (*)(PP_Resource tcp_server_socket))&Pnacl_M18_PPB_TCPServerSocket_Private_StopListening
-};
-
-static const struct PPB_TCPServerSocket_Private_0_2 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M28_PPB_TCPServerSocket_Private_Create,
- .IsTCPServerSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_TCPServerSocket_Private_IsTCPServerSocket,
- .Listen = (int32_t (*)(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_TCPServerSocket_Private_Listen,
- .Accept = (int32_t (*)(PP_Resource tcp_server_socket, PP_Resource* tcp_socket, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_TCPServerSocket_Private_Accept,
- .GetLocalAddress = (int32_t (*)(PP_Resource tcp_server_socket, struct PP_NetAddress_Private* addr))&Pnacl_M28_PPB_TCPServerSocket_Private_GetLocalAddress,
- .StopListening = (void (*)(PP_Resource tcp_server_socket))&Pnacl_M28_PPB_TCPServerSocket_Private_StopListening
-};
-
-static const struct PPB_TCPSocket_Private_0_3 Pnacl_Wrappers_PPB_TCPSocket_Private_0_3 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M17_PPB_TCPSocket_Private_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M17_PPB_TCPSocket_Private_IsTCPSocket,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_Connect,
- .ConnectWithNetAddress = (int32_t (*)(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_ConnectWithNetAddress,
- .GetLocalAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr))&Pnacl_M17_PPB_TCPSocket_Private_GetLocalAddress,
- .GetRemoteAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr))&Pnacl_M17_PPB_TCPSocket_Private_GetRemoteAddress,
- .SSLHandshake = (int32_t (*)(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_SSLHandshake,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_Write,
- .Disconnect = (void (*)(PP_Resource tcp_socket))&Pnacl_M17_PPB_TCPSocket_Private_Disconnect
-};
-
-static const struct PPB_TCPSocket_Private_0_4 Pnacl_Wrappers_PPB_TCPSocket_Private_0_4 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M20_PPB_TCPSocket_Private_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M20_PPB_TCPSocket_Private_IsTCPSocket,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_Connect,
- .ConnectWithNetAddress = (int32_t (*)(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_ConnectWithNetAddress,
- .GetLocalAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr))&Pnacl_M20_PPB_TCPSocket_Private_GetLocalAddress,
- .GetRemoteAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr))&Pnacl_M20_PPB_TCPSocket_Private_GetRemoteAddress,
- .SSLHandshake = (int32_t (*)(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_SSLHandshake,
- .GetServerCertificate = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M20_PPB_TCPSocket_Private_GetServerCertificate,
- .AddChainBuildingCertificate = (PP_Bool (*)(PP_Resource tcp_socket, PP_Resource certificate, PP_Bool is_trusted))&Pnacl_M20_PPB_TCPSocket_Private_AddChainBuildingCertificate,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_Write,
- .Disconnect = (void (*)(PP_Resource tcp_socket))&Pnacl_M20_PPB_TCPSocket_Private_Disconnect
-};
-
-static const struct PPB_TCPSocket_Private_0_5 Pnacl_Wrappers_PPB_TCPSocket_Private_0_5 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M27_PPB_TCPSocket_Private_Create,
- .IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M27_PPB_TCPSocket_Private_IsTCPSocket,
- .Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_Connect,
- .ConnectWithNetAddress = (int32_t (*)(PP_Resource tcp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_ConnectWithNetAddress,
- .GetLocalAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* local_addr))&Pnacl_M27_PPB_TCPSocket_Private_GetLocalAddress,
- .GetRemoteAddress = (PP_Bool (*)(PP_Resource tcp_socket, struct PP_NetAddress_Private* remote_addr))&Pnacl_M27_PPB_TCPSocket_Private_GetRemoteAddress,
- .SSLHandshake = (int32_t (*)(PP_Resource tcp_socket, const char* server_name, uint16_t server_port, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_SSLHandshake,
- .GetServerCertificate = (PP_Resource (*)(PP_Resource tcp_socket))&Pnacl_M27_PPB_TCPSocket_Private_GetServerCertificate,
- .AddChainBuildingCertificate = (PP_Bool (*)(PP_Resource tcp_socket, PP_Resource certificate, PP_Bool is_trusted))&Pnacl_M27_PPB_TCPSocket_Private_AddChainBuildingCertificate,
- .Read = (int32_t (*)(PP_Resource tcp_socket, char* buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_Read,
- .Write = (int32_t (*)(PP_Resource tcp_socket, const char* buffer, int32_t bytes_to_write, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_Write,
- .Disconnect = (void (*)(PP_Resource tcp_socket))&Pnacl_M27_PPB_TCPSocket_Private_Disconnect,
- .SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocketOption_Private name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_SetOption
-};
-
-static const struct PPB_Testing_Private_1_0 Pnacl_Wrappers_PPB_Testing_Private_1_0 = {
- .ReadImageData = (PP_Bool (*)(PP_Resource device_context_2d, PP_Resource image, const struct PP_Point* top_left))&Pnacl_M33_PPB_Testing_Private_ReadImageData,
- .RunMessageLoop = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_RunMessageLoop,
- .QuitMessageLoop = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_QuitMessageLoop,
- .GetLiveObjectsForInstance = (uint32_t (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_GetLiveObjectsForInstance,
- .IsOutOfProcess = (PP_Bool (*)(void))&Pnacl_M33_PPB_Testing_Private_IsOutOfProcess,
- .SimulateInputEvent = (void (*)(PP_Instance instance, PP_Resource input_event))&Pnacl_M33_PPB_Testing_Private_SimulateInputEvent,
- .GetDocumentURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M33_PPB_Testing_Private_GetDocumentURL,
- .GetLiveVars = (uint32_t (*)(struct PP_Var live_vars[], uint32_t array_size))&Pnacl_M33_PPB_Testing_Private_GetLiveVars,
- .SetMinimumArrayBufferSizeForShmem = (void (*)(PP_Instance instance, uint32_t threshold))&Pnacl_M33_PPB_Testing_Private_SetMinimumArrayBufferSizeForShmem,
- .RunV8GC = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_RunV8GC
-};
-
-static const struct PPB_UDPSocket_Private_0_2 Pnacl_Wrappers_PPB_UDPSocket_Private_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M17_PPB_UDPSocket_Private_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M17_PPB_UDPSocket_Private_IsUDPSocket,
- .Bind = (int32_t (*)(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_UDPSocket_Private_Bind,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_UDPSocket_Private_RecvFrom,
- .GetRecvFromAddress = (PP_Bool (*)(PP_Resource udp_socket, struct PP_NetAddress_Private* addr))&Pnacl_M17_PPB_UDPSocket_Private_GetRecvFromAddress,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_UDPSocket_Private_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M17_PPB_UDPSocket_Private_Close
-};
-
-static const struct PPB_UDPSocket_Private_0_3 Pnacl_Wrappers_PPB_UDPSocket_Private_0_3 = {
- .Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M19_PPB_UDPSocket_Private_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M19_PPB_UDPSocket_Private_IsUDPSocket,
- .Bind = (int32_t (*)(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_UDPSocket_Private_Bind,
- .GetBoundAddress = (PP_Bool (*)(PP_Resource udp_socket, struct PP_NetAddress_Private* addr))&Pnacl_M19_PPB_UDPSocket_Private_GetBoundAddress,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_UDPSocket_Private_RecvFrom,
- .GetRecvFromAddress = (PP_Bool (*)(PP_Resource udp_socket, struct PP_NetAddress_Private* addr))&Pnacl_M19_PPB_UDPSocket_Private_GetRecvFromAddress,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_UDPSocket_Private_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M19_PPB_UDPSocket_Private_Close
-};
-
-static const struct PPB_UDPSocket_Private_0_4 Pnacl_Wrappers_PPB_UDPSocket_Private_0_4 = {
- .Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M23_PPB_UDPSocket_Private_Create,
- .IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M23_PPB_UDPSocket_Private_IsUDPSocket,
- .SetSocketFeature = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocketFeature_Private name, struct PP_Var value))&Pnacl_M23_PPB_UDPSocket_Private_SetSocketFeature,
- .Bind = (int32_t (*)(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M23_PPB_UDPSocket_Private_Bind,
- .GetBoundAddress = (PP_Bool (*)(PP_Resource udp_socket, struct PP_NetAddress_Private* addr))&Pnacl_M23_PPB_UDPSocket_Private_GetBoundAddress,
- .RecvFrom = (int32_t (*)(PP_Resource udp_socket, char* buffer, int32_t num_bytes, struct PP_CompletionCallback callback))&Pnacl_M23_PPB_UDPSocket_Private_RecvFrom,
- .GetRecvFromAddress = (PP_Bool (*)(PP_Resource udp_socket, struct PP_NetAddress_Private* addr))&Pnacl_M23_PPB_UDPSocket_Private_GetRecvFromAddress,
- .SendTo = (int32_t (*)(PP_Resource udp_socket, const char* buffer, int32_t num_bytes, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M23_PPB_UDPSocket_Private_SendTo,
- .Close = (void (*)(PP_Resource udp_socket))&Pnacl_M23_PPB_UDPSocket_Private_Close
-};
-
-static const struct PPB_UMA_Private_0_3 Pnacl_Wrappers_PPB_UMA_Private_0_3 = {
- .HistogramCustomTimes = (void (*)(PP_Instance instance, struct PP_Var name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count))&Pnacl_M35_PPB_UMA_Private_HistogramCustomTimes,
- .HistogramCustomCounts = (void (*)(PP_Instance instance, struct PP_Var name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count))&Pnacl_M35_PPB_UMA_Private_HistogramCustomCounts,
- .HistogramEnumeration = (void (*)(PP_Instance instance, struct PP_Var name, int32_t sample, int32_t boundary_value))&Pnacl_M35_PPB_UMA_Private_HistogramEnumeration,
- .IsCrashReportingEnabled = (int32_t (*)(PP_Instance instance, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_UMA_Private_IsCrashReportingEnabled
-};
-
-static const struct PPB_X509Certificate_Private_0_1 Pnacl_Wrappers_PPB_X509Certificate_Private_0_1 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_X509Certificate_Private_Create,
- .IsX509CertificatePrivate = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_X509Certificate_Private_IsX509CertificatePrivate,
- .Initialize = (PP_Bool (*)(PP_Resource resource, const char* bytes, uint32_t length))&Pnacl_M19_PPB_X509Certificate_Private_Initialize,
- .GetField = (struct PP_Var (*)(PP_Resource resource, PP_X509Certificate_Private_Field field))&Pnacl_M19_PPB_X509Certificate_Private_GetField
-};
-
-/* Not generating wrapper interface for PPP_Find_Private_0_3 */
-
-static const struct PPP_Instance_Private_0_1 Pnacl_Wrappers_PPP_Instance_Private_0_1 = {
- .GetInstanceObject = &Pnacl_M18_PPP_Instance_Private_GetInstanceObject
-};
-
-/* Not generating wrapper interface for PPP_PexeStreamHandler_1_0 */
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Console_1_0 = {
- .iface_macro = PPB_CONSOLE_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Console_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Core_1_0 = {
- .iface_macro = PPB_CORE_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Core_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_0 = {
- .iface_macro = PPB_FILEIO_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_1 = {
- .iface_macro = PPB_FILEIO_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_0 = {
- .iface_macro = PPB_FILEREF_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_1 = {
- .iface_macro = PPB_FILEREF_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_2 = {
- .iface_macro = PPB_FILEREF_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileSystem_1_0 = {
- .iface_macro = PPB_FILESYSTEM_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileSystem_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_0 = {
- .iface_macro = PPB_GRAPHICS_2D_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics2D_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_1 = {
- .iface_macro = PPB_GRAPHICS_2D_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics2D_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_2 = {
- .iface_macro = PPB_GRAPHICS_2D_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics2D_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics3D_1_0 = {
- .iface_macro = PPB_GRAPHICS_3D_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics3D_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_1_0 = {
- .iface_macro = PPB_HOSTRESOLVER_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_HostResolver_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0 = {
- .iface_macro = PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1 = {
- .iface_macro = PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0 = {
- .iface_macro = PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_WheelInputEvent_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0 = {
- .iface_macro = PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2 = {
- .iface_macro = PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0 = {
- .iface_macro = PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TouchInputEvent_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4 = {
- .iface_macro = PPB_TOUCH_INPUT_EVENT_INTERFACE_1_4,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TouchInputEvent_1_4,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0 = {
- .iface_macro = PPB_IME_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1 = {
- .iface_macro = PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamAudioTrack_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1 = {
- .iface_macro = PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamVideoTrack_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0 = {
- .iface_macro = PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamVideoTrack_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MessageLoop_1_0 = {
- .iface_macro = PPB_MESSAGELOOP_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MessageLoop_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_0 = {
- .iface_macro = PPB_MESSAGING_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Messaging_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_2 = {
- .iface_macro = PPB_MESSAGING_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Messaging_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseLock_1_0 = {
- .iface_macro = PPB_MOUSELOCK_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseLock_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_1_0 = {
- .iface_macro = PPB_NETADDRESS_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkList_1_0 = {
- .iface_macro = PPB_NETWORKLIST_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkList_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0 = {
- .iface_macro = PPB_NETWORKMONITOR_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkMonitor_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkProxy_1_0 = {
- .iface_macro = PPB_NETWORKPROXY_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkProxy_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_0 = {
- .iface_macro = PPB_TCPSOCKET_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_1 = {
- .iface_macro = PPB_TCPSOCKET_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_2 = {
- .iface_macro = PPB_TCPSOCKET_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TextInputController_1_0 = {
- .iface_macro = PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TextInputController_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_0 = {
- .iface_macro = PPB_UDPSOCKET_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_1 = {
- .iface_macro = PPB_UDPSOCKET_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_2 = {
- .iface_macro = PPB_UDPSOCKET_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLLoader_1_0 = {
- .iface_macro = PPB_URLLOADER_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLLoader_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0 = {
- .iface_macro = PPB_URLREQUESTINFO_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLRequestInfo_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0 = {
- .iface_macro = PPB_URLRESPONSEINFO_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLResponseInfo_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_0 = {
- .iface_macro = PPB_VAR_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1 = {
- .iface_macro = PPB_VAR_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2 = {
- .iface_macro = PPB_VAR_INTERFACE_1_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0 = {
- .iface_macro = PPB_VAR_ARRAY_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarArray_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0 = {
- .iface_macro = PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarArrayBuffer_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarDictionary_1_0 = {
- .iface_macro = PPB_VAR_DICTIONARY_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarDictionary_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_1 = {
- .iface_macro = PPB_VIDEODECODER_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_2 = {
- .iface_macro = PPB_VIDEODECODER_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_1_0 = {
- .iface_macro = PPB_VIDEODECODER_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_1_1 = {
- .iface_macro = PPB_VIDEODECODER_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoEncoder_0_1 = {
- .iface_macro = PPB_VIDEOENCODER_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoEncoder_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoEncoder_0_2 = {
- .iface_macro = PPB_VIDEOENCODER_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoEncoder_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VpnProvider_0_1 = {
- .iface_macro = PPB_VPNPROVIDER_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VpnProvider_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WebSocket_1_0 = {
- .iface_macro = PPB_WEBSOCKET_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_WebSocket_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Messaging_1_0 = {
- .iface_macro = PPP_MESSAGING_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_Messaging_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3 = {
- .iface_macro = PPB_AUDIO_INPUT_DEV_INTERFACE_0_3,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_3,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4 = {
- .iface_macro = PPB_AUDIO_INPUT_DEV_INTERFACE_0_4,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_4,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1 = {
- .iface_macro = PPB_AUDIO_OUTPUT_DEV_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_AudioOutput_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1 = {
- .iface_macro = PPB_DEVICEREF_DEV_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5 = {
- .iface_macro = PPB_FILECHOOSER_DEV_INTERFACE_0_5,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_5,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6 = {
- .iface_macro = PPB_FILECHOOSER_DEV_INTERFACE_0_6,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_6,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1 = {
- .iface_macro = PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2 = {
- .iface_macro = PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Printing_Dev_0_7 = {
- .iface_macro = PPB_PRINTING_DEV_INTERFACE_0_7,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Printing_Dev_0_7,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6 = {
- .iface_macro = PPB_URLUTIL_DEV_INTERFACE_0_6,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_6,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7 = {
- .iface_macro = PPB_URLUTIL_DEV_INTERFACE_0_7,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_7,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3 = {
- .iface_macro = PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16 = {
- .iface_macro = PPB_VIDEODECODER_DEV_INTERFACE_0_16,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1 = {
- .iface_macro = PPB_CAMERADEVICE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_CameraDevice_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1 = {
- .iface_macro = PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_DisplayColorProfile_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1 = {
- .iface_macro = PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Private_0_1 = {
- .iface_macro = PPB_FILEIO_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1 = {
- .iface_macro = PPB_FILEREFPRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRefPrivate_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1 = {
- .iface_macro = PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_HostResolver_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Instance_Private_0_1 = {
- .iface_macro = PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Instance_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IsolatedFileSystem_Private_0_2 = {
- .iface_macro = PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1 = {
- .iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0 = {
- .iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1 = {
- .iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_1_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1 = {
- .iface_macro = PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2 = {
- .iface_macro = PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3 = {
- .iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_3,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4 = {
- .iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_4,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5 = {
- .iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_5,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Testing_Private_1_0 = {
- .iface_macro = PPB_TESTING_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Testing_Private_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2 = {
- .iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3 = {
- .iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_3,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4 = {
- .iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_4,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_3 = {
- .iface_macro = PPB_UMA_PRIVATE_INTERFACE_0_3,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UMA_Private_0_3,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1 = {
- .iface_macro = PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_X509Certificate_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Instance_Private_0_1 = {
- .iface_macro = PPP_INSTANCE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_Instance_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
- &Pnacl_WrapperInfo_PPB_Console_1_0,
- &Pnacl_WrapperInfo_PPB_Core_1_0,
- &Pnacl_WrapperInfo_PPB_FileIO_1_0,
- &Pnacl_WrapperInfo_PPB_FileIO_1_1,
- &Pnacl_WrapperInfo_PPB_FileRef_1_0,
- &Pnacl_WrapperInfo_PPB_FileRef_1_1,
- &Pnacl_WrapperInfo_PPB_FileRef_1_2,
- &Pnacl_WrapperInfo_PPB_FileSystem_1_0,
- &Pnacl_WrapperInfo_PPB_Graphics2D_1_0,
- &Pnacl_WrapperInfo_PPB_Graphics2D_1_1,
- &Pnacl_WrapperInfo_PPB_Graphics2D_1_2,
- &Pnacl_WrapperInfo_PPB_Graphics3D_1_0,
- &Pnacl_WrapperInfo_PPB_HostResolver_1_0,
- &Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0,
- &Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1,
- &Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0,
- &Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0,
- &Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2,
- &Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0,
- &Pnacl_WrapperInfo_PPB_TouchInputEvent_1_4,
- &Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0,
- &Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1,
- &Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1,
- &Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0,
- &Pnacl_WrapperInfo_PPB_MessageLoop_1_0,
- &Pnacl_WrapperInfo_PPB_Messaging_1_0,
- &Pnacl_WrapperInfo_PPB_Messaging_1_2,
- &Pnacl_WrapperInfo_PPB_MouseLock_1_0,
- &Pnacl_WrapperInfo_PPB_NetAddress_1_0,
- &Pnacl_WrapperInfo_PPB_NetworkList_1_0,
- &Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0,
- &Pnacl_WrapperInfo_PPB_NetworkProxy_1_0,
- &Pnacl_WrapperInfo_PPB_TCPSocket_1_0,
- &Pnacl_WrapperInfo_PPB_TCPSocket_1_1,
- &Pnacl_WrapperInfo_PPB_TCPSocket_1_2,
- &Pnacl_WrapperInfo_PPB_TextInputController_1_0,
- &Pnacl_WrapperInfo_PPB_UDPSocket_1_0,
- &Pnacl_WrapperInfo_PPB_UDPSocket_1_1,
- &Pnacl_WrapperInfo_PPB_UDPSocket_1_2,
- &Pnacl_WrapperInfo_PPB_URLLoader_1_0,
- &Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0,
- &Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0,
- &Pnacl_WrapperInfo_PPB_Var_1_0,
- &Pnacl_WrapperInfo_PPB_Var_1_1,
- &Pnacl_WrapperInfo_PPB_Var_1_2,
- &Pnacl_WrapperInfo_PPB_VarArray_1_0,
- &Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0,
- &Pnacl_WrapperInfo_PPB_VarDictionary_1_0,
- &Pnacl_WrapperInfo_PPB_VideoDecoder_0_1,
- &Pnacl_WrapperInfo_PPB_VideoDecoder_0_2,
- &Pnacl_WrapperInfo_PPB_VideoDecoder_1_0,
- &Pnacl_WrapperInfo_PPB_VideoDecoder_1_1,
- &Pnacl_WrapperInfo_PPB_VideoEncoder_0_1,
- &Pnacl_WrapperInfo_PPB_VideoEncoder_0_2,
- &Pnacl_WrapperInfo_PPB_VpnProvider_0_1,
- &Pnacl_WrapperInfo_PPB_WebSocket_1_0,
- &Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3,
- &Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4,
- &Pnacl_WrapperInfo_PPB_AudioOutput_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5,
- &Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6,
- &Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2,
- &Pnacl_WrapperInfo_PPB_Printing_Dev_0_7,
- &Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6,
- &Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7,
- &Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3,
- &Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16,
- &Pnacl_WrapperInfo_PPB_CameraDevice_Private_0_1,
- &Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1,
- &Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1,
- &Pnacl_WrapperInfo_PPB_FileIO_Private_0_1,
- &Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1,
- &Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1,
- &Pnacl_WrapperInfo_PPB_Instance_Private_0_1,
- &Pnacl_WrapperInfo_PPB_IsolatedFileSystem_Private_0_2,
- &Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1,
- &Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0,
- &Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1,
- &Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1,
- &Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2,
- &Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3,
- &Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4,
- &Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5,
- &Pnacl_WrapperInfo_PPB_Testing_Private_1_0,
- &Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2,
- &Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3,
- &Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4,
- &Pnacl_WrapperInfo_PPB_UMA_Private_0_3,
- &Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1,
- NULL
-};
-
-static struct __PnaclWrapperInfo *s_ppp_wrappers[] = {
- &Pnacl_WrapperInfo_PPP_Messaging_1_0,
- &Pnacl_WrapperInfo_PPP_Instance_Private_0_1,
- NULL
-};
-
-
-
-static PPB_GetInterface __real_PPBGetInterface;
-static PPP_GetInterface_Type __real_PPPGetInterface;
-
-void __set_real_Pnacl_PPBGetInterface(PPB_GetInterface real) {
- __real_PPBGetInterface = real;
-}
-
-void __set_real_Pnacl_PPPGetInterface(PPP_GetInterface_Type real) {
- __real_PPPGetInterface = real;
-}
-
-/* Map interface string -> wrapper metadata */
-static struct __PnaclWrapperInfo *PnaclPPBShimIface(
- const char *name) {
- struct __PnaclWrapperInfo **next = s_ppb_wrappers;
- while (*next != NULL) {
- if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
- ++next;
- }
- return NULL;
-}
-
-/* Map interface string -> wrapper metadata */
-static struct __PnaclWrapperInfo *PnaclPPPShimIface(
- const char *name) {
- struct __PnaclWrapperInfo **next = s_ppp_wrappers;
- while (*next != NULL) {
- if (mystrcmp(name, (*next)->iface_macro) == 0) return *next;
- ++next;
- }
- return NULL;
-}
-
-const void *__Pnacl_PPBGetInterface(const char *name) {
- struct __PnaclWrapperInfo *wrapper = PnaclPPBShimIface(name);
- if (wrapper == NULL) {
- /* We did not generate a wrapper for this, so return the real interface. */
- return (*__real_PPBGetInterface)(name);
- }
-
- /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
- if (wrapper->real_iface == NULL) {
- const void *iface = (*__real_PPBGetInterface)(name);
- if (NULL == iface) return NULL;
- wrapper->real_iface = iface;
- }
-
- return wrapper->wrapped_iface;
-}
-
-const void *__Pnacl_PPPGetInterface(const char *name) {
- struct __PnaclWrapperInfo *wrapper = PnaclPPPShimIface(name);
- if (wrapper == NULL) {
- /* We did not generate a wrapper for this, so return the real interface. */
- return (*__real_PPPGetInterface)(name);
- }
-
- /* Initialize the real_iface if it hasn't been. The wrapper depends on it. */
- if (wrapper->real_iface == NULL) {
- const void *iface = (*__real_PPPGetInterface)(name);
- if (NULL == iface) return NULL;
- wrapper->real_iface = iface;
- }
-
- return wrapper->wrapped_iface;
-}
diff --git a/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h b/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h
deleted file mode 100644
index 9bad2b7..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_
-#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_
-
-#include "ppapi/c/ppb.h"
-
-/** Defines the interface exposed by the generated wrapper code. */
-
-/* There is not a typedef for PPP_GetInterface_type, but it is currently
- * the same as PPB_GetInterface. */
-typedef PPB_GetInterface PPP_GetInterface_Type;
-
-void __set_real_Pnacl_PPBGetInterface(PPB_GetInterface real);
-void __set_real_Pnacl_PPPGetInterface(PPP_GetInterface_Type real);
-
-const void *__Pnacl_PPBGetInterface(const char *name);
-const void *__Pnacl_PPPGetInterface(const char *name);
-
-struct __PnaclWrapperInfo {
- const char* iface_macro;
- const void* wrapped_iface;
- const void* real_iface;
-};
-
-#endif /* PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_ */
diff --git a/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c b/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c
deleted file mode 100644
index a9240ee..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2012 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include <stdint.h>
-
-#include "native_client/src/include/elf32.h"
-#include "native_client/src/include/elf_auxv.h"
-#include "native_client/src/untrusted/nacl/nacl_startup.h"
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h"
-
-
-/*
- * This is the true entry point for untrusted code.
- * See nacl_startup.h for the layout at the argument pointer.
- */
-void _pnacl_wrapper_start(uint32_t *info) {
- Elf32_auxv_t *auxv = nacl_startup_auxv(info);
-
- Elf32_auxv_t *entry = NULL;
- for (Elf32_auxv_t *av = auxv; av->a_type != AT_NULL; ++av) {
- if (av->a_type == AT_SYSINFO) {
- entry = av;
- break;
- }
- }
-
- if (entry != NULL) {
- /*
- * Save the real irt interface query function.
- */
- __pnacl_real_irt_query_func = (TYPE_nacl_irt_query) entry->a_un.a_val;
-
- /*
- * Overwrite the auxv slot with the pnacl IRT shim query function.
- */
- entry->a_type = AT_SYSINFO;
- entry->a_un.a_val = (uintptr_t) __pnacl_wrap_irt_query_func;
- }
-
- /* If entry is NULL still allow startup to continue. It may be the case
- * that the IRT was not actually used (e.g., for some commandline tests).
- * For newlib, we can tell that the IRT isn't used when libnacl_sys_private.a
- * is in the bitcode link line. However, glibc does not use
- * libnacl_sys_private, so that would not work. We could look for -lppapi
- * in the bitcode link line, but looking at the bitcode link line
- * seems brittle (what if the bitcode link was separated from translation).
- * Thus we always wrap _start, even if there is no IRT auxv entry.
- */
-
- /*
- * Call the user entry point function. It should not return.
- * TODO(sehr): Find a way to ensure this is invoked via a tail call.
- */
- _start(info);
-}
diff --git a/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c b/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c
deleted file mode 100644
index ac5dae5..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2012 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h"
-
-#include "native_client/src/untrusted/irt/irt.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
-#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
-
-#define ARRAY_SIZEOF(a) (sizeof(a) / sizeof(a[0]))
-
-/* Returns 1 if the strings s1 and s2 are equal, comparing only the first n
- bytes of s1 and s2; 0 otherwise. */
-static int streq(const char *s1, const char *s2, size_t n) {
- for(; n && *s1 && *s2 && *s1 == *s2; ++s1, ++s2, --n);
- return n == 0 || *s1 == *s2;
-}
-
-
-TYPE_nacl_irt_query __pnacl_real_irt_query_func = NULL;
-
-size_t __pnacl_wrap_irt_query_func(const char *interface_ident,
- void *table, size_t tablesize) {
- /*
- * Note there is a benign race in initializing the wrapper.
- * We build the "hook" structure by copying from the IRT's hook and then
- * writing our wrapper for the ppapi method. Two threads may end up
- * attempting to do this simultaneously, which should not be a problem,
- * as they are writing the same values.
- */
- if (!streq(interface_ident, NACL_IRT_PPAPIHOOK_v0_1,
- ARRAY_SIZEOF(NACL_IRT_PPAPIHOOK_v0_1))) {
- /*
- * The interface is not wrapped, so use the real interface.
- */
- return (*__pnacl_real_irt_query_func)(interface_ident, table, tablesize);
- }
-#ifndef PNACL_SHIM_AOT
- /*
- * For PNaCl in-the-browser, redirect to using
- * NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 instead of NACL_IRT_PPAPIHOOK_v0_1.
- */
- return (*__pnacl_real_irt_query_func)(NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1,
- table, tablesize);
-#else
- /*
- * For offline generated nexes, avoid depending on the private
- * NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 interface, and just do the
- * overriding here manually.
- */
- struct nacl_irt_ppapihook real_irt_ppapi_hook;
- if ((*__pnacl_real_irt_query_func)(NACL_IRT_PPAPIHOOK_v0_1,
- &real_irt_ppapi_hook,
- sizeof real_irt_ppapi_hook) !=
- sizeof real_irt_ppapi_hook) {
- return 0;
- }
- real_irt_ppapi_start = real_irt_ppapi_hook.ppapi_start;
- /*
- * Copy the interface structure into the client.
- */
- struct nacl_irt_ppapihook *dest = table;
- if (sizeof *dest <= tablesize) {
- dest->ppapi_start = irt_shim_ppapi_start;
- dest->ppapi_register_thread_creator =
- real_irt_ppapi_hook.ppapi_register_thread_creator;
- return sizeof *dest;
- }
- return 0;
-#endif
-}
diff --git a/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h b/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h
deleted file mode 100644
index 10400f6..0000000
--- a/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2011 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_
-#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_
-
-#include <stddef.h>
-#include "native_client/src/untrusted/irt/irt.h"
-
-/*
- * Remembers the IRT's true interface query function.
- */
-extern TYPE_nacl_irt_query __pnacl_real_irt_query_func;
-
-/*
- * Provides a wrapped query function.
- */
-size_t __pnacl_wrap_irt_query_func(const char *interface_ident,
- void *table, size_t tablesize);
-
-#endif /* PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_ */
diff --git a/native_client/src/untrusted/pnacl_support_extension/BUILD.gn b/native_client/src/untrusted/pnacl_support_extension/BUILD.gn
deleted file mode 100644
index 8ab3c29..0000000
--- a/native_client/src/untrusted/pnacl_support_extension/BUILD.gn
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//components/nacl/features.gni")
-import("//components/nacl/target_cpu.gni")
-
-assert(enable_nacl)
-
-# This target copies files from the prebuilt/DEPS'ed in pnacl_translator
-# toolchain and copies the latest PNaCl IRT shim library.
-# We could use 'copies', but we want to rename the files in a white-listed
-# way first. Thus use an action.
-action("pnacl_support_extension") {
- script = "pnacl_component_crx_gen.py"
- inputs = [
- "//native_client/build/package_version/package_version.py",
- "//native_client/pnacl/driver/pnacl_info_template.json",
- "//native_client/toolchain_revisions/pnacl_translator.json",
- ]
- shim_target_label =
- "//ppapi/native_client/src/untrusted/pnacl_irt_shim:browser"
- src_shim_name = "libpnacl_irt_shim_browser.a"
- desired_shim_name = "libpnacl_irt_shim.a"
-
- # Use the IRT toolchain to build the shim. We want similar properties
- # (x86-64 sandbox base address hiding). One thing we don't want is the
- # IRT's secondary TLS, but that is handled by tls_edit and not compiler
- # flags (so IRT compiler flags should be fine).
- shim_toolchain_base = "//build/toolchain/nacl:irt_"
-
- shim_target_tc_label =
- "$shim_target_label($shim_toolchain_base$nacl_target_cpu)"
- deps = [ shim_target_tc_label ]
- shim_cpu = nacl_target_cpu
-
- output_prefix = "$root_out_dir/pnacl/pnacl_public_"
- outputs = [ "${output_prefix}pnacl_json" ]
-
- # Files that will be copied from the toolchain to output.
- outputs_from_toolchain = [
- "crtbegin_o",
- "crtend_o",
- "ld_nexe",
- "libcrt_platform_a",
- "libgcc_a",
- "libpnacl_irt_shim_a",
- "pnacl_llc_nexe",
- "pnacl_sz_nexe",
- ]
-
- if (nacl_target_cpu == "arm") {
- output_cpu = "arm"
- } else if (nacl_target_cpu == "mipsel") {
- output_cpu = "mips32"
- } else if (nacl_target_cpu == "x64") {
- output_cpu = "x86_64"
- } else if (nacl_target_cpu == "x86") {
- output_cpu = "x86_32"
- } else {
- assert(false, "unhandled nacl_target_cpu")
- }
-
- foreach(output_elem, outputs_from_toolchain) {
- outputs += [ output_prefix + output_cpu + "_" + output_elem ]
- }
-
- shim_lib_path =
- rebase_path(get_label_info(shim_target_tc_label, "target_out_dir") +
- "/$src_shim_name",
- root_build_dir)
-
- # This describes the irt shim library for the main architecture.
- # On Windows x86, another switch will be added to this below.
- lib_overrides = [
- "--lib_override",
- "$shim_cpu,$shim_lib_path,$desired_shim_name",
- ]
-
- if (is_win && target_cpu == "x86") {
- # On Windows, for offline testing (i.e., without component updater
- # selecting the platform-specific files with multi-CRXes), we need
- # to stage both x86-32 and x86-64 (because 32-bit chrome on 64-bit
- # windows will need 64-bit nexes).
-
- shim_target_tc_label = "$shim_target_label(${shim_toolchain_base}x64)"
- shim_cpu = "x64"
-
- shim_lib_path =
- rebase_path(get_label_info(shim_target_tc_label, "target_out_dir") +
- "/$src_shim_name",
- root_build_dir)
-
- # Pass a second --lib_override for the second architecture.
- lib_overrides += [
- "--lib_override",
- "$shim_cpu,$shim_lib_path,$desired_shim_name",
- ]
-
- deps += [ shim_target_tc_label ]
-
- foreach(output_elem, outputs_from_toolchain) {
- outputs += [ output_prefix + "x86_64_" + output_elem ]
- }
- }
-
- if (current_os == "chromeos") {
- toolchain_os = "linux"
- } else {
- toolchain_os = current_os
- }
-
- args = lib_overrides
- args += [
- "--dest",
- rebase_path("$root_out_dir/pnacl", root_build_dir),
-
- "--target_arch",
- nacl_target_cpu,
-
- "--info_template_path",
- rebase_path("//native_client/pnacl/driver/pnacl_info_template.json",
- root_build_dir),
-
- "--pnacl_translator_path",
- rebase_path(
- "//native_client/toolchain/${toolchain_os}_x86/pnacl_translator",
- root_build_dir),
-
- "--package_version_path",
- rebase_path("//native_client/build/package_version/package_version.py",
- root_build_dir),
-
- "--pnacl_package_name",
- "pnacl_translator",
-
- # ABI Version Number
- "1",
- ]
-}
diff --git a/native_client/src/untrusted/pnacl_support_extension/README b/native_client/src/untrusted/pnacl_support_extension/README
deleted file mode 100644
index 8f419dd..0000000
--- a/native_client/src/untrusted/pnacl_support_extension/README
+++ /dev/null
@@ -1,8 +0,0 @@
-How to package PNaCl translator components (llc, ld, native libs) for Chrome.
-
-Run gyp w/ GYP_DEFINES "target_arch=arm", ia32, x64, etc. to compile the
-PNaCl shim for each architecture. Running gyp will also run the
-python script in this directory once for each architecture, and set up
-a target-specific set of translators. Zip up the multi-CRX, upload,
-do QA, and publish. See internal wiki "PNaCl Translator in Chrome" for
-convenience scripts and more details.
diff --git a/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py b/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py
deleted file mode 100755
index 835dd2d..0000000
--- a/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py
+++ /dev/null
@@ -1,364 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""This script lays out the PNaCl translator files for a
- normal Chrome installer, for one platform. Once run num-of-arches times,
- the result can then be packed into a multi-CRX zip file.
-
- This script depends on and pulls in the translator nexes and libraries
- from the PNaCl translator. It also depends on the pnacl_irt_shim.
-"""
-
-import json
-import logging
-import optparse
-import os
-import platform
-import re
-import shutil
-import subprocess
-import sys
-
-J = os.path.join
-
-######################################################################
-# Target arch and build arch junk to convert between all the
-# silly conventions between SCons, Chrome and PNaCl.
-
-# The version of the arch used by NaCl manifest files.
-# This is based on the machine "building" this extension.
-# We also used this to identify the arch-specific different versions of
-# this extension.
-
-def CanonicalArch(arch):
- if arch in ('x86_64', 'x86-64', 'x64', 'amd64'):
- return 'x86-64'
- # TODO(jvoung): be more specific about the arm architecture version?
- if arch in ('arm', 'armv7'):
- return 'arm'
- if arch in ('mipsel'):
- return 'mips32'
- if re.match('^i.86$', arch) or arch in ('x86_32', 'x86-32', 'ia32', 'x86'):
- return 'x86-32'
- return None
-
-def GetBuildArch():
- arch = platform.machine()
- return CanonicalArch(arch)
-
-BUILD_ARCH = GetBuildArch()
-ARCHES = ['x86-32', 'x86-64', 'arm', 'mips32']
-
-def IsValidArch(arch):
- return arch in ARCHES
-
-
-######################################################################
-
-# Normalize the platform name to be the way SCons finds chrome binaries.
-# This is based on the platform "building" the extension.
-
-def GetBuildPlatform():
- if sys.platform == 'darwin':
- platform = 'mac'
- elif sys.platform.startswith('linux'):
- platform = 'linux'
- elif sys.platform in ('cygwin', 'win32'):
- platform = 'windows'
- else:
- raise Exception('Unknown platform: %s' % sys.platform)
- return platform
-BUILD_PLATFORM = GetBuildPlatform()
-
-
-def DetermineInstallerArches(target_arch):
- arch = CanonicalArch(target_arch)
- if not IsValidArch(arch):
- raise Exception('Unknown target_arch %s' % target_arch)
- # On windows, we need x86-32 and x86-64 (assuming non-windows RT).
- if BUILD_PLATFORM == 'windows':
- if arch.startswith('x86'):
- return ['x86-32', 'x86-64']
- else:
- raise Exception('Unknown target_arch on windows w/ target_arch == %s' %
- target_arch)
- else:
- return [arch]
-
-
-######################################################################
-
-class PnaclPackaging(object):
-
- package_base = os.path.dirname(__file__)
-
- # File paths that are set from the command line.
- pnacl_template = None
- package_version_path = None
- pnacl_package = 'pnacl_newlib'
-
- # Agreed-upon name for pnacl-specific info.
- pnacl_json = 'pnacl.json'
-
- @staticmethod
- def SetPnaclInfoTemplatePath(path):
- PnaclPackaging.pnacl_template = path
-
- @staticmethod
- def SetPackageVersionPath(path):
- PnaclPackaging.package_version_path = path
-
- @staticmethod
- def SetPnaclPackageName(name):
- PnaclPackaging.pnacl_package = name
-
- @staticmethod
- def PnaclToolsRevision():
- pkg_ver_cmd = [sys.executable, PnaclPackaging.package_version_path,
- 'getrevision',
- '--revision-package', PnaclPackaging.pnacl_package]
-
- return subprocess.check_output(pkg_ver_cmd).strip()
-
- @staticmethod
- def GeneratePnaclInfo(target_dir, abi_version, arch):
- # A note on versions: pnacl_version is the version of translator built
- # by the NaCl repo, while abi_version is bumped when the NaCl sandbox
- # actually changes.
- pnacl_version = PnaclPackaging.PnaclToolsRevision()
- with open(PnaclPackaging.pnacl_template, 'rb') as pnacl_template_fd:
- pnacl_template = json.load(pnacl_template_fd)
- out_name = J(target_dir, UseWhitelistedChars(PnaclPackaging.pnacl_json,
- None))
- with open(out_name, 'w') as output_fd:
- pnacl_template['pnacl-arch'] = arch
- pnacl_template['pnacl-version'] = pnacl_version.decode()
- json.dump(pnacl_template, output_fd, sort_keys=True, indent=4)
-
-
-######################################################################
-
-class PnaclDirs(object):
- translator_dir = None
- output_dir = None
-
- @staticmethod
- def SetTranslatorRoot(d):
- PnaclDirs.translator_dir = d
-
- @staticmethod
- def TranslatorRoot():
- return PnaclDirs.translator_dir
-
- @staticmethod
- def LibDir(target_arch):
- return J(PnaclDirs.TranslatorRoot(), 'translator', '%s' % target_arch)
-
- @staticmethod
- def SandboxedCompilerDir(target_arch):
- return J(PnaclDirs.TranslatorRoot(), 'translator', target_arch, 'bin')
-
- @staticmethod
- def SetOutputDir(d):
- PnaclDirs.output_dir = d
-
- @staticmethod
- def OutputDir():
- return PnaclDirs.output_dir
-
- @staticmethod
- def OutputAllDir(version_quad):
- return J(PnaclDirs.OutputDir(), version_quad)
-
- @staticmethod
- def OutputArchBase(arch):
- return '%s' % arch
-
- @staticmethod
- def OutputArchDir(arch):
- # Nest this in another directory so that the layout will be the same
- # as the "all"/universal version.
- parent_dir = J(PnaclDirs.OutputDir(), PnaclDirs.OutputArchBase(arch))
- return (parent_dir, J(parent_dir, PnaclDirs.OutputArchBase(arch)))
-
-
-######################################################################
-
-def StepBanner(short_desc, long_desc):
- logging.info("**** %s\t%s", short_desc, long_desc)
-
-
-def Clean():
- out_dir = PnaclDirs.OutputDir()
- StepBanner('CLEAN', 'Cleaning out old packaging: %s' % out_dir)
- if os.path.isdir(out_dir):
- shutil.rmtree(out_dir)
- else:
- logging.info('Clean skipped -- no previous output directory!')
-
-######################################################################
-
-def UseWhitelistedChars(orig_basename, arch):
- """ Make the filename match the pattern expected by nacl_file_host.
-
- Currently, this assumes there is prefix "pnacl_public_" and
- that the allowed chars are in the set [a-zA-Z0-9_].
- """
- if arch:
- target_basename = 'pnacl_public_%s_%s' % (arch, orig_basename)
- else:
- target_basename = 'pnacl_public_%s' % orig_basename
- result = re.sub(r'[^a-zA-Z0-9_]', '_', target_basename)
- logging.info('UseWhitelistedChars using: %s' % result)
- return result
-
-def CopyFlattenDirsAndPrefix(src_dir, arch, dest_dir):
- """ Copy files from src_dir to dest_dir.
-
- When copying, also rename the files such that they match the white-listing
- pattern in chrome/browser/nacl_host/nacl_file_host.cc.
- """
- if not os.path.isdir(src_dir):
- raise Exception('Copy dir failed, directory does not exist: %s' % src_dir)
-
- for (root, dirs, files) in os.walk(src_dir, followlinks=True):
- for f in files:
- # Assume a flat directory.
- assert (f == os.path.basename(f))
- full_name = J(root, f)
- target_name = UseWhitelistedChars(f, arch)
- shutil.copy(full_name, J(dest_dir, target_name))
-
-
-def BuildArchForInstaller(version_quad, arch, lib_overrides):
- """ Build an architecture specific version for the chrome installer.
- """
- target_dir = PnaclDirs.OutputDir()
-
- StepBanner('BUILD INSTALLER',
- 'Packaging for arch %s in %s' % (arch, target_dir))
-
- # Copy llc.nexe and ld.nexe, but with some renaming and directory flattening.
- CopyFlattenDirsAndPrefix(PnaclDirs.SandboxedCompilerDir(arch),
- arch,
- target_dir)
-
- # Copy native libraries, also with renaming and directory flattening.
- CopyFlattenDirsAndPrefix(PnaclDirs.LibDir(arch), arch, target_dir)
-
- # Also copy files from the list of overrides.
- # This needs the arch tagged onto the name too, like the other files.
- if arch in lib_overrides:
- for (override_lib, desired_name) in lib_overrides[arch]:
- target_name = UseWhitelistedChars(desired_name, arch)
- shutil.copy(override_lib, J(target_dir, target_name))
-
-
-def BuildInstallerStyle(version_quad, lib_overrides, arches):
- """ Package the pnacl component for use within the chrome installer
- infrastructure. These files need to be named in a special way
- so that white-listing of files is easy.
- """
- StepBanner("BUILD_ALL", "Packaging installer for version: %s" % version_quad)
- for arch in arches:
- BuildArchForInstaller(version_quad, arch, lib_overrides)
- # Generate pnacl info manifest.
- # Hack around the fact that there may be more than one arch, on Windows.
- if len(arches) == 1:
- arches = arches[0]
- PnaclPackaging.GeneratePnaclInfo(PnaclDirs.OutputDir(), version_quad, arches)
-
-
-######################################################################
-
-
-def Main():
- usage = 'usage: %prog [options] version_arg'
- parser = optparse.OptionParser(usage)
- # We may want to accept a target directory to dump it in the usual
- # output directory (e.g., scons-out).
- parser.add_option('-c', '--clean', dest='clean',
- action='store_true', default=False,
- help='Clean out destination directory first.')
- parser.add_option('-d', '--dest', dest='dest',
- help='The destination root for laying out the extension')
- parser.add_option('-L', '--lib_override',
- dest='lib_overrides', action='append', default=[],
- help='Specify path to a fresher native library ' +
- 'that overrides the tarball library with ' +
- '(arch,libfile,librenamed) tuple.')
- parser.add_option('-t', '--target_arch',
- dest='target_arch', default=None,
- help='Only generate the chrome installer version for arch')
- parser.add_option('--info_template_path',
- dest='info_template_path', default=None,
- help='Path of the info template file')
- parser.add_option('--package_version_path', dest='package_version_path',
- default=None, help='Path to package_version.py script.')
- parser.add_option('--pnacl_package_name', dest='pnacl_package_name',
- default=None, help='Name of PNaCl package.')
- parser.add_option('--pnacl_translator_path', dest='pnacl_translator_path',
- default=None, help='Location of PNaCl translator.')
- parser.add_option('-v', '--verbose', dest='verbose', default=False,
- action='store_true',
- help='Print verbose debug messages.')
-
- (options, args) = parser.parse_args()
- if options.verbose:
- logging.getLogger().setLevel(logging.DEBUG)
- else:
- logging.getLogger().setLevel(logging.ERROR)
- logging.info('pnacl_component_crx_gen w/ options %s and args %s\n'
- % (options, args))
-
- # Set destination directory before doing any cleaning, etc.
- if options.dest is None:
- raise Exception('Destination path must be set.')
- PnaclDirs.SetOutputDir(options.dest)
-
- if options.clean:
- Clean()
-
- if options.pnacl_translator_path is None:
- raise Exception('PNaCl translator path must be set.')
- PnaclDirs.SetTranslatorRoot(options.pnacl_translator_path)
-
- if options.info_template_path:
- PnaclPackaging.SetPnaclInfoTemplatePath(options.info_template_path)
-
- if options.package_version_path:
- PnaclPackaging.SetPackageVersionPath(options.package_version_path)
- else:
- raise Exception('Package verison script must be specified.')
-
- if options.pnacl_package_name:
- PnaclPackaging.SetPnaclPackageName(options.pnacl_package_name)
-
- lib_overrides = {}
- for o in options.lib_overrides:
- arch, override_lib, desired_name = o.split(',')
- arch = CanonicalArch(arch)
- if not IsValidArch(arch):
- raise Exception('Unknown arch for -L: %s (from %s)' % (arch, o))
- if not os.path.isfile(override_lib):
- raise Exception('Override native lib not a file for -L: %s (from %s)' %
- (override_lib, o))
- override_list = lib_overrides.get(arch, [])
- override_list.append((override_lib, desired_name))
- lib_overrides[arch] = override_list
-
- if len(args) != 1:
- parser.print_help()
- parser.error('Incorrect number of arguments')
-
- abi_version = int(args[0])
-
- arches = DetermineInstallerArches(options.target_arch)
- BuildInstallerStyle(abi_version, lib_overrides, arches)
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(Main())
diff --git a/native_client/tests/breakpad_crash_test/browser_process_crash.html b/native_client/tests/breakpad_crash_test/browser_process_crash.html
deleted file mode 100644
index ddc9bf3..0000000
--- a/native_client/tests/breakpad_crash_test/browser_process_crash.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
-Copyright 2013 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="-1" />
- <script type="text/javascript" src="nacltest.js"></script>
- <title>Browser Process Crash Test</title>
- </head>
-
- <body>
- <h1>Browser Process Crash Test</h1>
-
-<script type="text/javascript">
-
-var tester = new Tester();
-
-// We don't normally expect any of this code to run, because we are
-// testing a browser process crash. If we reach here, the
-// "--crash-test" option does not work.
-
-tester.addTest('browser_process_crash', function(status) {
- status.fail('Browser was supposed to crash, not reach here');
-});
-
-tester.run();
-
-</script>
-
- </body>
-</html>
diff --git a/native_client/tests/breakpad_crash_test/crash_dump_tester.py b/native_client/tests/breakpad_crash_test/crash_dump_tester.py
deleted file mode 100755
index 6a8f622..0000000
--- a/native_client/tests/breakpad_crash_test/crash_dump_tester.py
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-import subprocess
-import sys
-import tempfile
-import time
-
-script_dir = os.path.dirname(__file__)
-sys.path.append(os.path.join(script_dir,
- '../../tools/browser_tester'))
-
-import browser_tester
-import browsertester.browserlauncher
-
-# This script extends browser_tester to check for the presence of
-# Breakpad crash dumps.
-
-
-# This reads a file of lines containing 'key:value' pairs.
-# The file contains entries like the following:
-# plat:Win32
-# prod:Chromium
-# ptype:nacl-loader
-# rept:crash svc
-def ReadDumpTxtFile(filename):
- dump_info = {}
- fh = open(filename, 'r')
- for line in fh:
- if ':' in line:
- key, value = line.rstrip().split(':', 1)
- dump_info[key] = value
- fh.close()
- return dump_info
-
-
-def StartCrashService(browser_path, dumps_dir, windows_pipe_name,
- cleanup_funcs, crash_service_exe,
- skip_if_missing=False):
- # Find crash_service.exe relative to chrome.exe. This is a bit icky.
- browser_dir = os.path.dirname(browser_path)
- crash_service_path = os.path.join(browser_dir, crash_service_exe)
- if skip_if_missing and not os.path.exists(crash_service_path):
- return
- proc = subprocess.Popen([crash_service_path,
- '--v=1', # Verbose output for debugging failures
- '--dumps-dir=%s' % dumps_dir,
- '--pipe-name=%s' % windows_pipe_name])
-
- def Cleanup():
- # Note that if the process has already exited, this will raise
- # an 'Access is denied' WindowsError exception, but
- # crash_service.exe is not supposed to do this and such
- # behaviour should make the test fail.
- proc.terminate()
- status = proc.wait()
- sys.stdout.write('crash_dump_tester: %s exited with status %s\n'
- % (crash_service_exe, status))
-
- cleanup_funcs.append(Cleanup)
-
-
-def ListPathsInDir(dir_path):
- if os.path.exists(dir_path):
- return [os.path.join(dir_path, name)
- for name in os.listdir(dir_path)]
- else:
- return []
-
-
-def GetDumpFiles(dumps_dirs):
- all_files = [filename
- for dumps_dir in dumps_dirs
- for filename in ListPathsInDir(dumps_dir)]
- sys.stdout.write('crash_dump_tester: Found %i files\n' % len(all_files))
- for dump_file in all_files:
- sys.stdout.write(' %s (size %i)\n'
- % (dump_file, os.stat(dump_file).st_size))
- return [dump_file for dump_file in all_files
- if dump_file.endswith('.dmp')]
-
-
-def Main(cleanup_funcs):
- parser = browser_tester.BuildArgParser()
- parser.add_option('--expected_crash_dumps', dest='expected_crash_dumps',
- type=int, default=0,
- help='The number of crash dumps that we should expect')
- parser.add_option('--expected_process_type_for_crash',
- dest='expected_process_type_for_crash',
- type=str, default='nacl-loader',
- help='The type of Chromium process that we expect the '
- 'crash dump to be for')
- # Ideally we would just query the OS here to find out whether we are
- # running x86-32 or x86-64 Windows, but Python's win32api module
- # does not contain a wrapper for GetNativeSystemInfo(), which is
- # what NaCl uses to check this, or for IsWow64Process(), which is
- # what Chromium uses. Instead, we just rely on the build system to
- # tell us.
- parser.add_option('--win64', dest='win64', action='store_true',
- help='Pass this if we are running tests for x86-64 Windows')
- options, args = parser.parse_args()
-
- temp_dir = tempfile.mkdtemp(prefix='nacl_crash_dump_tester_')
- def CleanUpTempDir():
- browsertester.browserlauncher.RemoveDirectory(temp_dir)
- cleanup_funcs.append(CleanUpTempDir)
-
- # To get a guaranteed unique pipe name, use the base name of the
- # directory we just created.
- windows_pipe_name = r'\\.\pipe\%s_crash_service' % os.path.basename(temp_dir)
-
- # This environment variable enables Breakpad crash dumping in
- # non-official builds of Chromium.
- os.environ['CHROME_HEADLESS'] = '1'
- if sys.platform == 'win32':
- dumps_dir = temp_dir
- # Override the default (global) Windows pipe name that Chromium will
- # use for out-of-process crash reporting.
- os.environ['CHROME_BREAKPAD_PIPE_NAME'] = windows_pipe_name
- # Launch the x86-32 crash service so that we can handle crashes in
- # the browser process.
- StartCrashService(options.browser_path, dumps_dir, windows_pipe_name,
- cleanup_funcs, 'crash_service.exe')
- if options.win64:
- # Launch the x86-64 crash service so that we can handle crashes
- # in the NaCl loader process (nacl64.exe).
- # Skip if missing, since in win64 builds crash_service.exe is 64-bit
- # and crash_service64.exe does not exist.
- StartCrashService(options.browser_path, dumps_dir, windows_pipe_name,
- cleanup_funcs, 'crash_service64.exe',
- skip_if_missing=True)
- # We add a delay because there is probably a race condition:
- # crash_service.exe might not have finished doing
- # CreateNamedPipe() before NaCl does a crash dump and tries to
- # connect to that pipe.
- # TODO(mseaborn): We could change crash_service.exe to report when
- # it has successfully created the named pipe.
- time.sleep(1)
- elif sys.platform == 'darwin':
- dumps_dir = temp_dir
- os.environ['BREAKPAD_DUMP_LOCATION'] = dumps_dir
- elif sys.platform.startswith('linux'):
- # The "--user-data-dir" option is not effective for the Breakpad
- # setup in Linux Chromium, because Breakpad is initialized before
- # "--user-data-dir" is read. So we set HOME to redirect the crash
- # dumps to a temporary directory.
- home_dir = temp_dir
- os.environ['HOME'] = home_dir
- options.enable_crash_reporter = True
-
- result = browser_tester.Run(options.url, options)
-
- # Find crash dump results.
- if sys.platform.startswith('linux'):
- # Look in "~/.config/*/Crash Reports". This will find crash
- # reports under ~/.config/chromium or ~/.config/google-chrome, or
- # under other subdirectories in case the branding is changed.
- dumps_dirs = [os.path.join(path, 'Crash Reports')
- for path in ListPathsInDir(os.path.join(home_dir, '.config'))]
- else:
- dumps_dirs = [dumps_dir]
- dmp_files = GetDumpFiles(dumps_dirs)
-
- failed = False
- msg = ('crash_dump_tester: ERROR: Got %i crash dumps but expected %i\n' %
- (len(dmp_files), options.expected_crash_dumps))
- if len(dmp_files) != options.expected_crash_dumps:
- sys.stdout.write(msg)
- failed = True
-
- for dump_file in dmp_files:
- # Sanity check: Make sure dumping did not fail after opening the file.
- msg = 'crash_dump_tester: ERROR: Dump file is empty\n'
- if os.stat(dump_file).st_size == 0:
- sys.stdout.write(msg)
- failed = True
-
- # On Windows, the crash dumps should come in pairs of a .dmp and
- # .txt file.
- if sys.platform == 'win32':
- second_file = dump_file[:-4] + '.txt'
- msg = ('crash_dump_tester: ERROR: File %r is missing a corresponding '
- '%r file\n' % (dump_file, second_file))
- if not os.path.exists(second_file):
- sys.stdout.write(msg)
- failed = True
- continue
- # Check that the crash dump comes from the NaCl process.
- dump_info = ReadDumpTxtFile(second_file)
- if 'ptype' in dump_info:
- msg = ('crash_dump_tester: ERROR: Unexpected ptype value: %r != %r\n'
- % (dump_info['ptype'], options.expected_process_type_for_crash))
- if dump_info['ptype'] != options.expected_process_type_for_crash:
- sys.stdout.write(msg)
- failed = True
- else:
- sys.stdout.write('crash_dump_tester: ERROR: Missing ptype field\n')
- failed = True
- # TODO(mseaborn): Ideally we would also check that a backtrace
- # containing an expected function name can be extracted from the
- # crash dump.
-
- if failed:
- sys.stdout.write('crash_dump_tester: FAILED\n')
- result = 1
- else:
- sys.stdout.write('crash_dump_tester: PASSED\n')
-
- return result
-
-
-def MainWrapper():
- cleanup_funcs = []
- try:
- return Main(cleanup_funcs)
- finally:
- for func in cleanup_funcs:
- func()
-
-
-if __name__ == '__main__':
- sys.exit(MainWrapper())
diff --git a/native_client/tests/breakpad_crash_test/crash_in_syscall.html b/native_client/tests/breakpad_crash_test/crash_in_syscall.html
deleted file mode 100644
index e4676fe..0000000
--- a/native_client/tests/breakpad_crash_test/crash_in_syscall.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-Copyright 2011 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="-1" />
- <script type="text/javascript" src="nacltest.js"></script>
- <title>Native Client Crash In Syscall Test</title>
- </head>
-
- <body>
- <h1>Native Client Crash In Syscall Test</h1>
-
-<div id="scratch_space"></div>
-
-<script type="text/javascript">
-
-var tester = new Tester();
-
-tester.addAsyncTest('crash_in_syscall', function(status) {
- var embed = document.createElement('embed');
- embed.width = 0;
- embed.height = 0;
- embed.src = 'crash_in_syscall.nmf';
- embed.type = 'application/x-nacl';
- embed.name = 'foo';
-
- // Webkit Bug Workaround
- // THIS SHOULD BE REMOVED WHEN Webkit IS FIXED
- // http://code.google.com/p/nativeclient/issues/detail?id=2428
- // http://code.google.com/p/chromium/issues/detail?id=103588
- ForcePluginLoadOnTimeout(embed, tester, 15000);
-
- var div = document.createElement('div');
- div.appendChild(embed);
-
- div.addEventListener('load', status.wrap(function(event) {
- status.fail('We expected this process to crash during startup');
- }), true);
-
- div.addEventListener('error', status.wrap(function(event) {
- status.log('Received error: ' + embed.lastError);
- status.assert(
- embed.lastError.indexOf('SRPC connection failure') != -1 ||
- embed.lastError.indexOf('Nexe crashed during startup') != -1);
- status.pass();
- }), true);
-
- div.addEventListener('crash', status.wrap(function(event) {
- status.log('Received crash: ' + embed.lastError);
- status.assert(embed.lastError.indexOf('NaCl module crashed') != -1);
- status.pass();
- }), true);
-
- document.getElementById('scratch_space').appendChild(div);
-});
-
-tester.run();
-
-</script>
-</body>
-</html>
diff --git a/native_client/tests/breakpad_crash_test/nacl.scons b/native_client/tests/breakpad_crash_test/nacl.scons
deleted file mode 100644
index 23b212a..0000000
--- a/native_client/tests/breakpad_crash_test/nacl.scons
+++ /dev/null
@@ -1,108 +0,0 @@
-# -*- python -*-
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-
-Import('env')
-
-if env.Bit('host_windows') or env.Bit('host_mac'):
- expected_crash_dumps = 1
-else:
- # We are also checking that crash dumping does not work
- # unexpectedly, since that might indicate that Breakpad was enabled
- # without checking that it works securely.
- expected_crash_dumps = 0
-
-platform_args = []
-if env.Bit('host_windows') and env.Bit('build_x86_64'):
- platform_args.append('--win64')
-
-def GetNexeByName(name):
- return env.File('${STAGING_DIR}/%s${PROGSUFFIX}' %
- env.ProgramNameForNmf(name))
-
-
-# This tests that crashes in Chromium's browser process successfully
-# produce crash dumps via Breakpad.
-node = env.PPAPIBrowserTester(
- 'breakpad_browser_process_crash_test.out',
- python_tester_script=env.File('crash_dump_tester.py'),
- browser_flags=['--crash-test'], # Tell the browser process to crash.
- url='browser_process_crash.html',
- nmf_names=[],
- files=[env.File('browser_process_crash.html')],
- args=platform_args + ['--expect_browser_process_crash',
- '--expected_crash_dumps=1',
- '--expected_process_type=browser'])
-
-# The test is disabled because it is flaky on Linux and Mac.
-# See: https://code.google.com/p/chromium/issues/detail?id=175023
-# Additionally, the test affects crash stats on Mac because it uploads
-# crash dumps on the bots for the Chrome official build.
-# See: https://code.google.com/p/chromium/issues/detail?id=129402
-env.AddNodeToTestSuite(
- node, ['chrome_browser_tests'], 'run_breakpad_browser_process_crash_test',
- is_broken=(env.PPAPIBrowserTesterIsBroken() or
- env.Bit('host_linux') or env.Bit('host_mac') or
- env.Bit('running_on_valgrind')))
-
-# This crash in trusted code should produce a crash dump.
-# DISABLED due to flakiness (http://crbug.com/247114).
-# crash_test_url = 'trusted_crash_in_startup.html'
-# node = env.PPAPIBrowserTester(
-# 'breakpad_trusted_crash_in_startup_test.out',
-# python_tester_script=env.File('crash_dump_tester.py'),
-# url=crash_test_url,
-# nmf_names=['crash_test'],
-# files=[GetNexeByName('crash_test'),
-# env.File('trusted_crash_in_startup.html')],
-# osenv='NACL_CRASH_TEST=1',
-# args=platform_args + ['--expected_crash_dumps=%i' % expected_crash_dumps])
-#
-# env.AddNodeToTestSuite(
-# node,
-# ['chrome_browser_tests'],
-# 'run_breakpad_trusted_crash_in_startup_test',
-# is_broken=env.PPAPIBrowserTesterIsBroken() or
-# env.Bit('running_on_valgrind'))
-
-# This tests a crash that occurs inside a syscall handler.
-# Ultimately this should be recognised as a crash caused by untrusted code.
-# See http://code.google.com/p/nativeclient/issues/detail?id=579
-# DISABLED due to flakiness (http://crbug.com/332331)
-# node = env.PPAPIBrowserTester(
-# 'breakpad_crash_in_syscall_test.out',
-# python_tester_script=env.File('crash_dump_tester.py'),
-# url='crash_in_syscall.html',
-# nmf_names=['crash_in_syscall'],
-# files=[GetNexeByName('crash_in_syscall'),
-# env.File('crash_in_syscall.html')],
-# args=platform_args + ['--expected_crash_dumps=%i' % expected_crash_dumps])
-# env.AddNodeToTestSuite(
-# node, ['chrome_browser_tests'], 'run_breakpad_crash_in_syscall_test',
-# # This test is currently flaky on Win 32 bit on x86, disabling there.
-# # See bug: https://code.google.com/p/chromium/issues/detail?id=254583
-# is_broken=env.PPAPIBrowserTesterIsBroken() or
-# env.Bit('running_on_valgrind') or
-# (env.Bit('host_windows') and env.Bit('build_x86_32')))
-
-# Crashes in untrusted code should not produce crash dumps.
-node = env.PPAPIBrowserTester(
- 'breakpad_untrusted_crash_test.out',
- python_tester_script=env.File('crash_dump_tester.py'),
- url='untrusted_crash.html',
- nmf_names=['crash_test'],
- files=[GetNexeByName('crash_test'),
- env.File('untrusted_crash.html')],
- args=platform_args + ['--expected_crash_dumps=0'])
-env.AddNodeToTestSuite(
- node, ['chrome_browser_tests'], 'run_breakpad_untrusted_crash_test',
- # This currently reliably fails in linux_aura configurations, probably for
- # the same reasons that the previous test fails.
- #
- # See bug: https://code.google.com/p/chromium/issues/detail?id=303342
- is_broken=env.PPAPIBrowserTesterIsBroken() or
- env.Bit('running_on_valgrind') or
- env.Bit('host_linux'))
diff --git a/native_client/tests/breakpad_crash_test/trusted_crash_in_startup.html b/native_client/tests/breakpad_crash_test/trusted_crash_in_startup.html
deleted file mode 100644
index 0e1a75b..0000000
--- a/native_client/tests/breakpad_crash_test/trusted_crash_in_startup.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
-Copyright 2012 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<script type="text/javascript" src="nacltest.js"></script>
-
-<div id="scratch_space"></div>
-
-<script type="text/javascript">
-
-var tester = new Tester();
-
-tester.addAsyncTest('trusted_crash_during_startup', function(status) {
- var embed = document.createElement('embed');
- embed.width = 0;
- embed.height = 0;
- // We trigger a crash in trusted code via the NACL_CRASH_TEST env var.
- // Since the crash occurs during startup, untrusted code does not run,
- // so the choice of NaCl executable is arbitrary.
- embed.src = 'crash_test.nmf';
- embed.type = 'application/x-nacl';
- embed.name = 'foo';
-
- // Webkit Bug Workaround
- // THIS SHOULD BE REMOVED WHEN Webkit IS FIXED
- // http://code.google.com/p/nativeclient/issues/detail?id=2428
- // http://code.google.com/p/chromium/issues/detail?id=103588
- ForcePluginLoadOnTimeout(embed, tester, 15000);
-
- var div = document.createElement('div');
- div.appendChild(embed);
-
- div.addEventListener('load', status.wrap(function(event) {
- status.fail('We expected this process to crash during startup');
- }), true);
-
- div.addEventListener('error', status.wrap(function(event) {
- var error = embed.lastError;
- status.log('Received error: ' + error);
- // This error occurs only because NACL_CRASH_TEST is set. We would
- // not normally expect to get this error in the browser.
- var expected_error_prefix = 'NaCl module load failed: ServiceRuntime: ';
- var suffix1 = 'command channel creation failed';
- var suffix2 = 'failed to start';
- status.assert(error == expected_error_prefix + suffix1 ||
- error == expected_error_prefix + suffix2);
- status.pass();
- }), true);
-
- document.getElementById('scratch_space').appendChild(div);
-});
-
-tester.run();
-
-</script>
diff --git a/native_client/tests/breakpad_crash_test/untrusted_crash.html b/native_client/tests/breakpad_crash_test/untrusted_crash.html
deleted file mode 100644
index 8267c1a..0000000
--- a/native_client/tests/breakpad_crash_test/untrusted_crash.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--
-Copyright 2011 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="-1" />
- <script type="text/javascript" src="nacltest.js"></script>
- <title>Native Client Untrusted Crash Test</title>
- </head>
-
- <body>
- <h1>Native Client Untrusted Crash Test</h1>
-
-<div id="scratch_space"></div>
-
-<script type="text/javascript">
-
-var tester = new Tester();
-
-tester.addAsyncTest('untrusted_crash', function(status) {
- var embed = document.createElement('embed');
- embed.width = 0;
- embed.height = 0;
- embed.src = 'crash_test.nmf';
- embed.type = 'application/x-nacl';
- embed.name = 'foo';
-
- // Webkit Bug Workaround
- // THIS SHOULD BE REMOVED WHEN Webkit IS FIXED
- // http://code.google.com/p/nativeclient/issues/detail?id=2428
- // http://code.google.com/p/chromium/issues/detail?id=103588
- ForcePluginLoadOnTimeout(embed, tester, 15000);
-
- var div = document.createElement('div');
- div.appendChild(embed);
-
- div.addEventListener('load', status.wrap(function(event) {
- status.fail('We expected this process to crash during startup');
- }), true);
-
- div.addEventListener('error', status.wrap(function(event) {
- status.log('Received error: ' + embed.lastError);
- status.assert(
- embed.lastError.indexOf('SRPC connection failure') != -1 ||
- embed.lastError.indexOf('Nexe crashed during startup') != -1);
- status.pass();
- }), true);
-
- div.addEventListener('crash', status.wrap(function(event) {
- status.log('Received crash: ' + embed.lastError);
- status.assert(embed.lastError.indexOf('NaCl module crashed') != -1);
- status.pass();
- }), true);
-
- document.getElementById('scratch_space').appendChild(div);
-});
-
-tester.run();
-
-</script>
diff --git a/native_client/tests/nacl_browser/inbrowser_test_runner/nacl.scons b/native_client/tests/nacl_browser/inbrowser_test_runner/nacl.scons
deleted file mode 100644
index 0641c89..0000000
--- a/native_client/tests/nacl_browser/inbrowser_test_runner/nacl.scons
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- python -*-
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import json
-import posixpath
-
-Import('env')
-
-env.ComponentLibrary('testrunner_browser', ['test_runner_ppapi.c'])
-
-dest_copy = env.Replicate('$STAGING_DIR', 'test_runner.html')
-env.Replicate('$STAGING_DIR',
- '${SCONSTRUCT_DIR}/tools/browser_tester/browserdata/nacltest.js')
-
-def AddTest(env, test_name, exe_list, parallel=False):
- test_files = [env.File('${STAGING_DIR}/%s${PROGSUFFIX}'
- % env.ProgramNameForNmf(exe_name))
- for exe_name in exe_list]
-
- def WriteManifestList(target, source, env):
- nmf_names = ['%s.nmf' % exe_name for exe_name in exe_list]
- data = ('// This file is automatically generated\n'
- 'var G_NMF_TEST_LIST = %s;\n' % json.dumps(nmf_names))
- fh = open(target[0].abspath, 'w')
- fh.write(data)
- fh.close()
-
- nmf_list_js = env.Command(['%s_nmf_test_list.js' % test_name], [],
- WriteManifestList)[0]
- # Scons does not track the dependency of nmf_list_js on exe_list, so
- # we must always recreate nmf_list_js when it is used.
- env.AlwaysBuild(nmf_list_js)
-
- node = env.PPAPIBrowserTester(
- '%s.out' % test_name, url='test_runner.html',
- nmf_names=exe_list,
- files=[env.File('test_runner.html')] + test_files,
- map_files=[('nmf_test_list.js', nmf_list_js)],
- test_args=[('parallel', int(parallel))])
-
- # Disabled on Valgrind because of multiple nexes.
- # TODO(eugenis): enable when Valgrind learns to autodetect the nexe name
- env.AddNodeToTestSuite(node, ['chrome_browser_tests'], test_name,
- disable_irt_suffix=True,
- is_broken=env.PPAPIBrowserTesterIsBroken() or
- env.Bit('running_on_valgrind') or
- # inbrowser_test_runner_parallel is flaky on 32 bit windows
- # (maybe http://code.google.com/p/chromium/issues/detail?id=120355 ?)
- parallel)
-
-if not env.Bit('tests_use_irt'):
- Return()
-
-exe_list = env['TESTS_TO_RUN_INBROWSER']
-AddTest(env, 'run_inbrowser_test_runner', exe_list, parallel=False)
-AddTest(env, 'run_inbrowser_test_runner_parallel', exe_list, parallel=True)
diff --git a/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner.html b/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner.html
deleted file mode 100644
index 8a2256f..0000000
--- a/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<!--
-Copyright 2012 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-<html>
-<head>
-<title>
- NativeClient browser test runner
-</title>
-<script type="text/javascript" src="nacltest.js"></script>
-<script type="text/javascript" src="nmf_test_list.js"></script>
-</head>
-<body>
-
-<div id="scratch_space"></div>
-
-<div id="load_warning">
-Javascript has failed to load.
-</div>
-
-<script type="text/javascript">
-
-function addTest(tester, url) {
- tester.addAsyncTest(url, function(status) {
- var embed = document.createElement('embed');
- embed.width = 0;
- embed.height = 0;
- embed.src = url;
- embed.type = 'application/x-nacl';
- embed.name = 'foo';
-
- // Webkit Bug Workaround
- // THIS SHOULD BE REMOVED WHEN Webkit IS FIXED
- // http://code.google.com/p/nativeclient/issues/detail?id=2428
- // http://code.google.com/p/chromium/issues/detail?id=103588
- ForcePluginLoadOnTimeout(embed, tester, 15000);
-
- var div = document.createElement('div');
- div.appendChild(embed);
-
- var cleanup = function() {
- document.getElementById('scratch_space').removeChild(div);
- };
-
- // Set up an event listener for success messages.
- div.addEventListener('message', status.wrap(function(message_event) {
- status.assertEqual(message_event.data, 'passed');
- cleanup();
- status.pass();
- }), true);
-
- // Wait for the load event, which indicates successful loading.
- div.addEventListener('load', status.wrap(function(e) {
- status.log('Loaded ' + embed.src);
- // Start tests in the module.
- embed.postMessage('run_tests');
- }), true);
-
- var onError = status.wrap(function(e) {
- cleanup();
- status.fail(embed.lastError);
- });
-
- div.addEventListener('error', onError, true);
- div.addEventListener('crash', onError, true);
-
- // Insert div into the DOM. This starts the load of the nacl plugin, etc.
- document.getElementById('scratch_space').appendChild(div);
- });
-}
-
-// Remove the "failed to load" message.
-document.getElementById('load_warning').innerHTML = '';
-
-var tester = new Tester();
-for (var i = 0; i < G_NMF_TEST_LIST.length; i++) {
- addTest(tester, G_NMF_TEST_LIST[i]);
-}
-
-var args = getTestArguments({'parallel': '0'});
-
-if (parseInt(args['parallel'])) {
- tester.runParallel();
-} else {
- tester.run();
-}
-
-</script>
-</body>
-</html>
diff --git a/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner_ppapi.c b/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner_ppapi.c
deleted file mode 100644
index b520403..0000000
--- a/native_client/tests/nacl_browser/inbrowser_test_runner/test_runner_ppapi.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright 2012 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "native_client/tests/inbrowser_test_runner/test_runner.h"
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/ppp.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/c/ppp_messaging.h"
-
-
-/*
- * Remembers the callback that actually performs the tests once the browser
- * has posted a message to run the test.
- */
-static int (*g_test_func)(void);
-
-/*
- * Browser interfaces invoked by the plugin.
- */
-static PPB_GetInterface g_get_browser_interface;
-const static PPB_Messaging *g_browser_messaging;
-const static PPB_Var *g_browser_var;
-
-
-/***************************************************************************
- * The entry point invoked by tests using this library.
- **************************************************************************/
-int RunTests(int (*test_func)(void)) {
- /* Turn off stdout buffering to aid debugging in case of a crash. */
- setvbuf(stdout, NULL, _IONBF, 0);
- if (getenv("OUTSIDE_BROWSER") != NULL) {
- return test_func();
- } else {
- g_test_func = test_func;
- return PpapiPluginMain();
- }
-}
-
-int TestRunningInBrowser(void) {
- return 1;
-}
-
-/***************************************************************************
- * PPP_Instance allows the browser to create an instance of the plugin.
- **************************************************************************/
-static PP_Bool PppInstanceDidCreate(PP_Instance instance,
- uint32_t argc,
- const char *argn[],
- const char *argv[]) {
- g_browser_messaging = (*g_get_browser_interface)(PPB_MESSAGING_INTERFACE);
- g_browser_var = (*g_get_browser_interface)(PPB_VAR_INTERFACE);
- return PP_TRUE;
-}
-
-static void PppInstanceDidDestroy(PP_Instance instance) {
- /* Do nothing. */
-}
-
-static void PppInstanceDidChangeView(PP_Instance instance, PP_Resource view) {
- /* Do nothing. */
-}
-
-void PppInstanceDidChangeFocus(PP_Instance instance, PP_Bool has_focus) {
- /* Do nothing. */
-}
-
-PP_Bool PppInstanceHandleDocumentLoad(PP_Instance instance,
- PP_Resource url_loader) {
- /* Signal document loading failed. */
- return PP_FALSE;
-}
-
-static const PPP_Instance kPppInstance = {
- PppInstanceDidCreate,
- PppInstanceDidDestroy,
- PppInstanceDidChangeView,
- PppInstanceDidChangeFocus,
- PppInstanceHandleDocumentLoad
-};
-
-/***************************************************************************
- * PPP_Messaging allows the browser to do postMessage to the plugin.
- **************************************************************************/
-static void PppMessagingHandleMessage(PP_Instance instance,
- struct PP_Var message) {
- const char *data;
- uint32_t len;
- static const char kStartMessage[] = "run_tests";
- int num_fails;
- struct PP_Var result;
-
- /* Ensure the start message is valid. */
- data = g_browser_var->VarToUtf8(message, &len);
- if (len == 0) {
- return;
- }
- if (strcmp(data, kStartMessage) != 0) {
- return;
- }
- /* Run the tests. */
- num_fails = (*g_test_func)();
- /* Report the results. */
- if (num_fails == 0) {
- static const char kPassed[] = "passed";
- result = g_browser_var->VarFromUtf8(kPassed, strlen(kPassed));
- } else {
- static const char kFailed[] = "failed";
- result = g_browser_var->VarFromUtf8(kFailed, strlen(kFailed));
- }
-
- g_browser_messaging->PostMessage(instance, result);
-}
-
-static const PPP_Messaging kPppMessaging = {
- PppMessagingHandleMessage
-};
-
-/***************************************************************************
- * The three entry points every PPAPI plugin must export.
- **************************************************************************/
-int32_t PPP_InitializeModule(PP_Module module,
- PPB_GetInterface get_browser_interface) {
- g_get_browser_interface = get_browser_interface;
- return PP_OK;
-}
-
-void PPP_ShutdownModule(void) {
-}
-
-const void *PPP_GetInterface(const char *interface_name) {
- /* Export PPP_Instance and PPP_Messaging. */
- if (strcmp(interface_name, PPP_INSTANCE_INTERFACE) == 0) {
- return (const void*) &kPppInstance;
- }
- if (strcmp(interface_name, PPP_MESSAGING_INTERFACE) == 0) {
- return (const void*) &kPppMessaging;
- }
- return NULL;
-}
diff --git a/native_client/tools/browser_tester/browser_tester.py b/native_client/tools/browser_tester/browser_tester.py
deleted file mode 100755
index b292364..0000000
--- a/native_client/tools/browser_tester/browser_tester.py
+++ /dev/null
@@ -1,398 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-from __future__ import print_function
-
-import glob
-import optparse
-import os.path
-import socket
-import sys
-import thread
-import time
-import urllib
-
-# Allow the import of third party modules
-script_dir = os.path.dirname(os.path.abspath(__file__))
-sys.path.insert(0, os.path.join(script_dir, '../../../../third_party/'))
-sys.path.insert(0, os.path.join(script_dir, '../../../../tools/valgrind/'))
-sys.path.insert(0, os.path.join(script_dir, '../../../../testing/'))
-
-import browsertester.browserlauncher
-import browsertester.rpclistener
-import browsertester.server
-
-import memcheck_analyze
-
-
-def BuildArgParser():
- usage = 'usage: %prog [options]'
- parser = optparse.OptionParser(usage)
-
- parser.add_option('-p', '--port', dest='port', action='store', type='int',
- default='0', help='The TCP port the server will bind to. '
- 'The default is to pick an unused port number.')
- parser.add_option('--browser_path', dest='browser_path', action='store',
- type='string', default=None,
- help='Use the browser located here.')
- parser.add_option('--map_file', dest='map_files', action='append',
- type='string', nargs=2, default=[],
- metavar='DEST SRC',
- help='Add file SRC to be served from the HTTP server, '
- 'to be made visible under the path DEST.')
- parser.add_option('--serving_dir', dest='serving_dirs', action='append',
- type='string', default=[],
- metavar='DIRNAME',
- help='Add directory DIRNAME to be served from the HTTP '
- 'server to be made visible under the root.')
- parser.add_option('--output_dir', dest='output_dir', action='store',
- type='string', default=None,
- metavar='DIRNAME',
- help='Set directory DIRNAME to be the output directory '
- 'when POSTing data to the server. NOTE: if this flag is '
- 'not set, POSTs will fail.')
- parser.add_option('--test_arg', dest='test_args', action='append',
- type='string', nargs=2, default=[],
- metavar='KEY VALUE',
- help='Parameterize the test with a key/value pair.')
- parser.add_option('--redirect_url', dest='map_redirects', action='append',
- type='string', nargs=2, default=[],
- metavar='DEST SRC',
- help='Add a redirect to the HTTP server, '
- 'requests for SRC will result in a redirect (302) to DEST.')
- parser.add_option('-f', '--file', dest='files', action='append',
- type='string', default=[],
- metavar='FILENAME',
- help='Add a file to serve from the HTTP server, to be '
- 'made visible in the root directory. '
- '"--file path/to/foo.html" is equivalent to '
- '"--map_file foo.html path/to/foo.html"')
- parser.add_option('--mime_type', dest='mime_types', action='append',
- type='string', nargs=2, default=[], metavar='DEST SRC',
- help='Map file extension SRC to MIME type DEST when '
- 'serving it from the HTTP server.')
- parser.add_option('-u', '--url', dest='url', action='store',
- type='string', default=None,
- help='The webpage to load.')
- parser.add_option('--ppapi_plugin', dest='ppapi_plugin', action='store',
- type='string', default=None,
- help='Use the browser plugin located here.')
- parser.add_option('--ppapi_plugin_mimetype', dest='ppapi_plugin_mimetype',
- action='store', type='string', default='application/x-nacl',
- help='Associate this mimetype with the browser plugin. '
- 'Unused if --ppapi_plugin is not specified.')
- parser.add_option('--sel_ldr', dest='sel_ldr', action='store',
- type='string', default=None,
- help='Use the sel_ldr located here.')
- parser.add_option('--sel_ldr_bootstrap', dest='sel_ldr_bootstrap',
- action='store', type='string', default=None,
- help='Use the bootstrap loader located here.')
- parser.add_option('--irt_library', dest='irt_library', action='store',
- type='string', default=None,
- help='Use the integrated runtime (IRT) library '
- 'located here.')
- parser.add_option('--interactive', dest='interactive', action='store_true',
- default=False, help='Do not quit after testing is done. '
- 'Handy for iterative development. Disables timeout.')
- parser.add_option('--debug', dest='debug', action='store_true', default=False,
- help='Request debugging output from browser.')
- parser.add_option('--timeout', dest='timeout', action='store', type='float',
- default=5.0,
- help='The maximum amount of time to wait, in seconds, for '
- 'the browser to make a request. The timer resets with each '
- 'request.')
- parser.add_option('--hard_timeout', dest='hard_timeout', action='store',
- type='float', default=None,
- help='The maximum amount of time to wait, in seconds, for '
- 'the entire test. This will kill runaway tests. ')
- parser.add_option('--allow_404', dest='allow_404', action='store_true',
- default=False,
- help='Allow 404s to occur without failing the test.')
- parser.add_option('-b', '--bandwidth', dest='bandwidth', action='store',
- type='float', default='0.0',
- help='The amount of bandwidth (megabits / second) to '
- 'simulate between the client and the server. This used for '
- 'replies with file payloads. All other responses are '
- 'assumed to be short. Bandwidth values <= 0.0 are assumed '
- 'to mean infinite bandwidth.')
- parser.add_option('--extension', dest='browser_extensions', action='append',
- type='string', default=[],
- help='Load the browser extensions located at the list of '
- 'paths. Note: this currently only works with the Chrome '
- 'browser.')
- parser.add_option('--tool', dest='tool', action='store',
- type='string', default=None,
- help='Run tests under a tool.')
- parser.add_option('--browser_flag', dest='browser_flags', action='append',
- type='string', default=[],
- help='Additional flags for the chrome command.')
- parser.add_option('--enable_ppapi_dev', dest='enable_ppapi_dev',
- action='store', type='int', default=1,
- help='Enable/disable PPAPI Dev interfaces while testing.')
- parser.add_option('--nacl_exe_stdin', dest='nacl_exe_stdin',
- type='string', default=None,
- help='Redirect standard input of NaCl executable.')
- parser.add_option('--nacl_exe_stdout', dest='nacl_exe_stdout',
- type='string', default=None,
- help='Redirect standard output of NaCl executable.')
- parser.add_option('--nacl_exe_stderr', dest='nacl_exe_stderr',
- type='string', default=None,
- help='Redirect standard error of NaCl executable.')
- parser.add_option('--expect_browser_process_crash',
- dest='expect_browser_process_crash',
- action='store_true',
- help='Do not signal a failure if the browser process '
- 'crashes')
- parser.add_option('--enable_crash_reporter', dest='enable_crash_reporter',
- action='store_true', default=False,
- help='Force crash reporting on.')
- parser.add_option('--enable_sockets', dest='enable_sockets',
- action='store_true', default=False,
- help='Pass --allow-nacl-socket-api=<host> to Chrome, where '
- '<host> is the name of the browser tester\'s web server.')
-
- return parser
-
-
-def ProcessToolLogs(options, logs_dir):
- if options.tool == 'memcheck':
- analyzer = memcheck_analyze.MemcheckAnalyzer('', use_gdb=True)
- logs_wildcard = 'xml.*'
- files = glob.glob(os.path.join(logs_dir, logs_wildcard))
- retcode = analyzer.Report(files, options.url)
- return retcode
-
-
-# An exception that indicates possible flake.
-class RetryTest(Exception):
- pass
-
-
-def DumpNetLog(netlog):
- sys.stdout.write('\n')
- if not os.path.isfile(netlog):
- sys.stdout.write('Cannot find netlog, did Chrome actually launch?\n')
- else:
- sys.stdout.write('Netlog exists (%d bytes).\n' % os.path.getsize(netlog))
- sys.stdout.write('Dumping it to stdout.\n\n\n')
- sys.stdout.write(open(netlog).read())
- sys.stdout.write('\n\n\n')
-
-
-# Try to discover the real IP address of this machine. If we can't figure it
-# out, fall back to localhost.
-# A windows bug makes using the loopback interface flaky in rare cases.
-# http://code.google.com/p/chromium/issues/detail?id=114369
-def GetHostName():
- host = 'localhost'
- try:
- host = socket.gethostbyname(socket.gethostname())
- except Exception:
- pass
- if host == '0.0.0.0':
- host = 'localhost'
- return host
-
-
-def RunTestsOnce(url, options):
- # Set the default here so we're assured hard_timeout will be defined.
- # Tests, such as run_inbrowser_trusted_crash_in_startup_test, may not use the
- # RunFromCommand line entry point - and otherwise get stuck in an infinite
- # loop when something goes wrong and the hard timeout is not set.
- # http://code.google.com/p/chromium/issues/detail?id=105406
- if options.hard_timeout is None:
- options.hard_timeout = options.timeout * 4
-
- options.files.append(os.path.join(script_dir, 'browserdata', 'nacltest.js'))
-
- # Create server
- host = GetHostName()
- try:
- server = browsertester.server.Create(host, options.port)
- except Exception:
- sys.stdout.write('Could not bind %r, falling back to localhost.\n' % host)
- server = browsertester.server.Create('localhost', options.port)
-
- # If port 0 has been requested, an arbitrary port will be bound so we need to
- # query it. Older version of Python do not set server_address correctly when
- # The requested port is 0 so we need to break encapsulation and query the
- # socket directly.
- host, port = server.socket.getsockname()
-
- file_mapping = dict(options.map_files)
- for filename in options.files:
- file_mapping[os.path.basename(filename)] = filename
- for _, real_path in file_mapping.items():
- if not os.path.exists(real_path):
- raise AssertionError('\'%s\' does not exist.' % real_path)
- mime_types = {}
- for ext, mime_type in options.mime_types:
- mime_types['.' + ext] = mime_type
-
- def ShutdownCallback():
- server.TestingEnded()
- close_browser = options.tool is not None and not options.interactive
- return close_browser
-
- listener = browsertester.rpclistener.RPCListener(ShutdownCallback)
- server.Configure(file_mapping,
- dict(options.map_redirects),
- mime_types,
- options.allow_404,
- options.bandwidth,
- listener,
- options.serving_dirs,
- options.output_dir)
-
- browser = browsertester.browserlauncher.ChromeLauncher(options)
-
- full_url = 'http://%s:%d/%s' % (host, port, url)
- if len(options.test_args) > 0:
- full_url += '?' + urllib.urlencode(options.test_args)
- browser.Run(full_url, host, port)
- server.TestingBegun(0.125)
-
- # In Python 2.5, server.handle_request may block indefinitely. Serving pages
- # is done in its own thread so the main thread can time out as needed.
- def Serve():
- while server.test_in_progress or options.interactive:
- server.handle_request()
- thread.start_new_thread(Serve, ())
-
- tool_failed = False
- time_started = time.time()
-
- def HardTimeout(total_time):
- return total_time >= 0.0 and time.time() - time_started >= total_time
-
- try:
- while server.test_in_progress or options.interactive:
- if not browser.IsRunning():
- if options.expect_browser_process_crash:
- break
- listener.ServerError('Browser process ended during test '
- '(return code %r)' % browser.GetReturnCode())
- # If Chrome exits prematurely without making a single request to the
- # web server, this is probally a Chrome crash-on-launch bug not related
- # to the test at hand. Retry, unless we're in interactive mode. In
- # interactive mode the user may manually close the browser, so don't
- # retry (it would just be annoying.)
- if not server.received_request and not options.interactive:
- raise RetryTest('Chrome failed to launch.')
- else:
- break
- elif not options.interactive and server.TimedOut(options.timeout):
- js_time = server.TimeSinceJSHeartbeat()
- err = 'Did not hear from the test for %.1f seconds.' % options.timeout
- err += '\nHeard from Javascript %.1f seconds ago.' % js_time
- if js_time > 2.0:
- err += '\nThe renderer probably hung or crashed.'
- else:
- err += '\nThe test probably did not get a callback that it expected.'
- listener.ServerError(err)
- if not server.received_request:
- raise RetryTest('Chrome hung before running the test.')
- break
- elif not options.interactive and HardTimeout(options.hard_timeout):
- listener.ServerError('The test took over %.1f seconds. This is '
- 'probably a runaway test.' % options.hard_timeout)
- break
- else:
- # If Python 2.5 support is dropped, stick server.handle_request() here.
- time.sleep(0.125)
-
- if options.tool:
- sys.stdout.write('##################### Waiting for the tool to exit\n')
- browser.WaitForProcessDeath()
- sys.stdout.write('##################### Processing tool logs\n')
- tool_failed = ProcessToolLogs(options, browser.tool_log_dir)
-
- finally:
- try:
- if listener.ever_failed and not options.interactive:
- if not server.received_request:
- sys.stdout.write('\nNo URLs were served by the test runner. It is '
- 'unlikely this test failure has anything to do with '
- 'this particular test.\n')
- DumpNetLog(browser.NetLogName())
- except Exception:
- listener.ever_failed = 1
- # Try to let the browser clean itself up normally before killing it.
- sys.stdout.write('##################### Terminating the browser\n')
- browser.WaitForProcessDeath()
- if browser.IsRunning():
- sys.stdout.write('##################### TERM failed, KILLING\n')
- # Always call Cleanup; it kills the process, but also removes the
- # user-data-dir.
- browser.Cleanup()
- # We avoid calling server.server_close() here because it causes
- # the HTTP server thread to exit uncleanly with an EBADF error,
- # which adds noise to the logs (though it does not cause the test
- # to fail). server_close() does not attempt to tell the server
- # loop to shut down before closing the socket FD it is
- # select()ing. Since we are about to exit, we don't really need
- # to close the socket FD.
-
- if tool_failed:
- return 2
- elif listener.ever_failed:
- return 1
- else:
- return 0
-
-
-# This is an entrypoint for tests that treat the browser tester as a Python
-# library rather than an opaque script.
-# (e.g. run_inbrowser_trusted_crash_in_startup_test)
-def Run(url, options):
- result = 1
- attempt = 1
- while True:
- try:
- result = RunTestsOnce(url, options)
- if result:
- # Currently (2013/11/15) nacl_integration is fairly flaky and there is
- # not enough time to look into it. Retry if the test fails for any
- # reason. Note that in general this test runner tries to only retry
- # when a known flake is encountered. (See the other raise
- # RetryTest(..)s in this file.) This blanket retry means that those
- # other cases could be removed without changing the behavior of the test
- # runner, but it is hoped that this blanket retry will eventually be
- # unnecessary and subsequently removed. The more precise retries have
- # been left in place to preserve the knowledge.
- raise RetryTest('HACK retrying failed test.')
- break
- except RetryTest:
- # Only retry once.
- if attempt < 2:
- sys.stdout.write('\n@@@STEP_WARNINGS@@@\n')
- sys.stdout.write('WARNING: suspected flake, retrying test!\n\n')
- attempt += 1
- continue
- else:
- sys.stdout.write('\nWARNING: failed too many times, not retrying.\n\n')
- result = 1
- break
- return result
-
-
-def RunFromCommandLine():
- parser = BuildArgParser()
- options, args = parser.parse_args()
-
- if len(args) != 0:
- print(args)
- parser.error('Invalid arguments')
-
- # Validate the URL
- url = options.url
- if url is None:
- parser.error('Must specify a URL')
-
- return Run(url, options)
-
-
-if __name__ == '__main__':
- sys.exit(RunFromCommandLine())
diff --git a/native_client/tools/browser_tester/browserdata/nacltest.js b/native_client/tools/browser_tester/browserdata/nacltest.js
deleted file mode 100644
index c1d5d5f..0000000
--- a/native_client/tools/browser_tester/browserdata/nacltest.js
+++ /dev/null
@@ -1,991 +0,0 @@
-// Copyright 2012 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-
-function $(id) {
- return document.getElementById(id);
-}
-
-
-function createNaClEmbed(args) {
- var fallback = function(value, default_value) {
- return value !== undefined ? value : default_value;
- };
- var embed = document.createElement('embed');
- embed.id = args.id;
- embed.src = args.src;
- embed.type = fallback(args.type, 'application/x-nacl');
- // JavaScript inconsistency: this is equivalent to class=... in HTML.
- embed.className = fallback(args.className, 'naclModule');
- embed.width = fallback(args.width, 0);
- embed.height = fallback(args.height, 0);
- return embed;
-}
-
-
-function decodeURIArgs(encoded) {
- var args = {};
- if (encoded.length > 0) {
- var pairs = encoded.replace(/\+/g, ' ').split('&');
- for (var p = 0; p < pairs.length; p++) {
- var pair = pairs[p].split('=');
- if (pair.length != 2) {
- throw "Malformed argument key/value pair: '" + pairs[p] + "'";
- }
- args[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
- }
- }
- return args;
-}
-
-
-function addDefaultsToArgs(defaults, args) {
- for (var key in defaults) {
- if (!(key in args)) {
- args[key] = defaults[key];
- }
- }
-}
-
-
-// Return a dictionary of arguments for the test. These arguments are passed
-// in the query string of the main page's URL. Any time this function is used,
-// default values should be provided for every argument. In some cases a test
-// may be run without an expected query string (manual testing, for example.)
-// Careful: all the keys and values in the dictionary are strings. You will
-// need to manually parse any non-string values you wish to use.
-function getTestArguments(defaults) {
- var encoded = window.location.search.substring(1);
- var args = decodeURIArgs(encoded);
- if (defaults !== undefined) {
- addDefaultsToArgs(defaults, args);
- }
- return args;
-}
-
-
-function exceptionToLogText(e) {
- if (typeof e == 'object' && 'message' in e && 'stack' in e) {
- return e.message + '\n' + e.stack.toString();
- } else if (typeof(e) == 'string') {
- return e;
- } else {
- return toString(e)
- }
-}
-
-
-// Logs test results to the server using URL-encoded RPC.
-// Also logs the same test results locally into the DOM.
-function RPCWrapper() {
- // Work around how JS binds 'this'
- var this_ = this;
- // It is assumed RPC will work unless proven otherwise.
- this.rpc_available = true;
- // Set to true if any test fails.
- this.ever_failed = false;
- // Async calls can make it faster, but it can also change order of events.
- this.async = false;
-
- // Called if URL-encoded RPC gets a 404, can't find the server, etc.
- function handleRPCFailure(name, message) {
- // This isn't treated as a testing error - the test can be run without a
- // web server that understands RPC.
- this_.logLocal('RPC failure for ' + name + ': ' + message + ' - If you ' +
- 'are running this test manually, this is not a problem.',
- 'gray');
- this_.disableRPC();
- }
-
- function handleRPCResponse(name, req) {
- if (req.status == 200) {
- if (req.responseText == 'Die, please') {
- // TODO(eugenis): this does not end the browser process on Mac.
- window.close();
- } else if (req.responseText != 'OK') {
- this_.logLocal('Unexpected RPC response to ' + name + ': \'' +
- req.responseText + '\' - If you are running this test ' +
- 'manually, this is not a problem.', 'gray');
- this_.disableRPC();
- }
- } else {
- handleRPCFailure(name, req.status.toString());
- }
- }
-
- // Performs a URL-encoded RPC call, given a function name and a dictionary
- // (actually just an object - it's a JS idiom) of parameters.
- function rpcCall(name, params) {
- if (window.domAutomationController !== undefined) {
- // Running as a Chrome browser_test.
- var msg = {type: name};
- for (var pname in params) {
- msg[pname] = params[pname];
- }
- domAutomationController.send(JSON.stringify(msg));
- } else if (this_.rpc_available) {
- // Construct the URL for the RPC request.
- var args = [];
- for (var pname in params) {
- pvalue = params[pname];
- args.push(encodeURIComponent(pname) + '=' + encodeURIComponent(pvalue));
- }
- var url = '/TESTER/' + name + '?' + args.join('&');
- var req = new XMLHttpRequest();
- // Async result handler
- if (this_.async) {
- req.onreadystatechange = function() {
- if (req.readyState == XMLHttpRequest.DONE) {
- handleRPCResponse(name, req);
- }
- }
- }
- try {
- req.open('GET', url, this_.async);
- req.send();
- if (!this_.async) {
- handleRPCResponse(name, req);
- }
- } catch (err) {
- handleRPCFailure(name, err.toString());
- }
- }
- }
-
- // Pretty prints an error into the DOM.
- this.logLocalError = function(message) {
- this.logLocal(message, 'red');
- this.visualError();
- }
-
- // If RPC isn't working, disable it to stop error message spam.
- this.disableRPC = function() {
- if (this.rpc_available) {
- this.rpc_available = false;
- this.logLocal('Disabling RPC', 'gray');
- }
- }
-
- this.startup = function() {
- // TODO(ncbray) move into test runner
- this.num_passed = 0;
- this.num_failed = 0;
- this.num_errors = 0;
- this._log('[STARTUP]');
- }
-
- this.shutdown = function() {
- if (this.num_passed == 0 && this.num_failed == 0 && this.num_errors == 0) {
- this.client_error('No tests were run. This may be a bug.');
- }
- var full_message = '[SHUTDOWN] ';
- full_message += this.num_passed + ' passed';
- full_message += ', ' + this.num_failed + ' failed';
- full_message += ', ' + this.num_errors + ' errors';
- this.logLocal(full_message);
- rpcCall('Shutdown', {message: full_message, passed: !this.ever_failed});
-
- if (this.ever_failed) {
- this.localOutput.style.border = '2px solid #FF0000';
- } else {
- this.localOutput.style.border = '2px solid #00FF00';
- }
- }
-
- this.ping = function() {
- rpcCall('Ping', {});
- }
-
- this.heartbeat = function() {
- rpcCall('JavaScriptIsAlive', {});
- }
-
- this.client_error = function(message) {
- this.num_errors += 1;
- this.visualError();
- var full_message = '\n[CLIENT_ERROR] ' + exceptionToLogText(message)
- // The client error could have been generated by logging - be careful.
- try {
- this._log(full_message, 'red');
- } catch (err) {
- // There's not much that can be done, at this point.
- }
- }
-
- this.begin = function(test_name) {
- var full_message = '[' + test_name + ' BEGIN]'
- this._log(full_message, 'blue');
- }
-
- this._log = function(message, color, from_completed_test) {
- if (typeof(message) != 'string') {
- message = toString(message);
- }
-
- // For event-driven tests, output may come after the test has finished.
- // Display this in a special way to assist debugging.
- if (from_completed_test) {
- color = 'orange';
- message = 'completed test: ' + message;
- }
-
- this.logLocal(message, color);
- rpcCall('TestLog', {message: message});
- }
-
- this.log = function(test_name, message, from_completed_test) {
- if (message == undefined) {
- // This is a log message that is not associated with a test.
- // What we though was the test name is actually the message.
- this._log(test_name);
- } else {
- if (typeof(message) != 'string') {
- message = toString(message);
- }
- var full_message = '[' + test_name + ' LOG] ' + message;
- this._log(full_message, 'black', from_completed_test);
- }
- }
-
- this.fail = function(test_name, message, from_completed_test) {
- this.num_failed += 1;
- this.visualError();
- var full_message = '[' + test_name + ' FAIL] ' + message
- this._log(full_message, 'red', from_completed_test);
- }
-
- this.exception = function(test_name, err, from_completed_test) {
- this.num_errors += 1;
- this.visualError();
- var message = exceptionToLogText(err);
- var full_message = '[' + test_name + ' EXCEPTION] ' + message;
- this._log(full_message, 'purple', from_completed_test);
- }
-
- this.pass = function(test_name, from_completed_test) {
- this.num_passed += 1;
- var full_message = '[' + test_name + ' PASS]';
- this._log(full_message, 'green', from_completed_test);
- }
-
- this.blankLine = function() {
- this._log('');
- }
-
- // Allows users to log time data that will be parsed and re-logged
- // for chrome perf-bot graphs / performance regression testing.
- // See: native_client/tools/process_perf_output.py
- this.logTimeData = function(event, timeMS) {
- this.log('NaClPerf [' + event + '] ' + timeMS + ' millisecs');
- }
-
- this.visualError = function() {
- // Changing the color is defered until testing is done
- this.ever_failed = true;
- }
-
- this.logLineLocal = function(text, color) {
- text = text.replace(/\s+$/, '');
- if (text == '') {
- this.localOutput.appendChild(document.createElement('br'));
- } else {
- var mNode = document.createTextNode(text);
- var div = document.createElement('div');
- // Preserve whitespace formatting.
- div.style['white-space'] = 'pre';
- if (color != undefined) {
- div.style.color = color;
- }
- div.appendChild(mNode);
- this.localOutput.appendChild(div);
- }
- }
-
- this.logLocal = function(message, color) {
- var lines = message.split('\n');
- for (var i = 0; i < lines.length; i++) {
- this.logLineLocal(lines[i], color);
- }
- }
-
- // Create a place in the page to output test results
- this.localOutput = document.createElement('div');
- this.localOutput.id = 'testresults';
- this.localOutput.style.border = '2px solid #0000FF';
- this.localOutput.style.padding = '10px';
- document.body.appendChild(this.localOutput);
-}
-
-
-//
-// BEGIN functions for testing
-//
-
-
-function fail(message, info, test_status) {
- var parts = [];
- if (message != undefined) {
- parts.push(message);
- }
- if (info != undefined) {
- parts.push('(' + info + ')');
- }
- var full_message = parts.join(' ');
-
- if (test_status !== undefined) {
- // New-style test
- test_status.fail(full_message);
- } else {
- // Old-style test
- throw {type: 'test_fail', message: full_message};
- }
-}
-
-
-function assert(condition, message, test_status) {
- if (!condition) {
- fail(message, toString(condition), test_status);
- }
-}
-
-
-// This is accepted best practice for checking if an object is an array.
-function isArray(obj) {
- return Object.prototype.toString.call(obj) === '[object Array]';
-}
-
-
-function toString(obj) {
- if (typeof(obj) == 'string') {
- return '\'' + obj + '\'';
- }
- try {
- return obj.toString();
- } catch (err) {
- try {
- // Arrays should do this automatically, but there is a known bug where
- // NaCl gets array types wrong. .toString will fail on these objects.
- return obj.join(',');
- } catch (err) {
- if (obj == undefined) {
- return 'undefined';
- } else {
- // There is no way to create a textual representation of this object.
- return '[UNPRINTABLE]';
- }
- }
- }
-}
-
-
-// Old-style, but new-style tests use it indirectly.
-// (The use of the "test" parameter indicates a new-style test. This is a
-// temporary hack to avoid code duplication.)
-function assertEqual(a, b, message, test_status) {
- if (isArray(a) && isArray(b)) {
- assertArraysEqual(a, b, message, test_status);
- } else if (a !== b) {
- fail(message, toString(a) + ' != ' + toString(b), test_status);
- }
-}
-
-
-// Old-style, but new-style tests use it indirectly.
-// (The use of the "test" parameter indicates a new-style test. This is a
-// temporary hack to avoid code duplication.)
-function assertArraysEqual(a, b, message, test_status) {
- var dofail = function() {
- fail(message, toString(a) + ' != ' + toString(b), test_status);
- }
- if (a.length != b.length) {
- dofail();
- }
- for (var i = 0; i < a.length; i++) {
- if (a[i] !== b[i]) {
- dofail();
- }
- }
-}
-
-
-function assertRegexMatches(str, re, message, test_status) {
- if (!str.match(re)) {
- fail(message, toString(str) + ' doesn\'t match ' + toString(re.toString()),
- test_status);
- }
-}
-
-
-// Ideally there'd be some way to identify what exception was thrown, but JS
-// exceptions are fairly ad-hoc.
-// TODO(ncbray) allow manual validation of exception types?
-function assertRaises(func, message, test_status) {
- try {
- func();
- } catch (err) {
- return;
- }
- fail(message, 'did not raise', test_status);
-}
-
-
-//
-// END functions for testing
-//
-
-
-function haltAsyncTest() {
- throw {type: 'test_halt'};
-}
-
-
-function begins_with(s, prefix) {
- if (s.length >= prefix.length) {
- return s.substr(0, prefix.length) == prefix;
- } else {
- return false;
- }
-}
-
-
-function ends_with(s, suffix) {
- if (s.length >= suffix.length) {
- return s.substr(s.length - suffix.length, suffix.length) == suffix;
- } else {
- return false;
- }
-}
-
-
-function embed_name(embed) {
- if (embed.name != undefined) {
- if (embed.id != undefined) {
- return embed.name + ' / ' + embed.id;
- } else {
- return embed.name;
- }
- } else if (embed.id != undefined) {
- return embed.id;
- } else {
- return '[no name]';
- }
-}
-
-
-// Write data to the filesystem. This will only work if the browser_tester was
-// initialized with --output_dir.
-function outputFile(name, data, onload, onerror) {
- var xhr = new XMLHttpRequest();
- xhr.onload = onload;
- xhr.onerror = onerror;
- xhr.open('POST', name, true);
- xhr.send(data);
-}
-
-
-// Webkit Bug Workaround
-// THIS SHOULD BE REMOVED WHEN Webkit IS FIXED
-// http://code.google.com/p/nativeclient/issues/detail?id=2428
-// http://code.google.com/p/chromium/issues/detail?id=103588
-
-function ForcePluginLoadOnTimeout(elem, tester, timeout) {
- tester.log('Registering ForcePluginLoadOnTimeout ' +
- '(Bugs: NaCl 2428, Chrome 103588)');
-
- var started_loading = elem.readyState !== undefined;
-
- // Remember that the plugin started loading - it may be unloaded by the time
- // the callback fires.
- elem.addEventListener('load', function() {
- started_loading = true;
- }, true);
-
- // Check that the plugin has at least started to load after "timeout" seconds,
- // otherwise reload the page.
- setTimeout(function() {
- if (!started_loading) {
- ForceNaClPluginReload(elem, tester);
- }
- }, timeout);
-}
-
-function ForceNaClPluginReload(elem, tester) {
- if (elem.readyState === undefined) {
- tester.log('WARNING: WebKit plugin-not-loading error detected; reloading.');
- window.location.reload();
- }
-}
-
-function NaClWaiter(body_element) {
- // Work around how JS binds 'this'
- var this_ = this;
- var embedsToWaitFor = [];
- // embedsLoaded contains list of embeds that have dispatched the
- // 'loadend' progress event.
- this.embedsLoaded = [];
-
- this.is_loaded = function(embed) {
- for (var i = 0; i < this_.embedsLoaded.length; ++i) {
- if (this_.embedsLoaded[i] === embed) {
- return true;
- }
- }
- return (embed.readyState == 4) && !this_.has_errored(embed);
- }
-
- this.has_errored = function(embed) {
- var msg = embed.lastError;
- return embed.lastError != undefined && embed.lastError != '';
- }
-
- // If an argument was passed, it is the body element for registering
- // event listeners for the 'loadend' event type.
- if (body_element != undefined) {
- var eventListener = function(e) {
- if (e.type == 'loadend') {
- this_.embedsLoaded.push(e.target);
- }
- }
-
- body_element.addEventListener('loadend', eventListener, true);
- }
-
- // Takes an arbitrary number of arguments.
- this.waitFor = function() {
- for (var i = 0; i< arguments.length; i++) {
- embedsToWaitFor.push(arguments[i]);
- }
- }
-
- this.run = function(doneCallback, pingCallback) {
- this.doneCallback = doneCallback;
- this.pingCallback = pingCallback;
-
- // Wait for up to forty seconds for the nexes to load.
- // TODO(ncbray) use error handling mechanisms (when they are implemented)
- // rather than a timeout.
- this.totalWait = 0;
- this.maxTotalWait = 40000;
- this.retryWait = 10;
- this.waitForPlugins();
- }
-
- this.waitForPlugins = function() {
- var errored = [];
- var loaded = [];
- var waiting = [];
-
- for (var i = 0; i < embedsToWaitFor.length; i++) {
- try {
- var e = embedsToWaitFor[i];
- if (this.has_errored(e)) {
- errored.push(e);
- } else if (this.is_loaded(e)) {
- loaded.push(e);
- } else {
- waiting.push(e);
- }
- } catch(err) {
- // If the module is badly horked, touching lastError, etc, may except.
- errored.push(err);
- }
- }
-
- this.totalWait += this.retryWait;
-
- if (waiting.length == 0) {
- this.doneCallback(loaded, errored);
- } else if (this.totalWait >= this.maxTotalWait) {
- // Timeouts are considered errors.
- this.doneCallback(loaded, errored.concat(waiting));
- } else {
- setTimeout(function() { this_.waitForPlugins(); }, this.retryWait);
- // Capped exponential backoff
- this.retryWait += this.retryWait/2;
- // Paranoid: does setTimeout like floating point numbers?
- this.retryWait = Math.round(this.retryWait);
- if (this.retryWait > 100)
- this.retryWait = 100;
- // Prevent the server from thinking the test has died.
- if (this.pingCallback)
- this.pingCallback();
- }
- }
-}
-
-
-function logLoadStatus(rpc, load_errors_are_test_errors,
- exit_cleanly_is_an_error, loaded, waiting) {
- for (var i = 0; i < loaded.length; i++) {
- rpc.log(embed_name(loaded[i]) + ' loaded');
- }
- // Be careful when interacting with horked nexes.
- var getCarefully = function (callback) {
- try {
- return callback();
- } catch (err) {
- return '<exception>';
- }
- }
-
- var errored = false;
- for (var j = 0; j < waiting.length; j++) {
- // Workaround for WebKit layout bug that caused the NaCl plugin to not
- // load. If we see that the plugin is not loaded after a timeout, we
- // forcibly reload the page, thereby triggering layout. Re-running
- // layout should make WebKit instantiate the plugin. NB: this could
- // make the JavaScript-based code go into an infinite loop if the
- // WebKit bug becomes deterministic or the NaCl plugin fails after
- // loading, but the browser_tester.py code will timeout the test.
- //
- // http://code.google.com/p/nativeclient/issues/detail?id=2428
- //
- if (waiting[j].readyState == undefined) {
- // alert('Woot'); // -- for manual debugging
- rpc.log('WARNING: WebKit plugin-not-loading error detected; reloading.');
- window.location.reload();
- throw "reload NOW";
- }
- var name = getCarefully(function(){
- return embed_name(waiting[j]);
- });
- var ready = getCarefully(function(){
- var readyStateString =
- ['UNSENT', 'OPENED', 'HEADERS_RECEIVED', 'LOADING', 'DONE'];
- // An undefined index value will return and undefined result.
- return readyStateString[waiting[j].readyState];
- });
- var last = getCarefully(function(){
- return toString(waiting[j].lastError);
- });
- if (!exit_cleanly_is_an_error) {
- // For some tests (e.g. the NaCl SDK examples) it is OK if the test
- // exits cleanly when we are waiting for it to load.
- //
- // In this case, "exiting cleanly" means returning 0 from main, or
- // calling exit(0). When this happens, the module "crashes" by posting
- // the "crash" message, but it also assigns an exitStatus.
- //
- // A real crash produces an exitStatus of -1, and if the module is still
- // running its exitStatus will be undefined.
- var exitStatus = getCarefully(function() {
- if (ready === 'DONE') {
- return waiting[j].exitStatus;
- } else {
- return -1;
- }
- });
-
- if (exitStatus === 0) {
- continue;
- }
- }
- var msg = (name + ' did not load. Status: ' + ready + ' / ' + last);
- if (load_errors_are_test_errors) {
- rpc.client_error(msg);
- errored = true;
- } else {
- rpc.log(msg);
- }
- }
- return errored;
-}
-
-
-// Contains the state for a single test.
-function TestStatus(tester, name, async) {
- // Work around how JS binds 'this'
- var this_ = this;
- this.tester = tester;
- this.name = name;
- this.async = async;
- this.running = true;
-
- this.log = function(message) {
- this.tester.rpc.log(this.name, toString(message), !this.running);
- }
-
- this.pass = function() {
- // TODO raise if not running.
- this.tester.rpc.pass(this.name, !this.running);
- this._done();
- haltAsyncTest();
- }
-
- this.fail = function(message) {
- this.tester.rpc.fail(this.name, message, !this.running);
- this._done();
- haltAsyncTest();
- }
-
- this._done = function() {
- if (this.running) {
- this.running = false;
- this.tester.testDone(this);
- }
- }
-
- this.assert = function(condition, message) {
- assert(condition, message, this);
- }
-
- this.assertEqual = function(a, b, message) {
- assertEqual(a, b, message, this);
- }
-
- this.assertRegexMatches = function(a, b, message) {
- assertRegexMatches(a, b, message, this);
- }
-
- this.callbackWrapper = function(callback, args) {
- // A stale callback?
- if (!this.running)
- return;
-
- if (args === undefined)
- args = [];
-
- try {
- callback.apply(undefined, args);
- } catch (err) {
- if (typeof err == 'object' && 'type' in err) {
- if (err.type == 'test_halt') {
- // New-style test
- // If we get this exception, we can assume any callbacks or next
- // tests have already been scheduled.
- return;
- } else if (err.type == 'test_fail') {
- // Old-style test
- // A special exception that terminates the test with a failure
- this.tester.rpc.fail(this.name, err.message, !this.running);
- this._done();
- return;
- }
- }
- // This is not a special type of exception, it is an error.
- this.tester.rpc.exception(this.name, err, !this.running);
- this._done();
- return;
- }
-
- // A normal exit. Should we move on to the next test?
- // Async tests do not move on without an explicit pass.
- if (!this.async) {
- this.tester.rpc.pass(this.name);
- this._done();
- }
- }
-
- // Async callbacks should be wrapped so the tester can catch unexpected
- // exceptions.
- this.wrap = function(callback) {
- return function() {
- this_.callbackWrapper(callback, arguments);
- };
- }
-
- this.setTimeout = function(callback, time) {
- setTimeout(this.wrap(callback), time);
- }
-
- this.waitForCallback = function(callbackName, expectedCalls) {
- this.log('Waiting for ' + expectedCalls + ' invocations of callback: '
- + callbackName);
- var gotCallbacks = 0;
-
- // Deliberately global - this is what the nexe expects.
- // TODO(ncbray): consider returning this function, so the test has more
- // flexibility. For example, in the test one could count to N
- // using a different callback before calling _this_ callback, and
- // continuing the test. Also, consider calling user-supplied callback
- // when done waiting.
- window[callbackName] = this.wrap(function() {
- ++gotCallbacks;
- this_.log('Received callback ' + gotCallbacks);
- if (gotCallbacks == expectedCalls) {
- this_.log("Done waiting");
- this_.pass();
- } else {
- // HACK
- haltAsyncTest();
- }
- });
-
- // HACK if this function is used in a non-async test, make sure we don't
- // spuriously pass. Throwing this exception forces us to behave like an
- // async test.
- haltAsyncTest();
- }
-
- // This function takes an array of messages and asserts that the nexe
- // calls PostMessage with each of these messages, in order.
- // Arguments:
- // plugin - The DOM object for the NaCl plugin
- // messages - An array of expected responses
- // callback - An optional callback function that takes the current message
- // string as an argument
- this.expectMessageSequence = function(plugin, messages, callback) {
- this.assert(messages.length > 0, 'Must provide at least one message');
- var local_messages = messages.slice();
- var listener = function(message) {
- if (message.data.indexOf('@:') == 0) {
- // skip debug messages
- this_.log('DEBUG: ' + message.data.substr(2));
- } else {
- this_.assertEqual(message.data, local_messages.shift());
- if (callback !== undefined) {
- callback(message.data);
- }
- }
- if (local_messages.length == 0) {
- this_.pass();
- } else {
- this_.expectEvent(plugin, 'message', listener);
- }
- }
- this.expectEvent(plugin, 'message', listener);
- }
-
- this.expectEvent = function(src, event_type, listener) {
- var wrapper = this.wrap(function(e) {
- src.removeEventListener(event_type, wrapper, false);
- listener(e);
- });
- src.addEventListener(event_type, wrapper, false);
- }
-}
-
-
-function Tester(body_element) {
- // Work around how JS binds 'this'
- var this_ = this;
- // The tests being run.
- var tests = [];
- this.rpc = new RPCWrapper();
- this.waiter = new NaClWaiter(body_element);
-
- var load_errors_are_test_errors = true;
- var exit_cleanly_is_an_error = true;
-
- var parallel = false;
-
- //
- // BEGIN public interface
- //
-
- this.loadErrorsAreOK = function() {
- load_errors_are_test_errors = false;
- }
-
- this.exitCleanlyIsOK = function() {
- exit_cleanly_is_an_error = false;
- };
-
- this.log = function(message) {
- this.rpc.log(message);
- }
-
- // If this kind of test exits cleanly, it passes
- this.addTest = function(name, testFunction) {
- tests.push({name: name, callback: testFunction, async: false});
- }
-
- // This kind of test does not pass until "pass" is explicitly called.
- this.addAsyncTest = function(name, testFunction) {
- tests.push({name: name, callback: testFunction, async: true});
- }
-
- this.run = function() {
- this.rpc.startup();
- this.startHeartbeat();
- this.waiter.run(
- function(loaded, waiting) {
- var errored = logLoadStatus(this_.rpc, load_errors_are_test_errors,
- exit_cleanly_is_an_error,
- loaded, waiting);
- if (errored) {
- this_.rpc.blankLine();
- this_.rpc.log('A nexe load error occured, aborting testing.');
- this_._done();
- } else {
- this_.startTesting();
- }
- },
- function() {
- this_.rpc.ping();
- }
- );
- }
-
- this.runParallel = function() {
- parallel = true;
- this.run();
- }
-
- // Takes an arbitrary number of arguments.
- this.waitFor = function() {
- for (var i = 0; i< arguments.length; i++) {
- this.waiter.waitFor(arguments[i]);
- }
- }
-
- //
- // END public interface
- //
-
- this.startHeartbeat = function() {
- var rpc = this.rpc;
- var heartbeat = function() {
- rpc.heartbeat();
- setTimeout(heartbeat, 500);
- }
- heartbeat();
- }
-
- this.launchTest = function(testIndex) {
- var testDecl = tests[testIndex];
- var currentTest = new TestStatus(this, testDecl.name, testDecl.async);
- setTimeout(currentTest.wrap(function() {
- this_.rpc.blankLine();
- this_.rpc.begin(currentTest.name);
- testDecl.callback(currentTest);
- }), 0);
- }
-
- this._done = function() {
- this.rpc.blankLine();
- this.rpc.shutdown();
- }
-
- this.startTesting = function() {
- if (tests.length == 0) {
- // No tests specified.
- this._done();
- return;
- }
-
- this.testCount = 0;
- if (parallel) {
- // Launch all tests.
- for (var i = 0; i < tests.length; i++) {
- this.launchTest(i);
- }
- } else {
- // Launch the first test.
- this.launchTest(0);
- }
- }
-
- this.testDone = function(test) {
- this.testCount += 1;
- if (this.testCount < tests.length) {
- if (!parallel) {
- // Move on to the next test if they're being run one at a time.
- this.launchTest(this.testCount);
- }
- } else {
- this._done();
- }
- }
-}
diff --git a/native_client/tools/browser_tester/browsertester/__init__.py b/native_client/tools/browser_tester/browsertester/__init__.py
deleted file mode 100644
index f632fc4..0000000
--- a/native_client/tools/browser_tester/browsertester/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Empty but necessary
diff --git a/native_client/tools/browser_tester/browsertester/browserlauncher.py b/native_client/tools/browser_tester/browsertester/browserlauncher.py
deleted file mode 100755
index 8fdefdf..0000000
--- a/native_client/tools/browser_tester/browsertester/browserlauncher.py
+++ /dev/null
@@ -1,344 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-from __future__ import print_function
-
-import os.path
-import re
-import shutil
-import sys
-import tempfile
-import time
-import urlparse
-
-import browserprocess
-
-class LaunchFailure(Exception):
- pass
-
-
-def GetPlatform():
- if sys.platform == 'darwin':
- platform = 'mac'
- elif sys.platform.startswith('linux'):
- platform = 'linux'
- elif sys.platform in ('cygwin', 'win32'):
- platform = 'windows'
- else:
- raise LaunchFailure('Unknown platform: %s' % sys.platform)
- return platform
-
-
-PLATFORM = GetPlatform()
-
-
-def SelectRunCommand():
- # The subprocess module added support for .kill in Python 2.6
- assert (sys.version_info[0] >= 3 or (sys.version_info[0] == 2 and
- sys.version_info[1] >= 6))
- if PLATFORM == 'linux':
- return browserprocess.RunCommandInProcessGroup
- else:
- return browserprocess.RunCommandWithSubprocess
-
-
-RunCommand = SelectRunCommand()
-
-def RemoveDirectory(path):
- retry = 5
- sleep_time = 0.25
- while True:
- try:
- shutil.rmtree(path)
- except Exception:
- # Windows processes sometime hang onto files too long
- if retry > 0:
- retry -= 1
- time.sleep(sleep_time)
- sleep_time *= 2
- else:
- # No luck - don't mask the error
- raise
- else:
- # succeeded
- break
-
-
-
-# In Windows, subprocess seems to have an issue with file names that
-# contain spaces.
-def EscapeSpaces(path):
- if PLATFORM == 'windows' and ' ' in path:
- return '"%s"' % path
- return path
-
-
-def MakeEnv(options):
- env = dict(os.environ)
- # Enable PPAPI Dev interfaces for testing.
- env['NACL_ENABLE_PPAPI_DEV'] = str(options.enable_ppapi_dev)
- if options.debug:
- env['NACL_PLUGIN_DEBUG'] = '1'
- # env['NACL_SRPC_DEBUG'] = '1'
- return env
-
-
-class BrowserLauncher(object):
-
- WAIT_TIME = 20
- WAIT_STEPS = 80
- SLEEP_TIME = float(WAIT_TIME) / WAIT_STEPS
-
- def __init__(self, options):
- self.options = options
- self.profile = None
- self.binary = None
- self.tool_log_dir = None
-
- def KnownPath(self):
- raise NotImplementedError
-
- def BinaryName(self):
- raise NotImplementedError
-
- def CreateProfile(self):
- raise NotImplementedError
-
- def MakeCmd(self, url, host, port):
- raise NotImplementedError
-
- def CreateToolLogDir(self):
- self.tool_log_dir = tempfile.mkdtemp(prefix='vglogs_')
- return self.tool_log_dir
-
- def FindBinary(self):
- if self.options.browser_path:
- return self.options.browser_path
- else:
- path = self.KnownPath()
- if path is None or not os.path.exists(path):
- raise LaunchFailure('Cannot find the browser directory')
- binary = os.path.join(path, self.BinaryName())
- if not os.path.exists(binary):
- raise LaunchFailure('Cannot find the browser binary')
- return binary
-
- def WaitForProcessDeath(self):
- self.browser_process.Wait(self.WAIT_STEPS, self.SLEEP_TIME)
-
- def Cleanup(self):
- self.browser_process.Kill()
-
- RemoveDirectory(self.profile)
- if self.tool_log_dir is not None:
- RemoveDirectory(self.tool_log_dir)
-
- def MakeProfileDirectory(self):
- self.profile = tempfile.mkdtemp(prefix='browserprofile_')
- return self.profile
-
- def SetStandardStream(self, env, var_name, redirect_file, is_output):
- if redirect_file is None:
- return
- file_prefix = 'file:'
- dev_prefix = 'dev:'
- debug_warning = 'DEBUG_ONLY:'
- # logic must match src/trusted/service_runtime/nacl_resource.*
- # resource specification notation. file: is the default
- # interpretation, so we must have an exhaustive list of
- # alternative schemes accepted. if we remove the file-is-default
- # interpretation, replace with
- # is_file = redirect_file.startswith(file_prefix)
- # and remove the list of non-file schemes.
- is_file = (not (redirect_file.startswith(dev_prefix) or
- redirect_file.startswith(debug_warning + dev_prefix)))
- if is_file:
- if redirect_file.startswith(file_prefix):
- bare_file = redirect_file[len(file_prefix)]
- else:
- bare_file = redirect_file
- # why always abspath? does chrome chdir or might it in the
- # future? this means we do not test/use the relative path case.
- redirect_file = file_prefix + os.path.abspath(bare_file)
- else:
- bare_file = None # ensure error if used without checking is_file
- env[var_name] = redirect_file
- if is_output:
- # sel_ldr appends program output to the file so we need to clear it
- # in order to get the stable result.
- if is_file:
- if os.path.exists(bare_file):
- os.remove(bare_file)
- parent_dir = os.path.dirname(bare_file)
- # parent directory may not exist.
- if not os.path.exists(parent_dir):
- os.makedirs(parent_dir)
-
- def Launch(self, cmd, env):
- browser_path = cmd[0]
- if not os.path.exists(browser_path):
- raise LaunchFailure('Browser does not exist %r'% browser_path)
- if not os.access(browser_path, os.X_OK):
- raise LaunchFailure('Browser cannot be executed %r (Is this binary on an '
- 'NFS volume?)' % browser_path)
- if self.options.sel_ldr:
- env['NACL_SEL_LDR'] = self.options.sel_ldr
- if self.options.sel_ldr_bootstrap:
- env['NACL_SEL_LDR_BOOTSTRAP'] = self.options.sel_ldr_bootstrap
- if self.options.irt_library:
- env['NACL_IRT_LIBRARY'] = self.options.irt_library
- self.SetStandardStream(env, 'NACL_EXE_STDIN',
- self.options.nacl_exe_stdin, False)
- self.SetStandardStream(env, 'NACL_EXE_STDOUT',
- self.options.nacl_exe_stdout, True)
- self.SetStandardStream(env, 'NACL_EXE_STDERR',
- self.options.nacl_exe_stderr, True)
- print('ENV:', ' '.join(['='.join(pair) for pair in env.items()]))
- print('LAUNCHING: %s' % ' '.join(cmd))
- sys.stdout.flush()
- self.browser_process = RunCommand(cmd, env=env)
-
- def IsRunning(self):
- return self.browser_process.IsRunning()
-
- def GetReturnCode(self):
- return self.browser_process.GetReturnCode()
-
- def Run(self, url, host, port):
- self.binary = EscapeSpaces(self.FindBinary())
- self.profile = self.CreateProfile()
- if self.options.tool is not None:
- self.tool_log_dir = self.CreateToolLogDir()
- cmd = self.MakeCmd(url, host, port)
- self.Launch(cmd, MakeEnv(self.options))
-
-
-def EnsureDirectory(path):
- if not os.path.exists(path):
- os.makedirs(path)
-
-
-def EnsureDirectoryForFile(path):
- EnsureDirectory(os.path.dirname(path))
-
-
-class ChromeLauncher(BrowserLauncher):
-
- def KnownPath(self):
- if PLATFORM == 'linux':
- # TODO(ncbray): look in path?
- return '/opt/google/chrome'
- elif PLATFORM == 'mac':
- return '/Applications/Google Chrome.app/Contents/MacOS'
- else:
- homedir = os.path.expanduser('~')
- path = os.path.join(homedir, r'AppData\Local\Google\Chrome\Application')
- return path
-
- def BinaryName(self):
- if PLATFORM == 'mac':
- return 'Google Chrome'
- elif PLATFORM == 'windows':
- return 'chrome.exe'
- else:
- return 'chrome'
-
- def MakeEmptyJSONFile(self, path):
- EnsureDirectoryForFile(path)
- f = open(path, 'w')
- f.write('{}')
- f.close()
-
- def CreateProfile(self):
- profile = self.MakeProfileDirectory()
-
- # Squelch warnings by creating bogus files.
- self.MakeEmptyJSONFile(os.path.join(profile, 'Default', 'Preferences'))
- self.MakeEmptyJSONFile(os.path.join(profile, 'Local State'))
-
- return profile
-
- def NetLogName(self):
- return os.path.join(self.profile, 'netlog.json')
-
- def MakeCmd(self, url, host, port):
- cmd = [self.binary,
- # --enable-logging enables stderr output from Chromium subprocesses
- # on Windows (see
- # https://code.google.com/p/chromium/issues/detail?id=171836)
- '--enable-logging',
- # This prevents Chrome from making "hidden" network requests at
- # startup and navigation. These requests could be a source of
- # non-determinism, and they also add noise to the netlogs.
- '--disable-features=NetworkPrediction',
- # This is speculative, sync should not occur with a clean profile.
- '--disable-sync',
- '--no-first-run',
- '--no-default-browser-check',
- '--log-level=1',
- '--disable-default-apps',
- # Suppress metrics reporting. This prevents misconfigured bots,
- # people testing at their desktop, etc from poisoning the UMA data.
- '--metrics-recording-only',
- # Chrome explicitly blacklists some ports as "unsafe" because
- # certain protocols use them. Chrome gives an error like this:
- # Error 312 (net::ERR_UNSAFE_PORT): Unknown error
- # Unfortunately, the browser tester can randomly choose a
- # blacklisted port. To work around this, the tester whitelists
- # whatever port it is using.
- '--explicitly-allowed-ports=%d' % port,
- '--user-data-dir=%s' % self.profile]
- # Log network requests to assist debugging.
- cmd.append('--log-net-log=%s' % self.NetLogName())
- if self.options.ppapi_plugin is None:
- cmd.append('--enable-nacl')
- disable_sandbox = False
- # Chrome process can't access file within sandbox
- disable_sandbox |= self.options.nacl_exe_stdin is not None
- disable_sandbox |= self.options.nacl_exe_stdout is not None
- disable_sandbox |= self.options.nacl_exe_stderr is not None
- if disable_sandbox:
- cmd.append('--no-sandbox')
- else:
- cmd.append('--allow-command-line-plugins')
- cmd.append('--register-pepper-plugins=%s;%s'
- % (self.options.ppapi_plugin,
- self.options.ppapi_plugin_mimetype))
- cmd.append('--no-sandbox')
- if self.options.browser_extensions:
- cmd.append('--load-extension=%s' %
- ','.join(self.options.browser_extensions))
- cmd.append('--enable-experimental-extension-apis')
- if self.options.enable_crash_reporter:
- cmd.append('--enable-crash-reporter-for-testing')
- if self.options.tool == 'memcheck':
- cmd = ['src/third_party/valgrind/memcheck.sh',
- '-v',
- '--xml=yes',
- '--leak-check=no',
- '--gen-suppressions=all',
- '--num-callers=30',
- '--trace-children=yes',
- '--nacl-file=%s' % (self.options.files[0],),
- '--suppressions=' +
- '../tools/valgrind/memcheck/suppressions.txt',
- '--xml-file=%s/xml.%%p' % (self.tool_log_dir,),
- '--log-file=%s/log.%%p' % (self.tool_log_dir,)] + cmd
- elif self.options.tool == 'tsan':
- cmd = ['src/third_party/valgrind/tsan.sh',
- '-v',
- '--num-callers=30',
- '--trace-children=yes',
- '--nacl-file=%s' % (self.options.files[0],),
- '--ignore=../tools/valgrind/tsan/ignores.txt',
- '--suppressions=../tools/valgrind/tsan/suppressions.txt',
- '--log-file=%s/log.%%p' % (self.tool_log_dir,)] + cmd
- elif self.options.tool != None:
- raise LaunchFailure('Invalid tool name "%s"' % (self.options.tool,))
- if self.options.enable_sockets:
- cmd.append('--allow-nacl-socket-api=%s' % host)
- cmd.extend(self.options.browser_flags)
- cmd.append(url)
- return cmd
diff --git a/native_client/tools/browser_tester/browsertester/browserprocess.py b/native_client/tools/browser_tester/browsertester/browserprocess.py
deleted file mode 100755
index 24c7961..0000000
--- a/native_client/tools/browser_tester/browsertester/browserprocess.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2011 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-from __future__ import print_function
-
-import os
-import signal
-import subprocess
-import time
-
-class BrowserProcessBase(object):
-
- def __init__(self, handle):
- self.handle = handle
- print('PID', self.handle.pid)
-
- def GetReturnCode(self):
- return self.handle.returncode
-
- def IsRunning(self):
- return self.handle.poll() is None
-
- def Wait(self, wait_steps, sleep_time):
- try:
- self.term()
- except Exception:
- # Terminating the handle can raise an exception. There is likely no point
- # in waiting if the termination didn't succeed.
- return
-
- i = 0
- # subprocess.wait() doesn't have a timeout, unfortunately.
- while self.IsRunning() and i < wait_steps:
- time.sleep(sleep_time)
- i += 1
-
- def Kill(self):
- if self.IsRunning():
- print('KILLING the browser')
- try:
- self.kill()
- # If it doesn't die, we hang. Oh well.
- self.handle.wait()
- except Exception:
- # If it is already dead, then it's ok.
- # This may happen if the browser dies after the first poll, but
- # before the kill.
- if self.IsRunning():
- raise
-
-class BrowserProcess(BrowserProcessBase):
-
- def term(self):
- self.handle.terminate()
-
- def kill(self):
- self.handle.kill()
-
-
-class BrowserProcessPosix(BrowserProcessBase):
- """ This variant of BrowserProcess uses process groups to manage browser
- life time. """
-
- def term(self):
- os.killpg(self.handle.pid, signal.SIGTERM)
-
- def kill(self):
- os.killpg(self.handle.pid, signal.SIGKILL)
-
-
-def RunCommandWithSubprocess(cmd, env=None):
- handle = subprocess.Popen(cmd, env=env)
- return BrowserProcess(handle)
-
-
-def RunCommandInProcessGroup(cmd, env=None):
- def SetPGrp():
- os.setpgrp()
- print('I\'M THE SESSION LEADER!')
-
- handle = subprocess.Popen(cmd, env=env, preexec_fn=SetPGrp)
- return BrowserProcessPosix(handle)
diff --git a/native_client/tools/browser_tester/browsertester/rpclistener.py b/native_client/tools/browser_tester/browsertester/rpclistener.py
deleted file mode 100755
index af2ca5c..0000000
--- a/native_client/tools/browser_tester/browsertester/rpclistener.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-
-import sys
-import time
-
-
-class RPCListener(object):
-
- def __init__(self, shutdown_callback):
- self.shutdown_callback = shutdown_callback
- self.prefix = '|||| '
- self.ever_failed = False
- self.start_time = time.time()
-
- def Log(self, message):
- # Display the number of milliseconds since startup.
- # This gives us additional data for debugging bot behavior.
- prefix = '[%6s ms] ' % int((time.time()-self.start_time)*1000) + self.prefix
- lines = [line.rstrip() for line in message.split('\n')]
- text = ''.join(['%s%s\n' % (prefix, line) for line in lines])
- sys.stdout.write(text)
-
- def TestLog(self, message):
- self.Log(message)
- return 'OK'
-
- # Something went very wrong on the server side, everything is horked?
- # Only called locally.
- def ServerError(self, message):
- self.Log('\n[SERVER_ERROR] %s' % (message,))
- self.ever_failed = True
- self._TestingDone()
- return 'OK'
-
- # Does nothing. Called to prevent timeouts. (The server resets the timeout
- # every time it receives a GET request.)
- def Ping(self):
- return 'OK'
-
- # This happens automatically, as long as the renderer process has not crashed.
- def JavaScriptIsAlive(self):
- return 'OK'
-
- def Shutdown(self, message, passed):
- self.Log(message)
- # This check looks slightly backwards, but this is intentional.
- # Everything but passed.lower() == 'true' is considered a failure. This
- # means that if the test runner sends garbage, it will be a failure.
- # NOTE in interactive mode this function may be called multiple times.
- # ever_failed is designed to be set and never reset - if any of the runs
- # fail, the an error code will be returned to the command line.
- # In summary, the tester is biased towards failure - it should scream "FAIL"
- # if things are not 100% correct. False positives must be avoided.
- if passed.lower() != 'true':
- self.ever_failed = True
- close_browser = self._TestingDone()
- if close_browser:
- return 'Die, please'
- else:
- return 'OK'
-
- def _TestingDone(self):
- return self.shutdown_callback()
diff --git a/native_client/tools/browser_tester/browsertester/server.py b/native_client/tools/browser_tester/browsertester/server.py
deleted file mode 100644
index 2444e10..0000000
--- a/native_client/tools/browser_tester/browsertester/server.py
+++ /dev/null
@@ -1,297 +0,0 @@
-# Copyright 2011 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import BaseHTTPServer
-import cgi
-import mimetypes
-import os
-import os.path
-import posixpath
-import SimpleHTTPServer
-import SocketServer
-import threading
-import time
-import urllib
-import urlparse
-
-class RequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
-
- def NormalizePath(self, path):
- path = path.split('?', 1)[0]
- path = path.split('#', 1)[0]
- path = posixpath.normpath(urllib.unquote(path))
- words = path.split('/')
-
- bad = set((os.curdir, os.pardir, ''))
- words = [word for word in words if word not in bad]
- # The path of the request should always use POSIX-style path separators, so
- # that the filename input of --map_file can be a POSIX-style path and still
- # match correctly in translate_path().
- return '/'.join(words)
-
- def translate_path(self, path):
- path = self.NormalizePath(path)
- if path in self.server.file_mapping:
- return self.server.file_mapping[path]
- for extra_dir in self.server.serving_dirs:
- # TODO(halyavin): set allowed paths in another parameter?
- full_path = os.path.join(extra_dir, os.path.basename(path))
- if os.path.isfile(full_path):
- return full_path
-
- # Try the complete relative path, not just a basename. This allows the
- # user to serve everything recursively under extra_dir, not just one
- # level deep.
- #
- # One use case for this is the Native Client SDK examples. The examples
- # expect to be able to access files as relative paths from the root of
- # the example directory.
- # Sometimes two subdirectories contain files with the same name, so
- # including all subdirectories in self.server.serving_dirs will not do
- # the correct thing; (i.e. the wrong file will be chosen, even though the
- # correct path was given).
- full_path = os.path.join(extra_dir, path)
- if os.path.isfile(full_path):
- return full_path
- if not path.endswith('favicon.ico') and not self.server.allow_404:
- self.server.listener.ServerError('Cannot find file \'%s\'' % path)
- return path
-
- def guess_type(self, path):
- # We store the extension -> MIME type mapping in the server instead of the
- # request handler so we that can add additional mapping entries via the
- # command line.
- _, ext = posixpath.splitext(path)
- if ext in self.server.extensions_mapping:
- return self.server.extensions_mapping[ext]
- ext = ext.lower()
- if ext in self.server.extensions_mapping:
- return self.server.extensions_mapping[ext]
- else:
- return self.server.extensions_mapping['']
-
- def SendRPCResponse(self, response):
- self.send_response(200)
- self.send_header("Content-type", "text/plain")
- self.send_header("Content-length", str(len(response)))
- self.end_headers()
- self.wfile.write(response)
-
- # shut down the connection
- self.wfile.flush()
- self.connection.shutdown(1)
-
- def HandleRPC(self, name, query):
- kargs = {}
- for k, v in query.items():
- assert len(v) == 1, k
- kargs[k] = v[0]
-
- l = self.server.listener
- try:
- response = getattr(l, name)(**kargs)
- except Exception as e:
- self.SendRPCResponse('%r' % (e,))
- raise
- else:
- self.SendRPCResponse(response)
-
- # For Last-Modified-based caching, the timestamp needs to be old enough
- # for the browser cache to be used (at least 60 seconds).
- # http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
- # Often we clobber and regenerate files for testing, so this is needed
- # to actually use the browser cache.
- def send_header(self, keyword, value):
- if keyword == 'Last-Modified':
- last_mod_format = '%a, %d %b %Y %H:%M:%S GMT'
- old_value_as_t = time.strptime(value, last_mod_format)
- old_value_in_secs = time.mktime(old_value_as_t)
- new_value_in_secs = old_value_in_secs - 360
- value = time.strftime(last_mod_format,
- time.localtime(new_value_in_secs))
- SimpleHTTPServer.SimpleHTTPRequestHandler.send_header(self,
- keyword,
- value)
-
- def do_POST(self):
- # Backwards compatible - treat result as tuple without named fields.
- _, _, path, _, query, _ = urlparse.urlparse(self.path)
-
- self.server.listener.Log('POST %s (%s)' % (self.path, path))
- if path == '/echo':
- self.send_response(200)
- self.end_headers()
- data = self.rfile.read(int(self.headers.getheader('content-length')))
- self.wfile.write(data)
- elif self.server.output_dir is not None:
- # Try to write the file to disk.
- path = self.NormalizePath(path)
- output_path = os.path.join(self.server.output_dir, path)
- try:
- outfile = open(output_path, 'w')
- except IOError:
- error_message = 'File not found: %r' % output_path
- self.server.listener.ServerError(error_message)
- self.send_error(404, error_message)
- return
-
- try:
- data = self.rfile.read(int(self.headers.getheader('content-length')))
- outfile.write(data)
- except IOError as e:
- outfile.close()
- try:
- os.remove(output_path)
- except OSError:
- # Oh, well.
- pass
- error_message = 'Can\'t write file: %r\n' % output_path
- error_message += 'Exception:\n%s' % str(e)
- self.server.listener.ServerError(error_message)
- self.send_error(500, error_message)
- return
-
- outfile.close()
-
- # Send a success response.
- self.send_response(200)
- self.end_headers()
- else:
- error_message = 'File not found: %r' % path
- self.server.listener.ServerError(error_message)
- self.send_error(404, error_message)
-
- self.server.ResetTimeout()
-
- def do_GET(self):
- # Backwards compatible - treat result as tuple without named fields.
- _, _, path, _, query, _ = urlparse.urlparse(self.path)
-
- tester = '/TESTER/'
- if path.startswith(tester):
- # If the path starts with '/TESTER/', the GET is an RPC call.
- name = path[len(tester):]
- # Supporting Python 2.5 prevents us from using urlparse.parse_qs
- query = cgi.parse_qs(query, True)
-
- self.server.rpc_lock.acquire()
- try:
- self.HandleRPC(name, query)
- finally:
- self.server.rpc_lock.release()
-
- # Don't reset the timeout. This is not "part of the test", rather it's
- # used to tell us if the renderer process is still alive.
- if name == 'JavaScriptIsAlive':
- self.server.JavaScriptIsAlive()
- return
-
- elif path in self.server.redirect_mapping:
- dest = self.server.redirect_mapping[path]
- self.send_response(301, 'Moved')
- self.send_header('Location', dest)
- self.end_headers()
- self.wfile.write(self.error_message_format %
- {'code': 301,
- 'message': 'Moved',
- 'explain': 'Object moved permanently'})
- self.server.listener.Log('REDIRECT %s (%s -> %s)' %
- (self.path, path, dest))
- else:
- self.server.listener.Log('GET %s (%s)' % (self.path, path))
- # A normal GET request for transferring files, etc.
- f = self.send_head()
- if f:
- self.copyfile(f, self.wfile)
- f.close()
-
- self.server.ResetTimeout()
-
- def copyfile(self, source, outputfile):
- # Bandwidth values <= 0.0 are considered infinite
- if self.server.bandwidth <= 0.0:
- return SimpleHTTPServer.SimpleHTTPRequestHandler.copyfile(
- self, source, outputfile)
-
- self.server.listener.Log('Simulating %f mbps server BW' %
- self.server.bandwidth)
- chunk_size = 1500 # What size to use?
- bits_per_sec = self.server.bandwidth * 1000000
- start_time = time.time()
- data_sent = 0
- while True:
- chunk = source.read(chunk_size)
- if len(chunk) == 0:
- break
- cur_elapsed = time.time() - start_time
- target_elapsed = (data_sent + len(chunk)) * 8 / bits_per_sec
- if (cur_elapsed < target_elapsed):
- time.sleep(target_elapsed - cur_elapsed)
- outputfile.write(chunk)
- data_sent += len(chunk)
- self.server.listener.Log('Streamed %d bytes in %f s' %
- (data_sent, time.time() - start_time))
-
- # Disable the built-in logging
- def log_message(self, format, *args):
- pass
-
-
-# The ThreadingMixIn allows the server to handle multiple requests
-# concurently (or at least as concurently as Python allows). This is desirable
-# because server sockets only allow a limited "backlog" of pending connections
-# and in the worst case the browser could make multiple connections and exceed
-# this backlog - causing the server to drop requests. Using ThreadingMixIn
-# helps reduce the chance this will happen.
-# There were apparently some problems using this Mixin with Python 2.5, but we
-# are no longer using anything older than 2.6.
-class Server(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
-
- def Configure(
- self, file_mapping, redirect_mapping, extensions_mapping, allow_404,
- bandwidth, listener, serving_dirs=[], output_dir=None):
- self.file_mapping = file_mapping
- self.redirect_mapping = redirect_mapping
- self.extensions_mapping.update(extensions_mapping)
- self.allow_404 = allow_404
- self.bandwidth = bandwidth
- self.listener = listener
- self.rpc_lock = threading.Lock()
- self.serving_dirs = serving_dirs
- self.output_dir = output_dir
-
- def TestingBegun(self, timeout):
- self.test_in_progress = True
- # self.timeout does not affect Python 2.5.
- self.timeout = timeout
- self.ResetTimeout()
- self.JavaScriptIsAlive()
- # Have we seen any requests from the browser?
- self.received_request = False
-
- def ResetTimeout(self):
- self.last_activity = time.time()
- self.received_request = True
-
- def JavaScriptIsAlive(self):
- self.last_js_activity = time.time()
-
- def TimeSinceJSHeartbeat(self):
- return time.time() - self.last_js_activity
-
- def TestingEnded(self):
- self.test_in_progress = False
-
- def TimedOut(self, total_time):
- return (total_time >= 0.0 and
- (time.time() - self.last_activity) >= total_time)
-
-
-def Create(host, port):
- server = Server((host, port), RequestHandler)
- server.extensions_mapping = mimetypes.types_map.copy()
- server.extensions_mapping.update({
- '': 'application/octet-stream' # Default
- })
- return server