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